Public Function validar_campo(Optional tag As String = "validar", Optional bgColor As Long = 16776960) As Boolean
'Función para marcar y validar los campos que no
'cumplen un valor. Puede cambiar la palabra "validar" por otra pero la misma
'se tiene que incluier en propiedades del campo "Información adicional"
'igualmente puede cambiar el codigo del color
'Elaborada por: EDUARDO PEREZ FERNANEZ
'Fecha: 25/03/2023
'Esta autorizado para utilizar este código en sus aplicaciones
'Solo le recomiendo conservar al autoría, toda vez, que no cobro un dolar.
'Nota: Como está la funcion solo se validan los campos que tengan en "Información adicional" la palabra "validar"
On Error GoTo hay_error
Dim ctl As Control
For Each ctl In Screen.ActiveForm.Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox, acOptionGroup
If Len(Trim(ctl.tag)) > 0 Then
If IsNull(ctl) Or ctl = "" Then
ctl.BackColor = bgColor
validar_campo = True
Else
ctl.BackColor = vbWhite
End If
End If
Case acListBox
If ctl.tag = tag Then
If ctl.ItemsSelected.count = 0 Then
'ctl.BackColor = bgColor
validar_campo = True
Else
ctl.BackColor = vbWhite
End If
End If
' Agregamos soporte para otros tipos de controles
Case acCheckBox, acOptionButton
If ctl.tag = tag Then
If Not ctl.value Then
ctl.BackColor = bgColor
validar_campo = True
Else
ctl.BackColor = vbWhite
End If
End If
Case acToggleButton
If ctl.tag = tag Then
If ctl.value = 0 Then
ctl.BackColor = bgColor
validar_campo = True
Else
ctl.BackColor = vbWhite
End If
End If
Case Else
' No hacemos nada
End Select
Next
Exit Function
hay_error:
MsgBox "Error " & Err.Number & ": " & Err.Description, vbExclamation, "Error en la función validar_campo"
End Function