Как рассчитать возраст в годах и месяцах ACCESS с выводом в форму?
Здесь еще один. Все Очень просто. Я использую Age() и AgeMonths()
Функция для рассчета лет и месяцев в ACCESS
Рекомендую добавить функцию в отдельный модуль.
‘==========================================================
‘ General Declaration
‘==========================================================
Option Explicit
‘*************************************************************
‘ 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 Double
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
В созданное поле вставляем вызов функции из модуля:
=Age([РОДИЛСЯ]) & ” и ” & AgeMonths([РОДИЛСЯ]) & ” мес.”
Соответственно “РОДИЛСЯ” в данном случае это дата рождения.
В итоге выдается следующее: