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]Saldo linha a linha

    avatar
    hheverson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 24/07/2015

    [Resolvido]Saldo linha a linha Empty [Resolvido]Saldo linha a linha

    Mensagem  hheverson em 1/11/2015, 03:47

    Olá a todos!

    Tenho uma tabela tblFinanceiro em que os campos finCode, finData, finVencimento, finCredito, finDebito devem aparecer no formulário contínuo na ordem crescente do campo finVencimento. Até mesmo para saber o saldo que terei no futuro.

    Usei a seguinte consulta: Saldo: DSoma("[finCredito] - [finDebito]";"tblFinanceiro";"finCode <= " & [finCode])) e retornou a sequência de acordo com a ordem dos códigos. Mas há um problema. Como em vários casos lançarei de uma só vez 12 parcelas que vencerão mês a mês, então terei 12 registros e a ordem no "Saldo" ficará divergente.

    Tentei fazer tal consulta usando "finVencimento <=" & [finVencimento], mas retorna o saldo de toda a cadeia de registros repetido em cada linha.

    Depois fiz SALDO: (SELECT Sum(finCredito - finDebito) FROM tblFinanceiro AS financeiro WHERE financeiro.finVencimento <= tblFinanceiro.finVencimento ). O resultado ficou próximo do que esperava. Dá a soma de crédito - débito para o dia de vencimento, só que agrupado pelos lançamentos com a mesma data de vencimento. Assim:
    Código Vencimento Saldo
    24 12/12/15 10.000,00
    45 12/12/15 10.000,00
    67 12/12/15 10.000,00

    O que preciso é de uma consulta que dê o saldo escalonado linha a linha ordenado pelos vencimentos.
    Código Vencimento Saldo
    24 12/12/15 5.000,00
    45 12/12/15 2.000,00
    67 12/12/15 3.000,00

    Por gentileza, alguém poderia me auxiliar?
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3633
    Registrado : 29/06/2012

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Noobezinho em 8/11/2015, 11:17

    Héverson

    É isso que pretende?

    [Resolvido]Saldo linha a linha 16aazc3


    Se sim, aqui está o código para a caixa de texto:

    =DSoma("[Crédito]-[Débito]";"[tbl_somacorrente]";"[iD]<=Formulários!frm_Saldo!id and [Data Movimento] =Formulários!frm_Saldo![Data Movimento]")
    Formato para crédito: "R$ "#.##0,00
    Formato para débito:  "R$ -"#.##0,00
    Para saldo: "R$ "#.##0,00;"R$ -"#.##0,00
    Substitua para os nomes do controles do teu aplicativo.
    Na folha de propriedade do formulário em Fonte de Registro,clique  no botão ... (três pontos)
    e cria a consulta para poder colocar a data de vencimento em ordem crescente.



    [ ]'s


    Última edição por Noobezinho em 8/11/2015, 12:12, editado 1 vez(es)
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Assis em 8/11/2015, 12:08

    Noob
    O que é a ( somacorrente) ?
    Nome de campo ou tabela.




    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3633
    Registrado : 29/06/2012

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Noobezinho em 8/11/2015, 12:18

    Assis

    Vou deixar para aprender.

    Embora tenha pego um código de um outro exemplo e modificado,
    se conhece a função DSoma() ou Soma() já saberia.

    Mas para esse pergunta te digo isso:

    Digite DSum() ou Sum() na página do VBA que é o mesmo
    que DSoma() e Soma() respectivamente, mudando apenas a virgula para
    ponto e virgula.
    Clique sobre a palavra com o rato (mouse)  e aperte F1

    Bom estudo  Wink
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Assis em 8/11/2015, 12:31

    Tbl
    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    hheverson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 24/07/2015

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  hheverson em 10/11/2015, 23:15

    Caro Noobezinho,

    Como diria o filósofo: "algo de errado não está certo".

    Veja na iD 12 que o saldo deveria ser R$10,00 e não R$0,00.

    O problema é fazer com que o DSum faça a soma do crédito - débito na ordem crescente da data de movimento e depois na ordem crescente da id.

    O saldo futuro tem que aparecer linha a linha obedecendo à sequência de data de movimento e id. Se puser só de data de movimento, então teremos um saldo agrupado pela aquela data específica.

    Imagine um movimento de contas a pagar. O lançamento é feito na ordem de iD e os vencimentos podem ser iguais ou não a outros lançamentos.

    Obrigado por enquanto!

    Sds,

    Héverson
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Avelino Sampaio em 11/11/2015, 07:40

    Caros colegas,

    sugiro abandonarem o Dsum() para cálculo de saldo no Access. Isso é um desastre para o desempenho do seu aplicativo. Pode parecer estranho mas é muito melhor armazenar o saldo na tabela, usando o recordset.

    Outra questão - imagina vc ter 30000 registros nesta tabela. Vc irá usar o Dsum() para vim calculando o saldo desde o primeiro registro ??????

    Veja um pouco do assunto neste tópico:

    https://www.maximoaccess.com/t10778-saldo-de-conta-corrente

    E veja também este meu artigo:

    http://www.usandoaccess.com.br/tutoriais/movimento-bancario-saldo-linha-a-linha.asp?id=1#inicio

    Sucesso!



    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    avatar
    hheverson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 24/07/2015

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  hheverson em 11/11/2015, 22:23

    Senhores,

    A questão já nem é mais sobre DSum ou Sum no SQL... A questão é: como fazer com que o saldo futuro esteja calculado linha a linha na sequência de registros <= sequência de registros e <= ao vencimento? Já fiz a instrução SQL e de todas as formas que tentei não obtive resultado. Sei que o DSUM é danoso. Tanto é que se lerem na minha primeira postagem verão que tentei: (SELECT Sum(finCredito - finDebito) FROM tblFinanceiro AS financeiro WHERE financeiro.finVencimento <= tblFinanceiro.finVencimento ).

    Sei como é o procedimento do Avelino e tal. Mas a minha situação está na cláusula WHERE.

    Abraços!

    Héverson
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1246
    Registrado : 07/12/2011

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  tauron em 12/11/2015, 00:24

    hheverson, espero que tenha olhado no link disponibilizado pelo mestre avelino pois adaptei o exemplo dele em um bd e hoje trabalho com movimentação de apenas 15 contas.
    Cláudio Más
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Cláudio Más em 12/11/2015, 10:50

    Olá hheverson, poderia enviar um arquivo com a tabela preenchida com os dados que geraram seu exemplo, e também a consulta?
    avatar
    hheverson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 24/07/2015

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  hheverson em 12/11/2015, 18:12

    Caro Cláudio,

    Obrigado pela atenção.

    Segue um exemplo do que tenho conseguido conforme classificação pelo código chave "id". Como expliquei, preciso que o saldo esteja ordenado pela data de vencimento crescente.

    Da forma que está, ele dá o saldo linha a linha buscando a chave "id".

    Segue o bd exemplo para ver e tentar algo: https://www.dropbox.com/sh/9en5snz7d5v2my2/AABm0mr3nYDVxaa2MSHPe7qla?dl=0

    Abraços,

    Héverson
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3633
    Registrado : 29/06/2012

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Noobezinho em 12/11/2015, 18:49

    Héverson

    Uma imagem vale mais que mil palavras,

    Por que não faz uma imagem como eu fiz, demonstrando

    o resultado pretendido?

    avatar
    hheverson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 24/07/2015

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  hheverson em 12/11/2015, 20:41

    Caro Noobeziho,

    Segue abaixo:

    [Resolvido]Saldo linha a linha 34nk0mo
    Cláudio Más
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Cláudio Más em 12/11/2015, 21:34

    Héverson, vê se essa consulta atende:

    Código:
    SELECT vencimento, credito, debito, (SELECT Sum(credito - debito) FROM
    (SELECT A.*, (select count(*) from tblFinanceiro where [A].[vencimento] & [A].[id]>=[vencimento] & [id]) AS Id2
    FROM (SELECT vencimento, id, credito, debito FROM tblFinanceiro ORDER BY vencimento, id) AS A
    ORDER BY A.vencimento, A.id) AS financeiro
    WHERE financeiro.vencimento <= B.vencimento and financeiro.id2 <= B.id2) AS Saldo
    FROM (SELECT A.*, (select count(*) from tblFinanceiro where [A].[vencimento] & [A].[id]>=[vencimento] & [id]) AS Id2
    FROM (SELECT vencimento, id, credito, debito FROM tblFinanceiro ORDER BY vencimento, id) AS A
    ORDER BY A.vencimento, A.id)  AS B

    Conforme lembrou bem o Avelino, verifique a performance com uma quantidade grande de registros.
    Se possível, não apenas 30.000, pelo menos 300.000 registros.
    Apesar de não usar DSum(), subqueries também podem impactar.
    cleverson_manaus
    cleverson_manaus
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1009
    Registrado : 23/09/2011

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  cleverson_manaus em 12/11/2015, 23:45



    Noobezinho,




    Não consegui o seu exemplo apenas o do Heverson.



    Acredito que o referencial que vc fala para ordenar os lançamentos dos vencimentos e saldos de um ou vários meses para uma ou várias contas, seria um campo no formato MM/YYYY.

    Ou ainda usando recordset para gravar os saldos diretamente em uma tabela chamada SALDO_MENSAL formada pelo campos:

    - CódigoSaldo;
    - Mês/Ano;
    - CódigoConta;
    - SaldoAnterior;
    - SaldoDevedor;
    - SaldoCredor;
    - SaldoAtual;
    - MêsEncerrado(Sim/Não)


    E complementando com um campo chave estrangeira da tabela SALDO_MENSAL na tabela dos Lançamentos.


    Abraços,




    .................................................................................
    afro

    "É fazendo que se aprende a fazer aquilo que se deve aprender a fazer."(Aristóteles)
    - Dúvida resolvida!!! Marcar o tópico como resolvido!!!
    avatar
    hheverson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 24/07/2015

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  hheverson em 13/11/2015, 20:43

    Cláudio, você é o cara!

    Quando vier a Joinville me avise. Terei que pagar uns dez canecos de chopp! Ou me diga a conta que mando uma grana para tomar uma por aí onde você mora kkkkk...

    Funcionou em partes... Mas posso lidar com o resto. Farei como instrui Avelino.

    [img][Resolvido]Saldo linha a linha 9a2y49[/img]

    Veja que ele corta a soma na virada do mês. Sabe como resolver isso?


    De qualquer forma isso reflete como devemos expandir as nossas mentes além da caixinha no access. Um objetivo tão simples para ser feito, em Excel por exemplo, e tão complexo no Access. Tem que pensar como Boolean mesmo.

    Abraços!
    Cláudio Más
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Cláudio Más em 17/11/2015, 11:54

    Olá Héverson,

    Somente agora vi sua resposta, desculpe a demora.
    Poderia enviar novamente um arquivo somente com a tabela que está gerando os dados na imagem?
    E também a consulta com o resultado.

    Abraços
    avatar
    Carlos Cruz
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 59
    Registrado : 26/02/2014

    [Resolvido]Saldo linha a linha Empty Saldo linha a linha para fluxo de caixa

    Mensagem  Carlos Cruz em 15/5/2020, 18:39

    Por favor, se alguém puder me ajudar, desde já agradeço! Banco de Dados anexo.

    Neste fluxo de caixa, como fazer para que o saldo final da linha não se repita e mostre correto linha a linha?

    Na consulta      9ConsultaDa7_Final      a fórmula que utilizo é “abaixo”


    Fluxo: Format(Nz(DSoma("[Vlr_Rec_Pagar]";"7RecebeDadosDa6";"DataNr <=" & [DataNr]);[Vlr_Rec_Pagar]);"Moeda")


    Se abrir o fluxo, veja que dia 20 tem pagamentos e recebimentos, e a coluna fluxo (saldo) nestes dias se repetem. Como posso fazer para não repetir e mostrar o saldo correto linha a linha?

    Obrigado!
    Anexos
    [Resolvido]Saldo linha a linha AttachmentFluxoDeCaixa.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (52 Kb) Baixado 21 vez(es)
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Saldo linha a linha Empty Re: [Resolvido]Saldo linha a linha

    Mensagem  Assis em 15/5/2020, 19:08

    Carlos

    A data repete não pode ser .

    Para estudo, veja
    Anexos
    [Resolvido]Saldo linha a linha Attachmentsaldo Assis II.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (52 Kb) Baixado 25 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Carlos Cruz
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 59
    Registrado : 26/02/2014

    [Resolvido]Saldo linha a linha Empty Saldo linha a linha para fluxo de caixa

    Mensagem  Carlos Cruz em 15/5/2020, 21:35

    Olá Assis, desde já agradeço sua atenção.
    O exemplo que você me passou já estudei anteriormente, ocorre erro se fizer um lançamento com data anterior as já existentes, pois preciso um fluxo de caixa com data crescente/sequência.
    Eu sei que você sabe que isso ocorre porque o campo IdSaldo que está na tabela e na fórmula da consulta vem com numeração automática na tabela.
    Não consegui, mas para tentar solucionar isso, eu criei um novo campo DataNr tipo calculado na tabela e com formato numérico, que mostra a data como numérico, na consulta alterei na fórmula de IdSaldo para este novo campo DataNr e também para classificar este novo campo DataNr em ordem crescente.
    O saldo não fecha da mesma forma conforme meu BD que anexei anteriormente.
    Veja que no BD o saldo não fecha linha a linha, mas fecha na última data repetida, digamos, serve mas tem esse detalhe.
    Se tiver mais alguma dica, agradeço Assis. Abraço.
    avatar
    Carlos Cruz
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 59
    Registrado : 26/02/2014

    [Resolvido]Saldo linha a linha Empty (Resolvido)Saldo linha a linha para fluxo de caixa

    Mensagem  Carlos Cruz em 18/5/2020, 13:25

    Acho que o banco de dados que postei na mensagem 18 em 15/05/2020 é o mais recomendado, visto que o outro bd ocorre erro quando data repetida ou data anterior a última lançada!
    Se alguém ainda puder ajudar, agradeço.
    Abraço a todos

      Data/hora atual: 3/12/2020, 16:43