Newsgroup: it.comp.appl.access
Titolo: Dlookup e perdita della mia sanità mentale...  :-(

Cercando di seguire i vostri consigli ai miei precedenti thread, ho 
provato ad usare la funziona DLookup per riempire un controllo 
calcolato, ma ahime senza successo...
Viste le difficoltà incontrate, ho deciso di sperimentare la funzione su 
un semplicissimo database fatto apposta:
Tabella "Persone":
Nome (chiave primaria)
Sesso
Altezza
Tabella "Magliette"
ID (chiave primaria)
Nome (chiave esterna)
Colore
Taglia
Ho fatto una maschera basata sulla tabella "maglette" alla quale ho 
aggiunto un controllo la cui origine dati è:
= Dlookup("[Altezza]";"Persone";"[Nome] = " & Forms![Maglette]![Nome])
Ma il risultato è "errore". Notate che:
1) il generatore di espressioni accetta solo il ";" a separare gli 
argomenti invece che "," come indicato nella documantazione
2) ho provato a sostiture l'ultimo argomento con "[Nome] = Giovanna", 
che non è "dinamico, ma almeno dovrebbe restituirmi qualcosa ("Giovanna" 
esiste nella tabella "Persone"): stesso risultato... errore!
3) Ho provato anche a sotiturie i doppi apici con apici o con niente, ma 
senza successo.
Ho provato allora a togliere l'origine del controllo, aggiungere un 
pulsante e scrivere queste tre righe di codice:
Private Sub Comando10_Click()
    Dim altezza As Variant
    altezza = DLookup("[Altezza]", "Persone", "[Nome] = Giovanna")
    Me!Testo8 = altezza
End Sub
Il risultato è che al momento dell'esecuzione ottengo il debugger si 
stoppa alla riga "altezza = Dlookup..." con un
Errore di run-time '2001'
Operazione precedente annullata
Ora, visto che il codice è, a parte i nomi dei campi, copiato pari pari 
dalla documentazione della funzione DLookup, non riesco proprio a 
capire...
Qualcuno può aiutarmi?
Grazie ancora a tutti
Giacomo

 ha
scritto nel messaggio news:39l1rpF...@individual.net...

L'errore è dato dall'errata formattazione della Stringa condizionale.
Quando vuoi costruire una Stringa indirizzata ad un acmpo di tipo Testo
occorre formattarla, per riprendere il tuo Esempio:
= Dlookup("[Altezza]";"Persone";"[Nome] = " & chr(34) &
Forms![Maglette]![Nome] & chr(34))
Stringhe:
    Occorre inserire i separatori di Stringa, quindi Doppi apici, l'apice
singolo
    se non si struttura un Replace potrebbe dare problemi.
    Il carattere chr(34)="
Numeri:
    Non serve nulla
Date:
    Occorre mettere #Data# oltre che passarla o in formato ISO
    oppure in formato mm/dd/yyyy non chè in un equivalente a precisione
doppia.
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

 ha 
scritto nel messaggio news:39l1rpF...@individual.net...


Mea culpa!!
Sono impazzito talemente tanto dietro a questo problema nel weekend, 
senza avere a disposizione una connessione internet, che appena ne ho 
avuta una sottomano ho scritto al NG senza prima fare la ricerchina 
d'obbligo su Google: ora l'ho fatta e ho trovato un sacco di 
informazioni che spero risolvano il mio problema...
Per ora quindi allarme rientrato!
Grazie e scusate ancora
Giacomo 

 ha
scritto nel messaggio news:39l1rpF...@individual.net...

Oltre a quello che ti hanno detto Alessandro BAraldi e ciroteo, vai sul Sito
Comune (link qui sotto) e nella Sezione General leggiti una di queste tre
FAQ a seconda della versione di Access che usi:
1) 6.150 Uso, esempi e localizzazione dei malfunzionamenti della funzione
DLookup in Access 97
2) 6.151 Uso, esempi e localizzazione dei malfunzionamenti della funzione
DLookup in Access 2000
3) 6.152 Uso, esempi e localizzazione dei malfunzionamenti della funzione
DLookup in Access 2002
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------