Uma grande dificuldade que desenvolvedores em Acces tem é quando é necessário trabalhar com busca em todos os campos, para facilitar o trabalho eu utilizo um modelo padrão para as aplicações que desenvolvo (ultimamente não desenvolvo mais em VBA, Access, VB), mas confesso que sempre adorei e acho uma das ferramentas mais produtivas e que conto nos dedos as pessoas que conhecem de verdade esta ótima ferramenta.
A vantagem de utilizar esta solução é que basta você incluir um campo vinculado no formulário e o método se localização faz o resto :-)
A idéia é bem simples, vou concatenando a string da busca e montando um like de acordo com os controles que existe na tela. Segue o exemplo:
1: Private Sub LocalizarTodosCampos()
2: 'O código abaixo, localiza o critério em qualquer campo do formulário
3: 'Cortesia de Alexandre Minato
4: 'Permitida a distribuição / utilização desde que mantido os créditos
5:
6: If Me.txtFiltro = "<Informe o Filtro>" Then Exit Sub
7:
8: Dim sql As String
9: sql = "SELECT * FROM tblCadastro "
10:
11:
12: Dim contador As Byte
13: contador = 0
14:
15: If Not IsNull(Me.txtFiltro) Then
16: sql = sql + " WHERE "
17: Dim ctl As Control
18: For Each ctl In Me.Controls
19:
20: If ctl.ControlType = acTextBox Then
21: If Len(ctl.ControlSource) > 0 And ctl.Locked = False Then
22: If contador > 0 Then sql = sql + " OR "
23: sql = sql + "(" + ctl.ControlSource + " Like '*' & '" + Me.txtFiltro + "' & '*') "
24: contador = contador + 1
25: End If
26: End If
27: Next
28:
29: End If
30:
31: Me.Form.RecordSource = sql
32: Me.Recalc
33: End Sub
O resultado da pesquisa pode ser visto abaixo:
Bom, podemos ver um Toolip personalizado também que encontrei neste site.
Até a próxima
Minato 8-)
Baixe e Exemplo
1d4c29d2-71f8-4275-90e2-daa7d40cd2a1|2|5.0