Prezados,
Bom dia, tudo bem ?
Estou com um probleminha.
Tenho uma tabela de consultas com CodMedico, HoraConsulta, DtConsulta, etc
Tenho um Form (Monta Agenda de Consultas) neste form eu coloco os critérios para montar a agenda como :
CodMedico =1
Data da Consulta = 03/12/2021
Hora Inicial : 7:00
Hora Final : 16:30
Intervalo entre consultas : 30 minutos
No mês de dezembro não tem nenhuma agenda montada. Gostaria de montar a agenda para o dia 03/12/2021 e no código a seguir, está dando ERRO no Dlookup que busca a data do dia 03/12/2021 que não existe tem que apresentar (VAZIO). O mesmo está trazendo 12/03/2021 que existe na tabela de consultas, logo ele diz "Que já possui Agenda para este dia". Como poderia resolver isso ?
Private Sub Comando27_Click()
On Error GoTo Err_Comando27_Click
If IsNull([CodMedico]) Then
MsgBox "Você deve informar o Código do Médico !!!", , "Erro de CRM"
DoCmd.GoToControl "CodMedico"
Else
If IsNull([DtEmissaoInicial]) Then
MsgBox "Você deve informar o Dia da Consulta !!!", , "Erro de Data"
DoCmd.GoToControl "DtEmissaoInicial"
Else
If IsNull([HoraInicial]) Then
MsgBox "Você deve informar a Hora Inicial da Consulta !!!", , "Erro de Hora"
DoCmd.GoToControl "HoraInicial"
Else
If IsNull([HoraFinal]) Then
MsgBox "Você deve informar a Hora Final da Consulta !!!", , "Erro de Hora"
DoCmd.GoToControl "HoraFinal"
Else
If IsNull([Intervalo]) Then
MsgBox "Você deve informar o Intervalo em Minutos entre as Consultas !!!", , "Erro de Intervalo"
DoCmd.GoToControl "Intervalo"
Else
Dim horaAtual As Date
Dim rstD As DAO.Recordset
CurCRMMedico = Nz(DLookup("[CodCliente]", "Cadastro de Consultas", " [CodCliente]=" & Me.CodMedico))
CurDtConsulta = Nz(DLookup("[DtadaConsulta]", "Cadastro de Consultas", " [DtadaConsulta]=#" & Forms!FormMontaAgenda!DtEmissaoInicial & "#")) ===> está trazendo 12/03/2021 e não VAZIO pois 03/12/2021 não tem na tabela.
If CurCRMMedico = 1 And IsNull(CurDtConsulta) = True Then
Set rstD = CurrentDb.OpenRecordset("Cadastro de Consultas")
With rstD
horaAtual = Me!HoraInicial
Do While Not Me!HoraFinal < horaAtual
.AddNew
rstD!CodCliente = Me.CodMedico
rstD!DtadaConsulta = Me.DtEmissaoInicial
rstD!HoradaConsulta = horaAtual
.Update
horaAtual = DateAdd("n", Me!Intervalo, horaAtual)
Loop
End With
rstD.Close
Set rstD = Nothing
Me.Refresh
MsgBox "Agenda de Consultas montada com sucesso !!!", , "Monta Agenda"
Else
MsgBox "Agenda de Consultas já existe para esse dia !!!", , "Monta Agenda"
End If
End If
End If
End If
End If
End If
Exit_Comando27_Click:
Exit Sub
Err_Comando27_Click:
MsgBox Err.Description
Resume Exit_Comando27_Click
End Sub
Muito Grato,
Abs,
Regis Borda:.
Bom dia, tudo bem ?
Estou com um probleminha.
Tenho uma tabela de consultas com CodMedico, HoraConsulta, DtConsulta, etc
Tenho um Form (Monta Agenda de Consultas) neste form eu coloco os critérios para montar a agenda como :
CodMedico =1
Data da Consulta = 03/12/2021
Hora Inicial : 7:00
Hora Final : 16:30
Intervalo entre consultas : 30 minutos
No mês de dezembro não tem nenhuma agenda montada. Gostaria de montar a agenda para o dia 03/12/2021 e no código a seguir, está dando ERRO no Dlookup que busca a data do dia 03/12/2021 que não existe tem que apresentar (VAZIO). O mesmo está trazendo 12/03/2021 que existe na tabela de consultas, logo ele diz "Que já possui Agenda para este dia". Como poderia resolver isso ?
Private Sub Comando27_Click()
On Error GoTo Err_Comando27_Click
If IsNull([CodMedico]) Then
MsgBox "Você deve informar o Código do Médico !!!", , "Erro de CRM"
DoCmd.GoToControl "CodMedico"
Else
If IsNull([DtEmissaoInicial]) Then
MsgBox "Você deve informar o Dia da Consulta !!!", , "Erro de Data"
DoCmd.GoToControl "DtEmissaoInicial"
Else
If IsNull([HoraInicial]) Then
MsgBox "Você deve informar a Hora Inicial da Consulta !!!", , "Erro de Hora"
DoCmd.GoToControl "HoraInicial"
Else
If IsNull([HoraFinal]) Then
MsgBox "Você deve informar a Hora Final da Consulta !!!", , "Erro de Hora"
DoCmd.GoToControl "HoraFinal"
Else
If IsNull([Intervalo]) Then
MsgBox "Você deve informar o Intervalo em Minutos entre as Consultas !!!", , "Erro de Intervalo"
DoCmd.GoToControl "Intervalo"
Else
Dim horaAtual As Date
Dim rstD As DAO.Recordset
CurCRMMedico = Nz(DLookup("[CodCliente]", "Cadastro de Consultas", " [CodCliente]=" & Me.CodMedico))
CurDtConsulta = Nz(DLookup("[DtadaConsulta]", "Cadastro de Consultas", " [DtadaConsulta]=#" & Forms!FormMontaAgenda!DtEmissaoInicial & "#")) ===> está trazendo 12/03/2021 e não VAZIO pois 03/12/2021 não tem na tabela.
If CurCRMMedico = 1 And IsNull(CurDtConsulta) = True Then
Set rstD = CurrentDb.OpenRecordset("Cadastro de Consultas")
With rstD
horaAtual = Me!HoraInicial
Do While Not Me!HoraFinal < horaAtual
.AddNew
rstD!CodCliente = Me.CodMedico
rstD!DtadaConsulta = Me.DtEmissaoInicial
rstD!HoradaConsulta = horaAtual
.Update
horaAtual = DateAdd("n", Me!Intervalo, horaAtual)
Loop
End With
rstD.Close
Set rstD = Nothing
Me.Refresh
MsgBox "Agenda de Consultas montada com sucesso !!!", , "Monta Agenda"
Else
MsgBox "Agenda de Consultas já existe para esse dia !!!", , "Monta Agenda"
End If
End If
End If
End If
End If
End If
Exit_Comando27_Click:
Exit Sub
Err_Comando27_Click:
MsgBox Err.Description
Resume Exit_Comando27_Click
End Sub
Muito Grato,
Abs,
Regis Borda:.