Como você calcula a idade a partir de uma data de nascimento no MS Access?

0

Como você calcula a idade atual de um indivíduo com base em sua data de nascimento no MS Access?

Eu tentei =DateDiff("yyyy", [DOB], Date())

Mas isso só retorna quantos anos eles serão naquele ano, por isso, se ainda não tiveram seu aniversário, é impreciso. Como você pode calcular a idade deles com base em qual dia do calendário é?

    
por ShemSeger 13.02.2017 / 18:27

1 resposta

0

Existe uma função que você pode adicionar ao seu código que faz isso facilmente para você. Vá para o Visual Basic, insira um novo módulo e cole o seguinte código:

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

Você pode então simplesmente criar um controle e definir a fonte de controle para =Age([name of the filed with the birth date]) e a função calculará com precisão as idades.

Código fornecido por Allen Browne. link

    
por 13.02.2017 / 18:33