Dlookup e clausola Where...RISOLTO

di il
3 risposte

Dlookup e clausola Where...RISOLTO

Ciao a tutti,
ho la funzione Dlookup che mi sta dando qualche grattacapo.
IN particolare è la clausola "Criteria" che non riesco a costruire.
In sostanza, su una maschera ho due campi A e B entrambi di tipo testo il cui contenuto deve fare parte della cluasola "Criteria" più ampia di una funzione Dlookup che mi restituirà il valore di "espressione" contenuta nel "Dominio".

Se provo questa semplice funziona:

Valore_restituito = DLookup(Chr(91) & Testo3 & Chr(93), "Tabella_origine_dati", "[ELEMENTO] ='Pippo'")
(il testo3 è una variabile che mi filtra un mese)

ma se provo ad aggiungere le due clausole "AND" che mi filtrano i dati in base anche al contenuto dei campi A e B non riesco a venirne a capo.
In sostanza non riesco ad aggiungere la parte di " and "[campo_tabella_a]= " & chr(34) & [campoA]& chr(34)"
E' probabilmente una questione di sintassi e di sequenza di apici e virgolette ma proprio non riesco.
Qualcuno sa darmi una mano, ammesso che mi sia spiegato chiaramente?
grazie
ciao
fausto

3 Risposte

  • Re: Dlookup e clausola Where...RISOLTO

    Ciao.
    nelle maschere ci sono i controlli i campi sono propri delle tabelle e della queries.
    Guarda bene nella guida come impostare la funzione sui domini dlookup.
    Dlookup("campo", "tabella","criteri..="
    non serve ricorrere alla funzione chr...e le parentesi quadrate servono solo se ci sono spazi nel nome dei campi delle tabelle, è meglio non metterceli quando si creano le tabelle.
    Adatta questo al tuo caso specifico.
    
    
    Me.tuaTextBox= DLookup("tuoCAMPOMESE", "TuaTabella", "[primoCriterio]='" & Me.tuoControlloForm & "' and [SecondoCriterio]='" & Me.TuoControllo2Form & "'")
    
    
    facci sapere, un saluto.
  • Re: Dlookup e clausola Where...RISOLTO

    Grzie mille Goku, mi hai dato lo spunto per trovare l'errore. Ho semplificato ed ora la funzione fa il suo mestiere.
    alla fine è scritta così:
    valore_mese = DLookup(Chr(91) & Testo3 & Chr(93), "AVANZAMENTI", "[ELEMENTO] = 'HOUSING' And [RIF_BUDGET]=" & Chr(34) & [budget] & Chr(34))
    .
    I CHR(34) però credo di doverli mettere visto che si tratta di un testo... o sbaglio?
    Beh, ora funziona l'importante è questo, mi da un problema di "Routine troppo grande" ma proverò a semplificare qualche passaggio, sono 12 IF che si portano appresso tanti (forse troppi) Dlookup, dovrò fare qualcosa con le query...
    grazie mille
    buon we
    fausto
  • Re: Dlookup e clausola Where...RISOLTO

    Ciao.
    invece di richiamare le parentesi quadre invocando la funziona nativa chr e lo stesso per gli apici, scrivi semplicemente la parentesi dove ci vanno e l'apice per delimitare il testo come mostrato nella risposta precedentemente inviata.
    beh, 12 if non sono certo un problema, forse potrebbe essere semplificato, ma ok, non entriamo in merito.
    Routine troppo grande dove lo segnala? mette un punto di interruzione e debugga per bene.
    Le funzioni di aggregazione a me non piacciono troppo per problemi di prestazioni ed altro...
    Un saluto.
Devi accedere o registrarti per scrivere nel forum
3 risposte