Public Function basYrsMnthsDays(DOB As Date) As String
Dim Yrs As Integer
Dim Mnths As Integer
Dim Days As Integer
Dim BdFlg As Boolean
Yrs = DateDiff("yyyy", DOB, Now)
Mnths = DateDiff("m", DOB, Now) Mod 12
Select Case Month(DOB)
Case Is < Month(Now) 'Not yet to this years B. Day
Case Is = Month(Now) 'Correct Month. check day
Select Case Day(DOB)
Case Is > Day(Now) 'Not there - YET
Yrs = Yrs - 1
Mnths = 11
Case Is = Day(Now) 'Special! this IS the BD
basYrsMnthsDays = CStr(Yrs) & " Exactly!"
BdFlg = True
Case Is < Day(Now) 'Just Past it! All Default Calcs are O.K.
End Select
Case Is > Month(Now)
Yrs = Yrs - 1
End Select
If (Not BdFlg) Then
Days = Day(DateSerial(Year(DOB), Month(DOB) + 1, 0) - Day(DOB))
Days = Days + Day(Now)
basYrsMnthsDays = CStr(Yrs) & " Years, " & CStr(Mnths) & " Months, and " & Days & " Days"
End If
End Function