Mwa Hahahaa Success At Last.. Almost
Sep 9, 2004These are the two functions I am using to calculate Years and Months that have passed since a specific date. It works. Its amazing.
Its a pain.
If the field that passes the value is empty, I get #Error in the field that calls these functions. Ive tried error correcting, but I still have the #Error showing.
Any help would be much appreciated.
'************************************************* ************
' FUNCTION NAME: Age()
'
' PURPOSE:
' Calculates age in years from a specified date to today's date.
'
' INPUT PARAMETERS:
' StartDate: The beginning date (for example, a birth date).
'
' RETURN
' Age in years.
'
'************************************************* ************
Function Age(varBirthDate As Variant) As Integer
Dim varAge As Variant
If IsNull(varBirthDate) Then Age = 0: Exit Function
varAge = DateDiff("yyyy", varBirthDate, Now)
If Date < DateSerial(Year(Now), Month(varBirthDate), _
Day(varBirthDate)) Then
varAge = varAge - 1
End If
Age = CInt(varAge)
End Function
'************************************************* ************
' FUNCTION NAME: AgeMonths()
'
' PURPOSE:
' Compliments the Age() function by calculating the number of months
' that have expired since the last month supplied by the specified date.
' If the specified date is a birthday, the function returns the number of
' months since the last birthday.
'
' INPUT PARAMETERS:
' StartDate: The beginning date (for example, a birthday).
'
' RETURN
' Months since the last birthday.
'************************************************* ************
Function AgeMonths(ByVal startDate As String) As Integer
Dim tAge As Integer
If IsNull(startDate) Then AgeMonths() = 0: Exit Function
tAge = (DateDiff("m", startDate, Now))
If (DatePart("d", startDate) > DatePart("d", Now)) Then
tAge = tAge - 1
End If
If tAge < 0 Then
tAge = tAge + 1
End If
AgeMonths = CInt(tAge Mod 12)
End Function