Como é demonstrado no BD do link, em um formulário existe:
- 1 Subformulário (do tipo formulário contínuo) onde são exibidos os dados de uma tabela (Produtos),porém o subformulário obtém estes dados por meio de uma consulta (ConsProduto),sendo esta classificada por ordem de data decrescente .
- 1 Caixa do tipo combobox(CbxDados), com origem de dados informada por uma lista de valores ( CODIGO, PRODUTOS, DETALHES.)
- 1 Caixa de texto vazia(txtPesquisa), para que o usuário digite a informação que deseja procurar.
- 1 Caixa de texto vazia(txtDatade), para que o usuário digite uma data para início do intervalo de registros a serem exibidos.
- 1 Caixa de texto vazia(txtDataate), para que o usuário digite uma data limite para o intervalo de registros a serem exibidos.
- 1 Botão(btnProcurar)que teria como função, executar a filtragem do subformulário.
- 1 Botão(btnTodas) que teria como função, remover o filtro e portanto, fazer com que o subformulário exiba todas as informações.
A função filtro a ser aplicada pelo botão(btnProcurar), seria baseada em dois fatores:
1º - Buscaria a informação que consta em CbxDados, para saber qual tipo de campo filtrar, e depois pegaria o texto digitado em txtPesquisa e realizaria o filtro, mas sem que o usuário precise digitar toda a informação, ex:
Para filtrar o subformulário, em busca dos registros referentes ao PRODUTO > ARROZ, o usuário selecionaria na combobox CbxDados a palavra PRODUTO, e escreveria em txtPesquisa algo como: AR ou ARR, ou ainda ARROZ, ou seja, apenas parte da informação, e então ao clicar no botão btnProcurar o filtro seria executado.
2º - Outro fator seria o período em que os registros foram cadastrados, que funcionaria em conjunto com o filtro acima citado, ou listaria o intervalo de data de registros cadastrado. Se por exemplo o usuário queira saber quantos registros referente ao produto arroz foram cadastrados no de fevereiro/2012, ele seguiria os passos descritos anteriormente, e acrescentaria ao formulário as informações de data inicial (01/02/2012)no campo txtDatade e final (29/02/2012)no campo txtDataate e então clicaria no botão btnPesquisa para que o filtro seja aplicado ao subformulário.Ou se ele quiser listar todos os registros deste período, informaria apenas o período, sem selecionar a combobox, e sem digitar algo em txtPesquisa.
Espero ter sido mais claro.
Link do BD http://speedy.sh/gVbvM/Exemplo-Filtragem.rar