Как рассчитать текущий возраст человека на основании его даты рождения в MS Access?

Я пытался =DateDiff("yyyy", [DOB], Date())

Но это только показывает, сколько им будет лет в этом календарном году, поэтому, если у них еще не было дня рождения, то это неточно. Как вы можете рассчитать их возраст на основе того, какой это календарный день?

1 ответ1

0

Есть функция, которую вы можете добавить в свой код, которая делает это легко для вас. Перейдите в Visual Basic, вставьте новый модуль, а затем вставьте следующий код:

Function Age(varDOB As Variant, Optional varAsOf As Variant) As Variant
    'Purpose:   Return the Age in years.
    'Arguments: varDOB = Date Of Birth
    '           varAsOf = the date to calculate the age at, or today if missing.
    'Return:    Whole number of years.
    Dim dtDOB As Date
    Dim dtAsOf As Date
    Dim dtBDay As Date  'Birthday in the year of calculation.

    Age = Null          'Initialize to Null

    'Validate parameters
    If IsDate(varDOB) Then
        dtDOB = varDOB

        If Not IsDate(varAsOf) Then  'Date to calculate age from.
            dtAsOf = Date
        Else
            dtAsOf = varAsOf
        End If

        If dtAsOf >= dtDOB Then      'Calculate only if it's after person was born.
            dtBDay = DateSerial(Year(dtAsOf), Month(dtDOB), Day(dtDOB))
            Age = DateDiff("yyyy", dtDOB, dtAsOf) + (dtBDay > dtAsOf)
        End If
    End If
End Function

Затем вы можете просто создать элемент управления и установить источник =Age([name of the filed with the birth date]) и функция будет точно рассчитывать возраст.


Код предоставлен Алленом Брауном. http://allenbrowne.com/func-08.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .