consultas selección en Access
CONSULTAS DE SELECCION:

La consulta de selección sirve para producir listados por pantalla con datos (reales o calculados) de las tablas relacionales de la base de datos. Las consultas de selección no pueden producir perdidas de datos por error o mal diseño, puesto que sólo seleccionan datos de una o varias tablas para mostrarlos por pantalla o ser origen de datos (registros) de Formularios, Informes y otros objetos de Acces...


Para utilizar las consultas lo primero que hay que hacer en Acces es entrar en la ventana de diseño de consultas. Si utilizas Acces 2003 o anterior deberás acceder como muestra la imagen...



Si en cambio, utilizas Acces 2007 o superior, deberás activar los botones que ves en la imagen siguiente. (aunque que la inteface 2007 o superior sea diferente a la versión 2003 o inferior, el funcionamiento de la ventana diseño de consultas es fundamentalmente el mismo)...



En cualquier caso la primera ventana que encontrarás será (Mostrar tabla) la que ves más abajo. Necesariamente debemos agregar (boton agregar) una o varias tablas. Si agregas más de una tabla, éstas deberán estar relacionadas según el arbol de tablas y relaciones de tu base de datos. Si tu base de datos no tiene arbol de relaciones será porque tendrás una sola tabla en tu base de datos. Si tienes más de una tabla y éstas no están relacionadas entonces pierdes el tiempo y tu esfuerzo con Acces. Es mejor que conviertas las tablas en hojas de Excel...

Como ves en la imagen siguiente la ventan Mostrar tabla, muestra todas las tablas de la base de datos activa. Una vez agregadas una o varias tablas relacionadas debes cerra la ventana Mostrar tabla...




Pero no puedes utilizar las consultas si tu base de datos no tiene al menos una tabla o entidad con un buen números de registros. Tenga en cuenta el lector que la perfecta comprensión de los ejemplos que se exponen a continuación implica visualizar en todo momento la estructura relacional (arbol de relaciones) de entidades que muestra la imagen siguiente. Dicha estructura es la que utilizamos para nuestros ejemplos y puedes descargarla (sólo las tablas relacionales) de la base de datos de este enlace empleado-tablas.mdb (abre la base de datos con ACCES 2007, si lo tienes...)


Las consultas de selección son las más frecuentes, siendo necesarias para otros tipos de consultas que tratamos en los siguientes artículos. Los principales procesos que podemos realizar con las consultas de selección son:


SELECCION DE CAMPOS:

Veamos directamente un ejemplo de una consulta básica sobre la tabla PRODUCTOS de la estructura relacional anterior. Dicha tabla corresponde a la existencia en el mundo real de marcas de coches que vende nuestra supuesta empresa o negocio. Los atributos que tienen interés a las reglas de mi negocio, son los que vemos en la imagen siguiente. Sólo queremos obtener un listado de todos los productos mostrando el número de producto (N_PRODUCTO, llave primaria), la descripción de dicho producto (Descripción), la categoría (Categoría) y la velocidad en km/h del producto, puesto que son coches (Velocidad).

Nuestra consulta tendrá la apariencia de la imagen de abajo. La zona superior de Acces mostrará una tabla (en nuestro ejemplo PRODUCTOS). La zona inferior de celdas es donde seleccionaremos campos, ponemos filtros, creamos expresiones, etc. Pero nuestra consulta es muy básica: sólo incluirá los cuatro campos que se ven en la imagende la imagen siguiente...


Al ejecutar la consulta obtendríamos la lista de registros siguiente sobre la tabla PRODUCTOS de la base de datos del enlace de descarga empleado-tablas.mdb . Como hay una sola tabla y no hay ningún filtro ni expresión, se obtienen todos los registro de la tabla que en el ejemplo de la imagen es 62, es decir 62 marcas de coches cuya primera marca es Land Rober, categoría A y velocidad 100 k/h...



FILTROS O CONDICIONES DE SELECCION:

Pero la selección puede ser más precisa si filtramos, por ejemplo para obtener los mismos campos pero sólo de aquellas marcas o modelos cuya velocidad sea superior o igual a 200 Km/h. Utilizamos la cuadrícula de celdas (zona inferior) la fila Criterios: que ves en la imagen. En la columna Velocidad en la celda de la fila Criterios escribimos la expresión: >=200 que ves en la imagen...




Se pueden escribir centenares de expresiones sintácticamente correctas en las filas de criterios, pero se trata de una sintaxis estricta que no admite errores sintácticos ni semánticos como si se trataran de fórmulas de Excel. Ambas aplicaciones son de Microsoft y comparten un buen número de funciones predefinidas que también pueden incorporarse a las filas de criterios para crear consultas avanzadas...

En cualquier caso, al ejecutar la consulta anterior obtendremos la lista de abajo en la que sólo aparecen 24 de los 62 modelos o marcas que tiene nuestra tabla PRODUCTOS. Los 24 modelos tienen una velocidad superior o igual a 200km/h...



Quizás otro ejemplo ayude a comprender el funcionamiento de las consultas. En la imagen siguiente utilizamos el operador "como" para atributos (campos) de texto. El operador "como" admite caracteres comodín como el asterisco (*) de tal forma que podemos querer obtener todos los modelos de una sola marca, por ejemplo Ford. Entonces podríamos escribir la siguiente expresión Como "Ford*", que ves en la imagen siguiente...

Es decir, el operador Como, un espacio, comillas de apertura, la palabra Ford, un asterisco y comilla de cierre y no olvides que se interpreta con una sintaxis estricta: colocar comillas, espacios, paréntesis, etc. mal colocados producen errores sintácticos insalvables...






Deberíamos obtener sólo 9 (de 62) registros que ves en el listado siguiente y que corresponden a la marca Ford, cualquier modelo...



CREACION DE CAMPOS CALCULADOS O VIRTUALES MEDIANTE EXPRESIONES

Un campo calculado es un campo que no se almacena en ninguna tabla, por tanto es un campo virtual no real cuyo valor depende (se calcula) de otro campo real de alguna tabla. La idea es sencilla: el valor de algún campo real lo utilizamos para crear otro campo virtual que se almacena en la consulta como expresión. Para crear dicha expresión hay que seguir la siguiente sintaxis general:

nombre_campo: expresión

nombre_campo es un nombre arbitrario (sin espacios) que identifica al campo calculado que crea la expresión. El carácter ":" es obligatorio como separador entre el nombre del campo y la expresión. La expresión debe ser válida sintáctica y semánticamente...

Los campos calculados no incrementa el tamaño de las tablas puesto que no se almacena sino que se calcula al ejecutar la consulta. Pero un ejemplo ayudará a entender la idea. En la imagen siguiente tenemos las tablas EMPLEADO_PERSONAL y EMPLEADO_LABORAL. Responde a la existencia en el mundo real de la entidad empleados de mi empresa. Ambas tablas tienen una relación uno a uno siendo EMPLEADO_PERSONAL la tabla principal...

Nos interesa el campo Salario de EMPLEADO_LABORAL, del que sabemos que almacena el salario bruto de cada empleado. Pero hay que realizar una retención correspondiente a algún impuesto que en nuestro ejemplo es el IRPF y más concretamente el 18% de los ingresos o salario. La imagen siguiente muestra el campo calculado al que hemos llamado irpf: aunque sea poco original...

Escribimos la expresión en una columna vacía de la zona de celdas, la palabra irpf, el carácter ":", carácter corchete "[" de apertura para nombre decampo, el campo salario, el corchete de cierre de nombre de campo, el carácter "*" como operador de multiplicar, la constante 18, que es la retención que queremos aplicar, el carácter "/" como operador de división y la constante 100 para porcentaje...

Por supuesto que podemos calcular la seguridad social, el neto, comisiones, etc. El número de campos que se pueden crear es ilimitado: edad del empleado con la fecha de nacimiento, la antigüedad en la empresa con la fecha de alta, ...


Obtendremos el listado siguiente:




CALCULOS CON AGRUPAMIENTOS Y TOTALES

Otra característica interesante de la consultas es la posibilidad de calcular totales y agrupamientos para encontrar respuesta alguna pregunta como ¿cuántas unidades del producto LAND ROBER se vendieron en el año 1998?

Hay que tener en cuenta que la pregunta implica a tres tablas relacionales que ves en la imagen inferior. Nuestra tabla PRODUCTOS define una relación con la realidad facturas a nuestros clientes de los productos que vendemos cuya traducción en tablas define una relación de varios a varios entre PRODUCTOS y los números de facturas (tabla NUM_VENTAS) mediante una tercera tabla de unión que contiene la llave primaria múltiple (tabla VENTAS) como ves en la imagen...

La zona inferior de celdas debe mostrar una nueva fila llamada Totales. Dicha fila se activa con el botón derecho del raton sobre una celda vacía, aparece un menú contextual para clic en Totales...

Necesitamos tres campos para responder nuestra pregunta: Descripción del producto, año 1989 con un campo calculado, y el campo cantidad de VENTAS al que aplicaremos la operación suma de la fila totales. No buscamos un listado sino la respuesta a la pregunta ¿cuántos LAND ROBER se vendieron en 1998?

Necesitamos filtrar para encontrar una sola respuesta. Utilizamos la fila Criterios para filtrar el modelo y el año...

El campo calculado ELAÑO utiliza la función Año([FECHA]) igual que Excel...

FECHA se refiere al campo Fecha de la tabla NUM_VENTA...




Obtenemos 10 unidades vendidas en 1998...




PASO DE PARAMETROS

Con cierta frecuencia Acces interrumpe la ejecución de una consulta con una pequeña ventana "Introduzca el valor del parámetro" y en la que aparece en la zona gris un nombre (variable) que hemos escrito en alguna expresión. Los nombres entre corchetes se interpretan como campos reales o calculados. Si no se encuentra ningún campo real o calculado entonces se convierte en una variable (parámetro) a la que se puede asignar valor.

Por ejemplo, la consulta de la imagen siguiente utiliza el parámetro [retencion] para aplicar cualquier porcentaje de retención en la ejecución de la consulta...















navegación

PowerPoint: Las presentaciones de PowerPoint se componen, normalmente de varias diapositivas o pantallas. La manera de exponer esas pantallas depende del modelo de navegación que utilicemos

=Año(fecha)

Devuelve el año de una fecha. Deberá escribirse una fecha entre los paréntesis o una referencia a una celda que contenga un valor de tipo fecha...






 eduardo@aulapc.es Granada (España)