Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIÓN
Como todos sabemos, Access tiene una forma nativa de obligarnos a introducir datos en un
determinado campo, por medio de la propiedad Requerido, de tal modo que si a la hora de
diseñar una tabla, le ponemos esa propiedad en sí, y no rellenamos ese campo, nos saldrá un
mensaje avisándonos para que lo rellenemos y no nos dejará continuar hasta que lo hagamos.
Hoy os voy a enseñar otra forma de requerir el relleno de uno o más campos, personalizando
el mensaje que queráis mostrar y además, coloreando los campos “obligatorios” que estén
vacíos.
PREPARANDO LA TABLA
En primer lugar, crearemos una tabla muy simple, para llevar una agenda de contactos, en la
que vamos a requerir 3 campos como obligatorios: Nombre, Teléfono y e-mail. A mi me ha
quedado una cosa así:
1
Visítame en http://bit.ly/NckAccess
Os dejo una imagen clarificadora:
PROGRAMANDO
El siguiente paso, es insertar un módulo nuevo en nuestra BD (mdlCodigos), y añadir la
siguiente función y el siguiente procedimiento:
'------------------------------------------------------------------------------------------
' Esta función comprueba que los controles cuyos valores son requeridos obligatoriamente
'------------------------------------------------------------------------------------------
For Each ctl In Forms(miForm).Controls ' Para cada control del formulario
2
Visítame en http://bit.ly/NckAccess
fncControlaVacios = False ' Dice que hay fallos
Else
End If
End If
Next ctl
End Function
'------------------------------------------------------------------------------------------------
' Este procedimiento restaura todos los bordes al color por defecto
'------------------------------------------------------------------------------------------------
Next ctl
End Sub
La función revisa los controles que acaban en Ob del formulario que se le pasa como
parámetro, y devuelve False y colorea el control correspondiente si está vacío.
El procedimiento pone todos los controles en blanco de nuevo, menos los botones.
En ambos casos, lo hace recorriendo la colección Controls (For Each ctl In Forms(miForm).Controls)
MsgBox "Los campos resaltados son obligatorios y debe introducir algún " _
Cancel = True
End If
Es decir, que si la función nos devuelve False (porque hay algún campo requerido vacío), nos
avisa y cancela el registro.
Y para acabar, en el los códigos de los botones Anterior, Siguiente y nuevo, en el control de
errores iría este código (pongo sólo el de cmdAnterior, pues el resto sería igual):
Salida:
Exit Sub
sol_err:
3
Visítame en http://bit.ly/NckAccess
Else
MsgBox Err.Description
End If
Resume Salida
Un saludo, y...
¡suerte!
4
Visítame en http://bit.ly/NckAccess