Archivo

Posts Tagged ‘consulta’

Ejecutar consultas de larga duración en phpMyAdmin

26 de febrero de 2015 1 comentario

En ocasiones queremos ejecutar una consulta utilizando phpMyAdmin cuya ejecución es demasiado larga en el tiempo, ya sea porque es muy compleja (o no está muy bien optimizada) o porque nuestro equipo es muy lento.

Ya sé que lo mejor es recurrir al terminal y desde la consola de mysql proceder a la ejecución, pero esto no es lo que quiero.

Nos debemos ir a la configuración de phpMyAdmin y modificar (o añadir) una línea.

Buscamos la carpeta de phpMyAdmin (si utilizamos XAMPP estará en algo como c:\xampp\phpMyAdmin) y dentro de la misma editamos el fichero config.inc.php

Buscamos la línea

$cfg['ExecTimeLimit']=300;

y le insertamos el valor 0 para no tener límite:

$cfg['ExecTimeLimit']=0;

Además, deberíamos modificar el entorno de ejecución de PHP, para ello, nos vamos a la carpeta de la instalación de PHP y abrimos el fichero php.ini

Modificamos las siguientes líneas:

max_execution_time = 300;
max_input_time = 600;
memory_limit = 128M;

Incluso la siguiente:

post_max_size = 80M;

Reiniciamos Apache y volvemos a probar la consulta.

Ahora todo funcionará y sí nos mostrará los resultados de la consulta (aunque tarde mucho).

.

Categorías: Bases de Datos Etiquetas: , , , ,

Agrupamiento de una consulta de Unión

15 de enero de 2014 Deja un comentario

Estaba trabajando en alguna consulta de SQL sobre MySQL levemente compleja. Cogía datos de 3 tablas y generaba, mediante una UNION una serie de datos. A estos necesitaba hacerles un GROUP BY.

¿Cómo agrupar el resultado de una consulta de Unión?

Ejemplo:
(SELECT id_accv, round(x) as X, round(y) as Y
from accv
where X is not NULL)

UNION

(SELECT id_accv, round(direccion.x) as X, round(direccion.y) as Y
from accv, direccion
where accv.X is NULL
and fid_codvia2 is NULL
and accv.fid_codvia = direccion.fid_codvia
and accv.portal = direccion.acctexto)

UNION

(SELECT id_accv, round(interseccion.x) as X, round(interseccion.y) as Y
from accv, interseccion
where accv.X is NULL
and accv.fid_codvia2 is not NULL
and accv.fid_codvia = interseccion.fid_codvia
and accv.fid_codvia2 = interseccion.fid_codvia2)

Con la anterior consulta consigo un listado de ID con sus coordenadas X e Y correspondientes.

Ahora, ¿cómo consigo agrupar los puntos y saber cuántos ID hay en cada punto?

Es fácil, hago un ALIAS de esta consulta dentro de la cláusula FROM de la consulta de agrupamiento. El resultado sería:

SELECT count(id_accv), x, y
from
(
(SELECT id_accv, round(x) as X, round(y) as Y
from accv
where year(fechaaccidente)=2013
and X is not NULL)
UNION
(SELECT id_accv, round(direccion.x) as X, round(direccion.y) as Y
from accv, direccion
where year(fechaaccidente)=2013
and accv.X is NULL
and accv.fid_codvia2 is NULL
and accv.fid_codvia = direccion.fid_codvia
and accv.portal = direccion.acctexto)
UNION
(SELECT id_accv, round(interseccion.x) as X, round(interseccion.y) as Y
from accv, interseccion
where year(fechaaccidente)=2013
and accv.X is NULL
and accv.fid_codvia2 is not NULL
and accv.fid_codvia = interseccion.fid_codvia
and accv.fid_codvia2 = interseccion.fid_codvia2)
) as Tablauni
group by X, Y
Categorías: Bases de Datos Etiquetas: , , , , , , ,

Consultas SELECT sobre BD Contactos

2 de octubre de 2012 Deja un comentario

Una vez importada a MySQL la BD CONTACTOS.MDB hacer las siguientes consultas:

  1. Número de registros de la tabla Usuarios
  2. Nombre y apellidos de las personas que viven en Valencia.
  3. Nombre, apellidos y dirección de correo de las mujeres que no están casadas.
  4. Alias y número de teléfono de los hombres que tienen la EGB o el Bachillerato.
  5. Alias, número de teléfono móvil y dirección de correo de los hombres que hablan castellano y tienen los ojos marrones
  6. Alias de las mujeres que les gusta el deporte
  7. Alias de Mujeres heterosexuales o bisexuales que miden más de 1.60m
  8. Alias de Hombres que no tienen fobias y cuyos ingresos mensuales sean mayores de 1000 euros
  9. Número de hombres por cada ciudad
  10. Número medio de hijos que tienen las mujeres que pesan más de 70 kg
  11. Alias de las mujeres rubias de entre 25 y 40 años.
  12. Altura media de los hombres calvos
  13. Nombre de las ciudades en la que la media del peso de los hombres es superior a 80.
  14. Nombre de las ciudades en las que hay más de 5 mujeres dadas de alta

Ejercicio: Piezas y Proveedores

23 de septiembre de 2012 Deja un comentario

  1. Crea la base de datos Suministros
  2. Crea las 3 tablas anteriores
  3. Inserta al menos 5 piezas y 5 proveedores (uno de ellos debe tener código HAL). También inserta en la tabla Suministra al menos 10 filas.
  4. Realiza consultas select para obtener:
    1. Nombres de todos los artículos
    2. Todos los datos de los proveedores
    3. Precio medio de todas las piezas
    4. Nombre de los proveedores que suministran la pieza 1.
    5. Nombres de piezas suministradas por proveedor cuyo código es HAL
    6. Nombre del proveedor que suministra la pieza más cara
    7. Aumentar los precios en una unidad
    8. Hacer constar que la empresa «Tornillos SL» (con código TOSL) va a comenzar a suministrarnos tornillos a 7 pesetas.
    9. Nombre de las piezas que suministra «Tornillos SL»
    10. Nombre del proveedor y número de piezas que suministra.
    11. Nombre de las piezas cuyo precio medio sea mayor a 10 euros y menor de 20.
    12. Diferencia entre el producto más caro y el más barato.
    13. Ordena los proveedores por nombre ascendentemente y muestra sólo los 3 primeros.
    14. Nombre de los proveedores que empiezan por A (si no tienes ninguno que empiece por A, utiliza otra letra para hacer la prueba).

..

CREATE TABLE SUMINISTRA(
codigopieza integer,
idproveedor varchar(4),
precio integer,
primary key (codigopieza,idproveedor),
key(codigopieza),
foreign key (codigopieza) references piezas(codigo) 
on delete cascade on update cascade,
key(idproveedor),
foreign key (idproveedor) references proveedores(id) 
on delete cascade on update cascade);


CONSULTAS:
SELECT * FROM PROVEEDORES;
SELECT AVG(PRECIO) FROM SUMINISTRA;
SELECT NOMBRE FROM PROVEEDORES, SUMINISTRA WHERE CODIGOPIEZA=1 AND
ID=IDPROVEEDOR;
SELECT NOMBRE FROM PIEZAS, SUMINISTRA WHERE IDPROVEEDOR='HAL' AND
CODIGOPIEZA=CODIGO;

SELECT NOMBRE FROM PROVEEDORES, SUMINISTRA WHERE IDPROVEEDOR=ID AND
PRECIO=(SELECT MAX(PRECIO) FROM SUMINISTRA);

UPDATE SUMINISTRA SET PRECIO=PRECIO+1;
INSERT INTO PROVEEDORES(ID,NOMBRE) VALUES ('TOSL', 'Tornillos SL');
INSERT INTO PIEZAS(CODIGO, NOMBRE) VALUES (17, 'Tornillo');
INSERT INTO SUMINISTRA VALUES (17, 'TOSL', 7);

SELECT PIEZAS.NOMBRE FROM PIEZAS, SUMINISTRA, PROVEEDORES
WHERE PROVEEDORES.NOMBRE='Tornillos SL' AND ID=IDPROVEEDOR AND
CODIGOPIEZA=CODIGO;

SELECT PROVEEDORES.NOMBRE, COUNT(*)
FROM PROVEEDORES, SUMINISTRA
WHERE IDPROVEEDOR=ID
GROUP BY IDPROVEEDOR;

SELECT NOMBRE
FROM PIEZAS, SUMINISTRA
WHERE CODIGO=CODIGOPIEZA
GROUP BY CODIGOPIEZA
HAVING AVG(PRECIO)>10 AND AVG(PRECIO)<20;

SELECT MAX(PRECIO) - MIN(PRECIO) AS DIFERENCIA
FROM SUMINISTRA;

SELECT NOMBRE
FROM PROVEEDORES
ORDER BY NOMBRE ASC
LIMIT 3

SELECT NOMBRE
FROM PROVEEDORES
WHERE NOMBRE LIKE 'A%';

Consulta de datos anexados en Access

10 de septiembre de 2012 1 comentario

Las consultas de datos anexados son consultas que añaden filas enteras a una tabla.

Los nuevos registros se agregan siempre al final de la tabla.

La inserción se puede realizar de una fila o de varias filas de golpe, normalmente cogiendo los datos de otra tabla por eso una consulta de datos anexados tendrá un origen (la tabla o tablas de donde cogerá los datos) y un destino (la tabla donde insertamos estos datos). El mecanismo es similar al de la consulta de creación de tabla ya que definimos una consulta de selección que permite obtener los datos a grabar y lo que varía es que ahora indicaremos en qué columna del destino queremos almacenar cada valor.

Para crear una consulta de datos anexados:

Abrimos una nueva consulta en vista diseño.

Añadimos la tabla o las tablas de donde vamos a sacar los datos a insertar en el destino.

Diseñamos la consulta como una consulta de selección normal de tal forma que en el resultado de esa consulta aparezcan los datos a insertar.

Haz clic en el botón Anexar de la pestaña Diseño:

Aparecerá el siguiente cuadro de diálogo:

Escribimos en el recuadro Nombre de tabla: el nombre de la tabla donde queremos insertar los nuevos registros.

Normalmente la tabla estará en la misma base de datos (opción Base de datos activa) pero podemos tener la tabla en otra base de datos, en este caso tenemos que activar la opción Otra base de datos: y escribir en el cuadro Nombre de archivo: el nombre de la base de datos donde se encuentra la tabla. De ser el nombre completo incluida la ruta, por eso es más cómodo buscar la base de datos con el botón Examinar…. Pulsamos Examinar… aparecerá el cuadro de diálogo para buscar en el árbol de carpetas la base de datos que queremos.

 

Por último hacemos clic sobre el botón Aceptar y volvemos a la ventana Diseño de consulta.

La ventana de diseño será parecida a la de una consulta de selección, en ella definimos la consulta de selección para obtener los datos a grabar en la nueva tabla, la única diferencia es que tiene una nueva fila Anexar a:.

Si abrimos las propiedades de la consulta haciendo clic sobre el botón Hoja de Propiedades de la pestaña Diseño veremos en la propiedad Tabla de destino el nombre de la tabla destino y en Base de datos de destino la base de datos donde se encuentra la tabla destino.

En la fila Anexar a: indicamos el campo destino, en qué campo de la tabla destino queremos dejar el valor definido en esa columna.

En la fila Campo: indicamos el valor que queremos se grabe en el campo destino, este valor puede ser un campo del origen, un valor fijo, o cualquier expresión válida.

Podemos incluir un criterio de búsqueda para seleccionar del origen los registros que se insertarán en el destino.

Cuando no rellenamos algún campo del destino, el campo se rellenará con el valor que tenga en su propiedad Valor predeterminado. En nuestro ejemplo no se anexa nada a los campos Fecha inicial y Fecha final por lo que se rellenarán a nulo (su valor predeterminado).

Cuando la tabla tiene una columna de tipo contador, lo normal es no asignar valor a esa columna para que el sistema le asigne el valor que le toque según el contador, si por el contrario queremos que la columna tenga un valor concreto, lo indicamos en la fila Campo:.

Si la tabla destino tiene clave principal y en ese campo intentamos no asignar valor, asignar el valor nulo o un valor que ya existe en la tabla, Access no añade la fila y da un mensaje de error de ‘infracciones de clave’. Por eso en nuestro ejemplo asignamos al campo Código Curso el valor de la expresión [Código Curso] + 1000 para que no se generen códigos duplicados que ocasionarían errores (suponiendo que los códigos de curso que tenemos actualmente no llegan a 1000).

Si tenemos definido un índice único (sin duplicados) e intentamos asignar un valor que ya existe en la tabla también devuelve el mismo error.

Si la tabla destino está relacionada con otra, se seguirán las reglas de integridad referencial.

.

.

Categorías: Metodología Etiquetas: , , ,

Consultas de actualización en Access

10 de septiembre de 2012 Deja un comentario

Las consultas de actualización son consultas que permiten modificar los datos almacenados en una tabla, modifican el contenido de los registros de una tabla. Se pueden modificar de golpe todos los registros de la tabla o sólo los que cumplan una determinado condición.

Para crear una consulta de actualización:

Abrimos una nueva consulta en vista diseño.

Añadimos la tabla que queremos actualizar.

Haz clic en el botón Actualizar de la pestaña Diseño:

A partir de ese momento la cuadrícula cambia de aspecto, han desaparecido las filas Orden: y Mostrar: por carecer de sentido aquí y en su lugar tenemos la fila Actualizar a: como puedes ver en el ejemplo que te ofrecemos a continuación:

  •  El Origen de la consulta puede ser una tabla, una consulta o una combinación de tablas.
  • En la cuadrícula QBE solamente ponemos el campo o campos que intervienen en los criterios de búsqueda y los campos que se quieren actualizar.
  • En la fila Actualizar a: escribimos la expresión que calcula el nuevo valor a asignar al campo.

La expresión puede ser un valor fijo, un nombre de campo del origen o cualquier expresión basada en campos del origen, también podría ser un parámetro.

Esta expresión debe generar un valor del tipo de dato apropiado para la columna indicada.

La expresión debe ser calculable a partir de los valores de la fila que se está actualizando.

  • Si para el cálculo de la expresión se utiliza una columna que también se modifica, el valor que se utiliza es el antes de la modificación, lo mismo para la condición de búsqueda.
  • Para que la actualización afecte a una parte de los registros de la tabla tendremos que seleccionar los registros a actualizar mediante un criterio de búsqueda. Si la consulta no incluye criterio de búsqueda se actualizarán todos los registros de la tabla. En nuestro ejemplo hemos incluido el criterio de búsqueda [Código curso] = 0, y en la fila Actualizar a: del campo [código curso] hemos puesto nulo, lo que significa que actualizará el campo código curso al valor nulo en los registros donde código curso sea igual a cero.
  • Si actualizamos una columna definida como parte de una relación, esta columna se podrá actualizar o no siguiendo las reglas de integridad referencial. (Ver unidad 6)
  • Para ver los datos que se modificarán antes de realizar la actualización podemos hacer clic sobre el tipo de vista Hoja de datos de la pestaña Inicio.
  • Para ejecutar la consulta hacer clic sobre el icono . Al ejecutar la consulta se realizará la actualización de la tabla.
  • Cuando el valor a dejar en el campo que actualizamos es un valor fijo, lo ponemos en la fila Actualizar a: sin más, Access se encargará de añadir las comillas si el campo es de tipo texto o las # # si el campo es de tipo fecha.
  • Cuando el valor a dejar en el campo que actualizamos está contenido en un campo de esa misma tabla tenemos que poner el nombre del campo entre [ ] para que Access no lo confunda con un valor fijo de tipo texto y le añada las comillas. Por ejemplo, supongamos que hemos añadido a la tabla alumnado un nuevo campo Provincia para almacenar en él la provincia del alumno y como la mayoría de nuestros alumnos viven en capital de provincia queremos crear una consulta para rellenar el campo provincia de todos los alumnos con el nombre de su localidad y luego cambiar manualmente los pocos alumnos cuya localidad no coincida con la provincia.

En la consulta a crear habría de poner en la cuadrícula la columna Provincia y en la fila Actualizar a: poner [Poblacion] entre corchetes para que Access entienda que tiene que coger el valor del campo Población.

También podemos utilizar en la fila Actualizar a: una expresión basada en el campo que estamos actualizando u otro campo que también actualizamos en esa consulta. En estos casos se utilizará, para calcular la expresión, los valores antes de la actualización. por ejemplo queremos subir un 5% el precio de nuestros artículos, la expresión a escribir en la fila Actualizar a: del campo precio sería [precio] * 1,1 (esta expresión es equivalente a [precio] + ([precio] * 10 /100)).

  • Cuando el valor a utilizar se encuentra en otra tabla tenemos que definir el origen de la consulta de tal forma que cada fila del origen contenga el campo a actualizar y el campo que contiene el valor a utilizar para la actualización. Por ejemplo supongamos que hemos añadido un campo horas restantes a la tabla alumnado para guardar el número de horas que le quedan al alumnos para acabar el curso. Podríamos crear una consulta para actualizar ese campo con el nºhoras del curso ya que se supone que al principio a todos los alumnos les quedará la totalidad de horas del curso. En este caso el origen de la consulta tiene que contener el campo horas restantes y el campo nºhoras del curso en el que está matriculado el alumno, por eso habría que combinar las tablas Alumnado y Cursos. La consulta quedaría así:

..

Categorías: Metodología Etiquetas: , , ,

Consultas de creación de tabla

10 de septiembre de 2012 Deja un comentario

Las consultas de creación de tabla son consultas que almacenan en una nueva tabla el resultado de una consulta de selección.

Se suelen utilizar para crear tablas de trabajo, tablas intermedias, las creamos para una determinada tarea (por ejemplo para almacenar el resultado de una consulta compleja que tarda en ejecutarse y que vamos a utilizar en varios informes) y cuando hemos terminado esa tarea las borramos. También puede ser útil para sacar datos en una tabla para enviarlos a alguien, o para crear copias de nuestras tablas.

Para crear una consulta de Creación de tabla:

Abrimos una nueva consulta en vista diseño.

Añadimos la tabla o las tablas de donde vamos a sacar los datos a grabar en la nueva tabla.

Diseñamos la consulta como una consulta de selección normal de tal forma que en el resultado de esa consulta aparezcan exactamente los registros que queremos guardar en la nueva tabla.

Hacemos clic en el botón Crear Tabla de la pestaña Diseño:

Aparecerá el cuadro de diálogo Crear tabla:

Escribimos en el recuadro Nombre de tabla: el nombre de la nueva tabla.

Normalmente crearemos la tabla en la misma base de datos (opción Base de datos activa) pero podemos crear la tabla en otra base de datos, en este caso tenemos que activar la opción Otra base de datos: y escribir en el cuadro Nombre del archivo: el nombre de la base de datos donde se creará la tabla. Debe ser el nombre completo incluida la ruta, por eso es más cómodo buscar la base de datos con el botón Examinar…. Pulsamos Examinar… aparecerá el cuadro de diálogo para buscar en el árbol de carpetas la base de datos donde queremos guardar la nueva tabla.

Por último hacemos clic sobre el botón Aceptar y volvemos a la ventana Diseño de consulta:

La ventana de diseño será igual a la de una consulta de selección en ella definimos la consulta de selección para obtener los datos a grabar en la nueva tabla, la única diferencia es que en la barra de título después del nombre de la consulta pone Consulta de creación de tabla y si abrimos las propiedades de la consulta haciendo clic sobre el botón Hoja de Propiedades de la pestaña Diseño veremos en la propiedad Tabla de destino el nombre de la tabla que se tiene que crear y en Base de datos de destino la base de datos donde se creará:

Para ver los datos que se grabarán en la nueva tabla hacer clic sobre el tipo de vista Hoja de datos de la pestaña Inicio. Esta opción nos permite visualizar los datos sin que se cree la nueva tabla.

La opción Ejecutar consulta hace que se cree la nueva tabla con los datos obtenidos de la consulta. Para ejecutar la consulta hacer clic sobre el botón de la pestaña Diseño.

Cuando ejecutamos una consulta de creación de tabla, nos avisa de esta creación, también nos avisa cuando ya existe una tabla con el nombre de la nueva tabla.

Los campos de la nueva tabla se llamarán como el encabezado de los campos de la consulta y heredarán el tipo de datos de los campos origen pero no heredan propiedades como clave principal, índices, etc…

Categorías: Metodología Etiquetas: , , , ,

Las consultas de acción en Access 2007

10 de septiembre de 2012 Deja un comentario

Las consultas de acción son consultas que permiten realizar cambios en los datos almacenados en una tabla. Con estas consultas podemos crear una nueva tabla a partir de los registros de otra, modificar los datos almacenados, insertar nuevos registros o eliminar registros.

Categorías: Metodología Etiquetas: ,

Las consultas de referencias cruzadas

7 de septiembre de 2012 Deja un comentario

Se define una consulta de referencias cruzadas cuando queremos representar una consulta resumen con dos columnas de agrupación como una tabla de doble entrada en la que cada una de las columnas de agrupación es una entrada de la tabla.

Por ejemplo queremos obtener las ventas mensuales de nuestros empleados a partir de los pedidos vendidos. Tenemos que diseñar una consulta resumen calculando la suma de los importes de los pedidos agrupando por empleado y mes de la venta.

La consulta quedaría mucho más elegante y clara presentando los datos en un formato más compacto como el siguiente:

Pues este último resultado se obtiene mediante una consulta de referencias cruzadas.

Observa que una de las columnas de agrupación (empleado) sigue definiendo las filas que aparecen (hay una fila por cada empleado), mientras que la otra columna de agrupación (mes) ahora sirve para definir las otras columnas, cada valor de mes define una columna en el resultado, y la celda en la intersección de un valor de empleado y un valor de mes es la columna resumen, la que contiene la función de agregado (la suma de importes).

Las consultas de referencias cruzadas se pueden crear desde la vista diseño pero es mucho más cómodo y rápido utilizar el asistente.

El asistente para consultas de referencias cruzadas

Para arrancar el asistente para consultas de referencias cruzadas tenemos que hacer clic en el botón Asistente para Consultas que se encuentra en la pestaña Crear:

Asistente para consultas

Elegir la opción Asist. consultas de tabla ref.cruzadas del cuadro de diálogo que aparecerá:

Aparece la primera ventana del asistente:

En esta ventana nos pide introducir el origen de la consulta, la tabla o consulta de donde cogerá los datos.

En el apartado Ver podemos elegir si queremos ver la lista de todas las Tablas, la lista de todas las Consultas o Ambas.

Si la consulta que estamos creando necesita sacar los datos de todos los registros de una sola tabla utilizaremos como origen esa tabla, en caso contrario tendremos que definir una consulta normal para seleccionar las filas que entrarán en el origen o para combinar varias tablas si la consulta que estamos creando necesita datos de varias tablas y esa consulta será el origen de la consulta de referencias cruzadas.

Hacemos clic sobre el nombre del origen elegido y pulsamos el botón Siguiente> para pasar a la ventana

Como el campo que hemos elegido como encabezado de columna, es de tipo Fecha, el asistente nos permite refinar un poco más el encabezado de columna con la siguiente ventana:

Cuando el encabezado de columna es una fecha, normalmente querremos los totales no por cada fecha sino por mes, año o trimestre por eso el asistente nos pregunta en esta ventana qué tipo de agrupación queremos.

Por ejemplo hemos seleccionado el intervalo Mes, pues en el resultado aparecerá una columna por cada mes del año en vez de por cada fecha distinta. Aquí también podemos apreciar el efecto en la zona inferior de la ventana.

Después de pulsar el botón Siguiente> pasamos a la siguiente ventana:

En esta ventana nos pregunta qué valor debe calcular en la intersección de columna y fila.

En la lista Funciones: seleccionamos la función de agregado que permite calcular ese valor, y en la lista Campos: elegimos el campo sobre el cual actuará la función de agregado. Por ejemplo hemos seleccionado Codigo Curso y la función Cuenta, por lo tanto en cada intersección tendremos el número de cursos iniciados en ese mes con ese nº de horas.

Si tienes dudas sobre las funciones de agregado repasa el tema Consultas de resumen.

El asistente nos permite también añadir a la consulta una columna resumen de cada fila, esta columna contiene la suma de los valores que se encuentran en la fila. En nuestro ejemplo me daría el número total de cursos con el nº de horas de la fila. Para que el asistente añada esta columna tenemos que activar la casilla Sí, incluir suma de filas.

Después de pulsar el botón Siguiente> llegamos a la última ventana del asistente.

.

En esta ventana el asistente nos pregunta el nombre de la consulta, este nombre también será su título.

Antes de pulsar el botón Finalizar podemos elegir entre:

Ver la consulta en este caso veremos el resultado de la consulta, por ejemplo:

o bien

Modificar el diseño, si seleccionamos esta opción aparecerá la vista Diseño de consulta donde podremos modificar la definición de la consulta.

 

 

Consultas parametrizadas en Access 2007

6 de septiembre de 2012 Deja un comentario

A menudo, en una consulta  necesitamos utilizar un valor que no es conocido en ese momento sino que  queremos que lo introduzca el usuario cuando se ejecute la consulta. Por  ejemplo, queremos hacer una consulta para obtener los alumnos de una determinada  Población, la población la introducirá el usuario cuando Access se lo pida.

En este caso necesitamos  utilizar en nuestra consulta un parámetro.

Un parámetro funciona de  forma parecida a un campo de tabla, pero el valor que almacena lo introduce el  usuario cuando se ejecuta la consulta.

En una consulta cuando  utilizamos un nombre de campo que no está en el origen de datos, Access  considera este campo como un parámetro y cuando se ejecuta la consulta nos pide  Introducir el valor del parámetro mediante un cuadro de diálogo como  este:

En el ejemplo anterior,  en la consulta tendríamos que añadir una condición de búsqueda que especifique  que la Población es igual al Valor a introducir, de esta manera:

Ojo! cuando pongamos el  nombre del parámetro es importante escribirlo entre corchetes, de lo contrario  Access le añadirá comillas y no lo considerará como un nombre de parámetro sino como un valor.

Otra forma de utilizar un  parámetro en una consulta es definiéndolo mediante el botón Parámetros  de la pestaña Diseño.

Parámetros

En este caso, después de elegir la opción, se abre el cuadro de diálogo Parámetros de la consulta donde podemos indicar el nombre del parámetro y el tipo de  dato.

La diferencia entre  escribir directamente un nombre de parámetro y definirlo con el botón Parámetros es que, si le hemos asignado un tipo de dato, Access comprueba  automáticamente el tipo del valor introducido por el usuario.