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]Saldo Diario por ordem crescente de data

    Compartilhe

    marli
    Novato
    Novato

    Respeito às Regras 100%

    Mensagens : 21
    Registrado : 22/03/2012

    [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  marli em Seg 29 Fev 2016, 18:31

    Boa Tarde! Gostaria de ajuda, tenho esta fórmula para calcular o saldo diário e  está funcionando corretamente, mas ao ordenar as datas o saldo não acompanha o registro. Já tentei adicionar o campo data [datamov] nesta fórmula, mas dá erro, como devo proceder. Agradeço a atenção.

    =CMoeda(DSoma("[Receita]-[Despesa]";"Movimentação";"[ID]<= " & [ID] & " AND  [codConta] = " & [codConta]))

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1095
    Registrado : 21/01/2012

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Cláudio Más em Ter 01 Mar 2016, 12:14

    Olá,

    A fórmula considera o ID para calcular o saldo, e não a data.
    Então, se existe a possibilidade de lançamentos fora de ordem de data (por exemplo, registrar hoje uma movimentação com data de ontem), quando ordenar os registros por data o "erro" irá aparecer.

    Uma solução seria usar um outro campo ID, também sequencial mas sem numeração automática.
    Esse ID seria preenchido programaticamente, considerando uma ordenação primeiro por data, depois pelo ID automático.

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Assis em Ter 01 Mar 2016, 12:53

    Boa tarde

    Eu resolvi isso com um campo de ordenação no formato Data e Hora.

    Quando registo um movimento o primeiro campo da Imagem "Ordenar" grava com a data do Movimento e a Hora.

    A formula do saldo é este, e trabalha com 5 contas bancárias.

    Repare que no circulo não está ordenado o IDMovimento 4435, 4436, 4439, e 4431.

    Numa coluna de uma Consulta
    Saldo: (SELECT Sum(nz([valordebito])-nz([valorcredito])) AS Saldo    FROM tblmovimento AS tb    WHERE tb.idcaixa = tblmovimento.idcaixa AND tb.[Ordenar]<=tblmovimento.[Ordenar]Wink

    [Você precisa estar registrado e conectado para ver esta imagem.]


    .................................................................................
    *** Só sei que nada sei ***

    marli
    Novato
    Novato

    Respeito às Regras 100%

    Mensagens : 21
    Registrado : 22/03/2012

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  marli em Ter 01 Mar 2016, 14:02

    Olá, obrigada pela ajuda! Estou tentando ver como criar outro campo conforme o Cláudio sugeriu.

    Agradeço também a outra opção, mas não vai dar certo porque se eu entrar com uma data antiga a ordenação será pela data de digitação e eu preciso que essa data antiga fique na ordem para então calcular o saldo diário.

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Assis em Ter 01 Mar 2016, 15:02

    Marli

    Só registei ( assinalado a amarelo ) um movimento hoje, mas com a data de 01-01-2016 ----- 1 de Janeiro de 2016

    Compare as duas imagens e veja o que aconteceu na coluna do saldo, e está ordenado por data crescente.

    [Você precisa estar registrado e conectado para ver esta imagem.]


    .................................................................................
    *** Só sei que nada sei ***

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1095
    Registrado : 21/01/2012

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Cláudio Más em Ter 01 Mar 2016, 15:32

    Se optar pelo campo ID calculado (ID2, inteiro longo), o código abaixo faz a atualização da tabela:

    Código:
    Dim mov As Recordset
    Set mov = CurrentDb.OpenRecordset("SELECT ID2 FROM Movimentação ORDER BY datamov, ID")

    Dim i As Integer

    i = 1
    Do While Not mov.EOF
        mov.Edit
        mov("ID2") = i
        mov.Update
        i = i + 1
        mov.MoveNext
    Loop

    mov.Close

    Depois, a sua fórmula deve funcionar utilizando esse campo ID2:

    =CMoeda(DSoma("[Receita]-[Despesa]";"Movimentação";"[ID2]<= " & [ID2] & " AND  [codConta] = " & [codConta]))

    marli
    Novato
    Novato

    Respeito às Regras 100%

    Mensagens : 21
    Registrado : 22/03/2012

    PERFEITO!

    Mensagem  marli em Ter 01 Mar 2016, 17:37

    Valeu Cláudio, FUNCIONOU, deu certinho! Muito Obrigada!

    Assis muito obrigada pela atenção também!

    Que bom que podemos contar com ajuda de vocês! Espero um dia fazer o mesmo .

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1095
    Registrado : 21/01/2012

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Cláudio Más em Ter 01 Mar 2016, 18:16

    De nada Marli, disponha.

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Assis em Qua 02 Mar 2016, 20:12

    Parabéns Cláudio Más
    Bom dica na Msg. Nº 6


    .................................................................................
    *** Só sei que nada sei ***

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Assis em Sab 12 Mar 2016, 16:16

    Boa tarde
    Cláudio Más

    A sua Dica da Msg Nº 6 é ótima.

    Qual o melhor comando para a executar (em que acontecimento) ?

    Aguardo ...
    Obrigado



    .................................................................................
    *** Só sei que nada sei ***

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1095
    Registrado : 21/01/2012

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Cláudio Más em Seg 21 Mar 2016, 13:46

    Bom dia Assis,

    O código deverá ser chamado sempre imediatamente antes de visualizar um formulário ou relatório com as informações de movimentação e saldo.
    Ou sempre que terminar de incluir/excluir/alterar registros (talvez não atenda em ambiente multiusuário, sendo melhor a primeira opção).

    Se você ou o usuário do seu sistema usa o Access de forma interativa para abrir a consulta, deverá lembrar de executar o código sempre antes de abrir mesma.

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Saldo Diario por ordem crescente de data

    Mensagem  Assis em Ter 22 Mar 2016, 19:31

    Obrigado Cláudio Más


    .................................................................................
    *** Só sei que nada sei ***

      Data/hora atual: Sab 03 Dez 2016, 04:33