Compartilhar via


Calcular idade

O Access não inclui uma função que calculará a idade de uma pessoa ou algo com base em uma determinada data. Este tópico inclui o VBA (Visual Basic for Applications) para duas funções personalizadas Age e AgeMonths, que calcularão a idade com base em uma determinada data.

A função a seguir calcula a idade em anos a partir de uma determinada data até a data de hoje.

 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

A função a seguir calcula a quantidade de meses ocorridos desde o último mês fornecido pela data determinada. Se uma determinada data for um aniversário, a função retorna a quantidade de meses desde o último aniversário.

 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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.