Berekenen leeftijd

Status
Niet open voor verdere reacties.

VB noob

Gebruiker
Lid geworden
11 feb 2009
Berichten
78
Moet toch niet zo moeilijk zijn dacht ik...Ik wil alleen het aantal jaren dat iemand oud is. Dat moet vervolgens in een (unbound) veld op een formulier komen te staan.

Maar ik kom er niet uit.

Heb op verschillende websites de volgende code gevonde:
Code:
=DateDiff("yyyy", ["Date Born"], Now())+ Int( Format(now(), "mmdd") < Format( ["Date Born"], "mmdd") )

Maar dat werkt dus niet...Ik krijg een melding dat de syntax van de expressie ongeldig is :confused:

Het enige wat ik eraan veranderd heb is "Date Born" omdat dat bij mij het veld is waar de geboortedatum (korte datumnotatie) in staat.


Met de volgende query lukt het wel om de leeftijd te bereken:
Code:
SELECT Dogs.DogID, 
Int(DateDiff("m",[Date Born],Date()))+(Date()<DateSerial(Year(Date()),Month(Date()),Day([Date Born]))) AS Months, 
Int([Months]/12) AS Years
FROM Dogs;

Maar access geeft aan dat deze query een ontoelaatbare subquery heeft om in een ubound tekstveld te gebruiken.

Iemand een idee?
 
Laatst bewerkt:
Van excel vba weet ik dat Format niet altijd werkt
wanneer je Strings.Format gebruikt werkt het dan wel.
Misschien is dat hier ook het geval (in het 1e voorbeeld)

mvg leo
 
Wanneer het aan de vermelding van strings lag had je de fout kan oblect niet vinden gehad.
Ik had dus kunne weten waar het aan lag.
Waar gaat de uitkomst eigenlijk in eht zal toch in een varibale oid moeten
dus b.v.
test=DateDiff("yyyy", ["Date Born"], Now())+ Int(Format(now(), "mmdd") < Format( ["Date Born"], "mmdd") )
 
De uitkomst komt in het veld 'Age' op het formulier 'Dogs' (heb het hier over Afrikaanse Wilde Honden).

Aan de hand van de berekende leeftijd moet de AgeClass bepaald worden:
0 = Pup
1 = Yearling
Rest = Adult

Zal met een Iif statement moeten gebeuren denk ik.

De code van Harry46 werkt perfect! Heb het even getest met gister, vandaag, morgen en data als 31 december vorig jaar maar de uitkomsten zijn altijd goed.

Thanks Harry!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan