jueves, 12 de enero de 2012

Validacion de Campos (Complemento de la clase)

Una regla de validación limita o controla lo que los usuarios pueden escribir en un campo de tabla o un control (como un cuadro de texto) de un formulario. Microsoft Office Access 2007 permite validar los datos de diversas maneras y, a menudo, se usan varias de esas técnicas para definir una regla de validación. Las reglas de validación se pueden considerar como un conjunto de capas y se pueden usar algunas o todas esas capas para asegurar que los usuarios escriben correctamente los datos.

Tipos de datos    En general, los tipos de datos representan la primera capa de validación. Cuando se diseña una tabla de base de datos, se define un tipo de datos para cada campo de la tabla y ese tipo de datos restringe lo que los usuarios pueden escribir. Por ejemplo, los campos de tipo Fecha/Hora aceptan únicamente fechas y horas, un campo de tipo Moneda acepta únicamente datos monetarios, etc.

Tamaños de campo    Los tamaños de campo son otra capa de validación. Por ejemplo, si se crea un campo que almacene nombres, se puede configurarlo de modo que acepte un máximo de 20 caracteres. De este modo, se puede evitar que usuarios malintencionados peguen grandes cantidades de texto incoherente en el campo, o bien, que un usuario sin experiencia escriba por error un nombre y un apellido en un campo diseñado para que sólo pueda contener un nombre.

Propiedades de tabla    Las propiedades de tabla proporcionan tipos de validación muy específicos. Por ejemplo, se puede establecer la propiedad Requerido en Sí y, como resultado, obligar a los usuarios a escribir un valor en un campo.

Se puede usar asimismo la propiedad Regla de validación para requerir que se escriban valores específicos, y la propiedad Texto de validación para informar a los usuarios de los errores. 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 1.000. La regla [FechaFin]>=[FechaInicio] obliga a los usuarios a escribir una fecha de finalización igual o posterior a la fecha de inicio. Si se escribe el texto "Especifique valores comprendidos entre 100 y 1.000" 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 han cometido un error y se indica cómo corregirlo.

Máscaras de entrada    Se puede usar una máscara de entrada para validar los datos obligando a los usuarios a escribir los valores de una manera determinada. Por ejemplo, una máscara de entrada puede obligar a los usuarios a escribir las fechas en un formato europeo, como 14.04.2007.

Puede usar algunas o todas estas técnicas para validar los datos. Algunas de estas características, como los tipos de datos, forman parte de la base de datos de forma predeterminada, pero otras técnicas, como las propiedades de campo, las reglas de validación y las máscaras de entrada, las puede usar a su discreción.

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 del campo. Por ejemplo, supongamos que tiene un campo de fecha y especifica >=#01/01/2007# en la propiedad Regla de validación de ese campo. La regla obliga a los usuarios a escribir fechas que coincidan o sean posteriores al 1 de enero de 2007. Si especifica una fecha anterior a 2007 e intenta ir a otro campo, Access evitará que salga del campo hasta que solucione el problema.

Reglas de validación de registro (o tabla)    Use una regla de validación de registro para controlar cuándo puede guardar un registro (una fila de una tabla). A diferencia de las reglas de validación de campo, las reglas de validación de registro hacen referencia a otros campos de la misma tabla. Las reglas de validación de registro sirven para comprobar los valores de un campo con respecto a los valores de otro campo. Por ejemplo, supongamos que su compañía le obliga a enviar los productos en un plazo de 30 días y, si no lo hace, deberá reembolsar al cliente parte del precio de compra. Podrá definir una regla de validación de registro como [FechaObligatoria]<=[FechaPedido]+30 para evitar que alguien especifique una fecha de envío (el valor del campo FechaObligatoria) demasiado lejana.

Donde usar las reglas de validacion 

Se pueden definir reglas de validación para las tablas y los controles de 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, se abre la tabla en la vista Diseño y se configuran varias propiedades de la tabla. Para agregar reglas de validación a un formulario, se abre el formulario en la vista Diseño y se agregan las reglas a las propiedades de los controles individuales.

Las reglas de validación pueden contener expresiones, es decir, funciones que devuelven un solo valor. Las expresiones se pueden usar para realizar cálculos, manipular caracteres o comprobar datos. Cuando se crean reglas de validación, se usan las expresiones principalmente para comprobar datos. Por ejemplo, una expresión puede comprobar si existe un valor de una serie de valores, como "Tokio" O "Moscú" O "París" O "Helsinki". Las expresiones también pueden realizar operaciones matemáticas. Por ejemplo, la expresión <100 obliga a los usuarios a especificar valores menores que 100. La expresión ([FechaPedido] - [FechaEnvío]) calcula el número de días transcurridos entre la fecha en que se hizo el pedido y la fecha de envío.

Validar datos al escribirlos en los campos de una tabla

Se pueden especificar reglas de validación para todos los tipos de datos, salvo Autonumérico, Objeto OLE, Datos adjuntos y campos de tipo Número definidos como Id. de réplica.

Validar los datos de un campo

En el panel de exploración, haga clic con el botón secundario del mouse (ratón) en la tabla que desee cambiar y, a continuación, haga clic en Vista Diseño.
En la columna Nombre del campo, seleccione el campo que desee cambiar.
En la sección inferior del diseñador de consultas, en la ficha General, seleccione el cuadro de la propiedad Regla de validación y, a continuación, escriba la regla de validación.
O bien,
Haga clic en la ficha Datos de la hoja de propiedades, haga clic en  a continuación para iniciar el Generador de expresiones y crear una expresión.
Escriba una regla que se aplique únicamente al campo. Por ejemplo, puede escribir >0 para obligar a los usuarios a especificar valores positivos. Recuerde que las reglas de validación de un campo no hacen referencia a otros campos de la tabla. Si la regla hace referencia a otros campos, se trata de una regla de validación de registro.
Seleccione el cuadro de propiedad Texto de validación y escriba un mensaje de validación.
Este mensaje depende de la regla de validación. Escriba un mensaje breve e intente explicar el error que ha cometido el usuario. Para continuar con el ejemplo del paso anterior, podría usar Escriba sólo números positivos como texto de validación.
Guarde el trabajo.

Nota   Para obtener más ejemplos de la validación de campos, vea la sección Referencia de validación, más adelante en este artículo.

Validar los datos de un registro

Repita los pasos 1 y 2 de la anterior sección para abrir una tabla en la vista Diseño.
En la ficha General, escriba una regla de validación de registro en el cuadro de propiedad Regla de validación.
O bien,
Haga clic en  a continuación para iniciar el Generador de expresiones y crear una expresión.
.
Una regla de validación de registro hace referencia a varios campos de tabla. Por ejemplo, la regla [FechaObligatoria]<=[FechaPedido]+30 hace referencia a dos campos de tabla, FechaObligatoria y FechaPedido, y asegura que los usuarios especifiquen fechas de envío que no sean posteriores a un plazo de 30 días a partir de la fecha del pedido. 
Guarde los cambios.

Probar las reglas de validación

Abra la tabla que contiene la regla de validación en la vista Diseño.
En el grupo Herramientas de la ficha Diseño, haga clic en Probar reglas de validación.
Haga clic en Sí para cerrar el mensaje de alerta e iniciar la prueba.
Si se pregunta si desea guardar la tabla, haga clic en Sí.
Puede que aparezcan varios mensajes de alerta a medida que proceda. Lea las instrucciones de cada mensaje y, a continuación, haga clic en Sí o No, según proceda, para realizar o detener la prueba.

Probar las reglas de validación mediante una consulta

Nota   Puede probar las reglas de validación escribiendo una consulta que compruebe si hay registros que no cumplen la regla de validación. Los resultados de esa consulta muestran exactamente los registros que no cumplen los requisitos de validación. Por ejemplo, si establece la propiedad Requerido en Sí o en No es Nulo, comprobará los campos cuyo valor no sea nulo.

En el grupo Otros de la ficha Crear, haga clic en Diseño de consulta.
Access abre una nueva consulta en la vista Diseño y muestra el cuadro de diálogo Mostrar tabla.
En el cuadro de diálogo Mostrar tabla, seleccione las tablas que desee usar en la consulta, haga clic en Agregar para agregarlas a la consulta y, a continuación, haga clic en Cerrar.
Las tablas seleccionadas aparecen como ventanas en la sección superior del diseñador de consultas.
En cada tabla, haga doble clic en los campos que desee incluir en la consulta.
O bien,
Arrastre los campos de la tabla y colóquelos en una celda en blanco de la fila Campo situada en la parte inferior de la cuadrícula de diseño.
Asegúrese de agregar el campo que contiene la regla de validación.
En la celda Criterios del campo que contiene la regla de validación, escriba lo contrario de esa regla.
Por ejemplo, si usa ENTRE 100 Y 1000, escriba <100 O >1000.
En el grupo Resultados de la ficha Diseño, haga clic en Ejecutar.

Validar datos al escribirlos en un formulario

La manera más fácil y más rápida de aplicar una regla de validación a un formulario es agregar primero la regla al campo de tabla subyacente y, a continuación, usar las herramientas de creación de formulario automatizada incluidas en Access para crear un formulario. Por ejemplo, en la ficha Crear, en el grupo Formularios, puede optar por la creación de un formulario simple, un formulario dividido, un formulario de varios elementos, etc. Cuando usa una de estas herramientas, los controles del formulario heredan las propiedades de tabla subyacentes, inclusive las reglas de validación y el texto de validación.

Asimismo, puede aplicar una regla de validación a un control de formulario abriendo el formulario en la vista Diseño y agregando una regla a la propiedad Regla de validación y el texto del mensaje a la propiedad Texto de validación del control. Se pueden agregar reglas de validación a algunos controles de formulario, no a todos. La manera más fácil de determinar si se puede agregar una regla de validación a un control es abrir el formulario en la vista Diseño y seguir los pasos descritos en esta sección.

Recuerde que un control puede tener otra regla de validación que el campo de tabla al que está enlazado. Cuando existe un conflicto entre las reglas de validación, la regla definida para el campo de tabla tiene prioridad. Asimismo, recuerde que las reglas de controles y campos de tabla pueden cancelarse mutuamente y, por lo tanto, impedir que se introduzcan datos. Por ejemplo, supongamos que aplica la siguiente regla a un campo de fecha de una tabla:

<#01/01/2007#

Y, a continuación, aplica esta regla al control de formulario enlazado al campo de tabla:

>=#01/01/2007#

El campo de tabla requiere ahora valores anteriores al año 2007, pero el control de formulario le obliga a especificar fechas posteriores a ese año, por lo que no puede especificar ningún dato. Si lo intenta en estas condiciones, Access le indicará que especifique fechas anteriores y posteriores a las definidas por las reglas de validación en conflicto, por lo que se encontrará en un callejón sin salida.

Crear una regla de validación

En el panel de exploración, haga clic con el botón secundario del mouse en el formulario que desee cambiar y, a continuación, haga clic en Vista Diseño.
Haga clic con el botón secundario en el control que desee cambiar y, a continuación, haga clic en Propiedades para abrir la hoja de propiedades del control.
Haga clic en la ficha Todas y, a continuación, escriba la regla de validación en el cuadro de propiedad Regla de validación.
O bien,
Haga clic en  a continuación para iniciar el Generador de expresiones y crear una expresión.
Escriba un mensaje en el cuadro de propiedad Texto de validación.
Guarde los cambios.

Bloquear un control

Siga los pasos 1 y 2 descritos en la sección anterior para abrir la hoja de propiedades del control que desee bloquear.
Haga clic en la ficha Todas, busque los cuadros de propiedad Activado y Bloqueado y, a continuación, siga uno de estos procedimientos:
Para deshabilitar el control (de modo que aparezca atenuado y no esté disponible para tener el foco), establezca el valor de la propiedad Activado en No.
Para que se puedan leer los datos del control pero los usuarios no puedan cambiarlos, establezca la propiedad Bloqueado en Sí. Si establece la propiedad Activado en No y la propiedad Bloqueado en Sí, el control no aparecerá atenuado pero no podrá tener el foco.

Sintaxis de las reglas de validación comunes

Las expresiones en las reglas de validación no tienen ninguna sintaxis especial. En esta sección se explica la sintaxis de algunos de los tipos más comunes de reglas de validación. Recuerde que las expresiones y funciones pueden llegar a ser muy complejas, por lo que no se abordan de manera exhaustiva en este artículo.

Para obtener más información sobre las expresiones, vea el artículo Crear una expresión. Para obtener información sobre las funciones, vea el artículo Funciones (organizadas por categoría).

Tenga en cuenta estas reglas cuando cree expresiones:
Escriba los nombres de los campos de tabla entre corchetes; por ejemplo: [FechaObligatoria]<=[FechaPedido]+30.
Escriba las fechas entre signos de almohadilla (#); por ejemplo: <#01/01/2007#.
Escriba los valores de texto entre comillas dobles; por ejemplo: EN ("Tokio","París","Moscú"). Además, observe que los elementos van separados con una coma y las listas aparecen entre paréntesis.

Usar caracteres comodín en las reglas de validación

Puede usar en las reglas de validación cualquiera de los caracteres comodín proporcionados por Access. Recuerde que Access admite dos juegos de caracteres comodín porque admite dos estándares de Lenguaje de consulta estructurado (SQL), que es el lenguaje que se usa para crear y administrar las bases de datos: ANSI-89 y ANSI-92. Cada uno de esos estándares usa un juego de caracteres comodín distinto.

De forma predeterminada, todos los archivos .accdb y .mdb usan el estándar ANSI-89; sin embargo, los proyectos de Access usan el estándar ANSI-92. Si no conoce Access, en un proyecto de Access, las tablas de la base de datos residen en un equipo en el que se ejecuta Microsoft SQL Server, mientras que los formularios, informes y otros objetos residen en otros equipos. Si lo desea, puede cambiar el estándar ANSI para los archivos .accdb y .mdb a ANSI-92.
 


No hay comentarios:

Publicar un comentario