Dlookup in VBA

Status
Niet open voor verdere reacties.

LauravT

Gebruiker
Lid geworden
14 jun 2012
Berichten
156
Hallo,

Ik heb onderstaande code in VBA geplaatst om een waarde te kijken bij een bepaalde persoon en datum (adhv formulier), echter op de ene datum doet ie het wel goed en de andere datum geeft ie een verkeerde waarde terug of een foutmelding (Fout 94 tijdens uitvoering: Ongeldig gebruik van Null).

HTML:
WAARDE = DLookup("[FTE]", "[Data]", "[Naam]='" & [Forms]![Uren].[Form]![TXT_Naam] & "' AND [Datum]=#" & [Forms]![Uren].[Form]![TXT_Datum] & "#")

Debug.Print WAARDE

Enig idee waar ik hier de fout in ga?
 
Misschien door het Amerikaans denken van Access (mm/dd/jjjj) dat je het bij bepaalde data goed gaat zolang de dag onder de 12 blijft? Eens je een datum hebt met een dag groter of gelijk aan 13 loopt het mis?
Probeer eens het volgende in je procedure te declareren (niet kunnen testen maar wie weet lukt het bij jou dan wel)
Code:
Const conJetDate = "\#mm\/dd\/yyyy\#"
En het volgende in de procedure zelf dan iets in de zin van:
Code:
WAARDE = DLookup("[FTE]", "[Data]", "[Naam]='" & [Forms]![Uren].[Form]![TXT_Naam] & "' AND [Datum]=" & Format([Forms]![Uren].[Form]![TXT_Datum], conJetDate) & "
 
In mijn ogen is er maar één juiste oplossing (hoewel de Format van Albert ook werkt) en dat is de datum eerst omwerken naar een getal, en vervolgens in de functie dat getal converteren naar een datum. En dat gaat zo:
Code:
    WAARDE = DLookup("[FTE]", "[Data]", "[Naam]=""" & Me.TXT_Naam & """ AND [Datum]=CDate(" & CDbl(Me.TXT_Datum) & ")")
Dan hoef je verder ook geen ingewikkelde trucs uit te halen die je toch niet kan onthouden (mij lukt dat in ieder geval niet om die constante uit mijn hoofd neer te pennen). De reden heeft Johan ook al aangegeven: programmeren doe je (in elk pakket, is niet specifiek een Access probleem) vanuit de Amerikaanse notatie. Bij datums merk je dat dat prima werkt zolang de dag gelijk is aan de maand, maar bij andere datums heb je een probleem. Met deze code niet.
 
Super!
Dat omzetten via waarde was het, hartstikke bedankt!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan