MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


    [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível?

    avatar
    wesley
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 08/11/2011

    [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível? Empty [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível?

    Mensagem  wesley em 14/9/2018, 01:36

    Minha dúvida é:
    Tenho um campo na tabela1 chamado [DtFinal], tenho outro campo na mesma tabela1 [DtInicial], e um outro campo na mesma tabela1 [QtdDias].
    Gostaria de guardar a diferença em dias neste campo [QtdDias] direto na tabela1, ou utilizando uma consulta... É possível fazê-lo?


    Última edição por wesley em 9/8/2019, 20:42, editado 1 vez(es)
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1073
    Registrado : 22/11/2016

    [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível? Empty Re: [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível?

    Mensagem  IvanJr. em 14/9/2018, 04:21

    A partir da versão 2010 do MS Access é possível utilizar campos calculados. Ao escolher o tipo de dados Calculado para o campo, insira a seguinte fórmula: [dtFinal]-[dtInicial]
    avatar
    wesley
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 08/11/2011

    [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível? Empty Re: [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível?

    Mensagem  wesley em 31/7/2019, 20:36

    Amigos,

    Reabrindo e retornando novamente ao tópico..

    Podemos calcular um campo [DtInicial] com a data atual Data(), ou seja, Data() - [DtInicial], para o preenchimento do campo calculado [QtdDias] da  tabela? É possível adaptá-lo junto com a fórmula: [dtFinal]-[dtInicial] , utilizando a condição selmed na expressão do próprio campo calculado da tabela?

    Ou melhor, enquanto não houver ainda a data final da fórmula [dtFinal]-[dtInicial] , calcular então a diferença pela Data Atual Data()-[dtInicial]...
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1073
    Registrado : 22/11/2016

    [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível? Empty Re: [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível?

    Mensagem  IvanJr. em 1/8/2019, 00:04

    Nesse caso não recomendo colocar em um campo do tipo calculado lá na tabela. Use a fórmula apenas no formulário. Em um controle do tipo texto, coloque
    Código:
    =nz([CampoDataFinal;Data())-[CampoDataInicial]


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    wesley
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 08/11/2011

    [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível? Empty Re: [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível?

    Mensagem  wesley em 7/8/2019, 22:25

    Ivan, o seu resultado é satisfatório!

    Colocado num controle do tipo texto como bem apontado por você: =nz([CampoDataFinal;Data())-[CampoDataInicial]

    O bom, dessa forma que você ressaltou, é que o campo da caixa de texto direto no formulário atualiza de forma automática, após o preenchimento das datas. Mas, por oportuno, haveria possibilidade de colocar a fórmula nas propriedades do campo a partir do formulário? Porque, neste caso, eu precisaria manter salvo a quantidade de dias na tabela de origem.

    Por enquanto, estou utilizando este código abaixo como caminho para calcular a quantidade de dias no próprio formulário, apesar de ter que repetir o mesmo muitas vezes para chegar ao resultado.. Tive que recorrer a ele e colocá-lo no evento 'atual' do formulário:
    Código:
    If Not IsNull (Me.CampoDataInicial) And Not IsNull (Me.CampoDataFinal) Then
            Me.QtdDias = Me.CampoDataFinal - Me.CampoDataInicial
            Else
            If Not IsNull (Me.CampoDataInicial) And IsNull (Me.CampoDataFinal) Then
            Me.QtdDias = Date() - Me.CampoDataInicial
            End If
    End If

    E depois tive que colocar no 'após atualizar' de cada controle das datas para atualizar em tempo real:
    Código:
    Me.Form.Requery
    Me.CampoDataFinal.SetFocus
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1073
    Registrado : 22/11/2016

    [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível? Empty Re: [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível?

    Mensagem  IvanJr. em 7/8/2019, 23:55

    Se for o caso, também é possível criar condicionais direto no relatório iguais ao código que você usou no formulário. Em consultas também. Mas na tabela da forma como você quer usando Data() e que a quantidade de dias atualizando automaticamente não dá.

    Tabelas servem só para armazenar dados. Consultas, formulários e relatórios servem para trabalhá-los e exibi-los.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Conteúdo patrocinado

    [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível? Empty Re: [Resolvido]Calcular a diferença entre duas datas direto numa tabela... É possível?

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 10/12/2019, 10:50