Forms

3.90 In una maschera di inserimento evidenziare in rosso i controlli associati a campi obbligatori che l'utente non ha digitato
  Roberto, Alessandro Baraldi

Quella che segue è una soluzione che permette di colorare in rosso lo sfondo dei controlli associati a campi obbligatori e che l'utente si è dimenticato di riempire, avvisando con un messaggio l'utente ed annullando l'evento di aggiornamento del record; i campi regolarmente riempiti avranno lo sfondo grigio.
La proprietà Tag dei controlli associati a campi obbligatori deve essere impostata a OBBLIGATORIO, quindi a fronte dell'evento "Prima di aggiornare" della maschera eseguire il seguente codice VBA:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
For Each ctl In Me.Controls
       If ctl.Tag = "OBBLIGATORIO" Then
            With ctl
                  If .Visible And (.ControlType = acTextBox) Then
                        .BackColor = 12632256
                           If IsNull(.Value) Or .Value = "" Then
                                 .BackColor = 255
                                 MsgBox UCase(ctl.Controls(0).Caption) & vbCrLf & _
                                          "@Inserire i dati mancanti nel Campo@", vbExclamation, "AVVISO"
                                 .SetFocus
                                 Set ctl = Nothing
                                 Cancel = True
                                 Exit Sub
                           End If
                  End If
            End With
      End If
Next
Set ctl = Nothing
End Sub
Nel caso si usi una versione di Access successiva ad Access 97, i caratteri @ usati nella funzione InputBox non hanno effetto e possono pertanto essere tolti.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.