Bom dia
Em minha agenda, a pedido de meu cliente, permito que haja mais de um agendamento no mesmo dia para o paciente, porém, quero tratar de forma que, no mesmo dia e no memos horário o paciente não possa ser agendado. Estou usando a função verificaagenda para verificar a existência ou não do agendamento. Caso use apenas o Id_Paciente (número) ou dtData (date), funciona perfeitamente, porém, preciso usar a hora - agHora - campo do tipo data/hora com máscara 00:00;0;_ em formato hora abreviada, o access retorna com o erro:
Tipo de dados incompatível na expressão de critério. (Erro 3464)
A expressão de critério em um método Find está tentando comparar um campo com um valor cujo tipo de dados não coincide com o tipo de dados do campo.
O código que estou usando é este:
Att. Vinicius
Em minha agenda, a pedido de meu cliente, permito que haja mais de um agendamento no mesmo dia para o paciente, porém, quero tratar de forma que, no mesmo dia e no memos horário o paciente não possa ser agendado. Estou usando a função verificaagenda para verificar a existência ou não do agendamento. Caso use apenas o Id_Paciente (número) ou dtData (date), funciona perfeitamente, porém, preciso usar a hora - agHora - campo do tipo data/hora com máscara 00:00;0;_ em formato hora abreviada, o access retorna com o erro:
Tipo de dados incompatível na expressão de critério. (Erro 3464)
A expressão de critério em um método Find está tentando comparar um campo com um valor cujo tipo de dados não coincide com o tipo de dados do campo.
O código que estou usando é este:
- Código:
Public Sub VerificaAgenda(Cancel as Integer)
On Error GoTo Erro_Agendamento_Click
Dim Rst As DAO.Recordset
Dim strCriteria As String
strCriteria = "([id_Paciente] = " & Me.Id_Paciente & ") and ([dtData] = #" & Me.dtData & "#) and ([agHora] = '" & Me.agHora & "')"
Set Rst = Me.RecordsetClone
Rst.FindFirst strCriteria
If Rst.NoMatch Then
Exit Sub
Else
If MsgBox("Paciente já Agendado nesta Data e Hora!" & Chr(10) + Chr(13) & "Deseja Realmente Incluir Novo Paciente ou deseja Localizá-lo?" & Chr(10) + Chr(13) & "Ao clicar em NÃO será aberto o Cadastro do Paciente Existente.", vbYesNo + vbInformation, "Atenção") = vbYes Then
Exit Sub
Else
Cancel = True
Me.Undo
Me.Bookmark = Rst.Bookmark
End If
End If
Set Rst = Nothing
Exit_Erro_Agendamento_Click:
Exit Sub
Err_Erro_Agendamento_Click:
MsgBox err.Description
Resume Exit_Comand_Click
End Sub
Att. Vinicius