ERRO EM PESQUISA - DATACONTROL

USUARIO.EXCLUIDOS 12/03/2004 08:18:20
#15087
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
USUARIO.EXCLUIDOS 13/03/2004 02:35:49
#15231
Resposta escolhida
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
...
Tópico encerrado , respostas não são mais permitidas