Listato 1
Private Sub UIFValidation()
Static Valid As Boolean
If Me.ActiveControl Is UIFActive Then Exit Sub
Valid = True 'fino a prova contraria
Select Case UIFActive.Name
Case "Text1"
If Text1 <> "" And Text1 <> "a" Then
Valid = False
MsgBox "Devi inserire 'a' o Null"
End If
Case "Text2"
If Text2 <> "b" Then
Valid = False
MsgBox "Devi obbligatoriamente inserire 'b'"
End If
Case Else
DoEvents
MsgBox "Il controllo " & Me.Name & "." & UIFActive.Name & _
" ha richiesto un controllo di validazione inesistente. " & _
"Avvisare il programmatore.", _
vbCritical, "Errore controllo validazione"
If Valid = False Then UIFActive.SetFocus
End Sub
Listato 2
Private Sub UIFEmpty()
'Controllo campi obbligatori
'Sappiamo che grazie ai controlli di UIFValidation
'tutto quello che e` gia`stato inserito e` sicuramente
'valido. Resta quindi solo da indicare all'utente che
'deve compilare altri campi.
'Vediamo quindi quali sono quelli vuoti
'=== Se sono da controllare diversi campi, ma non tutti ===
'=== usare questo sistema
cmdOK.Enabled = False 'Default
If Text1 = "" Then Exit Sub
If Text2 = "" Then Exit Sub
'Se siamo arrivati qui allora
'siamo proprio sull'ultimo campo da riempire
'ed abbiamo appena premuto un tasto
cmdOK.Enabled = True
'=== Se sono da controllare tutti i campi ===
'=== usare questo sistema
' Dim ControlX As Control
' Dim LeftOut As Boolean
' LeftOut = False
' For Each ControlX In Controls
' If TypeOf ControlX Is TextBox Then
' If ControlX.Text = "" Then
' LeftOut = True
' Exit For
' End If
' End If
' Next
' If LeftOut Then cmdOK.Enabled = False Else cmdOK.Enabled = True
End Sub