Function fageYMD will return DateDiff expressed as years, months, days. Copy/paste to a standard module, then call it as shown.
Bob
Code:
Function fAgeYMD(StartDate As Date, EndDate As Date) As String
'Purpose: Returns the difference between StartDate and EndDate in full years, months and days
'Coded by: raskew
'To call:
' ? fAgeYMD(#7/6/54#, #10/3/84#)
'Returns:
' 30 years 2 months 28 days
Dim inthold As Integer
Dim dayHold As Integer
inthold = Int(DateDiff("m", StartDate, EndDate)) + _
(EndDate < DateSerial(year(EndDate), month(EndDate), Day(StartDate)))
If Day(EndDate) < Day(StartDate) Then
dayHold = DateDiff("d", StartDate, DateSerial(year(StartDate), month(StartDate) + 1, 0)) & Day(EndDate)
Else
dayHold = Day(EndDate) - Day(StartDate)
End If
fAgeYMD = Int(inthold / 12) & " year" & IIf(Int(inthold / 12) <> 1, "s ", " ") _
& inthold Mod 12 & " month" & IIf(inthold Mod 12 <> 1, "s ", " ") _
& LTrim(str(dayHold)) & " day" & IIf(dayHold <> 1, "s", "")
End Function
Bob