MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [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 Sex 14 Set 2018, 02: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 Sex 09 Ago 2019, 21:42, editado 1 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2312
    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  DamascenoJr. em Sex 14 Set 2018, 05: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 Qua 31 Jul 2019, 21: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]...
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2312
    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  DamascenoJr. em Qui 01 Ago 2019, 01: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 Qua 07 Ago 2019, 23: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
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2312
    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  DamascenoJr. em Qui 08 Ago 2019, 00: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.

      Data/hora atual: Ter 27 Out 2020, 04:19