Página 1 de 1

Consulta SQL múltiplas condições

Enviado: 06 Mai 2021 às 10:09
por ViniciusMarcelloAS
Olá caros companheiros de programação VBA. Se alguém puder me ajudar com esta questão fica aqui meu agradecimento!
Estou tentando realizar uma Consulta SQL através de um formulário VBA em Excel e preciso que ela me traga a soma por mês dos valores de todos os recibos de um indivíduo que eu determine!
Ex:
Nome: Fulano de Tal
Janeiro: R$ 3.500,00
Fevereiro: R$ 3.000,00
Etc...
Já fiz todos os procedimentos de abertura, conexão e seleção de parâmetros do arquivo( "Select Sum(Valor) as vTotal, Individuo From [Arquivo.TXT] Where Individuo = 'Fulano de Tal' and Periodo = #01/01/2020# Group by Individuo"), entretanto essa busca funciona somente para o período de Janeiro, já que informei no 'Where' o mês de Janeiro, se tento realizar uma nova Query, o arquivo dá erro de BOF ou EOF. Não sei como realizar consultas individuais das somas para todos os meses e salvar na minha planilha. Espero ter conseguido expressar minha dúvida.

Re: Consulta SQL múltiplas condições

Enviado: 07 Mai 2021 às 05:09
por CursoDeExcelGratis
estimado @ViniciusMarcelloAS nunca fiz consulta em txt, nem sabia que dava pra fazer ! como eu sempre falo, vivendo e aprendendo ! mas ao que parece depois da consulta, imagino que o ponteiro do recordset deve estar ficando no fim do arquivo , até pq faz sentido que ele tenha que passar por cada linha do arquivo para fazer a consulta. Experimenta fazer um recordset.movefirst antes da proxima consulta.
A opção do movefirst depende de como vc abriu seu recordset , se vc abriu com um ponteiro forward only ( somente para frente ) ahi não vai funcionar, tem que ser um ponteiro dinâmico.
Se mesmo trocando o tipo do recordset não ser certo, depois de vc usar os dados da query experimenta dar um new na sua variavel do recordset , assim ele destroi aquele ponteiro e inicia tudo de novo.
set rst = new adodb.recordset se for ADO que vc está usando , claro.

se não der certo, vc poderia retornar todos os meses de uma vez, colocando o periodo no group by e tirando ele do where

att

Curso de excel Gratis :-) mas sei SQL também :-P