Berekening met geboortedatum

Status
Niet open voor verdere reacties.

GoReTeX

Gebruiker
Lid geworden
17 okt 2007
Berichten
102
Ik heb een probleem met een query.
In feite een simpel karweitje wanneer de database opnieuw gemaakt zou moeten worden.

Ik wil een berekening uitvoeren aan de hand van een geboortedatum. Er is een bepaalde datum vastgesteld. dit is vanaf 1988 of hoger.... dus alle mensen die jonger zijn dan 20 jaar moeten naar boven komen.

Nu het probleem.
De database loopt al een tijdje en er staan meer dan 2000 klanten in, er is in de tabel 'klanten' nooit een invoermasker aangegeven bij het veld geboortedatum.

Dus sommige geb.datums staan op deze manier geschreven: "1-1-78'' en sommige op deze manier "01-5-1983" en alle manieren die je daar tussen zou kunnen verzinnen.

Probleem nummer 1:
Hoe krijg ik alle 'verkeerd' ingevulde geb. datums in de volgende notatie: "99/99/9999" ?


Probleem nummer 2:
Hoe krijg ik alle mensen te zien die na 1988 geboren zijn?
Ik loop nu tegen het feit aan dat acces gaat kijken naar de dag- en maand-getallen, en hij zou eigenlijk alleen naar het jaar moeten kijken.

Onder geboortedatum had ik ingevuld: >01/01/1988
Ik weet dat ik zo ook iedereen uit 1988 te zien krijg, maar het was nog een test.... ik krijg nu dus alle jaartallen te zien.


Alvast bedankt voor de hulp en het meedenken :thumb:
 
Datumveld

Begrijp ik het dan goed dat je een datum opslaat in een tekstveld? Dat maakt het wat ingewikkeld. Je zou het kunnen proberen met een conversie naar datum en dat resultaat formatteren:
Code:
Format(CvDate([datum]);"dd/mm/yyyy")

Voor de selectie op geboortejaar kun je bijvoorbeeld een kolom maken met Year([datum]) (of Year(CvDate([datum]) als het een tekstveld is), en die filteren op >1998
 
Laatst bewerkt:
Begrijp ik het dan goed dat je een datum opslaat in een tekstveld? Dat maakt het wat ingewikkeld. Je zou het kunnen proberen met een conversie naar datum en dat resultaat formatteren:
Code:
Format(CvDate([datum]);"dd/mm/yyyy")

Voor de selectie op geboortejaar kun je bijvoorbeeld een kolom maken met Year([datum]) (of Year(CvDate([datum]) als het een tekstveld is), en die filteren op >1998

OK, en dat formatteren, doe ik dat bij het criterium in de query of al bij het invoermasker in de tabel?
 
Query

Dat formatteren doe je in een query, in een berekende kolom. Dit doet verder niets met de waarde in je tabel, laat het alleen anders zien. Natuurlijk kun je de boel ook converteren naar een datum.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan