miércoles, 20 de enero de 2010

Consultas paramétricas en Access

Access nos permite extraer información almacenada de diversas formas. Puede suceder que en ciertas ocasiones pedimos unos datos a Access mediante una consulta. Más tarde volvemos a pedir información con otra consulta. Si realizamos varias consultas que son iguales pero cambiando solo el valor de los criterios, entonces Access permite realizar todo el conjunto de consultas en una sola. Se hace a través de las consultas paramétricas. Éstas cada vez que se ejecutan nos va pedir que demos valor a los criterios dentro de la consulta. En cada ejecución de la consulta podemos modificar el valor de los criterios. Es decir, establecemos el valor de los criterios en cada ejecución de la consulta. Por lo tanto, irán cambiando los resultados de la consulta cada vez.

Vamos a verlo con un ejemplo. Creamos una consulta en vista diseño, en la cual vamos a trabajar con la tabla Productos, de la que nos va interesar extraer los precios de los productos comprendidos entre dos precios, que determinaremos en el momento de hacer la consulta. Bajamos a la cuadricula de diseño los campos NombreProducto y PrecioUnidad. En la fila de criterios de este último campo ponemos el criterio siguiente:

Entre [Precio más bajo] y [Precio más alto]

Así, en cada ejecución Access pedirá ambos precios. Para que nos pida esos valores, usamos los corchetes, que encierran la pregunta para establecer el criterio. Como queremos dos datos, usamos los corchetes dos veces, para que nos pida ambos precios. El diseño de la consulta queda como sigue:


Ejecutamos la consulta, y Access nos pide el precio más bajo de la siguiente forma:


Escribimos el precio más bajo que nos interesa y pulsamos en aceptar. A continuación aparece la otra ventana donde tecleamos el precio más alto y pulsaremos en aceptar:



El resultado serán los productos comprendidos entre los dos precios introducidos:





En otro momento volvemos a ejecutar la consulta, pero cambiando los precios que nos pide para obtener otros productos.

El precio más bajo que introducimos ahora es:



Y el precio más alto es:


Con lo que el resultado de la consulta queda así:


Como vemos, con una sola consulta obtenemos distintos resultados. El valor de los criterios están parametrizados, y se establecen en el momento de ejecución de la consulta. Es interesante, ya que nos permite ahorrar espacio en disco, además de diseñar solo las consultas que sean necesarias.

8 comentarios:

  1. buen trabajo¡he conseguido solucionar muchas dudas de mi word y access, un saludo amigo

    ResponderEliminar
  2. ¿Se puede diseñar una consulta paramétrica que tenga en cuenta parte de una cadena, sin necesidad de obligarme a escribir la cadena completa que tiene el registro o registros a buscar?

    ResponderEliminar
  3. Sí, se puede. Nos apoyaremos en el uso del carácter &, que nos permite unir varias cadenas. Se puede usar también como parte de un criterio que hagamos a una consulta. Un ejemplo, supongamos que tenemos un campo en el que se muestran los cargos de varios empleados. Si varios de ellos son representantes, entonces el criterio podría ser como este:
    "Representante "&[Tipo de representante]
    Al ejecutar la consulta se nos pedirá unicamente el tipo. La palabra representante aparecerá directamente.
    Espero que te sirva.

    ResponderEliminar
  4. ¿Sabes cómo puedo realizar una consulta paramétrica en un campo Sí/No? Para por ejemplo preguntar si una determinada persona es socio o no. Cuando lo intento me funciona respondiendo Sí pero me da error si se escribe No. Gracias de antemano.

    ResponderEliminar
  5. Hola Alberto:
    En primer lugar perdona por no haberte respondido antes. Cuando aplicamos una consulta paramétrica en un campo Sí/No, a la hora de establecer el criterio contestando a la cuestión, ocurre que access no responde como nos gustaría. Una forma de evitar que ocurra es que si contestamos que sí pongamos -1, y nos saldrán todos los registros con Sí en ese campo, y para obtener los que son no responderemos a la pregunta escribiendo el 0. Y nos dará el resto de los registros. Espero que te sirva,
    Un saludo

    ResponderEliminar
  6. Existe alguna manera en que cuando access nos hace la pregunta, aparezca por defecto escrita una respuesta?.
    Por ejemplo: [Que fecha quieres ver]
    Y que por defecto aparezca la fecha del dia actual.
    Gracias!

    ResponderEliminar