4. Pregúntale a tu base de datos: crea tus primeras consultas

a {
text-decoration: none;
color: #464feb;
}
tr th, tr td {
border: 1px solid #e6e6e6;
}
tr th {
background-color: #f5f5f5;
}

Llegados a este punto, ya tenemos datos (tablas con registros) y estructura (relaciones entre tablas) en nuestra base de datos de la biblioteca. Ahora necesitamos algo igual de importante: saber preguntarle cosas a esos datos . En Access, eso se logra con las consultas . Una consulta es básicamente una pregunta que le haces a la base de datos para que te devuelva cierta información filtrada o combinada.
Por ejemplo, imagina querer saber qué libros están actualmente prestados en la biblioteca, o cuáles son los préstamos que tiene un socio específico . Esos resultados no los tienes directamente escritos en ninguna tabla “tal cual”, sino que hay que extraerlos combinando y filtrando los datos existentes. Ahí es donde brillan las consultas : te permiten recuperar solo los datos que te interesan y verlos en forma de tabla, sin duplicar datos ni perder la integridad original. Además, las consultas pueden servir de base para formularios e informes más complejos posteriormente.
En este artículo aprenderemos a crear consultas de selección sencillas, utilizar criterios para afinar la búsqueda de información y aprovechar las relaciones entre tablas para hacer preguntas más potentes. Todo con ejemplos prácticos de la biblioteca.

¿Qué es una consulta y para qué sirve?

En términos simples, una consulta es una búsqueda o filtrada dentro de la base de datos . Cuando ejecutas una consulta, Access registra las tablas indicadas, aplica las condiciones que le hayas dado, y te muestra un conjunto de resultados que cumplen esas condiciones. Piensa en la consulta como un colador: de toda la "sopa" de datos que tienes, deja pasar solo lo que se ajusta a tu pregunta.
Existen varios tipos de consultas en Access, pero nos concentraremos en la más básica y común: la consulta de selección . Esta consulta selecciona ciertos datos y los muestra; no cambia ni mueve la información, solo la presenta filtrada o ordenada según le pidas. (Más adelante Access también permite consultas de acción: para crear tablas nuevas a partir de resultados, actualizar datos masivamente, etc., pero eso escapa a nuestro nivel inicial).
Ejemplos cotidianos de consultas en nuestra biblioteca:
  • «¿Qué libros están actualmente prestados?» – Queremos ver una lista de libros cuyo estado Disponible = No .
  • «Listado de préstamos del socio Juan Pérez» – Queremos filtrar los registros de la tabla Préstamos donde IDSocio corresponde a Juan Pérez (tendríamos que saber su ID, digamos que es 2) y mostrar qué libros ha sacado y cuándo. Esto implica acceder también a la tabla Libros para ver los títulos, etc.
  • «¿Hay ejemplares de Miguel de Cervantes?» – Preguntar a la base de datos si tiene libros de cierto autor concreto, lo cual sería buscar en la tabla Libros aquellos campo cuyo Autor sea “Miguel de Cervantes”.
Todas estas son consultas de selección con criterios.

Creando una consulta de selección básica

Veamos cómo crear una consulta en Access paso a paso, con un primer ejemplo sencillo: la lista de libros no disponibles (prestados actualmente). Asumiremos que usamos el diseño de base de datos ya establecido: tabla Libros con el campo Sí/No Disponible , y que dicho campo está al día (marcado «No» para libros prestados, “Sí” para los disponibles).
Pasos para crear la consulta «Libros prestados actualmente»:
  1. En la pestaña Crear del menú de Access, haz clic en «Diseño de consulta» (a veces aparece solo como “Consulta” con un icono de diseño). Se abrirá la ventana de diseño de consultas y aparecerá automáticamente el diálogo “Mostrar tabla” para que agregue las tablas relevantes.
  2. Selecciona la tabla Libros en el diálogo «Mostrar tabla» y haz clic en Agregar . (Para esta consulta solo necesitamos esa tabla, luego cierra el diálogo).
  3. Ahora verás arriba una caja con la tabla Libros y sus campos listados. Más abajo está la cuadrícula de diseño de la consulta : unas columnas donde especificarás qué campos mostrar y qué criterios aplicar.
  4. Haz doble clic en los campos que quieres que aparezcan en el resultado. Por ejemplo, quizás nos interese ver el Título del libro y el Autor . Al hacer doble clic en «Título» y en “Autor” en la lista de campos de Libros, verás que se agregarán como columnas en la cuadrícula inferior. También podemos agregar el campo Disponible temporalmente para usarlo de criterio (luego podemos decidir si mostrarlo o no). Agregue “Disponible” como tercer campo en la cuadrícula.
  5. Establece el criterio : Queremos solo los libros prestados, es decir, aquellos cuyo campo Disponible es «No». En la columna de Disponibles, en la fila Criterios , escribe No (Access en español reconoce las palabras Sí/No directamente para campos booleanos. También habríamos podido poner False o 0, equivalentes a No). Notarás que Access puede traducirlo internamente a False en la vista SQL, pero en la vista Diseño verás No .
  6. Opcionalmente, en la fila «Mostrar» de ese campo, puedes desmarcar la casilla de Disponible, para que filtre por ese campo pero no lo muestre en los resultados (sabemos que todos los resultados tendrán Disponible=No, no hace falta que en la lista ponga “No” en cada fila, lo inferimos). Las columnas Título y Autor sí deben tener la casilla Mostrar marcada, porque queremos ver esos datos.
  7. Ejecuta la consulta para ver el resultado: haz clic en el botón Ejecutar (el icono de un signo de exclamación rojo en la barra de herramientas de diseño) o simplemente cambia a la vista Hoja de datos (Access te pedirá guardar la consulta primero, asígnale el nombre Q_LibrosPrestados o Consulta Libros Prestados). Al ejecutar, la base de datos buscará todos los libros cuyo Disponible = No y te listará sus títulos y autores.
Si todo fue bien, obtendrás, por ejemplo:
Resultado (Vista Hoja de datos de la consulta «LibrosPrestadosActualmente»):
Título Autor
Don Quijote Miguel de Cervantes
La sombra del viento Carlos Ruiz Zafón
(Suponiendo que esos libros estuvieran marcados como No disponibles en la tabla, ahora aparecen listados. «Don Quijote de la Mancha» no sale porque estaba disponible (Sí), etc.)
Ya tenemos nuestra primera consulta. Es como una vista filtrada de la tabla Libros. Observa que si en un momento cambia el estado de un libro (ej., devolvieron Cien años de soledad y ponemos Disponible = Sí en la tabla), la próxima vez que ejecutes la consulta, ese libro ya no aparecerá (porque ya no cumple el criterio). La consulta siempre refleja la condición sobre los datos actuales.

Añadiendo criterios: afina tus preguntas

Las consultas serán muy limitadas si solo podrían mostrar todos los datos o filtrar un único valor fijo. Por suerte, podemos usar criterios variados para afinar mucho los resultados. En Access, los criterios se escriben generalmente como expresiones lógicas en la fila «Criterios» del diseñador. Algunas pautas básicas:
  • Criterios para campos de texto: se escriben entre comillas. Ej: ="Novela" en un campo de categoría devolvería registros cuya categoría es exactamente Novela. Podemos usar comodines con el operador Como (LIKE) . Ej: Como "*Cervantes*" en el campo Autor encontraría cualquier autor que contenga "Cervantes" en el nombre. El asterisco * representa cualquier cadena de caracteres. Si quisiéramos los que empiezan por Cervantes exactamente, Como "Cervantes*" ; si terminan en "s", Como "*s" , etc. Para especificar «distinto de» usamos la palabra puedes usar <> . Ej: <>"Novela" (categorías que no sean Novela).
  • Criterios numéricos: se pueden usar operadores matemáticos: = , < , > , <= , >= , etc., y no van entre comillas. Ej: en el campo Año, poner >=2000 listaría libros publicados en el año 2000 o posterior. Podemos combinar condiciones: ej >=2000 Y <2010 para entre 2000 y 2009. Acceda en la interfaz usa Y para AND y O para OR en español. En la vista SQL sería AND/OR, pero en diseño basta con poner múltiples criterios en la misma fila (AND implicado) o en filas «O» diferentes para hacer OR.
  • Criterios de fecha/hora: las fechas se escriben encerradas en # . Ej: >=#01/01/2023# en un campo FechaPréstamo daría préstamos desde 2023 en adelante. El acceso respeta el formato regional; en España usará día/mes/año dentro de #. También puedes usar expresiones como Date() (hoy) o funciones tipo Entre #01/01/2023# Y #31/12/2023# .
  • Criterios en campos Sí/No: como vimos, se puede poner o No directamente (o Verdadero/Falso). También existe la sintaxis Es Nulo para buscar campos vacíos (nulos), o No es Nulo para los no vacíos.
  • Combinar criterios : Acceder nos deja poner varios criterios a la vez. Si ponemos condiciones en la misma fila de Criterios para varias columnas, todas deben cumplirse (AND). Si usamos la línea inferior «o» para una segunda condición alternativa, es un OR. Por ejemplo, podríamos querer una consulta de libros prestados que sean novelas de Gabriel García Márquez ; Pondríamos en criterios: Disponible = No y Autor = "Gabriel García Márquez" y Categoría = "Novela" en la misma fila. En cambio, si quisiéramos libros o bien de Márquez o bien de Cervantes, pondríamos Autor = "Gabriel García Márquez" en la primera fila y en la segunda fila Autor = "Miguel de Cervantes". Esto listaría libros de uno u otro.
Ejemplo 2: Hagamos otra consulta, un poco más compleja: «Préstamos de un socio específico» . Supongamos que queremos un formulario en el que, al elegir un socio, veamos los títulos de libros que tiene prestados actualmente. Podemos crear una consulta que pregunte por un socio en particular. Incluso sin formularios, Access nos permite crear una consulta de parámetros que pide un valor al usuario cuando se ejecuta.
Pasos resumidos para Consulta: Préstamos de un socio específico :
  • Crea una nueva consulta en vista Diseño. Agrega las tablas Socios , Préstamos y Libros (porque queremos combinar datos de las tres: nombre del socio, títulos de libros, fechas…).
  • Verifica que, al agregarlas, Access haya dibujado automáticamente las líneas de relación (Socios->Préstamos, Libros->Préstamos). Esto ocurre si las relaciones se definieron antes; facilita todo, ya que Access sabrá cómo juntar la información.
  • Arrastra a la cuadrícula los campos que quieras ver. Por ejemplo: de Socios, el campo Nombre (o NombreCompleto si lo ha definido así); de Préstamos, FechaPréstamo (y quizás FechaDevolución prevista); de Libros, el Título del libro. Opcionalmente el ID del préstamo si quieres.
  • En la columna del Nombre del socio (o podría ser IDSocio; pero Nombre es más amigable), en la fila Criterios, vamos a poner un parámetro . Esto se hace escribiendo entre corchetes una pregunta. Por ej.: [Introduce el nombre del socio:] . Ojo: si hay varios socios con el mismo nombre, idealmente filtraríamos por ID, pero mantengámoslo simple por ahora asumiendo nombres únicos.
  • Ejecuta la consulta. Acceda a abrir un cuadro de diálogo preguntando «Introduzca el nombre del socio:». Escribe, por ejemplo, Ana y acepta. La consulta se ejecutará filtrando los registros donde Nombre = Ana, y te mostrará los préstamos asociados: verás los títulos de libros que tiene Ana y las fechas de préstamo.
  • Guarda la consulta con un nombre significativo, p. ej. Q_PréstamosDeSocio .
¿Qué hicimos aquí? Básicamente creamos una consulta que mezcla tres tablas gracias a las relaciones . Acceda internamente crea la instrucción para unir las tablas por los campos relacionados (IDSocio y IDLibro) y luego aplique el criterio Nombre = "Ana" en la tabla Socios. Esto nos devuelve datos combinados: de la tabla Socios (nombre), de Préstamos (fechas) y de Libros (títulos) en una misma lista. Así es cómo la base de datos responde preguntas cruzadas.
Ten en cuenta que, en general, los parámetros suelen aplicarse mejor a campos ID ocultos detrás de un formulario con un desplegable, porque si dos socios se llaman igual esto fallaría. Pero a nivel didáctico, vale para probar.

Consejos para trabajar con consultas

  • Nombrar las consultas claramente: Igual que con las tablas, conviene dar nombres descriptivos a las consultas. Un prefijo común es «Q_» para saber que es una Query (consulta). Por ejemplo: Q_LibrosPrestados, Q_PréstamosDeSocio, etc. Así en el panel de navegación de Access las identificas fácil.
  • No duplican datos: Recuerda que las consultas no crean copias de los datos, solo los muestran . Si modificas algún dato en una consulta (es posible editar directamente en la vista de consulta en algunos casos), estás cambiando el dato en la tabla original. Y si añades registros o los borras mediante una consulta (solo en consultas especializadas), también afecta a la tabla base. Pero una consulta de selección simple no permite agregar registros nuevos desde su vista (a menos que sea sobre una sola tabla y no esté agrupada ni nada). En general, piensa en la consulta como una ventana de visualización .
  • Ordenar resultados: Puedes ordenar los resultados de una consulta sin afectar el orden de la tabla original. En la cuadrícula de diseño, la fila «Ordenar» te deja elegir Ascendente/Descendente para un campo. Por ejemplo, ordenar por Título ascendentemente, o por Fecha de préstamo más reciente primero, etc.
  • Guardar y reutilizar: Una vez guardada la consulta, la puedes ejecutar cuantas veces quieras. Si los datos han cambiado, cada ejecución te da el resultado actualizado. Puedes crear todo un repertorio de consultas útiles (listados de X, búsquedas de Y) para tu sistema.
  • Consultas como base de otras: Access permite usar consultas dentro de otras consultas, como si fueran «tablas virtuales». Así puedes dividir problemas complejos en pasos. Por ejemplo, una consulta que filtre ciertos préstamos, y otra consulta que use esa primera para hacer un resumen. Esto es más avanzado, pero bueno saber que es posible.
  • Consultas de totales (agregadas): No lo hemos cubierto a fondo aquí, pero Access tiene la opción de hacer sumas, conteos, promedios, etc., con la funcionalidad de Totales (Σ). Por ejemplo, podrías contar cuántos préstamos abiertos hay. Esto se hace cambiando la consulta a tipo “Totales” y usando la fila «Agrupar por / Cuenta / Suma» etc. Mencionado como algo a explorar para el lector curioso, aunque quizás se salga de la UF básica.

a {
text-decoration: none;
color: #464feb;
}
tr th, tr td {
border: 1px solid #e6e6e6;
}
tr th {
background-color: #f5f5f5;
}


Bibliografía y Webografía

Comparte el Artículo

Artículos relacionados