martes, 28 de julio de 2009

Evitar que un campo supere el valor de otro campo en Access

En Access los datos se distribuyen en distintas tablas. Cada tabla, a su vez, se compone de varios campos o columnas que almacenan los datos que va a gestionar Access. Cada campo almacena datos de un tipo de datos concreto. Podemos determinar que propiedades va a tener ese campo, tipo de datos, como se a visualizar ese campo, valor predeterminado, etc.

También existe la propiedad Regla de validación que va permitir limitar los valores a introducir en el campo. Pero lo que no podemos hacer es establecer una regla de validación que afecte a varios campos al mismo tiempo. La regla de validación que vemos en la vista diseño de una tabla solo afecta al campo que tenemos seleccionado en ese momento.

En este post vamos a ver una forma de resolver este tema. Supongamos una tabla que en vista diseño presenta esta imagen:



Como vemos, hay dos campos de tipo Moneda, preciomax y preciomin. Evidentemente va a ver un rango de precios que va a estar entre estos dos valores. Ahora queremos que si, por error, introducimos un valor en el campo preciomin superior a preciomin, Access no debe dejarnos hacerlo. Esto no podemos hacerlo con la propiedad regla de validación de uno de los dos campos. La propiedad regla de validación está presente en Propiedades del campo en la mitad inferior de la vista diseño de la tabla.

La siguiente figura nos muestra las propidedades de un campo, donde podemos observar la propiedad regla de validación del campo que está seleccionado en ese momento.




Para establecer una regla de validación que permita limitar los valores de preciomax y preciomin pulsaremos en el botón propiedades . Nos aparece la ventana propiedades de la tabla, donde se ve que también existe la propiedad regla de validación. En la misma si que podemos relacionar como nos interese los valores introducidos en más de un campo. Como nos interesa que los valores de preciomax no sean inferiores al valor del campo preciomin, colocaremos una regla como se observa en la figura:





Siempre que se hace referencia en una propiedad a un campo, este debe ir siempre entre corchetes ([]).


Siempre que se introduce unos valores que no cumplen la regla automáticamente Access introduce un mensaje que nos indica el error cometido. Podemos personalizar ese mensaje a nuestro gusto. Para ello, completaremos la propiedad Texto de validación como muestra la siguiente imagen:




Cerramos la ventana Propiedades de la tabla, salimos de vista diseño guardando los cambios realizados, y vamos a comprobar ahora la regla que acabamos de crear.


En preciomax colocamos un valor inferior al valor de preciomin, inmediatamente Access responde con una ventana en el que aparece el texto de validación que acabamos de diseñar.


Pulsamos en aceptar y corregimos el error. Ya podemos continuar introduciendo datos en la tabla.

2 comentarios:

  1. Y PARA FECHA QUE HACER? NOME FUNCIONA

    ResponderEliminar
    Respuestas
    1. Hola:
      También puedes comparar fechas. Tenemos que ir a las propiedades de la tabla y en la propiedad regla de validación puedes establecer la misma regla para campos de tipo fechas. Ten cuidado, los campos han de ser del mismo tipo. Pruébalo y a ver si te sale.
      Un saludo.
      Jaime

      Eliminar