4. Pregunta-li a la teva base de dades: crea les teves primeres consultes

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

Llegits a aquest punt, ja tenim dades (taules amb registres) i estructura (relacions entre tauls) a la nostra base de dades de la biblioteca. Ara necessitem algo igual d'important: saber preguntar coses a aquests dades . En Access, això s'aconsegueix amb les consultes . Una consulta és bàsicament una pregunta que li fa a la base de dades per a que us devuelva certa informació filtrada o combinada.
Per exemple, imagina querer saber quins llibres estan actualment prestats a la biblioteca, o els seus préstecs tenen un soci específic . Aquests resultats no tenen escrits directament en cap tauler “tal qual”, sinó que no s'ha de combinar i filtrar les dades existents. Ahí és donde brillan les consultes : et permeten recuperar només les dades que t'interessen i veus en forma de taula, sense duplicar dades ni perdre la integritat original. A més, les consultes poden servir de base per a formularis i informes més complexos posteriorment.
En aquest article aprendrem a crear consultes de selecció sencillas, utilitzar criteris per a afinar la recerca d'informació i aprofitar les relacions entre taulers per fer preguntes més potents. Tot amb exemples pràctics de la biblioteca.

Què és una consulta i per a què serveix?

En termes simples, una consulta és una recerca o filtrat dins de la base de dades . Quan s'executi una consulta, Access recorre els taules indicades, s'aplica les condicions que li hagin donat, i mostren un conjunt de resultats que compleixen aquestes condicions. Piensa en la consulta com un colador: de tota la "sopa" de dades que té, deixa passar sol el que s'ajusta a la teva pregunta.
Existeixen diversos tipus de consultes en Access, però ens concentrarem en la més bàsica i comuna: la consulta de selecció . Esta consulta selecciona ciertos datos y los muestra; no canvia ni mueve la informació, només la presentació filtrada o ordenada segons le pidas. (Màs endavant Access també permet consultes d'acció: per crear taules nous a partir de resultats, actualitzar dades massivament, etc., però això no escapa al nostre nivell inicial).
Exemples cotidianos de consultes a la nostra biblioteca:
  • «¿Quins llibres estan prestats actualment?» – Queremos ver una llista de llibres cuyo estat Disponible = No .
  • «Listado de préstamos del socio Juan Pérez» – Queremos filtrar los registros del tabla Préstamos donde IDSocio correspon a Juan Pérez (tendríem que saber el seu ID, digamos que és 2) i mostrar quins llibres ha sacat i cuándo. Això implica accedir també a la taula Llibres per a veure els títols, etc.
  • «¿Hay ejemplares de Miguel de Cervantes?» – Preguntar a la base de dades si té llibres de cert autor concret, el que seria buscar en el taulell Libros aquells que tenen camp Autor sea “Miguel de Cervantes”.
Totes aquestes consultes de selecció amb criteris.

Creant una consulta de selecció bàsica

Veamos com crear una consulta en Access pas a pas, amb un primer exemple senzill: la llista de llibres no disponibles (prestats actualment). Assumirem que utilitzem el disseny de la base de dades ja establert: taula Llibres amb el camp Sí/No Disponible , i que dicho camp està al dia (marcat «No» per a llibres prestats, “Sí” per als disponibles).
Passos per crear la consulta «Llibres prestats actualment»:
  1. A la pestanya Creeu el menú d'accés, feu clic a «Diseño de consulta» (a vegades apareix només com a “Consulta” amb un ícono de disseny). Obriu la finestra de disseny de consultes i apareixerà automàticament el diàleg “Mostrar el tauler” per a què s'acordi els taulers rellevants.
  2. Seleccioneu la taula Llibres en el diàleg «Mostrar taula» i feu clic a Agregar . (Per a aquesta consulta només necessitem aquesta taula, després cierra el diálogo).
  3. Ara arriba una caixa amb el tauler Llibres i els seus camps llistats. Més avall està la cuadrícula de disseny de la consulta : unes columnes on especificaràs quins camps mostrar i quins criteris aplicar.
  4. Haz doble clic en los campos que quieres que aparezcan en el resultado. Per exemple, quizás ens interessi ver el Título del libro y el Autor . Al fer doble clic en «Título» i en “Autor” a la llista de camps de Libros, veureu que s'adjunten com a columnes a la cuadrícula inferior. También podemos agregar el camp Disponible temporalmente para usarlo de criterio (luego podemos decidir si mostrarlo o no). Añadeu “Disponible” com a tercer camp a la cuadrícula.
  5. Establiu el criteri : Querem només els llibres prestats, és dir, aquells que tenen camp Disponible és «No». En la columna de Disponible, en la fila Criteris , escribe No . (Accés en espanyol reconeix les paraules Sí/No directament per a camps booleanos. També podríem posar False o 0, equivalents a No). Notaràs que Access pot traduir internament a False a la vista SQL, però a la vista Disseny verás No .
  6. Opcionalment, en la fila «Mostrar» d’aquest camp, podeu desmarcar la casilla de Disponible, per al filtre per aquest camp però no lo muestre en els resultats (sabem que tots els resultats tindran Disponible=No, no fa falta que en la llista ponga “No” en cada fila, lo inferior). Las columnas Título y Autor sí deben tener la casilla Mostrar marcada, perquè volem veure aquestes dades.
  7. Ejecuta la consulta para ver el resultado: haz clic en el botón Ejecutar (el icono de un signo d'exclamación rojo a la barra d'eines de disseny) o simplement canvia a la vista Hoja de dades (Access te pedirà guardar la consulta primer, aixígnale el nombre Q_LibrosPrestados o Consulta Libros Prestados). Al executar, la base de dades buscarà tots els llibres disponibles = No i et llistarà els seus títols i autors.
Si tot va bé, obtendràs, per exemple:
Resultat (Vista Hoja de dades de la consulta «LibrosPrestadosActualmente»):
Títol Autor
Don Quixot Miquel de Cervantes
L'ombra del vent Carles Ruiz Zafón
(Suponiendo que esos libros estuvieran marcados como No disponibles en el tabla, ahora aparecen listados. «Don Quijote de la Mancha» no sale porque estaba disponible (Sí), etc.)
Ja tenim la nostra primera consulta. És com una vista filtrada de la taula Libros. Observa que si en un moment canvia l'estat d'un llibre (ej., devolveron Cien años de soledad y ponemos Disponible = Sí en la tabla), la próxima vez que ejecute la consulta, ese libro ya no aparecerá (perquè no compleix el criteri). La consulta sempre reflecteix la condició sobre els dades actuals.

Añadiendo criteris: afina les teves preguntes

Las consultes serian muy limitadas si solo pudieran mostrar todos los datos o filtrar un único valor fijo. Per cert, podem utilitzar criteris variats per a afinar molt els resultats. En Access, els criteris s'escriuen generalment com a expressions lògiques a la fila «Criterios» del dissenyador. Algunes pautes bàsiques:
  • Criteris para camps de text: escriuen entre comillas. Ej: ="Novela" en un camp de categoria devolvería registres de categoria és exactament Novela. Podem usar còmodes amb l'operador Como (LIKE) . Ej: Como "*Cervantes*" en el camp Autor trobaría qualsevol autor que contenga "Cervantes" en el nom. El asterisco * representa qualsevol cadena de caràcters. Si quisiéramos los que empiezan por Cervantes exactament, Como "Cervantes*" ; si terminan en "s", Como "*s" , etc.. Per especificar «distinto de» usamos la palabra puedes usar <> . Ej: <>"Novela" (categories que no sean Novela).
  • Criteris 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. Podem combinar condicions: ej >=2000 Y <2010 para entre 2000 y 2009. Accés a la interfície usa Y para AND y O para OR en español. En la vista SQL seria AND/OR, però en el disseny bastant amb posar múltiples criteris en la mateixa fila (AND implicat) o en filas «O» diferents per fer OR.
  • Criteris de fecha/hora: las fechas se escriben encerradas en # . Ej: >=#01/01/2023# en un camp FechaPrestam donaria préstamos des de 2023 en adelante. Accés respecte el format regional; en España usarà dia/mes/año dins de #. También puedes usar expressions como Date() (hoy) o funciones tipo Entre #01/01/2023# Y #31/12/2023# .
  • Criteris en camps Sí/No: com vimos, es pot posar o No directament (o True/False). También existe la sintaxis Es Nulo para buscar camps vacíos (nulos), o No es Nulo para los no vacíos.
  • Combinar criteris : Access no deixa de posar diversos criteris a la vegada. Si posem condicions en la mateixa fila de Criteris per a diverses columnes, totes han de complir (AND). Si fem servir la línia inferior «o» per a una segona condició alternativa, és un OR. Per exemple, podríem querer una consulta de llibres prestats que sean novel·les de Gabriel García Márquez ; pondríem en criteris: Disponible = No i Autor = "Gabriel García Márquez" i Categoría = "Novela" en la mateixa 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". Aquesta llista de llibres d'un o altre.
Exemple 2: Hagamos otra consulta, un poco más compleja: «Prestamos de un socio específico» . Supongamos que volem un formulari en el que, al triar un soci, veiem els títols de llibres que té prestats actualment. Podem crear una consulta que preguntar per un soci en particular. Inclou els formularis, l'accés no permet crear una consulta de paràmetres que pide un valor a l'usuari quan s'executa.
Passos resumidos per Consulta: Préstamos d'un soci específic :
  • Crea una nova consulta en vista Disseny. Agrega las tablas Socios , Préstamos y Libros (perquè volem combinar dades de les tres: nombre del socio, títols de llibres, dates…).
  • Comproveu que, a les afegiu-hi, l'accés hagi dibujat automàticament les línies de relació (Socios->Préstamos, Llibres->Préstamos). Això ocorre si les relacions es defineixen abans; facilita tot, ja que Access sabrà com juntar la info.
  • Arrastra a la cuadrícula els camps que volen ver. Per exemple: de Socios, el camp Nombre (o NombreCompleto si lo has definit així); de Préstamos, FechaPréstamo (y quizás FechaDevolución prevista); de Libros, el Título del libro. Opcionalment el ID del préstamo si voleu.
  • En la columna del Nombre del socio (o podria 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 hi ha diversos socis amb el mateix nom, idealment filtraríem per ID, però mantinguem-ho simple per ara assumint noms únics.
  • Executa la consulta. Accediu per obrir un quadre de diàleg preguntant «Introduce el nombre del socio:». Escriu, per exemple, Ana i accepta. La consulta s'executarà filtrant els registres on Nombre = Ana, i us mostrarà els préstecs associats: veureu els títols de llibres que té Ana i les dates de préstec.
  • Guarda la consulta amb un nombre significatiu, p. ej. Q_PréstamosDeSocio .
Què hicimos aquí? Bàsicament creem una consulta que barreja tres taules gràcies a les relacions . Accediu internament creant la instrucció per a unir els taulers pels camps relacionats (IDSocio i IDLibro) i després aplicar el criteri Nombre = "Ana" al tauler Socios. Esto nos devuelve datos combinados: de la tabla Socios (nombre), de Préstamos (fechas) y de Libros (títulos) en una misma lista. Així és com la base de dades respon a preguntes creuades.
Ten en compte que, en general, els paràmetres suelen aplicarse millor a camps ID ocultos darrere d'un formulari amb un desplegable, perquè si dos socis es criden igual que això fallaria. Però a nivell didàctic, val per provar.

Consells per treballar amb consultes

  • Nombrar les consultes clarament: Igual que amb les taules, convé donar noms descriptius a les consultes. Un prefix comú és «Q_» per saber que és una Query (consulta). Per exemple: Q_LibrosPrestados, Q_PréstamosDeSocio, etc. Així en el panell de navegació d'Accés a les identificacions fàcils.
  • No duplican datos: Recuerda que las consultes no crean copies de los datos, solo los muestran . Si modifiqui algun dato en una consulta (és possible editar directament a la vista de consulta en alguns casos), està canviant el dato al tauler original. Y si añades registros o los borras mediante una consulta (solo en consultes especializadas), també afecta a la base de taula. Però una consulta de selecció simple no permet afegir registres nous des de la seva vista (a menys que sea sobre una sola taula i no estigui agrupada ni res). En general, piensa en la consulta com una finestra de visualització .
  • Ordenar resultats: Pots ordenar els resultats d'una consulta sense afectar l'ordre de la taula original. En la cuadrícula de disseny, la fila «Ordenar» us deixarà triar Ascendente/Descendente para un camp. Per exemple, ordenar pel títol ascendentment, o per Fecha de préstamo más reciente primero, etc.
  • Guardar i reutilitzar: Una vegada guardada la consulta, la pots executar quantes vegades quieras. Si els dades han canviat, cada execució us donarà el resultat actualitzat. Pots crear tot un repertori de consultes útils (listados de X, cerques de Y) per al teu sistema.
  • Consultes com a base d'altres: L'accés permet utilitzar consultes dins d'altres consultes, com si fossin «taules virtuals». Així pots dividir problemes complexos en passos. Per exemple, una consulta que filtre certs préstecs, i una altra consulta que usen aquesta primera per fer un resum. Esto és més avançat, però bé saber que és possible.
  • Consultas de totals (agregadas): No ho hem cobert al fons aquí, però Access té l'opció de fer sumas, conteos, promedios, etc., amb la funcionalitat de Totales (Σ). Per exemple, podrien comptar amb préstecs oberts. Esto se hace canviando la consulta a tipo “Totales” y usando la fila «Agrupar por / Cuenta / Suma» etc.

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


Bibliografia i Webgrafia

Comparteix l'article

Articles relacionats