Una consulta recupera informaciones de la Base de
Datos y eventualmente las presenta en la pantalla. Serán estudiados tres
tipos de consultas:
-
De selección: selecciona y
presenta registros en formato patrón
-
De referencias cruzadas:
selecciona y presenta registros en formato de planilla
-
De acción: altera el contenido
de registros en una única operación
Los registros seleccionados constituyen un
conjunto. Este conjunto es dinámico en el sentido de que su contenido
tiene por origen varias tablas y con el sentido de solo existir mientras
la consulta esté activa. Al cerrar una consulta, el conjunto de
registros deja de existir. Esto constituye una gran ventaja pues si
alteramos los datos de una tabla las consultas sobre ella
automáticamente reflejarán esas alteraciones.
Las consultas constituyen un recurso práctico
para obtener informaciones específicas contenidas en la Base de Datos.
Con ellas podemos:
-
Elegir campos específicos de
tablas específicas;
-
Seleccionar informaciones vía
criterios;
-
Mostrar las informaciones en
varios órdenes;
-
Obtener datos de varias tablas
simultáneamente;
-
Calcular totales;
-
Crear formularios e informes;
-
Crear otras consultas y
gráficos.
La obtención de una nueva consulta es hecha a
partir de la ventana Base de Datos, seleccionando Consultas y
picando en la opción Nuevo. En respuesta aparecerá un cuadro de
diálogo que le permite elegir el modo de cómo, la consulta, debe ser
construida. O monta la consulta a través del modo Vista Diseño o utiliza
los Asistentes, que facilitan el montaje tanto de consultas como de
informes, formularios, etc.
Al elegir el modo Vista Diseño, aparecerá la
ventana Consulta de Selección sobrepuesta con la ventana de
diálogo Mostrar tabla. Para cada tabla o consulta a adicionar,
seleccione su nombre y pique en el botón Agregar. En el caso que
se adicione una tabla / consulta equivocada, basta seleccionarla y
apretar DEL para borrarla del área de tablas.
FIGURA 3.1Ventana Mostrar tabla de consulta.
La activación de la ventana de diálogo Mostrar
tabla también puede ser realizada a través del menú Consulta
opción Mostrar tabla o por el botón correspondiente en la barra
de herramientas.
La ventana Consulta Selección posee dos áreas, el
área de las tablas envueltas en la consulta y el área de la consulta
propiamente dicha. En esta última área el montaje de la consulta es
hecho a través del esquema QBE (Query By Example). En este
esquema creamos las consultas arrastrando campos del área superior de la
ventana para el área inferior. En la planilla QBE cada columna contiene
informaciones al respecto del campo incluido en la consulta.
FIGURA 3.2 Barra de herramientas de la ventana
Consulta.
La figura 3.3 muestra la estructura de la
consulta que fue denominada "Ingenieros de la Empresa". Al
accionar la ejecución de la consulta aparece el resultado presentado en
la figura 3.4. Esta figura muestra que el resultado es presentado en una
hoja de datos que, en principio, puede ser también usada para alterar y
excluir registros.
FIGURA 3.3 Estructura de la Consulta Ingenieros
de la Empresa.
FIGURA 3.4 Hoja de Datos de la consulta
Ingenieros de la empresa
Inicialmente se debe seleccionar los campos en la
tabla. Se Puede seleccionar varios campos picando y apretando
simultáneamente SHISFT o CTRL. Enseguida, apuntar para alguno de los
campos seleccionados y arrastrarlo para la línea Campo: en el
área inferior.
También es posible adicionar un campo
seleccionándolo desde el Campo en el área inferior. Basta abrir
el cuadro de combinaciones que aparece cuando el punto de inserción está
posicionado en el área del Campo y elegir entre los campos
listados.
Para adicionar todos los campos de la tabla a la
planilla QBE es necesario inicialmente seleccionar todos los campos. Hay
un atajo para esta tarea: basta picar dos veces en la barra de título de
la tabla. Otro método consiste en el arrastre de la línea de
asterisco (*) de la tabla para algún campo de la parte inferior.
Mientras tanto, en este caso él arrastra toda la tabla y produce un
efecto secundario interesante: en caso que la tabla vaya a ser alterada
en su estructura, por adición/exclusión de campos, no será necesario
rehacer la consulta. Por otro lado, campos QBE basados en asterisco
no admiten criterio de clasificación y selección.
Para insertar un campo entre otros ya existentes
en la planilla QBE basta arrastrar un campo seleccionado, en la parte
superior, para el campo que quedará a la derecha del campo insertado.
Para reordenar campos en la planilla QBE basta seleccionar y arrastrar
para otra posición. Para eliminar un campo, basta seleccionar y dar DEL.
Para remover todos los campos de la planilla use la opción Borrar
cuadrícula del menú Edición.
El texto que identifica columnas, en la hoja de
datos, es el nombre del campo. Muchas veces ese nombre es largo y se
desea substituirlo por otro. Para ello basta preceder al nombre del
campo en la planilla QBE con el nombre deseado seguido de dos punto.
Ejemplo: Cargo: Código del cargo. Mientras tanto, si la
columna posee la propiedad leyenda esta tendrá prioridad.
Eventualmente si es necesario utilizar un campo
en una consulta sin que haya necesidad de mostrarlo en la hoja de datos,
por ejemplo, cuando ese campo participa de la llave de clasificación. En
este caso basta desactivar la marca de Mostrar
correspondiente en la planilla QBE.
Basta especificar el orden de clasificación
(creciente o Decreciente) de los campos que hacen parte de la llave de
clasificación. Observar que el orden de los campos pasa a ser importante
y, eventualmente, es necesario reordenar las columnas en relación a su
orden en la tabla original.
Nada impide que un campo de la tabla concurra dos
o mas veces como campo en la planilla QBE. Eventualmente esa puede ser
una solución interesante para poder usar el campo en la llave de
clasificación (donde su posición es fija) desactivando su presentación
en la línea Mostrar; la segunda versión del campo es exhibida en
la posición deseada por el usuario. El mismo efecto puede ser utilizado
en conjunto con campos de la planilla QBE oriundos de asterisco. Como
no es posible usar criterios de selección y clasificación para
campos asterisco (*), basta incluir un duplicado de los
campos necesarios. Para esos campos duplicados son establecidos los
criterios de clasificación y selección concomitantemente con la
desactivación de su presentación en la línea Mostrar de la
planilla QBE
Para grabar la consulta, use las opciones
Guardar y Guardar como o Exportar del menú
Archivo.
Para imprimir la consulta debemos estar en
la hoja de datos y accionar Vista preliminar para ver el layout
de la hoja a ser impresa. La opción Imprimir del menú Archivo
realiza la impresión permitiendo eventualmente imprimir apenas los
registros seleccionados en la hoja de datos. Para eso, basta elegir la
opción Registro Seleccionados como Intervalo de Impresión.
Como criterio de selección en la planilla QBE
podemos emplear diversos tipos de expresión envolviendo diversos tipos
de funciones internas. El resultado de algunos criterios ejemplos es
presentado a continuación. :
-
>520 todos los números
mayores a 520
-
entre 520 y 1528 todos los números
entre 520 y 528 inclusive
-
="Carlos Moreira" todos los
exactamente iguales a
-
"S*" todos los iniciados con la
letra S
-
"fe*eira" por ejemplo: ferreira,
fereira, festeira
-
"sm?th" por ejemplo: smith, smyth
-
"* * *" nombres de tres palabras
separadas por un blanco
-
*/*/93 todas las fechas del 93
-
negado como "S*" todos los nombres
no iniciados por S
-
>=1-ene-92 y <=20-feb-93 todas las
fechas del intervalo
-
"S*" o "R*" todos los iniciados por
la letra S o R
-
nulo todos los registros con campo
nulo
-
negado nulo todos los registros con
valor en el campo
-
fecha() todos con la fecha actual
-
entre fecha() y fecha()-7 todos con
fecha de la última semana
En este caso se emplean las líneas
Criterio: , o: y líneas siguientes de la planilla QBE. Se debe
observar la siguiente regla para definir expresiones entre varios
campos:
Los ejemplos siguientes aclaran la cuestión.
Seleccionar todos los ingenieros y que sean del
departamento de finanzas:
FIGURA 3.5 a.
Todos los ingenieros o Empleados del departamento
de finanzas:
FIGURA 3.5 b.
Todos los ingenieros de nivel 2 del departamento
de marketing o ingenieros nivel 2 con nombres comenzados por la letra R.
FIGURA 3.5 c.
FIGURA 3.5 (a) (b) (c) Selecciones comprendiendo
mas de un campo.
Si el problema es el de exhibir los cargos
constantes del PADRÓN DE EMPLEADOS. En principio basta mostrar
una consulta simple, incluyendo apenas el Código del cargo,
conforme a la figura 3.6.
FIGURA 3.6 Consultas sin y con valores exclusivos
Como se observa hay repetición de valores, pues
todos los registros fueron seleccionados y apenas el campo Código
del cargo es presentado. Para listar sin repetición se debe
indicar que la selección debe omitir valores repetidos. Para ello se
debe accionar en la pantalla de proyecto (modo Vista diseño) el menú
Ver opción Propiedades o picar en el botón correspondiente.
En la ventana de diálogo que aparece enseguida,
activar la opción Valores únicos.
Es común que los datos para una consulta se
localicen en diversas tablas. Por ejemplo, la tabla PADRÓN DE
EMPLEADOS hace referencia al Código de cargo del
funcionario, pero no especifica su salario, pues en la empresa ejemplo,
el salario es función apenas del cargo.
De esta forma, el salario correspondiente a cada
cargo (Salario del cargo)consta solamente en la tabla
PADRÓN DE CARGOS Y SALARIOS.
Si deseamos hacer una consulta que presente el
Nombre del empleado y su Salario (Salario del cargo),
será necesario la referencia a las dos tablas. Además de eso, es
necesario informarle al sistema cómo las informaciones se ligan entre
las tablas, en este caso, la relación es a través del Código del
cargo que consta en las dos tabla. Esa relación es establecida
en el modo diseño de la consulta después de haber adicionado las dos
tablas en la parte superior. Para hacer la relación, basta picar sobre
la línea Código del cargo en la tabla PADRÓN DE
EMPLEADOS y arrastrar hasta que el icono quede sobre la línea
Código del cargo en la tabla PADRÓN DE CARGOS Y SALARIOS.
Si los campos comprendidos poseen el mismo nombre en las dos tablas
entonces el Access intentará establecer la relación automáticamente.
De la misma forma, en el caso en que ya hayan
sido establecidas las relaciones entre las dos tablas en la ventana
relaciones, entonces al adicionar las tablas en la ventana de proyecto
de consultas automáticamente aparecerá la línea de relación entre los
campos relacionados.
Finalmente especificamos en la planilla QBE
cuales son los campos a incluir en la consulta.
El último campo es un campo computado cuya
descripción se inicia con la palabra descuento seguida de dos puntos.
Esta será la leyenda de la columna. El cálculo efectuado envuelve la
siguiente expresión.
Cmoneda(IIf(Esnulo([salario del
cargo]);0;[salario del cargo]*0,08))
Esta fórmula envuelve varias funciones internas
del sistema. Inicialmente se debe observar qué campos son los
comprendidos en las expresiones; pues precisan estar entre corchetes,
por esta razón se debe escribir [salario del cargo].
La función IIf es una función del tipo
IIf(x;y,z) donde x es un test e y y
z son los resultados que la función provee. Si el test
da verdadero, entonces devuelve el resultado y, si el test
da falso, entonces devuelve z. En nuestro caso, es
necesario testear el campo salario del cargo pues podemos tener
funcionarios sin cargo. De esta forma, es hecho un test para verificar
si el campo tiene valor nulo.
Observar que al digitar IIf, el nombre de
la función es automáticamente substituido por el nombre SiInm.
Observar también que el hecho de que el salario no exista es que está
siendo testeado por la función Esnulo y no que el valor del
salario valga cero.
Si no existiera el salario entonces devuelve cero
como descuento. Si el salario existe entonces él es empleado para
calcular 8% sobre él. Tanto un resultado como el otro acaban siendo
alimentados en al función Cmoneda que convierte ese resultado en
formato interno para formato moneda y que es finalmente presentado en la
hoja de datos.
La fórmula para el cálculo de los descuentos fue
digitada directamente en la columna QBE por lo tanto, podría haber sido
construida con el auxilio del botón Generar que acciona el Generador
de expresiones.
FIGURA 3.7 Consulta comprendiendo varia tablas
FIGURA 3.8 Hoja de datos de consulta
comprendiendo varias tablas.
Es posible obtener totales en consultas. Podemos
contar el número de ocurrencias de registros, obtener sumas,
promedio, mínimos, máximos, etc. Para obtener totales es necesario
incrementar una línea Total en la planilla QBE lo que es hecho
por el botón sumatoria ? en la barra de herramientas o
menú Ver opción Totales.
En la línea Total para cada campo de la consulta
deberá ser especificado el tipo de totalización deseada. Por ejemplo, si
el campo sirve apenas para contar registros, debemos elegir la opción
Contar. Si el campo tuviera que sumar, se selecciona Suma.
Por otro lado, siempre habrá campos que van a controlar el argumento de
los registros, por ejemplo, si deseamos totales por departamentos, en
nuestro caso para el del Nombre del departamento,
especificaremos Agrupar por.
Para obtener totales de subagrupamientos basta
incluir en la secuencia correcta a los campos que dan origen a los
grupos y subgrupos indicando el orden de clasificación más conveniente.
El ejemplo de la figura 3.9 muestra la obtención
del total de Empleados por cargo dentro de cada departamento. Para cada
entrada en esta consulta también es presentada la suma de los salarios.
FIGURA 3.9 Consulta incluyendo totales.
En la figura 3.10 de la hoja de datos se observa
que la columna con el total de los salarios posee leyenda y está en
formato moneda. Estas características fueron definidas seleccionando la
columna salario del cargo en la ventana de diseño de la
consulta y accionando el botón propiedades en la barra de herramientas.
En la ventana Propiedades del campo fueron especificados: el
formato moneda, lugares decimales automáticas y titulo Suma (agregar en
la tabla PADRÓN DE EMPLEADOS algunos registros con el mismo cargo
en el mismo departamento).
FIGURA 3.10 Hoja de datos de consulta incluyendo
varias tablas
Las totalizaciones vistas anteriormente también
pueden ser obtenidas a través de consultas de referencia cruzada. La
figura 3.11 muestra la construcción de una consulta de este tipo en la
ventana Consulta de Tablas de Referencia Cruzada accionada por el botón
correspondiente en la barra de herramientas.
En este tipo de consulta se debe indicar cual es
la información que caracteriza filas y columnas.
Esto es indicado en la fila Referencias cruzada:
Encabezado de fila, Encabezado de columna o valor. En el ejemplo, el
campo número de empleado fue usado como valor para indicar
la cuenta de los empleados del departamento y cargo. Además de eso, es
necesario indicar en la línea total cómo cada campo debe ser computado.
La sigla del departamento y el código del cargo son
campos de agrupamiento y el número de empleado indica
simplemente un contador.
FIGURA 3.11 Estructura de la consulta de
Referencia Cruzada
FIGURA 3.12 Hoja de Datos de la consulta de
Referencia Cruzada
Cuando se crea una nueva consulta de referencia
cruzada por primera ves podría ser conveniente, para una mejor
comprensión del procedimiento de construcción de este tipo de consulta,
la utilización del asistente para consultas de referencias cruzadas.
Cuando se construye una relación entre dos tablas
en una consulta es necesario especificar cual es el tipo de asociación
deseada. Esta cuestión puede ser observada en la consulta que relaciona
para cada departamento (PADRÓN DE DEPARTAMENTO) el nombre de su
gerente (PADRÓN DE EMPLEADO). La figura 3.13 muestra la
estructura de esa consulta que envuelve dos tablas y una asociación
entre el Número de gerente y el Número de empleado
(fue quitada la relación, general, entre siglas del departamento).
Vale la pena destacar que los dominios de los ambos campos
Número de gerente y Número de empleado son
iguales.
FIGURA 3.13 Consulta para campos asociados
iguales.
Al picar sobre la línea de asociación aparece la
ventana Propiedades de Asociación, conforme a la figura 3.14.
FIGURA 3.14 Ventana para definir el tipo de
asociación.
En esa ventana está activa la primera opción, lo
que indica que en la hoja de datos de la consulta solo irán a aparecer
las informaciones de campos de las dos tablas para registros donde el
número del gerente y el número del empleado fuesen iguales. La hoja de
datos correspondiente aparece en la figura 3.15.
FIGURA 3.15 Hoja de datos para asociación tipo 1
Por otro lado, si deseamos que aparezcan todos
los departamentos igualmente aquellos que no poseen gerente o cuyo
número de gente por alguna razón no ocurra en el PADRÓN DE EMPLEADOS,
entonces debemos activar la opción que incluye todos los registros del
PADRÓN DE DEPARTAMENTOS. Observar que en este caso la línea de
asociación se transforma en un vector que va del PADRÓN DE
DEPARTAMENTOS al PADRÓN DE EMPLEADOS. La hoja de datos
correspondiente aparece en al figura 3.16.
FIGURA 3.16 HOJA de datos para la asociación tipo
2.
Finalmente es posible relacionar todos los
empleados del PADRÓN DE EMPLEADOS acompañados de su eventual
registro asociado en el PADRÓN DE DEPARTAMENTOS (en el caso que
sean gerentes). En este caso es necesario elegir la tercera opción en la
ventana Propiedades de Asociación. Observar que en esta caso la línea de
asociación se transforma en un vector que va del PADRÓN DE EMPLEADOS
para el PADRÓN DE DEPARTAMENTOS. La hoja de datos correspondiente
aparece en la figura 3.17.
FIGURA 3.17 Hoja de datos para la asociación tipo
3
Podemos construir consultas cuyos criterios de
selección pueden ser provistos cuando la consulta es ejecutada. Por
ejemplo, podemos pedir al usuario que provea la Sigla del
departamento de los empleados que desea listar en la pantalla.
Para esto construimos una consulta normal de selección, por ejemplo, a
partir de la tabla PADRÓN DE EMPLEADOS y en la línea Criterio
del campo Sigla del departamento especificamos un
mensaje entre corchetes: [Informar sigla del departamento al listar].
Este mensaje es presentado a través de una ventana de información de
parámetro donde el usuario debe digitar la sigla deseada. Solo los
registros con esta sigla serán listados. La figura 3.18 muestra la
estructura y la ventana de solicitud del parámetro.
FIGURA 3.18 Consulta con parámetro
|