MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    Cálculo da Idade no campo 'Idade'

    avatar
    oluap
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 11/12/2016

    Cálculo da Idade no campo 'Idade' Empty Cálculo da Idade no campo 'Idade'

    Mensagem  oluap 17/1/2017, 19:35

    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?
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Cálculo da Idade no campo 'Idade' Empty Re: Cálculo da Idade no campo 'Idade'

    Mensagem  FabioPaes 18/1/2017, 01:30

    Faça esse preenchimento pelo VBA.

    No evento apos atualizar da sua dataNascimento coloque:

    Ne.NomeCampoIdade = CalculaIdade(Ne.NomeCampoDataNascimento)


    Agora, Qual mesmo a necessidade de armazenar isso em tabela? ja que a cada dia tudo muda?


    Campos calculados (como esse) somente calculamos quando precisamos para exibição, pois e algo que muda constantemente.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    oluap
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 11/12/2016

    Cálculo da Idade no campo 'Idade' Empty Re: Cálculo da Idade no campo 'Idade'

    Mensagem  oluap 19/1/2017, 14:26

    Boa tarde!

    É somente para efeito de Relatório...

    Obrigado, me adiantou bastante.

    Valeu!
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3417
    Registrado : 13/12/2016

    Cálculo da Idade no campo 'Idade' Empty Re: Cálculo da Idade no campo 'Idade'

    Mensagem  Alexandre Fim 19/1/2017, 16:10

    Faça isto:

    = DateDiff("y", Format(,"mm/dd/yyyy"),)

    Ex: Datediff("YYYY",#08/07/1970#,Now)

    Resultado: 47

    Obs: o formato da data deve ser "MM/DD/YYYY"


    Abs
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Cálculo da Idade no campo 'Idade' Empty Re: Cálculo da Idade no campo 'Idade'

    Mensagem  FabioPaes 19/1/2017, 18:19

    É somente para efeito de Relatório...

    No relatprio, coloque uma Caixa de Texto nao acoplada, e coloque na guia dados, Fonte de controle coloque:
    =CalculaIdade([NomeDoCampoIdade])

    Então ira calcular sempre que gerar o relatório amigo... Nao ha necessidade de armazena esse calculo na tabela!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Conteúdo patrocinado


    Cálculo da Idade no campo 'Idade' Empty Re: Cálculo da Idade no campo 'Idade'

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/9/2024, 01:07