Filtros sequenciais V.3 – Para formulários e subformulários

Principal

Nesta versão, os formulários contendo os filtros podem ser usados como formulários ou como subformulários.

A função contida no exemplo se encarrega de descobrir se o usuário está usando apenas um formulário ou se o formulário está sendo usado como subformulário.

No exemplo existem 3 formulários:

Se você abrir o formulário Principal, os formulários [FiltrosSub] e [SubForm1] aparecem como subformulários e você pode filtrar os dados dos subformulários de forma independente e também remover os filtros de forma independente.

No entanto, se resolver usar os os formulários [FiltrosSub] e/ou [SubForm1] como formulários, a coisa também funciona.

Como na versão anterior, você pode fazer uma filtragem sequencial , em qualquer ordem, de campos dos seguintes tipos:

Texto; Data/Hora; Sim/Não; Autonumeração; Byte; Inteiro; Inteiro Longo; Simples; Duplo; Decimal.

Você pode criar quantas combinações de filtros quiser. As caixas de combinação dos filtros ainda não usados apresentam apenas os dados compatíveis com a filtragem anterior.

O exemplo é acompanhado de uma Ajuda que mostra como montar os formulários e os filtros e dá outros detalhes do programa.

 

BaixarZIP

Access – Filtros sequenciais – Versão 2

Trata-se de uma função que permite a filtragem sequencial, em qualquer ordem, dos registros de um formulário para campos dos seguintes tipos :

Texto; Data/Hora; Sim/Não; Autonumeração; Byte; Inteiro; Inteiro Longo; Simples; Duplo; Decimal

Você pode criar quantas combinações de filtros quiser. As caixas de combinação dos filtros ainda não usados apresentam apenas os dados compatíveis com a filtragem anterior.

Para usar, você deve importar a função para o seu banco de dados, criar ou adaptar caixas de combinação para uso como filtro segundo determinadas regras e anexar a elas um procedimento de evento “Ao Atualizar” que faz a chamada da função. No exemplo essas etapas são descritas em detalhes (botão Como Usar).

O código está comentado.

Veja os termos de uso na página Sobre

Antes de baixar, veja este exemplo que é muito mais versátil

Atualização 0.3 (15/3/2012) 

Nesta versão foi incluída a possibilidade de se ter filtros classificados em ordem decrescente.

Nas versões anteriores independente da classificação inicial do filtro, após a primeira filtragem ou a remoção do filtro, todas as caixas de combinação dos filtros eram classificadas em ordem crescente.

Se usou a versão anterior (V2 0.2) em seus programas, basta substituir o módulo FiltrosSequenciaisV2 pela versão deste exemplo.

Para usar, siga as instruções mostradas ao clicar o botão “Como usar” do exemplo.

.

Orientações

Quando a Origem do registro do seu formulário tem uma associação do tipo 1 para muitos, caso exista um registro do lado 1 sem um dado associado no lado muitos ,  o que vai ocorrer é que o registro com esse dado não vai aparecer no formulário . Para que isso não ocorra, você deve alterar o tipo de associação como mostrado abaixo.

Atenção : Esta instrução de montagem não está incorporada no exemplo !

A origem do registro do seu formulário tem que ser uma instrução SQL (Select ….) . Se você usar o nome da tabela como origem do registro vai dar erro ! 

28/9/2012

.

Pergunta interessante colocada nos comentários :
Como imprimir os resultados da filtragem do formulário em um relatório ?

Resposta : No seu formulário que tem os filtros, coloque um botão para abrir o seu relatório.

Na janela propriedades do relatório, na aba Dados, troque a opção Filtro ativado de Não para Sim.

No evento AoAbrir do relatório, coloque a seguinte instrução:

Me.Filter = varFiAc

Alternativamente você pode deixar a opção Filtro ativado como Não e colocar no procedimento Ao Abrir do relatório a instrução:

Me.FilterOn = True
Me.Filter = varFiAc

Obs: Só para garantir, certifique-se que a origem dos registros do seu relatório é a mesma da origem dos registros do seu formulário !

Histórico das versões 

Por favor, antes de tentar modificar a função ou postar um comentário, clique aqui.

Filtros sequenciais – Revisão

Foram feitas correções nos comentários e corrigida a referência ao nome da tabela na cláusula FROM … na construção da SQL que serve de origem do registro do formulário.

Página do exemplo

Cláusula WHERE – Como usar com datas e números decimais

Artigo que explica o que é e como escrever  a Cláusula WHERE no Access .

Mostra como formatá-la para uso com datas e números decimais.

Clique na figura para ver as janelas do exemplo que acompanha o artigo.

Ver o artigo

Access exemplo – Filtros sequenciais para subformulários

Mostra como criar uma sequência de filtros que vão afunilando os resultados de um subformulário

Permite iniciar a filtragem em qualquer campo . As caixas de combinação dos filtros ainda não usados apresentam apenas os itens que atendem aos critérios anteriores.

Veja também :  Filtros sequenciais em formulário

Veja a nova versão mais completa : Versão  2

Mais informações

 

Veja os termos de uso na página Sobre

Access exemplo – Filtros sequenciais em formulário

Mostra como criar uma sequência de filtros que vão afunilando os resultados.

Permite iniciar a filtragem em qualquer campo .  As caixas de combinação dos filtros ainda não usados apresentam apenas os itens que atendem aos critérios anteriores.

Mais informações

Veja a nova versão que filtra outros tipos de campo : Filtros Sequenciais V2 

Veja também : Filtros sequenciais para subformulários

Baixar o arquivo

Veja os termos de uso na página Sobre