DLookup valore nullo

di il
1 risposte

DLookup valore nullo

Salve, ho un problema con la funzione DLookup, fino a ieri faceva il suo dovere, credo di aver cambiato qualche impostazione predefinita di Access e ora mi ritorna un valore nullo.
Vi spiego meglio, Access si appoggia su un DB postgres e l'id dell'ordine ( ciò che vorrei ottenere con DLookup ) lo lascio inserire in automatico essendo un Serial ( su postgres ).
id_cameriere_loggato è quello giusto, come la data invio che è presa direttamente dalla maschera.
La sintassi mi sembra corretta, cosa non quadra ?
Private Sub ConfermaOrdine_Click()
    scelta = 0
    If Me.Dirty Then Me.Dirty = False 'salvo il record se "sporco"
    id_ordine_corrente = DLookup("[id]", "progetto_ordine", "[id_cameriere] = " & id_cameriere_loggato & " AND [data_invio] = #" & Me.data_invio & "#")
    DoCmd.OpenForm "AggiungiPietanza", A   'Apro il form per aggiungere le pietanze
    DoCmd.Close acForm, "Inserisci_Ordine"
End Sub

Ordine.png
Ordine.png

P.S. Ho anche controllato se effettivamente il record viene inserito quando faccio Me.Dirty e questo avviene correttamente, quindi dovrebbe trovare un record che soddisfi i criteri scritti nel DLookup.


EDIT : Sono riuscito a risolvere cambiando codice ma la DLookup ugualemente non funzionava, misteri...
Scusate il post inutile

1 Risposte

  • Re: DLookup valore nullo

    Secondo me non c'è nessun mistero... il problema è il CRITERIO che scrivi che è errato:
    
    [data_invio] = #" & Me.data_invio & "#"
    Questo non funzionerà mai... JET salva in accezione anglosassone, ma quando lo recupera e lo visualizza applica i Regional Settings, quindi se tu lo ributti dentro come criterio, il che significa convertito in STRINGA, hai la NON CORRISPONDENZA tra gg/mm.

    Quindi devi ingannarlo, ci sono 2 sistemi, ma non so se quando SALVI salvi Now() o salvi DATE()...
    Se usi anche hh:mm:ss devi scrivere così:
    
    "....[data_invio]=" & Str(CDbl(TuoCampoData)) & ")"...
Devi accedere o registrarti per scrivere nel forum
1 risposte