Notifications
Clear all

Pesquisa no VBA

10 Posts
3 Usuários
0 Reactions
1,771 Visualizações
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Bom dia pessoal,
O Projeto está indo, mas gostaria de uma ajuda com a pesquisa. Segue em Anexo para vocês poderem ver.
Quando eu quiser procurar alguma informação no banco de dados, gostaria que ele retornasse todos os resultados encontrados, por exemplo:

Clicando no botão pesquisa, ele deve pesquisar o que foi digitado no meu banco de dados e retornar os resultados.
Hoje, eu consegui começar a fazer ele pesquisar 1 valor e retornar os resultados, mas ele está com um "Atraso".
Quando eu pesquiso a primeira vez, ele não retorna nada. Pesquisando novamente o mesmo valor ai sim ele retorna o resultado correto.
Exemplo:
Pesquiso "Jorge", ele não retorna nada.
Pesquiso "Jorge" novamente e ele retorna "Jorge".
Pesquiso "Rafael" e ele retorno "Jorge" novamente.
Pesquiso "Rafael" e ele retorna "Rafael". Entenderam?

Se possível, gostaria de fazer a pesquisa com mais de 1 critério (2). Não obrigatoriamente, apenas se os 2 campos forem preenchidos, e para ficar bom, ao inves de retornar os resultados no próprio form (como estou fazendo agora), ele retorna em uma lista (como se fosse o excel mesmo).

Alguém pode me ajudar com isso??

Att,
Jorge.

 
Postado : 25/09/2012 12:53 pm
(@lovera)
Posts: 90
Estimable Member
 

Carinha, a parte de puxar o relatorio, tava dando em branco porque na pesquisa tu pedia para abrir o formulario Relatorio de Serviços e depois para carregar as informações. E isso num tava rolando.

Vc devia ter feito o contrario.
Eu coloquei o with antes e depois chama o formulario para exibir as informações. Vai de boa.
Testa ai.

Quanto a pesquisa dupla eu não entendi muito bem. Explica de novo.

Me dá um joinha!

 
Postado : 25/09/2012 1:55 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Opa, agora funciona, mas não entendi bem o pq...você basicamente adicionou dois With apenas, certo?...enfim...seu joinha ta garantido!

Quanto a pesquisa dupla, seria assim:
Posso pesquisar por "Jorge", como voce pode ver, no exemplo, existem 2 linhas com "Jorge", então ele deveria retornar não o Form, mas um listview (acho que o nome é esse) com todos os resultados encontrados.
Posso pesquisar pelo Cliente, e funciona igual ao exemplo acima.
Posso pesquisar por Técnico E por Cliente, e ele retorna apenas as linhas que contenham as duas informações.

Conseguiu entender?

 
Postado : 25/09/2012 2:13 pm
(@lovera)
Posts: 90
Estimable Member
 

Meu velho segue o arquivo para testes.

Tomara q dê certo. Esse dai com certeza ganhei um fio de cabelo branco.
Foi um desafio incrivel.

Levei em consideração que o nome do tecnico pode aparecer varias vezes mas o nome da ficha não. O nome da ficha vai ser unico. Então a busca leva a 3 situações.

situação 1 textbox da ficha e do tecnico estiverem em branco vai aparecer a mensagem para preencher uma das duas.

situação 2 Se a textbox da ficha estiver preenchida ele faz aquela busca q vc tinha configurado antes com o comando find

situação 3 Se a textbox da ficha estiver em branco e a do tecnico preenchida ele verifica quantas vezes o nome do tecnico aparece. Se for uma ele faz a busca com o find se for mais de uma. Ele ativa um looping que copia as informações para uma planilha de apoio q está oculta nomeia uma listinha e aparece o formulario com a listbox com as opções. Vc seleciona uma e o formulario de pesquisa é prenchido com a textbox da ficha. indo para a situação 2

Me dá uns vinte joinhas!!!!!!!!!!!!

 
Postado : 28/09/2012 7:07 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Macabruz,

Estava olhando seu caso e realmente me impressiona a dificuldade que a maioria encontra em gerar listas de registros únicos associadas a pesquisas em base de dados. Principalmente via macro, que requer uma codificação bem abrangente.

Pois bem, no anexo demonstro algumas etapas do processo de geração de listas únicas, combos dependentes e seleção de colunas para visualização de relatórios oriundos de bases de dados grandes.

Funciona assim, vc seleciona uma categoria no 1o combo laranja e refina a consulta no combo abaixo (sempre com a alternativa "TODOS"). Ao lado vc determina que colunas quer exibir em seu relatório (marque ou desmarque com um x). O que está pintado em amarelo são as categorias que incluí no combo laranja.

Sem VBA. Só fórmulas.

Me avise. Montei rapidinho e não testei. Mas acredito piamente que funciona.

Abs,

 
Postado : 30/09/2012 1:06 am
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

@MANDRIX - Muito Obrigado! Seu joinha já está ai!
Cara, fantástico o que você fez...show de bola mesmo..é tão bacana que eu ainda to perdido! Entendi como fazer a filtragem...agora quero ENTENDER a programação que você fez! Conheço o excel relativamente bem perto da maioria..mas convenhamos que você não faz parte dessa maioria! to bem perdido com o que você fez lá! rs Me da um tempo pra analisar e aprender o que você fez! (Como colocar "2 planilhas" na mesma?? q q é isso?)
Enfim, ficou mesmo show de bola, muito eficiente! Mas não é bem nessa linha que eu estava pensando! Preciso falar com meu Chefe...ele que ta definindo como ele quer a coisa..eu to só tentando fazer!

@Lovera - Muito Obrigado também!! Infelizmente só cabe 1 joinha, mas merece mais sim! Bem como o Mandrix!
Seu trabalho também está show de bola! está bem próximo do que eu tinha idealizado. Na verdade existe a 4º situação..onde preenchendo os 2 campos ele já apresenta apenas os resultados que satisfazem as 2 condições. Ai, na listview que você fez também apareceriam mais informações...
Mas é bem o que eu queria mesmo....insere as condições..ele busca e retorna uma Listview! Preciso ver como você fez isso tb!!

Enfim pessoal, vou analisar aqui e ver qual condição vai satisfazer melhor as necessidades (Eu nem imaginava ser possível fazer como o Mandrix fez)..
Obrigado ao dois!!

Att,
Jorge.

 
Postado : 03/10/2012 7:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cara,

Pra ficar 100% mesmo eu ainda teria que tratar as formatações e melhorar a eficiência de algumas capturas. Estamos num fórum VBA e não sou muito querido por aqui pois manejo quase que exclusivamente fórmulas. Por outro lado vejo uma ignorância (no bom sentido, por favor) generalizada quanto ao que se pode ou não fazer através de fórmulas. É quase que instintivo (automático mesmo) a busca de soluções via macro quando há outras possibilidades claras e evidentes.

Longe de mim diminuir a importância das macros. Mas acho que há desinformação sobre o poder da plataforma (com mais de 1 milhão de linhas por aba então, dá pra fazer chover). Em suma, legal que vc tente entender. Não é tão complicado quanto parece.

Acho que vc deve seguir com a macro junto a seu chefe e manter minha cópia como possibilidade paralela, para checagem/estudo/validação...

Abs e boa sorte.

 
Postado : 03/10/2012 7:45 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

É, eu sei que o Excel é uma bela ferramenta! Gosto muito de trabalhar com ele e faço muitas coisas nele.
Eu havia começado o projeto pensando só em Excel (Planilhas), mas meu chefe disse: "Não da pra fazer alguma espécie de formulário para ir sendo preenchido?"...e ai eu sabia que o VBA existia..mas não sabia nadinha de nada de como programar lá...Só me aventurei pois conheço um pouco de programação para outras plataformas...tipo PIC..CLP...ai pensei que pudesse aproveitar algo...Trabalhar com Macro é novidade pra mim, estou tentando aprender.

Alguma formulas que você usou eu nunca tinha usado...por isso vou ter que aprender a estrutura de cada uma para poder entender o que você fez! kkk
Mas vamo que vamo...Só me falta tempo pra isso! Essa planilha só faço quando sobra um tempinho...

T+ ai!

 
Postado : 04/10/2012 5:00 am
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Pessoal, pergunta rápida! Mas usando só fórmula..sem vba...

Tenho uma coluna onde estão os clientes..linha a linha...em uma determinada célula quero começar a escrever o cliente e ele já completa pra mim...igual ta acontecendo na combobox do form que ta rolando em anexo...tem como fazer? como?

 
Postado : 04/10/2012 5:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pessoal, pergunta rápida! Mas usando só fórmula..sem vba...

Tenho uma coluna onde estão os clientes..linha a linha...em uma determinada célula quero começar a escrever o cliente e ele já completa pra mim...igual ta acontecendo na combobox do form que ta rolando em anexo...tem como fazer? como?

Que eu saiba não.

Abs,

 
Postado : 04/10/2012 5:57 am