Olá pessoal,
Estou criando um banco de dados simples para uma Agente de Saúde, contudo, é necessário a idade, e com isso fui pesquisando e cheguei no código abaixo, apenas modifiquei para mostrar meses e anos. Ele gera perfeitamente o que preciso. Mas preciso criar algumas consultas, e o grande problema é que eu não sei como criar uma consulta baseada no código abaixo, porque ele não esta na tabela, foi criado no formulário. Alguém poderia me ajudar? Anexei o arquivo se acharem melhor visualizar.
Muito obrigado!!
Código utilizado para cálculo da idade:
Public Function fncIdadeCompleta(Nascimento As Date) As String
Dim Anos As Byte, Meses, Dias As Byte, DataRef As Date
Dim Resultado As Boolean
If Nascimento > Date Or Nascimento = 0 Then
fncIdadeCompleta = ""
Exit Function
End If
If Nascimento = Date Then
fncIdadeCompleta = 0
Exit Function
End If
'Ajusta ano bissexto
Nascimento = IIf(Format(Nascimento, "mm/dd") = "02/29", Nascimento - 1, Nascimento)
Anos = Int((Format(Date, "yyyymmdd") - Format(Nascimento, "yyyymmdd")) / 10000)
Resultado = (Format(Nascimento, "mmdd") > Format(Date, "mmdd"))
DataRef = DateSerial(Year(Date) + Resultado, Format(Nascimento, "mm"), Format(Nascimento, "dd"))
Meses = DateDiff("m", DataRef, Date) + (Format(Nascimento, "dd") > Format(Date, "dd"))
Resultado = (Format(Nascimento, "dd") > Format(Date, "dd"))
DataRef = DateSerial(Year(Date), Format(Date, "mm") + Resultado, Format(Nascimento, "dd"))
DataRef = IIf(Format(Nascimento, "dd") <> Format(DataRef, "dd"), DataRef - Format(DataRef, "dd"), DataRef)
Dias = CDbl(Date) - CDbl(DataRef)
fncIdadeCompleta = IIf(Anos <= 1, IIf(Anos = 0, "", Anos & " ano "), Anos & " anos ") & _
IIf(Meses <= 1, IIf(Meses = 0, "", Meses & " mes "), Meses & " meses ") & _
IIf(Dias <= 1, IIf(Dias = 0, "", Dias & " dia "), Dias & " dias ")
End Function
Estou criando um banco de dados simples para uma Agente de Saúde, contudo, é necessário a idade, e com isso fui pesquisando e cheguei no código abaixo, apenas modifiquei para mostrar meses e anos. Ele gera perfeitamente o que preciso. Mas preciso criar algumas consultas, e o grande problema é que eu não sei como criar uma consulta baseada no código abaixo, porque ele não esta na tabela, foi criado no formulário. Alguém poderia me ajudar? Anexei o arquivo se acharem melhor visualizar.
Muito obrigado!!
Código utilizado para cálculo da idade:
Public Function fncIdadeCompleta(Nascimento As Date) As String
Dim Anos As Byte, Meses, Dias As Byte, DataRef As Date
Dim Resultado As Boolean
If Nascimento > Date Or Nascimento = 0 Then
fncIdadeCompleta = ""
Exit Function
End If
If Nascimento = Date Then
fncIdadeCompleta = 0
Exit Function
End If
'Ajusta ano bissexto
Nascimento = IIf(Format(Nascimento, "mm/dd") = "02/29", Nascimento - 1, Nascimento)
Anos = Int((Format(Date, "yyyymmdd") - Format(Nascimento, "yyyymmdd")) / 10000)
Resultado = (Format(Nascimento, "mmdd") > Format(Date, "mmdd"))
DataRef = DateSerial(Year(Date) + Resultado, Format(Nascimento, "mm"), Format(Nascimento, "dd"))
Meses = DateDiff("m", DataRef, Date) + (Format(Nascimento, "dd") > Format(Date, "dd"))
Resultado = (Format(Nascimento, "dd") > Format(Date, "dd"))
DataRef = DateSerial(Year(Date), Format(Date, "mm") + Resultado, Format(Nascimento, "dd"))
DataRef = IIf(Format(Nascimento, "dd") <> Format(DataRef, "dd"), DataRef - Format(DataRef, "dd"), DataRef)
Dias = CDbl(Date) - CDbl(DataRef)
fncIdadeCompleta = IIf(Anos <= 1, IIf(Anos = 0, "", Anos & " ano "), Anos & " anos ") & _
IIf(Meses <= 1, IIf(Meses = 0, "", Meses & " mes "), Meses & " meses ") & _
IIf(Dias <= 1, IIf(Dias = 0, "", Dias & " dia "), Dias & " dias ")
End Function