funzione DLookup con date e campo nullo

Anonimo
2019-04-13T15:45:55+00:00

Ciao a tutti

ogni qualvolta ho un problema mi rivolgo a voi per chiedere spiegazioni poiché non ho trovato la soluzione.

Vi illustro il problema:

con la seguente funzione:

DLookup("DATA_ULTIMO_MAND", "QRY_SOMMA_MANDATI", "ID_PROG=" & Me!ID_PROG)

estraggo dalla query "QRY_SOMMA_MANDATI" ultima data registrata riferita ai mandati di pagamento per il progetto in esame.

Il valore "DATA_ULTIMO_MAND" è stato ottenuto con la funzione Max ([D_DATA_MAND]) nella query.

Può succedere che, per un progetto, non vi siano mandati e quindi neanche le rispettive date e, di conseguenza, neanche il valore max della della data, restituendo nella query un valore nullo.

Il codice DLookup funziona correttamente se vi è presente almeno un mandato con la rispettiva data ma nel caso di valore null, mi viene restituito un errore.

Come posso ovviare a questo problema per i progetti che non hanno mandati???

Grazie per l'aiuto.

Luca

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2019-04-16T07:28:16+00:00

ciao Luca,

prova a vedere se ti basta questo : 

Dim AGG_MAND As Date

AGG_MAND = NzDLookup("DATA_ULTIMO_MAND", "QRY_SOMMA_MANDATI", "ID_PROG=" & Me!ID_PROG), 0)

restituisci la prima data/ora disponibile in Access 30/12/1899 che ovviamente non ha senso gestire una data cosi', ma ti da il segnale che la data non e' disponibile, visualizzando 0.

ciao, Sandro.

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2019-04-15T07:08:56+00:00

    Ciao Luca,

    mostraci come stai ottenendo l'errore che mostri, non riuscirei a riprodurre l'errore...

    Grazie, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-04-15T06:52:27+00:00

    ciao Luca,

    valore null è contenuto nel controllo Me!ID_PROG e da qui l'errore, che numero di errore?

    prova if len(Me!ID_PROG & vbnullstring)>0 then dlookup…..ect…..

    ciao, Sandro.

    Ciao Sandro,

    ho provato la tua soluzione, ma come immaginavo il problema non è nell'ID. Infatti al record 7 mi restituisce il seguente errore:

    ciao

    Luca

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-04-13T17:08:45+00:00

    ciao Luca,

    valore null è contenuto nel controllo Me!ID_PROG e da qui l'errore, che numero di errore?

    prova if len(Me!ID_PROG & vbnullstring)>0 then dlookup…..ect…..

    ciao, Sandro.

    Ciao Sandro

    ancora non ho provato la tua soluzione,

    però io non credo che sia Me!ID_PROG il valore nullo

    piuttosto il valore DATA_ULTIMO_MAND come si evince dalla query di cui allego un immagine

    come potrai notare nell'eseguire la query c'è il ID_PROG=7 con valore null nel campo  DATA_ULTIMO_MAND poiché non sono presenti mandati

    Cmq adesso provo la tua soluzione !!

    Ciao

    Luca

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2019-04-13T16:46:35+00:00

    ciao Luca,

    valore null è contenuto nel controllo Me!ID_PROG e da qui l'errore, che numero di errore?

    prova if len(Me!ID_PROG & vbnullstring)>0 then dlookup…..ect…..

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento