Amigos do Maximo ,tenho uma tabela e precisava filtrar ao digitar em uma caixa de texto de um formulario por qualquer parametro dos campos escolhidos e o exemplo abaixo do Mestre Jpaulo me serve bem , porem quando tento adapta lo para mais de uma tabela encontro dificuldade pois da erro 3075.
Tabela em uso dando certo CAD
Gostaria de acrescentar as tabelas FINANCEIRO E ATENDIMENTO
Teria que modificar o codigo para funcionar?
Private Sub LocalizaFacil()
'By JPaulo ® Maximo Access
'pode pesquisar por uma ou mais letras, e para devolver todos os
'registro, basta digitar um asterisco * e bater Enter
'se a caixa de texto estiver vazia, termina o processo de filtragem
If Me.Texto55 = "" Then Exit Sub
Dim strSQL As String
Dim strConta As Integer
'coloca a tabela pretendida no sql
strSQL = "SELECT *FROM CAD "
'inicia o contador a zeros
strConta = 0
'se a caixa de texto não estiver vazia, monta o sql
If Not IsNull(Me.Texto55) Then
strSQL = strSQL + " WHERE "
Dim ctl As Control
For Each ctl In Me.Controls
'percorre todas as caixas de texto do formulario
If ctl.ControlType = acTextBox Then
'se os campos tiverem vinculados e não bloqueados continua a montar o sql para a pesquisa
If Len(ctl.ControlSource) > 0 And ctl.Locked = False Then
If strConta > 0 Then strSQL = strSQL + " OR "
strSQL = strSQL + "(" + ctl.ControlSource + " Like '*' & """ + TodosAcentos(Me.Texto55) + """ & '*') "
'faz a soma dos registros encontrados
strConta = strConta + 1
End If
End If
Next
End If
'monta a origem do formulario para a pesquisa
Me.Form.RecordSource = strSQL
Me.Recalc
End Sub
Tabela em uso dando certo CAD
Gostaria de acrescentar as tabelas FINANCEIRO E ATENDIMENTO
Teria que modificar o codigo para funcionar?
Private Sub LocalizaFacil()
'By JPaulo ® Maximo Access
'pode pesquisar por uma ou mais letras, e para devolver todos os
'registro, basta digitar um asterisco * e bater Enter
'se a caixa de texto estiver vazia, termina o processo de filtragem
If Me.Texto55 = "" Then Exit Sub
Dim strSQL As String
Dim strConta As Integer
'coloca a tabela pretendida no sql
strSQL = "SELECT *FROM CAD "
'inicia o contador a zeros
strConta = 0
'se a caixa de texto não estiver vazia, monta o sql
If Not IsNull(Me.Texto55) Then
strSQL = strSQL + " WHERE "
Dim ctl As Control
For Each ctl In Me.Controls
'percorre todas as caixas de texto do formulario
If ctl.ControlType = acTextBox Then
'se os campos tiverem vinculados e não bloqueados continua a montar o sql para a pesquisa
If Len(ctl.ControlSource) > 0 And ctl.Locked = False Then
If strConta > 0 Then strSQL = strSQL + " OR "
strSQL = strSQL + "(" + ctl.ControlSource + " Like '*' & """ + TodosAcentos(Me.Texto55) + """ & '*') "
'faz a soma dos registros encontrados
strConta = strConta + 1
End If
End If
Next
End If
'monta a origem do formulario para a pesquisa
Me.Form.RecordSource = strSQL
Me.Recalc
End Sub