Newsgroup: it.comp.appl.access
Titolo: DLOOKUP

Ho una query (qryCodiciProdotti) che mi restituisce :
CodiceProdotto(testo); NomeProdotto(testo).
Ho una maschera ( usata per la  visualizzazione) che restituisce della
scadenze (frmSchedeScadute) da una query (qrySchedeScadute) , tale
query č : NomeSocietą(testo); DataImmissione(data);
DataRevisione(data); CodiceProdotto(testo)
SQL
-------
SELECT SocietąSchede.NomeSocietą, Max(SocietąSchede.DataImmissione) AS
MaxDiDataImmissione, Max(DatiSchedeSicurezza.DataRevisione) AS
MaxDiDataRevisione, SchedeDaMandare.CodiceProdotto
FROM DatiSchedeSicurezza INNER JOIN (SocietąSchede INNER JOIN
SchedeDaMandare ON SocietąSchede.NomeSocietą =
SchedeDaMandare.NomeSocietą) ON DatiSchedeSicurezza.CodiceProdottto =
SocietąSchede.CodiceProdotto
GROUP BY SocietąSchede.NomeSocietą, SchedeDaMandare.CodiceProdotto
HAVING
(((Max(DatiSchedeSicurezza.DataRevisione))>Max([SocietąSchede]![DataImmissione])));
------
Ovviamente la maschera (frmSchedeScadute) mi deve dare :
NomeSocietą(txtNomeSocietą), DataImmissione(txtDataImmissione),
DataRevisione(txtDataRevisione), CodiceProdotto (txtCodiceProdotto) e
NomeProdotto (txtNomeProdotto).
PROBLEMA: Per vedere il NomeProdotto associato al CodiceProdotto ho
provato a mettere in origine riga :
DLookUp("NomeProdotto"; "qryCodiciProdotti"; "CodiceProdotto =" &
Maschere!frmSchedeScadute!txtCodiceProdotto)
Mi da errore! Dove sbaglio ?
Ciao. Fabrizio

 Mi da errore! Dove sbaglio ?
Al posto di Maschere scrivi Forms.
Antonio.



A dire il vero è lo stesso Access ( 2002) che mi cambia Forms in
Maschere .
L'inserimento dell'espressione DLookUp l'ho messa in Proprietà -->
Origine Controllo ( per cui ho dovuto tra l'altro stare attento alle
virgole che diventano punto e virgola), magari c'è un altro posto dove
metterlo.
Ciao. Fabrizio

 Ciao. Fabrizio
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Maschere!frmSchedeScadute!txtCodiceProdotto)
Mancano i doppi apici per chiudere il criterio. Ammesso che Maschere sia giusto
in A2002 (io ho un A2000 e mi lascia Forms), dovresti scrivere una cosa del
genere:
DLookUp("NomeProdotto"; "qryCodiciProdotti"; "CodiceProdotto =""" & _
    Maschere!frmSchedeScadute!txtCodiceProdotto) & """"
Ciao. Claudio.

     Maschere!frmSchedeScadute!txtCodiceProdotto) & """"
Ho fatto una prova e mi funziona con questo codice:
=DLookUp("NomeProdotto";"qryCodiciProdotti";"CodiceProdotto = " & _
        Chr$(34) & [Forms]![frmSchedeScadute]![txtCodice prodotto] & Chr$(34))
(ho solo sostituito i Chr$(34) ai doppi apici per evitare confusione, e ho
messo [Forms] al posto di Maschere, che a quanto dice Roberto č un bug...)
Ciao. Claudio.

 Ciao. Fabrizio
Access soffre purtroppo di una doppià identità. La finestra del codice e
quella delle query e origini dei controlli, secondo la M$ per la versione
italiana è più intuitivo serapare i parametri di una funzione con il ";".
Misteri della programmazione.
Il massimo comunque lo si è raggiunto con Excel in cui nella versione 5
aveva tradotto anche il VBA if diventava se ecc.
Antonio.



Il problema è questo : viste le soluzioni di Roberto e Claudio ,
vorrei provarle , ma Access continua imperterrito a cambiare Forms con
Maschere , come si fa a porvi rimedio?
Ciao. Fabrizio

 Maschere , come si fa a porvi rimedio?
Fammi capire (purtroppo non possiedo A2002 per provare):
tu vai nelle proprietà del tuo controllo di testo, incolli dentro all'origine
controllo la DLookUp che ti postato e dai invio, A2002 ti cambia [Forms] in
[Maschere]???
E se visualizzi la maschera non ti funziona??
Ciao. Claudio.

 Antonio.
--


 Ciao. Fabrizio


 Maschere!frmSchedeScadute!txtCodiceProdotto)
Prova così:
DLookUp("NomeProdotto"; "qryCodiciProdotti"; "CodiceProdotto =
Maschere!frmSchedeScadute!txtCodiceProdotto")


Maschere!frmSchedeScadute!txtCodiceProdotto")
Funziona , grazie mille.
Ciao. Fabrizio

> Ciao. Fabrizio
Calma calma , niente panico : anche col copia/incolla continua  a fare
così ( e anche scrivendo colla mia manina santa ), mio dio sto' Access
sembra posseduto.  :-))
... un attimo che mi calmo ....
Ho provato quello che mi ha suggerito Desio e va tutto a meraviglia ,
perchè ? oltretutto sembra proprio che "maschere" sia accettato ( per
cui non è un bug , ma una caratteristica (delirante) di Access in
italiano ) , 
Nell'espressione , che mi avete suggerito, mi restituiva in maschera
'#nome?' , tanto che avevo pensato a un certo punto che i riferimenti
non fossero giusti , ma evidentemente  ho dimenticato di dire qlc per
farmi aiutare meglio : cosa?
Oh perbacco , ho risolto il problema e invece di andarmene contento
sono qui che pretendo risposte : che ci volete fare , mi dovete
prendere così :-)
Vi ringrazio per l'aiuto e la pazienza , ma vi avverto che non è
finita qui!  :-) ( stavolta non scherzo , sto' DlookUp ahimè ritorna
con altre maschere , pregate con me per la vostra salvezza :-)  )
Ciao. Fabrizio

"Fabrizio" <fabrizio...@SPAMtiscalinet.it> ha scritto nel messaggio
news:h043quk4l0fql2pmb...@4ax.com...

Funziona???? Voglio sperare che funzioni solo con A2002 (ma funziona
veramente??), perché altrimenti devo rivedere tutto quello che ho capito sulla
DLookUp.
Io ho sempre capito che il criterio di una DLookUp dovesse essere paragonabile
a una WHERE SQL, la quale deve essere messa sotto forma di stringa nel terzo
parametro (il criterio). Se io ho un campo numerico chiamato [CampoNumerico], e
voglio fare una ricerca per quando il campo diventa uguale per esempio a 2,
dovrò scrivere il terzo parametro con "[CampoNumerico]=2", mentre se il campo è
di tipo stringa ([CampoStringa]) e voglio cercare per "Claudio" scriverò
"[CampoStringa]='Claudio'" (devo aggiungere gli apici.
Se il valore da cercare è contenuto in una variabile (per esempio
VariabileNumerica per 2 e VariabileStringa per "Claudio"), il terzo operando
diventerà rispettivamente "[CampoNumerico] =" & VariabileNumerica per il primo
caso e "[CampoStringa] = '" & VariabileStringa & "'" per il secondo.
Se adesso A2002 mi entri nel merito della stringa specificata come criterio e
mi sostituisca automaticamente le variabili, questa sarebbe una novità della
quale non ero a conoscenza.
Tra l'altro, solo la soluzione che ho dato io dovrebbe funzionare, poiché nel
tuo primo post avevi scritto che il tuo CodiceProdotto è un campo di tipo
testo, e quindi richiede gli apici. Le soluzioni che non fanno uso di apici non
dovrebbero funzionare!!
Perciò ripeto: funziona veramente così???
Ciao. Claudio.

 prendere cosě :-)
Anche a me piacerebbe capire!
E la soluzione di Desio non mi funziona proprio (nemmeno con Forms al posto di
Maschere)!! Correttamente (almeno per come avevo capito io la DLookUp) non mi
restituisce nulla!
Ciao. Claudio.


Se te lo dico non ti arrabbi vero ? .... si funziona , ho controllato
i codici corrispondono tutti , cmq se dovessi riscontrare qlc problema
lo dirň subito . 
Ciao. Fabrizio


Ciao a te.
Ciao. Fabrizio

 Ciao. Fabrizio
--


"Claudio" <cld@NOSPAM&COsupereva.it> ha scritto nel messaggio
news:%6ho9.19215$cS4.7...@news2.tin.it...

Caro Claudio,
anche io sono rimasto perplesso quando Fabrizio ha detto che gli funzionava
la sintassi suggerita da desio.
Anche io ho cominciato a dubitare di aver capito come funzioni la funzione
DLookup.
Eppure resta un fatto, come ho detto rispondendo a Fabrizio: con Access 97
la sintassi di desio non mi ha funzionato, ma sostituendo la parola Maschera
con la parola Forms mi ha funzionato alla grande. Sono rimasto incredulo
quando poi ho verificato che funziona sia se il campo CodiceArticolo è un
campo di tipo numerico che se è di tipo Testo: me lo avessoro raccontato
prima che io provassi avrei detto che era impossibile che la stessa sintassi
funzionasse a prescindere dal tipo del campo.
Ma a mio avviso qualcosa il generatore di espressioni c'entra: infatti se
sostituisco Forms!frmSchedeScadute!txtCodiceProdotto con
Me!txtCodiceProdotto non funziona più un accidente a prescindere che usi la
sintassi mia o quella di desio; e poi a Fabrizio, se non ho capito male,se
scrive Forms il generatore di espressioni glielo converte in Maschere.
Infine se sostituisco Forms!frmSchedeScadute!CodiceProdotto SOLAMENTE con
txtCodiceProdotto mi rifunziona tutto, sia che usi la mia sintassi che
quella di desio, e sia che il campo sia di tipo Numerico o di tipo Testo.
Non ti nascondo che sono un po' confuso, ma questi sono comunque i risultati
che ho ottenuto con Access 97; a questo punto non ho la più pallida idea di
quale siano i vari comportamenti con A2000 e con A2002.
Aveva ragione il vecchio che non voleva morire: ce ne è sempre una nuova da
imparare.


 imparare.
Il vecchio la sapeva lunga...
Ciao. Claudio.

 Ciao. Claudio.


 Aspetto che tu mi invii il tuo.
Te l'ho inviato.
Effettivamente il tuo funziona. Il mio come potrai vedere funziona, ma non con
la sintassi di desio. Avrai anche capito il perché...
sto per lasciare perdere Access! Ora me ne vado a dormire, e purtroppo il resto
della settimana dovrò lavorare e non potrò dedicarci del tempo.
Per ora grazie dello scambio di opinioni.
Ciao. Claudio.

cut
Mi metto da questa parte del ramo del 3d , ma rispondo a tutti e forse
a nessuno.
Ho provato questa mattina a mente lucida e con un po' più di calma
intorno a me .
Ho provato tutte le espressioni che mi avete suggerito ( tra l'altro
solo stamattina mi sono accorto di un errore ridicolo 'chr4(34)' ), è
funzionano tutte , evidentemente ieri sbagliavo qlc : spero mi
perdonerete .
Cmq a titolo di esempio tale espressione :
=DLookUp("NomeProdotto";"qryCodiciProdotti";"CodiceProdotto =""" &
[Maschere]![frmSchedeScadute]![txtCodiceProdotto] & """")
funziona così com'è : con 'Maschere' al posto di 'Forms' e vi posso
confermare una volta di più che se anche scrivo colla mia manina santa
Access 2002 traduce 'Forms'.
Riguardo poi l'espressione di Desio: IO l'ho provata senza crederci
molto ( anche se ho avuto il sospetto che lui già la usasse con
profitto ), anche perchè avevo appena letto quello che Roberto aveva
postato sugli apici , eppure ..... . Questo dimostra che prima ancora
di pensare bisogna provare , prima di dire: "arrenditi !" , sparare.
DOMANDA: ma l'espressione di Desio funzionerà in VBA o SQL ? o si
tratta di una sintassi che si può usare solo nel 'Generatore di
Espressioni'?
Sono stranito anche dalla differenza tra le varie versioni di Access:
differenze notevoli .
Ciao. Fabrizio

internazionali diverse dalle tue.
Pure : è incredibile uno può starci dei mesi a cercare l'errore e
magari è una boiata simile : alla fine ti si costringe a non usare che
VBA ed SQL
Ciao. Fabrizio

"Claudio" <cld@NOSPAM&COsupereva.it> ha scritto nel messaggio
news:8cno9.21307$cS4.8...@news2.tin.it...

Come ho scritto in un massaggio inviato al tuo indirizzo e-mail, ho scoperto
quando la sintassi di Desio funziona e quando invece non funziona: mi sembra
logico comunicare l'esito delle mie prove anche a coloro che hanno seguito
questo thread sul NG.
La sintassi di Desio funziona a condizione che il controllo
txtCodiceProdotto sia una casella di testo associata; se, come stavi
provando tu, txtCodiceProdotto è una casella NON associata, non funziona un
tubo. Questo per me è un motivo valido per non usare quel tipo di sintassi.


tubo. Questo per me è un motivo valido per non usare quel tipo di sintassi.
Perchè?
Ciao. Fabrizio

 Ciao. Fabrizio


 wrote:

Così come la metti ti do ragione : alla fine preferisco la sintassi
usata da te e Claudio per maggior coerenza e facilità di
trasportabilità ( malgrado quella traduzione maligna di Forms) , come
ho già espresso in un altro post.
Quando ti ho chiesto perchè mi ero dimenticato che i controlli
associati sono meno usati di quello che ne uso io : imparerò anche
questo.
Ciao. Fabrizio

 Questo per me è un motivo valido per non usare quel tipo di sintassi.
Però è così carina... Se fossi certo che il campo è associato...
Ma perché quando uno crede di aver capito una cosa saltano fuori le eccezioni??
Ciao. Claudio.

 VBA ed SQL
Beh, attenzione. Sono convinto che se io metto un origine controllo utilizzando
il *MIO* separatore di elenco, e trasporto il DB su un altro PC con il *SUO*
separatore di elenco, tutto funzioni... cioè mi cambi il separatore di elenco
coerentemente con le impostazioni del sistema in uso... o no?
Mi sembra che tempo fa avessi fatto delle prove in tal senso... o devo forse
rifarle?
Ciao. Claudio.


[CUT]
Che figura!! :-(
Mi sono messo sotto il mouse per la vergogna. :o)


On Tue, 08 Oct 2002 18:51:14 GMT, "Claudio" <cld@NOSPAM&COsupereva.it>
wrote:

Proverò a vedere , anche perchè il mio DB devo per forza trasportarlo
in un altro computer e so di certo che su questo molte impostazioni
sono state cambiate ( punto a posto della virgola , per esempio, come
separatore decimale ). 
Che bello imparare cose nuove ogni giorno ( ironia ).
Ciao. Fabrizio

Mi sono messo sotto il mouse per la vergogna. :o)
Vi.... vi lasciamo da soli ? :-))) 
Mi commuove sempre "lammore" :-)))
Ciao. Fabrizio

"Fabrizio" <fabrizio...@SPAMtiscalinet.it> ha scritto nel messaggio
news:uin7quk0jh5ih9t53...@4ax.com...

scusate se non ho partecipato al seguito della disc ma avevo un po' da fare
cmq anch se nella mia ignoranza avevo dato una indicazione così così
sono conento che sia nato un grande amore
ciao ciao