Newsgroup: it.comp.appl.access
Titolo: Non riesco a usare i dati delle query nelle tabelle

Da tempo ormai combatto con questo problema.....
Voglio associare a dei campi di una maschera dei valori presenti in
una query (nell'unico record).
Per fare questo faccio cosi':
In una macro Apro la query voluta che isola un determinato record, poi
tramite ImpostaValore cerco di copiare il valore di un campo della
stessa in una casella di una maschera. tutto molto semplice.
Al lancio della procedura salta fuori il messaggio di errore:
"L'oggetto non contene l'oggetto di automazione: "Query"", dove in
Query vi e' il nome della stessa.
Dove sbaglio?
C'e' una procedura piu' snella che mi permetta di arrivare al valore
di un campo di una tabella conoscendo la chiave del record per poi
copiarla in una maschera?

"Meade" <mba...@NOSPAMMMMlibero.it> ha scritto nel messaggio
news:3d3c22e4...@powernews.libero.it...

Certo .
Puoi utilizzare la funzione Dlookup (vediti l'help)
che ti ritorna il contenuto di un campo della tabella che leggi.
Questa funzione la puoi utilizzare all'interno della casella di controllo
sia
nell'origine riga (ma la casella non sarą piu' variabile) , sia
nella proprietą "Valore di default" in questo caso Access te la carica
all'avvio
e poi puo' essere variata. Altrimenti puoi caricare la tua casella
tramite codice dopo aver letto cio' che cerchi.
Un esempio di dlookup:
Campo=Dlookup"NomeCampo";"Nometabella";"ID_RECORD=100")
con questo nella variabile campo troverai il valore del campo "nomecampo "
del record con id_record=100 della tabella Nometabella.
Bye :o)

 Query vi e' il nome della stessa.
??????
Perchè non metti la query come origine record della maschera e poi non
associ i controlli ai campi?
Antonio


wrote:

Perche' come origine record uso una tabella a se stante, ma per alcuni
campi vorrei piazzarci dei valori presenti in altre tabelle che
dipendono pero' da dati che l'utente inserisce nella maschera. Questo
mi costringie a fare delle query dalle quali pero' non riesco a
fermene nulla visto che i dati in loro inclusi non mi vanno nelle
maschere.

del record con id_record=100 della tabella Nometabella.
Grazie del sugg., ma se in id_record=100 al posto di 100 volessi
imporre un valore presente in un campo della maschera? ho provato con:
id_record=[Forms]![NomeMaschera]![NomeCampo]  e con
id_record=Me.NomeCampo  senza successo, viene fuori la scritta
#Errore.
Mentre se faccio una cosa del genere
id_record=NomeCampo oopure
id_record=[NomeCampo]    mi stampa sempre il valore presenta al primo
record della tabella
Ciao!

 #Errore.
Tu stai scrivendo una stringa e devi concatenare costanti con variabili.
Quindi
"id_record=" & [Forms]![NomeMaschera]![NomeCampo]
A proposito, se quelle scelte che fa l'utente le fa tramite combo, ci
sarebbe un'altra soluzione.
Per esempio, supponiamo che tu abbia una combo dove l'utente deve scegliere
una città da una tabella dove ci sono le città e i CAP.
Poi, in un controllo non associato vuoi che ci sia il CAP della città
scelta.
Invece di una dlookup, che rallenta l'esecuzione, potresti mettere nella
combo una query che fornisca la città come prima colonna, e il cap come
seconda, nascosta, cioè con dimensione colonna 0.
Su evento dopo aggiornamento della combo faresti
controllo_CAP = combo_città.column(1)
Antonio


interessante..... non avevo mai visto questa sintassi.
Ciao!

"Meade" <mba...@NOSPAMMMMlibero.it> ha scritto nel messaggio
news:3d3e6f9d...@powernews.libero.it...

Ripeto: tieni presente che la stringa criterio della dlookup č appunto una
stringa.
Per mettere in una stringa il valore di una variabile, devi concatenare la
parte costante con il nome della variabile
es.
x = "Antonio"
msgbox "Io sono " & x
stampa
Io sono Antonio
ma msgbox "Io sono x"
stampa
Io sono x
Antonio