MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Calcular Idade com data futura

    Compartilhe

    linuxsdc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 22/10/2013

    [Resolvido]Calcular Idade com data futura

    Mensagem  linuxsdc em Sex 27 Dez 2013, 16:25

    Olá sou novo no fórum e também no Access, não tenho experiência.
    Tenho em um formulário um campo que calcula a idade, tutorial seguido pelo youtube: [Você precisa estar registrado e conectado para ver este link.]

    Muito bom e que funciona perfeitamente, no entanto preciso calcular a idade não com a data atual, mas sim com uma data futura, pois preciso separar por faixa etária (grupos) os jovens.
    Ex.: Quantos anos fulano terá no próximo carnaval? No caso dia 04/05/2014.

    Os códigos que eu achei até o momento só fazem o cálculo com a data atual.

    Segue o banco de dados:
    [Você precisa estar registrado e conectado para ver este link.]

    Atualmente trabalho com o banco de dados alterando a hora do sistema mas queria colocar isso no banco de dados para que outras pessoas pudessem utilizar em outros pc's

    Desde já agradeço a atenção e colaboração, e toda a ajuda recebida.
    O autor desta mensagem foi removido do fórum - Ver a mensagem
    O autor desta mensagem foi removido do fórum - Ver a mensagem
    O autor desta mensagem foi removido do fórum - Ver a mensagem

    linuxsdc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 22/10/2013

    Re: [Resolvido]Calcular Idade com data futura

    Mensagem  linuxsdc em Seg 30 Dez 2013, 15:04

    Olá betogivoni, muito obrigado pela ajuda, mas acho que não me expressei muito bem.
    Pelo tutorial que segui funcionou, "http://www.youtube.com/watch?v=EWkm0Vs0qQQ", só que não sei como fazer que este código calcule com uma data futura, exatamente dia 04/03/2014, data do carnaval do ano que vem, pois preciso saber quantos anos o jovem vai ter até essa data. Por que se alguém fizer aniversário um dia depois vai ser direcionado para outro grupo devido a idade.

    As faixas etárias são:
    Peq. Comp.: 2 a 10 anos
    Pólem: 11 e 12 anos
    Sementes: 13 e 14 anos
    Flores: 15 a 17 anos
    Colheita: 18 a 20 anos
    Tarefeiros: 21 a 24 anos

    Está é a função que o Lucio Rezena, explica no tutorial e que funcionou, fiz algumas adaptações devido a necessidade para entendimento e funcionamento do código para o meu caso.
    ====================================
    Function CalcularIdade(DATA_DE_NASCIMENTO As Date)

    Dim Anos, Meses, Dias
    Dim iAnos As Double, iMeses As Double, Intervalo As Double
    Intervalo = Date - DATA_DE_NASCIMENTO
    iAnos = Intervalo / 365.25

    Anos = Int(iAnos)
    iMeses = (iAnos - Anos) * 12
    Meses = Int(iMeses)

    Dias = DateDiff("d", DateSerial(DatePart("yyyy", DATA_DE_NASCIMENTO) + Anos, DatePart("m", DATA_DE_NASCIMENTO) + Meses, Day(DATA_DE_NASCIMENTO)), Date)

    If Dias >= 30 Then
    Dias = 0
    Meses = Meses + 1
    End If

    If Meses >= 12 Then
    Meses = 0
    Anos = Anos + 1
    End If

    Ajustes:
    If Anos > 1 Then
    Anos = Anos & " anos "
    Else
    Anos = Anos & " ano "
    End If

    If Anos > 1 Then
    Meses = Meses & " meses "
    Else
    Meses = Meses & " mês "
    End If

    If Dias > 1 Then
    Dias = Dias & " dias "
    Else
    Dias = Dias & " dia "
    End If

    CalcularIdade = Anos

    End Function
    ====================================
    Dentro desse código não sei onde poderia modificar para fazer esse calculo de idade com a data sendo futura.
    Vou tentar a sua dica, e posto aqui o resultado. Muito obrigado novamente.


    Nivaldo
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 708
    Registrado : 08/12/2009

    Re: [Resolvido]Calcular Idade com data futura

    Mensagem  Nivaldo em Seg 30 Dez 2013, 15:45

    Olá Sandro,

    Coloca uma caixa de texto no teu formulário (ex. TxtDataFutura). Essa caixa vai receber a data futura para o calculo.

    Altera a seguinte linha do código:

    Onde tem: Intervalo = Date - DATA_DE_NASCIMENTO

    Altera para: Intervalo = Me.TxtDataFutura - DATA_DE_NASCIMENTO

    Não testei, más deve funcionar.


    Nivaldo.
    O autor desta mensagem foi removido do fórum - Ver a mensagem

    Beto Givoni
    VIP
    VIP

    Respeito às Regras 0%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1207
    Registrado : 04/01/2011

    Re: [Resolvido]Calcular Idade com data futura

    Mensagem  Beto Givoni em Seg 30 Dez 2013, 15:59

    uma pergunta amigo, vc quer saber essa idade futura hoje, ou quando chegar na data do aniversário da pessoa? Se for a primeira opção tem que seguir a dica do Nivaldo criar uma caixa de texto para digitar essa data futura, agora se for a segunda opção esse código que te passei vai funcionar, é só fazer o teste nesse exemplo, se você abrir o formulário as pessoas que estão no cadastro vão estar com os anos atuais, mas se você mudar a data do sistema para os anos subsequentes e abir o form. vai observar que os anos foram corrigidos (alterados) para as idades atuais.
    Anexos
    BD2014.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (268 Kb) Baixado 32 vez(es)

    linuxsdc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 22/10/2013

    Re: [Resolvido]Calcular Idade com data futura

    Mensagem  linuxsdc em Seg 30 Dez 2013, 17:14

    Olá, Nivaldo e betogivoni!

    Testei primeiramente no código do Lucio Rezena, conforme as orientações do Nivaldo, mas não funcionou. Passei então a testar no código do betogivoni, alterei apenas aonde estava escrito "Now" para "Me.TxtDataFutura" defini o valor padrão do campo "TxtDataFutura" para a data 04/03/2014, e ai funcionou perfeitamente.

    Suas dicas foram perfeitas.

    Muito obrigado pela ajuda!!!!!!!!!!!!!!!!

    Segue o código e o banco de dados.
    ===============================
    Function VerificaIdade(DATA_NASCIMENTO As Variant) As Variant

    On Error GoTo VerificaIdade_Err

    If IsNull(DATA_NASCIMENTO) Then
    VerificaIdade = ""
    Exit Function
    End If

    Dim DtAtual As Variant, DiaAtual As Integer
    Dim MesNasc As Integer, DiaNasc As Integer
    Dim DifAnos As Integer, MesAtual As Integer

    DiaAtual = DatePart("d", Me.TxtDataFutura)
    MesAtual = DatePart("m", Me.TxtDataFutura)
    DiaNasc = DatePart("d", DATA_NASCIMENTO)
    MesNasc = DatePart("m", DATA_NASCIMENTO)

    DifAnos = DateDiff("yyyy", DATA_NASCIMENTO, Me.TxtDataFutura)

    If MesAtual < MesNasc Then
    DifAnos = DifAnos - 1
    ElseIf MesAtual = MesNasc Then
    If DiaAtual < DiaNasc Then
    DifAnos = DifAnos - 1
    End If
    Else
    End If

    VerificaIdade = DifAnos

    VerificaIdade_Fim:
    Exit Function

    VerificaIdade_Err:
    MsgBox Err.Description
    Resume VerificaIdade_Fim

    End Function
    =========================
    Aonde é a parte gráfica até consigo desenvolver um pouco, mas quando vai pra programação ai sou leigo. rsrsrsr. Agora posso começar a cadastrar os participantes do evento.

    Meus sinceros votos de Paz, Luz, Amor, Fraternidade e Prosperidade, que 2014 chegue trazendo boas vibrações para vocês e suas famílias. Que Deus abençoe sempre!!!!!!!!!!!
    Muito obrigado novamente pela ajuda!!!!!!!!!!!!!!!!!!!

    Anexos
    BD2014.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (251 Kb) Baixado 23 vez(es)

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Calcular Idade com data futura

    Mensagem  HARYSOHN em Sab 03 Maio 2014, 00:09

    O Fórum agradece o Retorno.

    Não se esqueça de clicar no botão de resolvido!
    Desta vez eu coloco.


    Moderação


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

      Data/hora atual: Sex 09 Dez 2016, 13:31