¿Cómo se calcula la edad a partir de una fecha de nacimiento en MS Access?

0

¿Cómo calcula la edad actual de un individuo en función de su fecha de nacimiento en MS Access?

He intentado =DateDiff("yyyy", [DOB], Date())

Pero eso solo devuelve la edad que tendrán ese año calendario, por lo que si aún no han cumplido años, es incorrecto. ¿Cómo puede calcular su edad en función de qué día calendario es?

ShemSeger
fuente

Respuestas:

0

Hay una función que puede agregar a su código que hace esto fácilmente por usted. Vaya a Visual Basic, inserte un nuevo módulo y luego pegue el siguiente 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

Luego, simplemente puede crear un control y establecer la fuente de control =Age([name of the filed with the birth date])y la función calculará las edades con precisión.


Código proporcionado por Allen Browne. http://allenbrowne.com/func-08.html

ShemSeger
fuente