The problem with both of these is in the way the DateDiff function works.
If the person's birthday has not yet occurred this year, using either of the
options above will lead to an incorrect result. Depending on if you're in
the same month as the birthdate, one or both of the above will give an age
which makes the person seem a year older then they actually are.
Here's a function which compensates for this common mistake. It checks
if the person's birthday has already passed this year and adjusts the resulting age
Function Age(ByVal dtBirthDate As Date) As Integer
Dim intAge As Integer
intAge = DateDiff(DateInterval.Year, dtBirthDate, Today())
If Today() < DateSerial(Year(Today()), Month(dtBirthDate), Day(dtBirthDate)) Then
intAge = intAge - 1
The function is not difficult, but it can be a little confusing to write yourself.
Luckily you don't have to... just use ours.