Puede prohibir o validar datos mediante reglas de validación al escribirlos en bases de datos de escritorio de Access. Puede usar el generador de expresiones para ayudarle a dar formato a la regla correctamente. Puede establecer reglas de validación en la vista de diseño de tabla o en la de hoja de datos de tabla. Hay tres tipos de reglas de reglas de validación en Access:
1. Regla de validación de campo Puede usar una regla de validación de campo para especificar un criterio que deben cumplir todos los valores de campo válidos. No debería tener que especificar el campo actual como parte de la regla a no ser que use el campo en una función. Las restricciones sobre los tipos de caracteres que se escriban en un campo pueden aplicarse más fácilmente con una máscara de entrada. Por ejemplo, un campo de fecha podría tener una regla de validación que no permita valores del pasado.
Ejemplos rápidos:
No permitir valores de fecha en el pasado: >=Fecha()
Por lo general, se acepta el formato de correo electrónico: Is Null OR ((Like "*?@?*.? *") AND (no como "*[ ,;] *"))
Número menor o igual que cinco: <=5
El campo Moneda no puede ser negativo: >=0
Restringir la longitud de los caracteres en cadena: Len([NombreCampoDeCadena])<100
2. Regla de validación de registro Puede usar una regla de validación de registro para especificar una condición que deben cumplir todos los registros válidos. Puede comparar valores de distintos campos con una regla de validación de registro. Por ejemplo, un registro con dos campos de fecha puede necesitar que los valores de un campo siempre sean anteriores a los del otro (por ejemplo, que FechaDeInicio sea anterior a FechaDeFinalización).
Ejemplos rápidos:
Asegúrate de que la fecha de finalización no sea anterior a la fecha de inicio: [Fecha de finalización]>=[Fecha de inicio]
Escriba una fecha obligatoria que no tenga lugar más de 30 días después de la fecha del pedido: [FechaObligatoria]<=[FechaPedido]+30
3. Validación en un formulario Puede usar la propiedad ReglaDeValidación de un control de un formulario para especificar un criterio que deben cumplir todos los valores especificados para ese control. La propiedad de control Regla de validación funciona como una regla de validación de campo. Normalmente, se usa una regla de validación de formulario en lugar de una regla de validación de campo si se trata de una regla específica del formulario y no de la tabla, sin importar donde se use.
En este artículo
Información general
En este artículo se explica cómo usar las reglas de validación y el texto de validación en los campos de tabla y los controles de formulario. Una regla de validación es una forma de limitar la información que se escribe en un campo de tabla o en un control (como un cuadro de texto) de un formulario. Con el texto de validación se puede incluir un mensaje que sirva de ayuda a los usuarios que escriben datos no válidos.
Cuando se escriben datos, Access comprueba si se ha infringido alguna regla de validación y, si así es, los datos escritos no se aceptan y Access muestra un mensaje.
Access ofrece varias formas de restringir la entrada de datos:
-
Tipos de datos Todos los campos de una tabla tienen un tipo de datos que restringe lo que pueden escribir los usuarios. Por ejemplo, un campo de fecha y hora solo acepta valores de fecha y hora, un campo de moneda solo acepta datos de moneda, etc.
-
Propiedades de campo Algunas propiedades de campo restringen la entrada de datos. Por ejemplo, la propiedad Tamaño del campo de un campo restringe la entrada al limitar la cantidad de datos.
También puede usar la propiedad Regla de validación para que sea necesario escribir valores específicos, y la propiedad Texto de validación para informar de errores a los usuarios. Por ejemplo, si se escribe la regla >100 Y <1000 en la propiedad Regla de validación, se obliga a los usuarios a especificar valores comprendidos entre 100 y 1000. Una regla como [FechaFin]>=[FechaInicio] obliga a los usuarios a escribir una fecha de finalización igual o posterior a una fecha de inicio. Si se escribe el texto “Especifique valores entre 100 y 1000” o “Especifique una fecha de finalización igual o posterior a la fecha de inicio” en la propiedad Texto de validación, se indica a los usuarios que cometieron un error y se explica cómo corregirlo.
-
Máscaras de entrada Se puede usar una máscara de entrada para validar los datos, lo que obliga a los usuarios a escribir los valores de una manera específica. Por ejemplo, una máscara de entrada puede obligar a los usuarios a escribir las fechas en un formato europeo, como 14/04/2007.
Estos métodos de validación de datos se pueden usar de forma aislada o combinados entre sí. Los tipos de datos no son opcionales y reportan la validación de tipo de datos más básica.
Para obtener más información sobre los tipos de datos, tamaños de campo y máscaras de entrada, vea el artículo Introducción a los tipos de datos y las propiedades de campo.
Tipos de reglas de validación
Se pueden crear dos tipos básicos de reglas de validación:
-
Reglas de validación de campo Use una regla de validación de campo para comprobar el valor especificado en un campo al salir de él. Por ejemplo, imagine que tiene un campo Fecha y escribe >=#01/01/2010# en la propiedad Regla de validación de ese campo. La regla obligará a los usuarios a escribir fechas que coincidan con el 1 de enero de 2010 o sean posteriores. Si especifica una fecha anterior a 2010 e intenta colocar el foco en otro campo, Access no le permitirá abandonar el campo actual hasta que corrija el problema.
-
Reglas de validación de registro Use una regla de validación de registro para controlar cuándo puede guardar un registro (una fila de una tabla). A diferencia de una regla de validación de campo, la regla de validación de registro hace referencia a otros campos de la misma tabla. Las reglas de validación de registro se crean cuando es necesario comprobar los valores de un campo en relación con los valores de otro campo. Por ejemplo, imagine que su empresa le obliga a enviar los productos en un plazo de 30 días y, si no lo hace, tendrá que reembolsar al cliente parte del precio de compra. Puede definir una regla de validación de registro como [FechaObligatoria]<=[FechaPedido]+30 para evitar que un usuario especifique una fecha de envío (el valor del campo FechaObligatoria) demasiado lejana en el futuro.
Si la sintaxis de las reglas de validación parece críptica, vea la sección Qué se puede incluir en una regla de validación, donde se explica la sintaxis y puede ver algunas reglas de validación de ejemplo.
Dónde usar las reglas de validación
Se pueden definir reglas de validación para los campos de tabla y los controles de los formularios. Cuando se definen reglas para tablas, esas reglas se aplican cuando se importan los datos. Para agregar reglas de validación a una tabla, abra la tabla y use los comandos de la pestaña Campos de tabla de la cinta de opciones. Para agregar reglas de validación a un formulario, se abre el formulario en la vista Presentación y se agregan las reglas a las propiedades de los controles individuales.
Los pasos descritos en la sección Agregar una regla de validación a una tabla explican cómo agregar reglas de validación a los campos de una tabla. Los pasos descritos en la sección Agregar una regla de validación a un formulario, que aparece más adelante en este artículo, explican cómo agregar reglas a las propiedades de controles individuales.
Qué se puede incluir en una regla de validación
Las reglas de validación pueden contener expresiones (es decir, funciones que devuelven un solo valor). Una expresión se puede usar para realizar cálculos, manipular caracteres o comprobar datos. Una expresión de regla de validación comprueba datos. Por ejemplo, una expresión puede comprobar un valor de una serie de valores, como “Tokio” o “Moscú” o “París” o “Helsinki”. Las expresiones también realizan operaciones matemáticas. Por ejemplo, la expresión <100 obliga a los usuarios a escribir valores inferiores 100. La expresión ([FechaPedido] - [FechaEnvío]) calcula el número de días transcurrido entre la hora en que se realizó un pedido y la hora en que se envió.
Para obtener más información sobre el uso de las expresiones, consulte el artículo Generar una expresión.
Agregar una regla de validación a una tabla
Puede añadir una regla de validación de campo o una regla de validación de registro. Una regla de validación de campo comprueba la entrada de un campo y se aplica cuando el foco deja el campo. Una regla de validación de registro comprueba la entrada de uno o más campos y se aplica cuando el foco deja el registro. Habitualmente, una regla de validación de registro compara los valores de dos o más campos.
Notas: Los siguientes tipo de campo no admiten reglas de validación:
-
Autonumeración
-
Objeto OLE
-
Datos adjuntos
-
Id. de replicación
Crear una regla de validación de campo
-
Seleccione el campo que desee validar.
-
En la pestaña Campos de tabla , en el grupo Validación de campos, haga clic en Validación y, a continuación, haga clic en Regla de validación de campo.
-
Use el Generador de expresiones para crear la regla de validación. Para obtener más información sobre cómo usar el Generador de expresiones, vea el artículo sobre cómo usar el Generador de expresiones.
Crear un mensaje que se abre cuando la entrada en el campo no es válida
-
Seleccione el campo donde sea necesario mostrar un mensaje cuando los datos especificados no sean válidos. Dicho campo debe contar ya con una regla de validación.
-
En la pestaña Campos de tabla , en el grupo Validación de campos, haga clic en Validación y, a continuación, haga clic en Mensaje de validación de campo.
-
Escriba un mensaje adecuado. Por ejemplo, si la regla de validación es >10, el mensaje podría ser “Especifique un valor inferior a 10”.
Puede ver ejemplos de mensajes y reglas de validación de campo en la sección Referencia de reglas de validación.
Crear una regla de validación de registro
-
Abra la tabla para la que quiera validar registros.
-
En la pestaña Campos de tabla , en el grupo Validación de campos, haga clic en Validación y, a continuación, haga clic en Regla de validación.
-
Use el Generador de expresiones para crear la regla de validación. Para obtener más información sobre cómo usar el Generador de expresiones, vea el artículo sobre cómo usar el Generador de expresiones.
Crear un mensaje que se abre cuando la entrada en el registro no es válida
-
Abra la tabla donde sea necesario mostrar un mensaje cuando los datos especificados no sean válidos. Dicha tabla debe contar ya con una regla de validación de registro.
-
En la pestaña Campos de tabla , en el grupo Validación de campos, haga clic en Validación y, a continuación, haga clic en Mensaje de validación.
-
Escriba un mensaje adecuado. Por ejemplo, si la regla de validación es [FechaInicio]<[FechaFin], el mensaje podría ser "FechaInicio debe ser anterior a FechaDeFinalización".
Contrastar los datos existentes con una nueva regla de validación
Si agrega una regla de validación a una tabla que ya existe, probablemente convenga comprobar la regla para ver si hay datos no válidos.
-
Abra la tabla que quiera comprobar en la vista Diseño.
En la pestaña Diseño de tabla , en el grupo Herramientas , haga clic en Probar reglas de validación.
-
Haga clic en Sí para cerrar el mensaje de alerta e iniciar la prueba.
-
Si se le pide si desea guardar la tabla, haga clic en Sí.
-
Puede que aparezcan varios mensajes de alerta a medida que avanza. Lea las instrucciones de cada mensaje y haga clic en Sí o en No, según sea necesario, para realizar o detener la prueba.
Agregar una regla de validación a un formulario
Puede usar la propiedad Regla de validación y la propiedad Texto de validación de un control de formulario para validar los datos especificados en dicho control y para ayudar a los usuarios que escriben datos no válidos.
Sugerencia: Si crea un formulario automáticamente a partir de una tabla mediante uno de los comandos Formulario de la cinta, la validación de los campos de la tabla subyacente se hereda de los controles correspondientes en el formulario.
Un control puede tener una regla de validación distinta a la del campo de tabla al que está enlazado el control. Esto es útil si desea que el formulario sea más restrictivo que la tabla. La regla de formulario se aplica antes que la regla de la tabla. Si la tabla es más estricta que el formulario, la regla definida para el campo de la tabla tiene prioridad. Si las reglas son mutuamente excluyentes, no podrá introducir ningún dato.
Por ejemplo, supongamos que aplica la siguiente regla a un campo de fecha de una tabla:
<#01/01/2010#
Pero, después, aplica esta regla al control de formulario enlazado al campo de fecha:
>=#01/01/2010#
El campo de fecha requiere ahora valores anteriores al año 2010, pero el control de formulario requiere fechas que sean de ese año o posteriores, por lo que no se puede especificar ningún dato.
Crear una regla de validación para un control
-
Haga clic con el botón secundario en el formulario que quiera cambiar y, después, haga clic en Vista Presentación.
-
Haga clic con el botón secundario en el control que quiera cambiar y, a continuación, haga clic en Propiedades para abrir la hoja de propiedades del control.
-
Haga clic en la pestaña Todas y, a continuación, escriba la regla de validación en el cuadro de propiedad Regla de validación.
Sugerencia: Haga clic en el botón Generar para abrir el Generador de expresiones.
Para obtener más información sobre cómo usar el Generador de expresiones, vea el artículo Usar el Generador de expresiones.
-
Escriba un mensaje en el cuadro de propiedad Texto de validación.
Referencia a las reglas de validación
Las reglas de validación usan la sintaxis de expresiones de Access. Para obtener más información sobre las expresiones, vea el artículo Introducción a las expresiones.
Ejemplos de regla de validación y texto de validación
Regla de validación |
Texto de validación |
---|---|
<>0 |
Especifique un valor que no sea cero. |
>=0 |
El valor debe ser igual o mayor que cero. -o bien- Especifique un número positivo. |
0 o >100 |
El valor debe ser igual que cero o mayor que 100. |
ENTRE 0 Y 1 |
Especifique un valor con un signo de porcentaje. (Se usa con los campos que almacenan los valores numéricos como porcentajes). |
<#01/01/2007# |
Especifique una fecha anterior a 2007. |
>=#01/01/2007# Y <#01/01/2008# |
La fecha debe ser del año 2007. |
<Fecha() |
La fecha de nacimiento no puede ser una fecha futura. |
CompCadena(Mayús([Apellidos]), [Apellidos],0) = 0 |
Los datos del campo Apellidos deben escribirse en mayúsculas. |
>=Int(Ahora()) |
Especifique la fecha de hoy. |
H O M |
Escriba H para hombre o M para mujer. |
COMO "[A-Z]*@[A-Z].com" O "[A-Z]*@[A-Z].net" O "[A-Z]*@[A-Z].org" |
Escriba una dirección de correo electrónico válida que termine en .com, .net u .org. |
[FechaObligatoria]<=[FechaPedido]+30 |
Escriba una fecha obligatoria que no sea posterior a un plazo de 30 días a partir de la fecha de pedido. |
[FechaFin]>=[FechaInicio] |
Escriba una fecha de fin que sea igual o posterior a la fecha de inicio. |
Ejemplos de sintaxis de operadores de regla de validación comunes
Operador |
Función |
Ejemplo |
---|---|---|
NO |
Comprueba si hay valores opuestos. Se puede usar delante de cualquier operador de comparación, salvo NO ES NULO. |
NO > 10 (es lo mismo que <=10). |
EN |
Comprueba si hay valores iguales a los elementos de una lista. El valor de comparación debe ser una lista de valores separados por comas que aparece entre paréntesis. |
EN ("Tokio","París","Moscú") |
ENTRE |
Comprueba si hay un intervalo de valores. Debe haber dos valores de comparación (un valor alto y un valor bajo) y esos valores deben ir separados por el separador Y. |
ENTRE 100 Y 1000 (es lo mismo que >=100 Y <=1000) |
COMO |
Busca cadenas modelo coincidentes en los campos de tipo Texto y Memo. |
COMO "Geo*" |
NO ES NULO |
Obliga a los usuarios a escribir valores en el campo. Equivale a establecer el valor de la propiedad de campo Requerido en Sí. Sin embargo, cuando se habilita la propiedad Requerido y un usuario no especifica un valor, Access muestra un mensaje de error poco descriptivo. En general, el uso de las bases de datos resulta más fácil si se utiliza NO ES NULO y se escribe un mensaje descriptivo en la propiedad Texto de validación. |
NO ES NULO |
Y |
Especifica que todas las partes de la regla de validación deben cumplirse. |
>= #01/01/2007# Y <=#06/03/2008# Nota: Se puede usar Y también para combinar reglas de validación. Por ejemplo: NO "Reino Unido" Y COMO "R*". |
O |
Especifica que algunas partes (no todas) de la regla de validación deben cumplirse. |
enero O febrero |
< |
Menor que. |
|
<= |
Menor o igual que. |
|
> |
Mayor que. |
|
>= |
Mayor o igual que. |
|
= |
Igual que. |
|
<> |
Distinto de. |
Usar caracteres comodín en las reglas de validación
Puede usar caracteres comodín en las reglas de validación. No olvide que Access admite dos juegos de caracteres comodín: ANSI-89 y ANSI-92. Cada uno de estos estándares usa un juego de caracteres comodín distinto.
De forma predeterminada, en todos los archivos .accdb y .mdb se usa el estándar ANSI-89.
Haga lo siguiente si desea cambiar el estándar ANSI de una base de datos a ANSI-92:
-
En la pestaña Archivo, haga clic en Opciones.
-
En el cuadro de diálogo Opciones de Access, haga clic en Diseñadores de objetos.
-
En la sección Diseño de la consulta, en Sintaxis compatible con SQL Server (ANSI 92), seleccione Esta base de datos.
Para obtener más información sobre cómo usar caracteres comodín y los estándares ANSI en SQL, vea el artículo Información de referencia sobre los caracteres comodín en Access.