Newsgroup: it.comp.appl.access
Titolo: Problemi di visualizzazione maschera continua

Devo realizzare una piccola form di input dati ed ho un problema.
In particolare su questa maschra l'operatore deve imputare un importo
(da digitare) ad una commessa scelta dalla lista di quelle aperte, poi
passare al successivo e cosi' via (ecco perche' una maschera
continua).
Quindi ho collegato le due tabelle attraverso il codice di commessa,
ho associato al controllo popup "codice commessa" la tabella delle
commesse e cosi' funziona.
Il problema deriva dal fatto che  la commessa ha un codice (numerico)
ed un nominativo, e l'operatore ha necessita' di vedere sia l'uno che
l'altro nella "striscia di form" che sta compilando.
Per far questo pensavo ad un codice da associare al "Dopo
aggiornamento" del controllo relativo al numero di commessa del tipo:
    Str = DLookup("[NomeCommessa]", "TrasfOrdini", "[NrOrdine] = " _
          & Me.NrOrdine.Value)
    Me.NomeCommessa.Value = Str
dove NomeCommessa e' un controllo non associato.
Ma non funziona, perche' non essendo associato e' lo stesso per tutti
i record, e quindi se lo cambio cambia per tutti.
Suggerimenti?
Grazie
Doc Hollywood

 ha scritto nel messaggio
news:adda0833.03020...@posting.google.com...

Come fai a leggere un valore con DLookup("[NomeCommessa]",... se
"NomeCommessa" č un controllo non associato?
Impossibile. DLookup legge su un set di record di tipo tabella o query.
Potresti fare cosě: crea un controllo invisibile nella form e mettilo nella
intestazione della maschera, chiamalo con molta fantasia "MioControllo".
Quando l'operatore sceglie una commessa puoi scrivere qualcosa del genere:
Me.MioControllo = Me.Codice & " " & Me.Nominativo
Userai questo valore per tutto quello che ti serve: basta scrivere
Me.MioControllo
Ciao, Carlo

 ha scritto nel messaggio
news:adda0833.03020...@posting.google.com...

Ammesso e non concesso che abbia capito bene il tuo problema, prova a
scrivere nell'origine controllo della casella di testo non associata in cui
vuoi vedere la descrizione quanto segue:
= DLookup("[NomeCommessa]"; "TrasfOrdini"; "[NrOrdine] = " & NrOrdine)
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Me.MioControllo
Mi scuso anzitutto perche' volendo essere breve forse ho dato troppe
poche informazioni.
Con DLookup vado a cercare nella tabella "TrasfOrdini" composta di
NrOrdine-NomeCommessa il nome commessa ([NomeCommessa] appunto) che
corrisponde al numero NrOrdine. E cmq questo funziona (con MsgBox mi
ritorna il testo giusto).
Il problema e' invece il passaggio successivo! Nel senso che non
essendo associato il controllo [NomeCommessa] della maschera, che per
meglio definirla possiamo chiamare [NomeCommessaMaschera], la modifica
provocata dall'istruzione
    Me.NomeCommessaMaschera.Value = Str
provoca il cambiamento di *tutte* le caselle di tutti i record
visualizzati in maschera continua (se fosse a maschera singola non ci
sarebbe problema...)
Per ovviare al problema ho provato poi a ridefinire l'origine dati
creando una query che comprende tutti i campi della tabella dei valori
e [NomeCommessa] della "TrasfOrdini", associando [NomeCommessaMschera]
con [NomeCommessa] e facendolo compilare automaticamente con
l'istruzione di prima, ma e' sto peggio! Nelle precedenti imputazioni
funziona benissimo (vedo i due campi) ma non riesco ad inserirne uno
nuovo a causa dello stretto legame [NrCommessa]-[NomeCommessa]
Il messaggio critico e':
"L'apporto modifiche non č riuscito perchč si č cercato di duplicare i
valori dell'indice, nella chiave primaria o nella relazione ecc...."
Se vuoi per meglio spiegarti posso mandarti il db...
Ciao e grazie tante.
Doc Hollywood

 = DLookup("[NomeCommessa]"; "TrasfOrdini"; "[NrOrdine] = " & NrOrdine)
Funziona! Ma sarebbe funzionato anche prima se non mi fossi sbagliato
nella definizione della tabella :-((
Il mio errore e' stato quello di dire di indicizzare il campo
[NrOrdine] (giusto) con duplicati non ammessi (sbagliato!). Quindi e'
chiaro che il primo record immesso con un nr. d'ordine uguale ad un
precedente (che era la mia prova) non era ammissibile...
Quando si dice un errore banale ti rovina il week-end...
Ciao e grazie!
Doc Hollywood

 ha scritto nel messaggio
news:adda0833.03020...@posting.google.com...

Sono contento che ora ti funzioni, ma sono scettico (anzi incredulo) che in
una maschera continua avrebbe potuto funzionare la tua soluzione: avresti
dovuto vedere su tutti i record visualizzati nella maschera la stessa
descrizione, coincidente con quella relativa al record corrente.
Fra l'altro è quello che anche tu sostieni nel messaggio di risposta a Carlo
Costarella di ieri alle 20:40.


 Costarella di ieri alle 20:40.
E hai ragione! :-))
Ci ho provato ed e' di un complicato terribile (poi mi sono stufato e
non sono sicuro che funzioni).
Cmq grazie al tuo consiglio funzia, anche troppo bene!
Ciao e grazie ancora.
Doc Hollywood