Boa Noite Amigos.
É o seguinte:
Ao sair (Click num Botão) de um FormsSimples é verificado se todos os campos estão preenchidos e é pedido confirmação para salvar ou não. Os códigos, isoladamente, funcionam a contento.
O Problema é o seguinte:
Quando clico no botão, havendo um campo em branco, o foco vai para este campo. Até ai tudo certo. Mas se eu ao invés de preencher o campo e clicar no botão sair novamente, simplesmente sai do Forms.
O que estou fazendo errado?
Private Sub Comando19_Click()
If Dirty = True Then
If MsgBox("Salvar?", vbYesNo, "Aviso") = vbYes Then
Call ValidaPreenchimento
DoCmd.RunCommand acCmdSaveRecord
Else
Form.Undo
DoCmd.Close
End If
Else
DoCmd.Close
End If
End Sub
Public Function ValidaPreenchimento() As Boolean
'By JPaulo Maximo Access
Dim ctl As Control
For Each ctl In Me.Controls
If (ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox) And ctl.Visible = True Then
If IsNull(ctl.Value) Or (ctl.Value = 0) Then
MsgBox "O Campo '" & ctl.Tag & "' não pode ficar em branco"
ctl.SetFocus
Exit Function
End If
End If
Next
End Function
Obrigado
Luiz Gustavo
É o seguinte:
Ao sair (Click num Botão) de um FormsSimples é verificado se todos os campos estão preenchidos e é pedido confirmação para salvar ou não. Os códigos, isoladamente, funcionam a contento.
O Problema é o seguinte:
Quando clico no botão, havendo um campo em branco, o foco vai para este campo. Até ai tudo certo. Mas se eu ao invés de preencher o campo e clicar no botão sair novamente, simplesmente sai do Forms.
O que estou fazendo errado?
Private Sub Comando19_Click()
If Dirty = True Then
If MsgBox("Salvar?", vbYesNo, "Aviso") = vbYes Then
Call ValidaPreenchimento
DoCmd.RunCommand acCmdSaveRecord
Else
Form.Undo
DoCmd.Close
End If
Else
DoCmd.Close
End If
End Sub
Public Function ValidaPreenchimento() As Boolean
'By JPaulo Maximo Access
Dim ctl As Control
For Each ctl In Me.Controls
If (ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox) And ctl.Visible = True Then
If IsNull(ctl.Value) Or (ctl.Value = 0) Then
MsgBox "O Campo '" & ctl.Tag & "' não pode ficar em branco"
ctl.SetFocus
Exit Function
End If
End If
Next
End Function
Obrigado
Luiz Gustavo