Newsgroup: it.comp.appl.access
Titolo: Ancora DLookUp ma .... parametrizzato

Ciao , entro nel merito :
Dovrei parametrizzare gli argomenti della DlookUp
        Dim Tabella As String
        Dim CampoDiRicerca As String
        If qualchecosa then
                              Tabella="Tabella1":CampoDiRicerca="ID_Campo1"
                else         Tabella="Tabella2":Campodiricerca="ID_Campo2"
Me.CampoMask = DLookup("[Codice Modello]", "Tabella", "[Campodiricerca] = "
& Me.Id_CampodiMask)
Ho provato alcuni modi e probabilmente sbaglio nelle dichiarazioni ... o
forse nella sintassi ??
Rimango fiducioso come al solito ... tutti (e dico tutti) i consigli sono
andati a buon fine
Marcello

 wrote in message
8ruo0c$l59$1...@ftp-news.csita.unige.it...

Porca miseria ma qui non si tratta di Dlookup ma di concetto di variabile e
stringa.
Se alla variabile tabella dai il valore della stringa "Tabella1", poi non
devi usare la stringa "tabella" perchč per avere il valore della variabile
tabella devi scriverla cosě com'č.
Stessa cosa per campo di ricerca anche se non capisco perchč poi usi un
riferimento a Me.
Sintassi finale:
Dim Tabella As String
         Dim CampoDiRicerca As String
         If qualchecosa then
                               Tabella="Tabella1":CampoDiRicerca="ID_Campo1"
                 else         Tabella="Tabella2":Campodiricerca="ID_Campo2"
 Me.CampoMask = DLookup("[Codice Modello]", Tabella,
"[Campodiricerca] = " & CampoDiRicerca)
Ricorda perň che se CampoDiRicerca dovesse essere un valore non numerico
devi anche mettere gli apici cioč
"[Campodiricerca] = '" & CampoDiRicerca & "'")
Antonio

 Antonio
Hai RAGIONE ...  però, il tuo metodo per Tabella funziona ma , cambiando
tabella che contiene i dati cambia anche il nome del campo chiave nella
where , questa è la vera istruzione che uso per il form .A seconda del
TipoMat devo cambiare tabella
  If Me.TipoMat = "U" then
            Tabella = "Unità_Centrali"
            CampodiRicerca = "Id_Unità_Centrale"
     else:Tabella = "Periferiche"
            CampodiRicerca = "Id_Periferica"
 Me.Descr_Materiale = DLookup("[Codice Modello]", Tabella,
"[Id_Unità_Centrale] = " & Me.Id_Materiale)
 Nella Where di DlookUp al posto di [Id_Unità_Centrale] ci vorrei mettere
CampodiRicerca (che a seconda di TipoMat conterra ora Id_Unità_Centrale ,
ora ID_Periferica
Come al solito ... sei/siete insostituibili ... attendo
Marcello

 ora ID_Periferica
Ho capito però ora avevi le basi per risolvere. E' sempre la stessa cosa:
costruire una stringa criterio concatenando stringhe e variabili.
La stringa criterio sarà
"[" & CampodiRicerca & "] = " & Me.Id_Materiale
Comunque se il campo non contiene spazi puoi fare a meno delle quadre
Antonio





Tabella e CampoDiRicerca sono due variabili 


di tipo stringa, quindi gli devi "fare la fotografia"


nel campo Dominio e nel campo Criteri:


        Dim Tabella As 
String
        Dim CampoDiRicerca As 
String
        If qualchecosa 
then
                              



Tabella="Tabella1":CampoDiRicerca="ID_Campo1"
                
else         
Tabella="Tabella2":Campodiricerca="ID_Campo2"


' Istruzione sbagliata:


Me.CampoMask = DLookup("[Codice Modello]", "Tabella", "[Campodiricerca] = 
"
& Me.Id_CampodiMask)
' Istruzione da utilizzare se 
Me.Id_CampodiMask è


' un campo di tipo numerico:


Me.CampoMask = DLookup("[Codice Modello]", Tabella, CampodiRicerca 
& "= "
& Me.Id_CampodiMask)


' Istruzione da utilizzare se Me.Id_CampodiMask è

' un campo di tipo stringa:


 


Me.CampoMask = DLookup("[Codice Modello]", Tabella, CampodiRicerca 
& "= " & chr(34) &
& Me.Id_CampodiMask & 
chr(34))



& Me.Id_CampodiMask)
Tabella è una variabile (comunue sconsiglio questo nome "banale",
potrebbe essere una parola riservata, cioè usata internamente da
access), quindi dentro il dlookup lo devi scrivere senza virgolette.
se lo scrivi tra virgolette cerchi una tabella che si chiama
esattamente "tabella": non cerchi il contenuto della variabile
tabella, capisci?  stesso dicasi per campo di ricerca.
prova così:
Me.CampoMask = DLookup("[Codice Modello]", Tabella, "[" &
Campodiricerca & "] = " & Me.Id_CampodiMask)
altra questione: il campo il cui nome sta dentro la variabile
Campodiricerca, che tipo dati è?  una stringa?  allora il suo valore
va racchiuso tra apici.  una data?  allora va rachiuso tra #.
stringa:
..."[" & Campodiricerca & "] = '" & Me.Id_CampodiMask & "'")
data:
..."[" & Campodiricerca & "] = #" & Me.Id_CampodiMask & "#")
--
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport
----------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access