ERRO EM PESQUISA - DATACONTROL
Estou tentando implementar um código com funcionalidade de uma pequena agenda em um aplicativo mas não está dando erro no momento de pesquisa de um registro com tipo de dados Date:
Erro é esse:
Run-time error "3464"
Data type mismatch in criteria expression
Segue o código a baixo....
Obrigado
Rodrigo
Private Sub mnadicionar_Click()
Dim pesq As Date
On Error GoTo erro
pesq = InputBox("Insira a data deste compromisso? ", " Agenda")
pesq = Format$(pesq, "dd/MM/yy")
Data1.Recordset.FindFirst " Data = ' " & pesq & " ' "
If Data1.Recordset.NoMatch Then
Data1.Recordset.AddNew
txttarefa.SetFocus
lbldata.Caption = pesq
MsgBox "Data criada para inserção de compromissos. Digite o compormisso na área de texto.", vbInformation, "Agenda "
Else
MsgBox "Nesta data já se encontra(m) outro(s) compromisso(s). Não é necessário a criação. Apenas localize o registro, faça as alterações e clique em 'Alterar compromisso'"
End If
erro:
MsgBox "Ocorreu um erro.", vbInformation, "Agenda"
End Sub
Erro é esse:
Run-time error "3464"
Data type mismatch in criteria expression
Segue o código a baixo....
Obrigado
Rodrigo
Private Sub mnadicionar_Click()
Dim pesq As Date
On Error GoTo erro
pesq = InputBox("Insira a data deste compromisso? ", " Agenda")
pesq = Format$(pesq, "dd/MM/yy")
Data1.Recordset.FindFirst " Data = ' " & pesq & " ' "
If Data1.Recordset.NoMatch Then
Data1.Recordset.AddNew
txttarefa.SetFocus
lbldata.Caption = pesq
MsgBox "Data criada para inserção de compromissos. Digite o compormisso na área de texto.", vbInformation, "Agenda "
Else
MsgBox "Nesta data já se encontra(m) outro(s) compromisso(s). Não é necessário a criação. Apenas localize o registro, faça as alterações e clique em 'Alterar compromisso'"
End If
erro:
MsgBox "Ocorreu um erro.", vbInformation, "Agenda"
End Sub
Gente, se o campo é data, não era o caso de usar "#" para delimitar a variante na pesquisa??
Mantenha seu código original e faça apenas a seguinte alteração:
...
Data1.Recordset.FindFirst "Data = #" & pesq & "# "
...
Um outro detalhe, sem muito á ver com o problema, é que ao utilizar um ImputBox, você dá chances ao erro. Você está usando:
...
pesq = InputBox("Insira a data deste compromisso? ", " Agenda")
pesq = Format$(pesq, "dd/MM/yy")
...
Se o usuário digitar "quinta-feira", ocorrerá erro. E não adianta contar com a boa vontade do usuário, isso é furada.
Tente validar a entrada, por exemplo:
...
pesq = InputBox("Insira a data deste compromisso? ", " Agenda")
If Not Trim(pesq) = Empty Then
pesq = Format$(pesq, "dd/MM/yy")
If IsDate(pesq) = True Then
...
Mantenha seu código original e faça apenas a seguinte alteração:
...
Data1.Recordset.FindFirst "Data = #" & pesq & "# "
...
Um outro detalhe, sem muito á ver com o problema, é que ao utilizar um ImputBox, você dá chances ao erro. Você está usando:
...
pesq = InputBox("Insira a data deste compromisso? ", " Agenda")
pesq = Format$(pesq, "dd/MM/yy")
...
Se o usuário digitar "quinta-feira", ocorrerá erro. E não adianta contar com a boa vontade do usuário, isso é furada.
Tente validar a entrada, por exemplo:
...
pesq = InputBox("Insira a data deste compromisso? ", " Agenda")
If Not Trim(pesq) = Empty Then
pesq = Format$(pesq, "dd/MM/yy")
If IsDate(pesq) = True Then
...
Tópico encerrado , respostas não são mais permitidas