Bom dia
Na agenda de meu sistema, tenho alguns campos que necessitam obrigatoriamente de preenchimento. Nos botões Novo, Gravar, trato a falta de todos eles e obrigo o preenchimento......., usava a rotina no evento ao sair, mas meu cliente reclamou dizendo que não estava funcionando de forma prática, enfim, tive de alterar para colocar no evento no atual do formulário o código abaixo descrito. O que ocorre é que, meu formulário está baseado em uma consulta, o banco está dividido em front end e back end, e o ciclo deste formulário é apenas o registro atual. No mesmo utilizo a barra de navegação do próprio access. Quando clico no botão próximo registro, a mensagem é retornada de forma correta, informando que existem o campo X em branco e fica no registro, mas, se clicar no registro anterior, por exemplo, o access permite a navegação. Alguém tem alguma dica de como posso resolver isto ou o erro que estou cometendo.
Att. Vinicius
Na agenda de meu sistema, tenho alguns campos que necessitam obrigatoriamente de preenchimento. Nos botões Novo, Gravar, trato a falta de todos eles e obrigo o preenchimento......., usava a rotina no evento ao sair, mas meu cliente reclamou dizendo que não estava funcionando de forma prática, enfim, tive de alterar para colocar no evento no atual do formulário o código abaixo descrito. O que ocorre é que, meu formulário está baseado em uma consulta, o banco está dividido em front end e back end, e o ciclo deste formulário é apenas o registro atual. No mesmo utilizo a barra de navegação do próprio access. Quando clico no botão próximo registro, a mensagem é retornada de forma correta, informando que existem o campo X em branco e fica no registro, mas, se clicar no registro anterior, por exemplo, o access permite a navegação. Alguém tem alguma dica de como posso resolver isto ou o erro que estou cometendo.
Att. Vinicius
- Código:
Private Sub Form_Current()
On Error GoTo trataerro
Dim strCamposNulos As String
Dim intTotalNulos As Integer
Dim Cancel As Integer
If Not IsNull(Me.Id_Agenda) Then
intTotalNulos = 0
If IsNull(dtData) Then
intTotalNulos = intTotalNulos + 1
strCamposNulos = strCamposNulos & "Data para o Agendamento." & vbCrLf
Me.dtData.SetFocus
Cancel = True
End If
If IsNull(agHora) Then
intTotalNulos = intTotalNulos + 1
strCamposNulos = strCamposNulos & "Hora para o Agendamento." & vbCrLf
Me.agHora.SetFocus
Cancel = True
End If
If IsNull(Id_TipoCons) Then
intTotalNulos = intTotalNulos + 1
strCamposNulos = strCamposNulos & "Tipo do Agendamento." & vbCrLf
Me.Id_TipoCons.SetFocus
Cancel = True
End If
If IsNull(Id_Paciente) Then
intTotalNulos = intTotalNulos + 1
strCamposNulos = strCamposNulos & "Paciente." & vbCrLf
Me.Id_Paciente.SetFocus
Cancel = True
End If
If IsNull(Id_ConvCons) Then
intTotalNulos = intTotalNulos + 1
strCamposNulos = strCamposNulos & "Convênio." & vbCrLf
Me.Id_ConvCons.SetFocus
Cancel = True
End If
If intTotalNulos > 0 Then
strCamposNulos = "Existem campos que precisam ser preenchidos:" & vbCrLf & vbLf & strCamposNulos
MsgBox strCamposNulos, vbCritical, "ATENÇÃO - Campo(s) de Preenchimento Obrigatório(s)!!!"
Cancel = True
DoCmd.CancelEvent
'Me.Undo
Me.dtData.SetFocus
End If
Else
If IsNull(Me.Id_Agenda) Then
Exit Sub
Else
[Forms]![Frm_Agenda]![subfrm_AgendarHorários]![Id_Medico] = [Forms]![Frm_Agenda]![codmedparam]
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Consulta Agendada / Alterada com Sucesso!", vbInformation, "Inclusão..."
DoCmd.GoToRecord , , acNewRec
Me.dtData.SetFocus
Forms!Frm_Seleção.Requery
End If
End If
Exit_TrataErro:
Forms!Frm_Agenda.Requery
Exit Sub
trataerro:
Resume Next
Exit Sub