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


2 participantes

    [Resolvido]Calcular tempo baseado na data do sistema

    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Calcular tempo baseado na data do sistema Empty [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  RodriguesChqao 28/3/2017, 01:46

    Boa noite senhores não entendo quase nada de VBA e consegui o código abaixo  na internet para calcular idade:
    Public Function fncIdadeCompleta(DataNascimento As Date, Optional DataFinal As Date) As String
    On Error GoTo trataerro
    Dim Anos As Byte, Meses As Variant, Dias As Byte, DataRef As Date
    If DataNascimento > DataFinal Or DataNascimento = 0 Or DataFinal = 0 Then
       fncIdadeCompleta = ""
       Exit Function
    End If
    If DataNascimento = DataFinal Then
       fncIdadeCompleta = 0
       Exit Function
    End If


    'Ajusta dataNascimento se cair em ano bissexto
    DataNascimento = IIf(Format(DataNascimento, "mm/dd") = "02/29", DataNascimento - 1, DataNascimento)

    Anos = DateDiff("d", DataNascimento, DataFinal) \ 365.25
    DataRef = DateSerial(Year(DataFinal) + (Format(DataNascimento, "mmdd") > Format(DataFinal, "mmdd")), Format(DataNascimento, "mm"), Format(DataNascimento, "dd"))
    Meses = DateDiff("m", DataRef, DataFinal) + (Format(DataNascimento, "dd") > Format(DataFinal, "dd"))
    DataRef = DateSerial(Year(DataFinal), Format(DataFinal, "mm") + (Format(DataNascimento, "dd") > Format(DataFinal, "dd")), Format(DataNascimento, "dd"))
    DataRef = IIf(Format(DataNascimento, "dd") <> Format(DataRef, "dd"), DataRef - Format(DataRef, "dd"), DataRef)
    Dias = CDbl(DataFinal) - 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 ")
    sair:
       Exit Function
    trataerro:
       MsgBox "Erro: " & Err.Number & vbCrLf & Err.Description, vbCritical, "Aviso", Err.HelpFile, Err.HelpContext
       Resume sair:
    End Function


    Como adaptar esse código para calcular uma idade baseada na data atual do sistema.

    obrigado!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  JPaulo 28/3/2017, 12:24

    Ola

    O código já faz isso mesmo, calcula a idade pela Data de Nascimento e Data atual do sistema;

    Código:
    ?fncIdadeCompleta(#26-11-1965#,Date())

    51 anos 4 meses 2 dias


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Instruções SQL como utilizar...
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  RodriguesChqao 28/3/2017, 14:19

    Bom dia J Paulo, obrigado pela atenção mas vou explicar melhor o que preciso.

    Tenho o cadastro de documentos que possuem uma determinada validade.

    Por exemplo um documento que foi expedido em 10/03/2017 e validade de 26/06/2017

    No Bd tenho o campo Dt_Exp 10/03/2017 e Dt_Validade 26/06/2017

    Na verdade preciso calcular a diferença em anos, meses e dias entre Dt_Validade e a data do sistema.

    Nesse caso, no código, basta mudar a Data de Nascimento pela Dt_Validade considerando que a data final seria a data do sistema?

    Obrigado.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  JPaulo 28/3/2017, 17:17

    Para o seu caso, recomendo usar o simples;

    Faça a sua consulta (query) normal com esses campos, acrescente num campo novo o seguinte;

    Código:
    AlertaValidade: DateDiff("yyyy";Date();[Dt_Validade]) & " anos,  " & DateDiff("m";Date();[Dt_Validade]) & " meses,  " & DateDiff("d";Date();[Dt_Validade]) & " dias"

    Veja o resulto e retorne.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Instruções SQL como utilizar...
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  RodriguesChqao 28/3/2017, 17:48

    Boa tarde!

    Essa consulta eu já fiz.
    A formula abaixo:

    AlertaValidade: DateDiff("yyyy";Date();[Dt_Validade]) & " anos, " & DateDiff("m";Date();[Dt_Validade]) & " meses, " & DateDiff("d";Date();[Dt_Validade]) & " dias"

    Retorna um valor 0 anos, 3 meses, 90 dias e deveria ser por exemplo 0 anos, 3 meses, 0 dias

    Com a ajuda do forum usei a fórmula:
    Dias Restantes: DifData("yyyy";Agora();[Dt_Validade]) & " Ano(s)," & DifData("d";Mês(Agora());Mês([Dt_Validade])) & " Meses, " & DifData("d";Dia(Agora());Dia([Dt_Validade])) & " Dia(s)"

    Quer retorna o valor 0 Ano(s),3 Meses, -2 Dia(s)

    A resposta certa seria 0 anos, 2 meses, 29 Dias

    Por essa razão pensei em um código.

    obrigado.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  JPaulo 29/3/2017, 09:23

    Teste por favor e retorne;

    Deve chamar a função desta forma, num novo campo da sua consulta;

    Dias Restantes:CalculaAnosMesesDias(Date();[Dt_Validade])


    Código:
    Public Function CalculaAnosMesesDias(DataInicio As Date, DataFim As Date) As String
    Dim intConta As Integer
    Dim intCdia As Integer

       intConta = Int(DateDiff("m", DataInicio, DataFim)) + (DataFim < DateSerial(Year(DataFim), Month(DataFim), Day(DataInicio)))
      If intConta < 0 Then intConta = 0

       If Day(DataFim) < Day(DataInicio) Then
          intCdia = DateDiff("d", DataInicio, DateSerial(Year(DataInicio), Month(DataInicio) + 1, 0)) + Day(DataFim)
       Else
          intCdia = Day(DataFim) - Day(DataInicio)
       End If
      
       CalculaAnosMesesDias = Int(intConta / 12) & " ano" _
       & IIf(Int(intConta / 12) <> 1, "s ", " ") _
       & intConta Mod 12 & " mes" & IIf(intConta Mod 12 <> 1, "es ", " ") _
       & LTrim(Str(intCdia)) & " dia" & IIf(intCdia <> 1, "s", "")
    Exit Function
    End Function


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Instruções SQL como utilizar...
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  RodriguesChqao 29/3/2017, 17:58

    Boa tarde JPaulo, obrigado pela atenção.

    Criei a função e inseri a fórmula Dias Restantes:CalculaAnosMesesDias(Date();[Dt_Validade]) em um novo campo da consulta, no entanto ocorreu o erro.

    Função 'CalculaAnosMesesDias' indefinida na expressão.

    O que pode ser?

    Só falta isso para funcionar.

    Obrigado!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  JPaulo 29/3/2017, 18:01

    Cole a função num modulo.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Instruções SQL como utilizar...
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  RodriguesChqao 29/3/2017, 20:02

    Boa JPaulo.

    Vou precisar de orientação porque eu criei um módulo, conforme o anexo.

    Deve estar faltando alguma coisa.

    obrigado
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  JPaulo 29/3/2017, 21:38

    Escreva Public antes do Function e teste.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Instruções SQL como utilizar...
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  RodriguesChqao 30/3/2017, 01:10

    Boa noite JPaulo.

    Ainda não funcionou.

    Coloco em anexo o BD. A consulta é a consulta "Tempo Funcao".

    obrigado
    Anexos
    [Resolvido]Calcular tempo baseado na data do sistema AttachmentTempo Funcao_ .zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (203 Kb) Baixado 7 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  JPaulo 30/3/2017, 10:27

    Teste e retorne por favor;

    Download


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Instruções SQL como utilizar...
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  RodriguesChqao 31/3/2017, 00:53

    Beleza JPaulo.

    Funcionou perfeito.

    Eu estou errando no fazer o módulo, pois o meu com o código igualzinho ao seu dava a mensagem de erro. Quando eu importei o módulo que vc disponibilizou funcionou.

    Obrigado.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  JPaulo 31/3/2017, 09:15

    Fico feliz.

    Obrigado pelo retorno o forum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Calcular tempo baseado na data do sistema Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    [Resolvido]Calcular tempo baseado na data do sistema Empty Re: [Resolvido]Calcular tempo baseado na data do sistema

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 19:12