Olá. Tenho um formulário que filtra um subformulário ao clicar no botão pesquisar. Tem 4 campos para filtrar e apliquei o seguinte código:
Private Sub btn_pesquisa_Click()
Dim Ok As Integer, cadTítulo As String, entCuadroMensaje As Integer
Dim sFiltro1 As String
Dim sFiltro2 As String
Dim sFiltro3 As String
Dim sFiltro4 As String
sFiltro1 = "ESPECIALIDADE LIKE'*" & Me.pesquisa_especialidade & "*'"
sFiltro2 = "LOCALIDADE LIKE'*" & Me.pesquisa_localidade & "*'"
sFiltro3 = "PAÍS LIKE'*" & Me.pesquisa_país & "*'"
sFiltro4 = "EMPRESA LIKE'*" & Me.pesquisa_firma & "*'"
If IsNull(Me.pesquisa_especialidade) And IsNull(Me.pesquisa_localidade) And IsNull(Me.pesquisa_país) And IsNull(Me.pesquisa_firma) Then
DoCmd.Beep
entCuadroMensaje = vbOKOnly + vbExclamation + vbDefaultButton1
Ok = MsgBox("Escreva um campo.", vbOKOnly + vbInformation + vbDefaultButton1)
ElseIf Not IsNull(Me.pesquisa_especialidade) Or Not IsNull(Me.pesquisa_localidade) Or Not IsNull(Me.pesquisa_país) Or Not IsNull(Me.pesquisa_firma) Then
Me.subformA.Form.Filter = sFiltro1
' Me.subformA.Form.Filter = sFiltro2
' Me.subformA.Form.Filter = sFiltro3
' Me.subformA.Form.Filter = sFiltro4
Me.subformA.Form.FilterOn = True
Else
Me.subformA.Requery
If Me.subformA ....... Then
MsgBox "Não corresponde na base de dados", vbOKOnly + vbInformation + vbDefaultButton1
End If
End If
End Sub
Contudo se no código tiver filtrar só com um campo , filtra corretamente, com 4 campos no código não funciona, com aviso no Me.subformA.Form.Filter .
Como corrigir?
Alguém sabe completar e corrigir o código caso nada corresponda na base de dados o que se escreveu na pesquisa?
Obrigado
Private Sub btn_pesquisa_Click()
Dim Ok As Integer, cadTítulo As String, entCuadroMensaje As Integer
Dim sFiltro1 As String
Dim sFiltro2 As String
Dim sFiltro3 As String
Dim sFiltro4 As String
sFiltro1 = "ESPECIALIDADE LIKE'*" & Me.pesquisa_especialidade & "*'"
sFiltro2 = "LOCALIDADE LIKE'*" & Me.pesquisa_localidade & "*'"
sFiltro3 = "PAÍS LIKE'*" & Me.pesquisa_país & "*'"
sFiltro4 = "EMPRESA LIKE'*" & Me.pesquisa_firma & "*'"
If IsNull(Me.pesquisa_especialidade) And IsNull(Me.pesquisa_localidade) And IsNull(Me.pesquisa_país) And IsNull(Me.pesquisa_firma) Then
DoCmd.Beep
entCuadroMensaje = vbOKOnly + vbExclamation + vbDefaultButton1
Ok = MsgBox("Escreva um campo.", vbOKOnly + vbInformation + vbDefaultButton1)
ElseIf Not IsNull(Me.pesquisa_especialidade) Or Not IsNull(Me.pesquisa_localidade) Or Not IsNull(Me.pesquisa_país) Or Not IsNull(Me.pesquisa_firma) Then
Me.subformA.Form.Filter = sFiltro1
' Me.subformA.Form.Filter = sFiltro2
' Me.subformA.Form.Filter = sFiltro3
' Me.subformA.Form.Filter = sFiltro4
Me.subformA.Form.FilterOn = True
Else
Me.subformA.Requery
If Me.subformA ....... Then
MsgBox "Não corresponde na base de dados", vbOKOnly + vbInformation + vbDefaultButton1
End If
End If
End Sub
Contudo se no código tiver filtrar só com um campo , filtra corretamente, com 4 campos no código não funciona, com aviso no Me.subformA.Form.Filter .
Como corrigir?
Alguém sabe completar e corrigir o código caso nada corresponda na base de dados o que se escreveu na pesquisa?
Obrigado