Boa tarde
Coloquei a seguinte função no formulário:
'Recebe a DataNasc e devolve a Idade em Anos
Function CalculaIdade(DataNasc As Variant) As Variant
On Error GoTo Idade_Err
'Evita o erro de data não preenchida:
If IsNull(DataNasc) Then
CalculaIdade = ""
Exit Function
End If
'Declarando Variáveis:
Dim DataHoje As Variant, DiaHoje As Integer
Dim MesNasc As Integer, DiaNasc As Integer
Dim DifAnos As Integer, MesHoje As Integer
'Isola as partes (dia/mês) das duas datas:
DiaHoje = DatePart("d", Now)
MesHoje = DatePart("m", Now)
DiaNasc = DatePart("d", DataNasc)
MesNasc = DatePart("m", DataNasc)
'Calcula a diferença de anos:
DifAnos = DateDiff("yyyy", DataNasc, Now)
'Verifica dia/mês de nascimento:
If MesHoje < MesNasc Then
DifAnos = DifAnos - 1
ElseIf MesHoje = MesNasc Then
If DiaHoje < DiaNasc Then
DifAnos = DifAnos - 1
End If
Else
End If
'Valor final da função:
CalculaIdade = DifAnos
Idade_Fim:
Exit Function
Idade_Err:
MsgBox Err.Description
Resume Idade_Fim
End Function
NA CAIXA DE TEXTO QUE VAI RECEBER O CÁLCULO DA IDADE (Nas Propriedades do Controle, em Dados, em Origem do Controle), COLOQUE:
=CalculaIdade([NomeDoCampoIdade])
Mas no campo IDADE não fica gravado nada depois de salvar.
Alguém pode me ajudar?
Coloquei a seguinte função no formulário:
'Recebe a DataNasc e devolve a Idade em Anos
Function CalculaIdade(DataNasc As Variant) As Variant
On Error GoTo Idade_Err
'Evita o erro de data não preenchida:
If IsNull(DataNasc) Then
CalculaIdade = ""
Exit Function
End If
'Declarando Variáveis:
Dim DataHoje As Variant, DiaHoje As Integer
Dim MesNasc As Integer, DiaNasc As Integer
Dim DifAnos As Integer, MesHoje As Integer
'Isola as partes (dia/mês) das duas datas:
DiaHoje = DatePart("d", Now)
MesHoje = DatePart("m", Now)
DiaNasc = DatePart("d", DataNasc)
MesNasc = DatePart("m", DataNasc)
'Calcula a diferença de anos:
DifAnos = DateDiff("yyyy", DataNasc, Now)
'Verifica dia/mês de nascimento:
If MesHoje < MesNasc Then
DifAnos = DifAnos - 1
ElseIf MesHoje = MesNasc Then
If DiaHoje < DiaNasc Then
DifAnos = DifAnos - 1
End If
Else
End If
'Valor final da função:
CalculaIdade = DifAnos
Idade_Fim:
Exit Function
Idade_Err:
MsgBox Err.Description
Resume Idade_Fim
End Function
NA CAIXA DE TEXTO QUE VAI RECEBER O CÁLCULO DA IDADE (Nas Propriedades do Controle, em Dados, em Origem do Controle), COLOQUE:
=CalculaIdade([NomeDoCampoIdade])
Mas no campo IDADE não fica gravado nada depois de salvar.
Alguém pode me ajudar?