Olá Feras de plantão, boa noite.
Procurando aqui no forum acabei achando esse código passado pelo Grande Mestre JPaulo que faz a verificação somente dos campos que se desejar.
Public Function valNullControl(frm As Form)
Dim ctl As Control
Dim minhaArray As String
Dim validacaoOk As Byte
validacaoOk = 0
For Each ctl In frm.Controls
If ctl.Tag <> Null Or ctl.Tag <> "" Then
ctl.BackColor = 16777215
End If
Next ctl
For Each ctl In frm.Controls
If ctl.Visible = True Then
If ctl.Tag <> Null Or ctl.Tag <> "" Then
If IsNull(ctl) = True Or ctl = "" Then
ctl.BackColor = 161616
validacaoOk = 1
minhaArray = minhaArray & ctl.Tag & ", "
End If
End If
End If
Next ctl
If validacaoOk = 1 Then MsgBox "Campo Obrigatório: " & minhaArray
End Function
No botão adicionar o código ficará assim:
Private Sub Adicionar_Click()
Dim db As Database
Dim rs As Recordset
If MsgBox("Gravar registro?", vbYesNoCancel, "Opções") = vbYes Then
If valNullControl(Me) = False Then
Exit Sub
End If
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblClientes", dbOpenTable)
rs.AddNew
Agora é que a coisa pega:
Como sinalizar para o usuário no evento ao fechar o formulário ou mudar de registro que o mesmo ainda não foi gravado?
Abraços, WSenna
Procurando aqui no forum acabei achando esse código passado pelo Grande Mestre JPaulo que faz a verificação somente dos campos que se desejar.
Public Function valNullControl(frm As Form)
Dim ctl As Control
Dim minhaArray As String
Dim validacaoOk As Byte
validacaoOk = 0
For Each ctl In frm.Controls
If ctl.Tag <> Null Or ctl.Tag <> "" Then
ctl.BackColor = 16777215
End If
Next ctl
For Each ctl In frm.Controls
If ctl.Visible = True Then
If ctl.Tag <> Null Or ctl.Tag <> "" Then
If IsNull(ctl) = True Or ctl = "" Then
ctl.BackColor = 161616
validacaoOk = 1
minhaArray = minhaArray & ctl.Tag & ", "
End If
End If
End If
Next ctl
If validacaoOk = 1 Then MsgBox "Campo Obrigatório: " & minhaArray
End Function
No botão adicionar o código ficará assim:
Private Sub Adicionar_Click()
Dim db As Database
Dim rs As Recordset
If MsgBox("Gravar registro?", vbYesNoCancel, "Opções") = vbYes Then
If valNullControl(Me) = False Then
Exit Sub
End If
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblClientes", dbOpenTable)
rs.AddNew
Agora é que a coisa pega:
Como sinalizar para o usuário no evento ao fechar o formulário ou mudar de registro que o mesmo ainda não foi gravado?
Abraços, WSenna
Última edição por wsenna em 17/1/2014, 13:35, editado 1 vez(es)