Soma contínua em consultas, com eficiência
Adquira a assinatura vitalícia do site e passe a ter acesso aos arquivos exemplos, vídeos, revistas, livros e ao kit de montagem de ribbons. Você terá suporte por e-mail, caso necessite tirar dúvidas pontuais. Clique AQUI e veja como obter um dos nossos planos. Clique AQUI e faça uma visita a seção Downloads do site e verifique as centenas de arquivos que estará à sua disposição. Clique AQUI e faça uma visita a seção Vídeos do site e veja a lista que estará disponível ao se tornar o nosso assinante vitalício. Clique AQUI e saiba mais detalhes sobre o kit de montagem de ribbons (deixe seus aplicativos com aspecto profissional).
Apresento mais uma consulta, objeto da minha crítica, tal como justifiquei nesta dica AQUI sobre numeração.
SELECT IdMovimento, DataMovimento, Credito, Debito,
DSum("[Credito] - [Debito]","tblMovimento","idMovimento <= " & [idMovimento]) AS Saldo
FROM [tblMovimento];
Para nos livramos desse desastre de consulta, iremos utilizar a mesma técnica empregada na dica sobre numeração, que é a de utilizar a consulta espelho e um pouco de programação. Observe a consulta exemplo abaixo:
SELECT *, fncSomarConsulta([CampoValor]) As Acumulado FROM NomeTabela;
A função utilizada na consulta é a seguinte:
Faça o login aqui para ter acesso ao código.
Observe a consulta espelho, utilizada para zerar o valor da variável n:
SELECT *, fncSomarConsulta(null) As Acumulado FROM NomeTabela WHERE 1=0;
Esse valor null na função, força o código a passar pela parte vermelha, zerando assim, o valor de n.
Faça o login aqui para ter acesso ao código.
Agora vamos unir as consultas para obter o resultado desejado:
SELECT *, fncSomarConsulta(null) As Acumulado FROM NomeTabela WHERE 1=0
UNION ALL
SELECT *, fncSomarConsulta([CampoValor]) As Acumulado FROM NomeTabela;
A primeira consulta zera a variável n e a segunda consulta apresenta os dados e a devida soma acumulada.
Baixe o Arquivo da dica 86 e rode a consulta qrySomar e veja o resultado no campo Acumulado. Abra a consulta no modo estrutura e veja como foi montada.
Nota 1: A consulta União nos traz um problema que é o da impossibilidade de editar os dados.
Nota 2: Só utilize a técnica aqui apresentada se for estritamente necessário realizar a soma acumulada na consulta.
Para obter saldo linha a linha, estude as técnicas aplicadas neste meu artigo:
Bom estudo!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Vídeo - Aprenda sobre filtragens
Adquira o kit UsandoAccess e aprenda em alta velocidade
Vídeo - Programação de relatórios - Parte 1
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Como carregar o seu menu sem que ele vá para lista de suplementos
2 comentário(s) Willian Rodrigues 13/08/2018 09:21:05 Parabéns! Muito criativa a técnica! silvio 20/02/2017 15:41:36 Mais uma técnica. Parabéns Avelino Sampaio |