Thank you! FYI, here's my now-working functions:<br><br>Function AgeInMonths(Birthdate As Date, Optional EndDate As Variant) As Integer<br>Dim NewEndDate As Date<br><br>If IsMissing(EndDate) Then<br> NewEndDate = Date<br>Else<br> NewEndDate = CDate(EndDate)<br>End If<br>AgeInMonths = DateDiff("m", Birthdate, NewEndDate) + _<br>(NewEndDate < DateSerial(Year(NewEndDate), Month(Birthdate), Day(Birthdate)))<br>End Function<br><br>Function AgeinYears(Birthdate As Date, Optional EndDate As Variant) As Integer<br>Dim NewEndDate As Date<br><br>If IsMissing(EndDate) Then<br> NewEndDate = Date<br>Else<br> NewEndDate = CDate(EndDate)<br>End If<br>AgeinYears = DateDiff("yyyy", Birthdate, NewEndDate) + _<br>(NewEndDate < DateSerial(Year(NewEndDate), Month(Birthdate), Day(Birthdate)))<br>End Function<br><br>Public Function PatientAge(Birthdate As Date, Optional EndDate As Variant) As String<br>' calc patient age in months, if > 24 months old, recalc in years<br>Dim NewEndDate As Date<br><br>If AgeInMonths(Birthdate) > 23 Then<br> PatientAge = AgeinYears(Birthdate) & " years"<br>Else<br> PatientAge = AgeInMonths(Birthdate) & " months"<br>End If<br><br>End Function