Depro: Tal como quedamos en el texto de tú otra pregunta, te doy mi punto de vista sobre éste tema.
Ya que ignoro las acciones que tú quieres desencadenar al encontrar Controles Nulos, te facilito una Función general en la que tienes varias opciones.
En un Módulo Estandar que ya tengas o en uno nuevo que puedes crear:
1.- Después de
Option Compare Database
Option Explicit
‘Declaramos las Variables Publicas para usar en cualquier parte de la Aplicación
Public Ctrl As Access.Control
Public ControlesNulos As Integer
Public ControlesNoNulos As Integer
2.- Copia y pega éste código
Public Function ControlesNulosEnForm(Frm As Form, Cancel As Integer) As Boolean
On Error GoTo ControlesNulosEnForm_TratamientoErrores
ControlesNulos = 0
ControlesNoNulos = 0
For Each Ctrl In Frm.Controls
'Voy directo al TipoTextBox y ComboBox
If TypeOf Ctrl Is TextBox Or TypeOf Ctrl Is ComboBox Then
If Ctrl.Name <> "UnNombre" Then 'Puede ponerse otra u otras condiciones
If Not IsNull(Ctrl.Value) Then
Ctrl.BackColor = RGB(155, 255, 50)
ControlesNoNulos = ControlesNoNulos + 1
Else
Ctrl.BackColor = RGB(255, 255, 0)
ControlesNulos = ControlesNulos + 1
''Si se quiere que el código acabe en el "Primer Control Nulo", descomentar las siguientes 5 líneas
'Ctrl.SetFocus
'MsgBox "Encontrado Control Nulo. " & vbCrLf & "Su Nombre es: " & Ctrl.Name, vbExclamation, "CONTROL NULO"
'Cancel = True
'End
'Exit Function
End If
End If
End If
Next Ctrl
'Si las 5 líneas indicadas están descomentadas, aquí solo llegaremos si no hay Controles Nulos, entonces pueden escribirse las acciones
'O escribir las acciones en el Código de llamada >> Hacer Operaciones con Formularios, Informes etc
If ControlesNulos = 0 Then
ControlesNulosEnForm = False
Else
ControlesNulosEnForm = True
End If
ControlesNulosEnForm_Salir:
On Error GoTo 0
Exit Function
ControlesNulosEnForm_TratamientoErrores:
MsgBox "Error " & Err & " en Procedimiento.: ControlesNulosEnForm de Documento VBA: MdlControles (" & Err.Description & ")", vbCritical + vbOKOnly, "ATENCION"
Resume ControlesNulosEnForm_Salir
End Function
3.- Para llamar la Función: Desde algún evento del Formulario >> Ejemplo un Botón que aquí llamo BtnNulos
Private Sub BtnNulos_Click()
If ControlesNulosEnForm(Me.Form, 0) = False Then
'Unas Acciones
Else
'Otras acciones
End If
MsgBox "Hay " & ControlesNulos & " Controles sin valor y " & ControlesNoNulos & " Controles con valor en éste Formulario", vbInformation, "RESUMEN CONTROLES FORMULARIO"
End Sub
Espero haberte ayudado y si tienes dudas me comentas. Saludos >> Jacinto