uitlezen datum van ID

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.722
Hallo,
Kwam vandaag iets bizar tegen:
Bij een nieuwe klant lees ik de ID uit om de gegevens in de fiche te zetten
Dat lukt perfect, maar vandaag had ik iemand die geboren is in maart

in mijn code schrijf ik:

Me.klant_ID = DLookup("[ID]", "Fiche", "[naam]=""" & Me.klant_NAAM & """ AND [geboorte]=#" & Me.klant_GEBOORTE & "#")

en bij "geboorte" ging het verkeerd

Als ik de waarde van geboorte vraag kreeg ik 20 MAAR 2000
MAAR voor de maand MAART vind ik nu wel een rare manier van weergave, zou de oorzaak hierbij kunnen liggen

Ik gebruik het uitlezen wel al een tijdje en heb nog geen problemen ondervonden en kan me niet voorstellen dat ik nog niemand uit de maand maart gehad heb
in elk geval... snap er niets van

Jullie mening
 
Nog even afgezien van het feit dat je op een onhandige manier filtert (ik kan ook niet geloven dat het niet eerder fout is gegaan) zou het uiteraard wél moeten werken. Tenzij je geboorteveld een Tekstveld is, en de geboortedatum verkeerd is ingevuld en de 't' niet is ingevuld. Ik zou het betreffende record even moeten zien, om er meer van te kunnen zeggen. Ik neem aan dat je al wel gekeken hebt hoe de datum in de tabel staat?
 
Geboorte is idd een Datum/tijd veld, dus da's OK
wat bedoel je met:

de 't' niet is ingevuld.

en met:

onhandige manier filtert

kan het dan idd niet met de rare manier van get opslaan van de maand maart op de identiteitskaart te maken hebben?
 
wat gebeurt er als je de geboortedatum op het formulier naar een datum omzet door bv. cdate(Me.klant_GEBOORTE) te gebruiken?
 
Probeer dit eens: (meest veilige manier van datums filteren wat mij betreft)
Code:
Me.klant_ID = DLookup("[ID]", "Fiche", "[naam]=""" & Me.klant_NAAM & """ AND CDbl([geboorte])=" & CDbl(Me.klant_GEBOORTE))
 
wat is dan het verschil tussen:

cdate(Me.klant_GEBOORTE)

en

CDbl(Me.klant_GEBOORTE)
 
Wat dacht je van: verschillende functies? :). CDate doet hier niet zoveel, want een datum converteren (CDate) converteren naar een datum gaat je niet echt helpen. Zodra je met VBA werkt, moet je rekening houden met Amerikaanse datums. De datum 21-7-2020 gaat dan doorgaans wel goed, maar bij 7-5-2020 ga je problemen krijgen. Is dat 7 mei, of 5 juli? Wat niet verandert, is de getalswaarde van die datum: zowel in Amerika als Europa is de datum 7 mei 2020 het getal 43958. Daarom converteer ik in functies de datum altijd naar een getal. En een getal kun je met CDate datn weer converteren naar een datum.
 
De functie CDate kan je gebruiken om een test te doen: als je gegevens uit een formulierveld neemt worden ze soms als string doorgegeven en niet als datum, door CDate te gebruiken kan je dit testen en daarop je oplossing verder bouwen. In mijn opleiding heb ik geleerd: eerst analyseren waar de fout zit, dan is het niet zo moeilijk om een oplossing te vinden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan