Toon posts:

[Access] Data met elkaar vergelijken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een simpele database in Access gemaakt hier zitten 2 datumvelden in.
Geboortedatum en inschrijfdatum.
Nu wil ik dmv een simpele query de personen eruit filteren tot 12 jaar, tussen 12 en 18 en gewoon alle personen onder de 18 jaar.

Heb het met datediff geprobeerd maar dat resultaat is niet altijd correct.
bijvoorbeeld persoon is ingeschreven op 2-2-2003 en gebdatum is 1-1-1983 dan geeft datediff toch 18 jaar aan terwijl op datuminschrijven geen 18 was.

Met dagen is ook behoorlijk lastig omdat een jaar niet altijd 365 dagen heeft.

Iemand een idee?

[edit] Typo, sorry 265 is wel weinig ja

[ Voor 4% gewijzigd door Verwijderd op 24-03-2004 15:20 ]


  • Sneak[3G]
  • Registratie: September 2001
  • Laatst online: 06-11-2023
sterker nog : een jaar heeft nooit 265 dagen. Zit daar de fout?

Aldi PC PIII 1 GHZ, GF2 GTS, 396 MB SDRAM/ALDI PC PIV 1,8, GF3 TI200, 396 MB SDRAM


Verwijderd

Tot 12 jaar:
-----------------------------------------------------------------------
SELECT *
FROM Tabel
WHERE (inschrijfdatum-Geboortedatum)<01-01-0012;
-----------------------------------------------------------------------

Van 12 tot 18 jaar:
-----------------------------------------------------------------------
SELECT *
FROM Tabel
WHERE (inschrijfdatum-Geboortedatum)>01-01-0012
AND (inschrijfdatum-Geboortedatum)<01-01-0018;
-----------------------------------------------------------------------

Onder 18 jaar:
-----------------------------------------------------------------------
SELECT *
FROM Tabel
WHERE (inschrijfdatum-Geboortedatum)<01-01-0018;
-----------------------------------------------------------------------

Hehe....ik weet nog of het met datums ook zo werkt. Maar je kan het proberen.

  • Boss
  • Registratie: September 1999
  • Laatst online: 13:37

Boss

+1 Overgewaardeerd

Het lastige met datediff is dat het verkeerd gaat op de grens van de huidige datum. Op die manier is het geen handige functie om een leeftijd meet te bepalen.
Als je deze functie gebruikt, werkt het wel goed:
code:
1
DateDiff("yyyy", [Bdate], Now()) + Int(Format(now(), "mmdd") < Format([Bdate], "mmdd"))

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.