Página 1 de 4

Pesquisa dupla na mesma coluna

Enviado: Qui Out 22, 2009 3:09 pm
por Neri
Boa tarde Tomás
Eu obviamente não quero somente pedir, mas tb agradecer pelo trabalho que vc fez e colocou a disposição do público. este cadastro realmente já me ajudou muito.

Mas como ser humano, estamos sempre tentando evoluir, e veja agora a minha dúvida.

Eu alterei o cadastro para um controle de contas, nele eu tenho contas pagas, não pagas e pagas parciais.
A minha coluna que informa isto é a coluna E. Gostaria de saber se é possivel fazer um filtro avançado, que deixaria no mesmo relatório contas não pagas e pagas parciais. Isto é possível. Pode dar uma dica.

Abraço
Nerí

Re: Pesquisa dupla na mesma coluna

Enviado: Sex Out 23, 2009 10:36 am
por webmaster
Neri,

Quando menciona filtro avançado, você se refere a funcionalidade do próprio Excel ou do formulário de pesquisas?

Abraços

Re: Pesquisa dupla na mesma coluna

Enviado: Sex Out 23, 2009 12:42 pm
por Neri
Tomás

Na verdade eu queria dizer assim: "como se fosse um filtro avançado na planilha excel". Mas veja, vou explicar novamente:
O filtro que vc desenvolveu onde posso pesquisar por cliente, endereço, etc... Eu peguei este filtro e alterei ele para um contas a pagar. Após preencher a minha tabela de contas a pagar eu apliquei este filtro nos tipos de pagamentos que tenho na relação. Nesta relação tem 3 tipos de situações de pagamentos: Pago total, Não Pagos e Pagos parciais. Aplicando este filtro consigo pesquisar somente uma situação de pagamento por vez: ou pesquiso os pagos Totais, ou pesquiso Não pagos ou pesquiso os Pagos Parciais. Mas eu queria implementar esta pesquisa. Gostaria de aplicar o filtro de uma só vez para ver os pagos parciais e os não pagos (por exemplo).
Veja que das 3 situações que possuo, gostaria de fazer um relatório envolvendo duas situações.
Como eu tenho uma combobox com as opções, chamada cbopgto eu implementei colocando duas combo cbopgto. Chamando um de cbopgto e outra de cbopgto1. Mas acontece que as duas irão procurar na mesma coluna da planilha e não funciona.
Tem como fazer isto?
Abraço

Re: Pesquisa dupla na mesma coluna

Enviado: Sex Out 23, 2009 4:31 pm
por webmaster
Neri,

Funciona sim! No SQL, é possível aplicar mais de um filtro, mas nesse caso, a cláusula WHERE teria que considerar o OR ao invés do AND, por exemplo:

SELECT * FROM Contas WHERE Situacao = 'Pago total' OR Situacao = 'Não Pagos'

Mas é preciso mudar o código para suportar isso, se essa for mesmo a sua necessidade. No seu caso inclusive, aconselharia colocar as Situações em um ListBox com MultiSelect. Assim o usuário seleciona nele os que quer filtrar. Fica melhor não acha?

Vamos evoluindo...

Re: Pesquisa dupla na mesma coluna

Enviado: Seg Out 26, 2009 6:44 am
por Neri
Bom dia Tomás

Eu não sei se conseguirei fazer isto. Mas realmente acho que dará certo. Veja que se, a gente fizer isto diretamente na planilha, isto seria mais fácil utilizando o filtro avançado (este é muito bom).

Mas a minha necessidade é fazer no vba, pois eu não gostaria de deixar a planilha para ser visualizada pelo usuário.

Vou tentar fazer a alteração. Mas vou ficar atento as suas observações. Caso também faça alguma alteração, logicamente irei comparar ou até adaptar ao seu modelo.

Abraço

Re: Pesquisa dupla na mesma coluna

Enviado: Seg Out 26, 2009 9:08 am
por webmaster
Neri,

A tela de pesquisa retorna um ADO.Resultset e o "coloca" em um ListBox. Porém, não há problema algum em colocar o resultado na planilha com um CopyFromRecordset.

Se precisar de ajuda, estamos aí!

Abraços

Re: Pesquisa dupla na mesma coluna

Enviado: Seg Out 26, 2009 9:54 am
por Neri
Tomas
Realmente eu não sei fazer isto. Se vc fizer, agradeço muito. Eu nunca fiz isto, e não sei como proceder.

Abraço

Re: Pesquisa dupla na mesma coluna

Enviado: Seg Out 26, 2009 2:41 pm
por webmaster
Neri,

O método CopyFromRecordset copia os dados de um Recordset para uma Worksheet a partir de uma célula informada. Tem um exemplo dele (o melhor aliás) feito pela própria Microsoft. Faça o download dele neste link:

http://www.tomasvasquez.com.br/blog/mic ... samplesxls

Acione as macros, ative a planilha ADO (Objeto de dados ActiveX) e execute o exemplo. É possível ver o código. Este exemplo é dependente do banco de dados Northwind.mdb, que vem com as intalação do Office (até o 2003).

Abraços

Re: Pesquisa dupla na mesma coluna

Enviado: Qua Out 28, 2009 10:31 am
por webmaster
Neri,

Sua necessidade me "inspirou" a fazer algumas modificações na planilha. Mudei o seguinte:

Retirei o campo txtCidade do filtro
No lugar, adicionei um ListBox MultiSelect com as Cidades exclusivas (filtro exclusivo). No caso, usei também ADO com DISTINCT, mas poderia ser feito da forma tradicional, ou seja, com os registros de uma outra planilha através de um Do While Not IsEmpty....
Mudei o algoritmo de filtro para tratar o ListBox e montar a cláusula WHERE dele com OR, diferente do que faz a função MontaClausulaWhere
Adicionamente, coloquei uma rotina de exportação, que faz com que os dados do filtro atual sejam exportados para uma nova pasta de trabalho via CopyFromRecordset, como havia mencionado.

O link para a nova versão da planilha é:

http://www.tomasvasquez.com.br/download ... tro_v2.zip

Ainda hoje atualizarei o página do Modelo no blog.

Espero que ajude
Abraços

Re: Pesquisa dupla na mesma coluna

Enviado: Qua Out 28, 2009 4:27 pm
por Neri
Tomas
Dei uma olhada rápida, mas ficou muito show.

Esta classe de "doidos por excel" é muito boa.

Vlw mesmo.

Abração