DLookup: Utilizzo non valido di Null

di il
2 risposte

DLookup: Utilizzo non valido di Null

Salve Forum
Ho una tabella con tutti gli Articoli acquistati nell'anno.
Ovviamente lo stesso articolo può essere stato acquistato più volte.
Ho l'esigenza di catturare, per un determinato articolo, sia l'ultima data di acquisto che il relativo prezzo.
Per varie ragioni ho trovato molto comodo utilizzare il DLookup ed il DMax con la routine che allego.
Sub myLP()
' Restituisce l'ultimo prezzo di e l'ultima data di acquisto dell'Articolo
Dim LastPrice As Currency
Dim LastDate As Date
Dim EAN As String

EAN = "8033830085710" 'codice di 13 cifre formattato come testo

LastDate = DMax("Data_acquisto", "[tbl_LastPrice]", "Barcode = '" & EAN & "'")

LastPrice = DLookup("[Prezzo_Acquisto]", "[tbl_LastPrice]", "Barcode = '" & EAN & "' AND [Data_Acquisto] = #" & LastDate & "#")

MsgBox "L'Articolo è stato acquistato l'ultima volta il " & LastDate & " al prezzo " & LastPrice

End Sub
Di fatto LastDate viene correttamente valorizzata ma LastPrice mi restituisce il messaggio "Utilizzo non valido di Null"
C'è qualcosa di errato nella sintassi del LastPrice nella seconda parte del criterio di ricerca
Potreste dirmi dove sbaglio?
grazie mille!!

2 Risposte

  • Re: DLookup: Utilizzo non valido di Null

    Ma non facevi prima ad aprire un Recordset su SQL completa...?
    A parte questo... hai dichiarato la variabile come currency e non supporta nulla significa che non ha trovato il dato... e questo perché devi invertire mese/giorno nella data oltre ai delimitatori #
    Usa Format (tua data, "mm/dd/yyyy")
  • Re: DLookup: Utilizzo non valido di Null

    @Alex.
    Perfetto, grazie mille. Funziona perfettamente!!!
    Le avevo provate tutte. Anche il Format ma in verità invertivo il formato "dd/mm/yyyy" ed ovviamente non trovava la corrispondenza.
    Mi dicevi che avrei fatto prima ad aprire un Recordset su SQL...
    Giusto. Potresti indicarmi l'istruzione SQL che dovrei passare?
Devi accedere o registrarti per scrivere nel forum
2 risposte