domingo, 20 de junio de 2010

CONSULTAS

Definición

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.

Generar una nueva consulta
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 a Ud. elegir el modo de cómo, la consulta, debe ser construida. O Ud. mismo monta la consulta a través del modo Vista Diseño o Ud. 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.
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.

Adicionar campos a la consulta
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.

Consultas con múltiples tablas
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 Nombre del empleado
• El Salario del cargo
• El descuento del 8% sobre el salario.

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.

Tablas cruzadas
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.
Cuando se crea una nueva consulta de re 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.

Consultas con parámetros
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.

Consultas avanzadas

Access también nos permite agrupar la información por campos específicos, con el icono de totales

Esta herramienta agrega la función de totales de la siguiente manera:

La opción de totales incluye las funciones como suma, promedio, valor mínimo, máximo, etc.


FORMULARIOS

Para Access, un formulario no es más que un formato de pantalla que se utiliza para mejorar la imagen de las tablas


Ya sabes que cuando trabajas con una tabla, esta aparece en filas y columnas (parecido al formato de una hoja de cálculo). El fondo normalmente en color blanco. Las letras normalmente en color negro. Algo monótono.


Podemos mejorar el aspecto de una tabla cuando la visualizamos en pantalla gracias a los formularios.


Para crear un formulario, prueba los siguientes pasos:


1. Abre una base de datos que tengas creada (vale cualquiera que hayas creado siguiendo este tutorial, por ejemplo):
- Activa la hoja 'Formularios', en la parte superior de la ventana de la base de datos. Pulsa el botón 'Nuevo'


2. Una de las formas más sencillas de crear un formulario es utilizando el 'asistente'. El asistente es un pequeño programa que, formulándonos una serie de preguntas, es capaz de crear por sí solo un formulario (lo malo es que siempre suele hacerlo a su manera y, a lo mejor, no se ajusta exactamente a lo que nosotros buscamos).


3. Haz un solo clic con el botón izquierdo del ratón sobre la opción 'asistente para formularios’.


4. En la casilla en blanco que tienes un poco más abajo puedes elegir la tabla que quieres utilizar para crear el formulario. Selecciona una cualquiera y pulsa el botón aceptar. Verás que sale una nueva ventana con los nombres de los campos que componen la tabla.


5. A la derecha tienes un panel en blanco. Los campos que pases a este panel, son los que aparecerán en el formulario. Para pasar los campos al panel de la derecha puedes utilizar uno de los botones que están entre los dos paneles: (>) pasa los campos a la derecha de uno en uno; (>>) pasa todos los campos a la derecha de una sola vez; (<) quita un campo del panel de la derecha y (<<) quita todos los campos que están en el panel de la derecha. Utilizando estos botones pasa varios campos (incluso todos) al panel de la derecha.


6. Pulsa el botón 'Siguiente'. En esta ventana simplemente tienes que elegir el formato que quieres que se utilice para mostrar los campos: 'En columnas' y 'Justificado' hace que aparezca solo un registro por pantalla (igual que un DNI, por ejemplo), 'Tabular' y 'Hoja de datos' hace que aparezcan los datos en columnas (parecido a cuando ves la tabla).


7. Selecciona 'En columnas' por ejemplo.


8. Pulsa el botón 'Siguiente', ahora tienes distintos estilos para aplicar al formulario. Los estilos son simplemente algunas combinaciones de colores, fondos y tipos de letra que se van a aplicar para ver la tabla. Ve haciendo clic sobre todos ellos y fíjate en el ejemplo que aparece a la izquierda.


9. Cuando veas uno que te guste, selecciónalo con el ratón y luego pulsa el botón 'Siguiente', en este último paso, simplemente tienes que escribir un nombre para el formulario (en la parte superior de la ventana). Normalmente ya aparece el nombre de la tabla que has utilizado para crear el formulario, si no quieres cambiar este nombre por otro simplemente pulsa el botón 'Terminar'.


10. Tras unos segundos, verás el formulario en pantalla con el estilo de colores que seleccionaste.


11. Fíjate que en la parte inferior del formulario tienes una serie de botones. Estos botones te sirven para pasar de un registro a otro: (< ) pasa al primer registro, ( < ) retrocede un registro (no funciona si estás en el primero), ( > ) avanza un registro, ( >) avanza hasta el último registro y ( >* ) añade un nuevo registro.


12. Aquí puedes ver los datos que tienes escritos, borrarlos, modificarlos, añadir datos nuevos,... igual que en la tabla, ya que, de hecho, lo que estás viendo es la tabla, lo que ocurre es que la estás viendo a través del formulario, que es el que le da la apariencia, los colores, etc.


Gracias al asistente podemos crear rápidamente un formulario. Lo único malo que tiene es que lo crea a su manera, es decir, según unos patrones que tiene predefinidos.


Nosotros podemos personalizar el formulario una vez que ha sido creado de la siguiente forma:


• Pulsa el botón ‘Vista’, de esta forma pasamos al diseño del formulario.


• Aparecen tres bandas o apartados: 'Encabezado del formulario', 'Detalle' y 'Pie del formulario'. El encabezado representa lo que aparecerá en la parte superior del formulario y el pie lo que aparecerá abajo. El detalle representa la zona donde van a aparecer los datos de la tabla (justo en el centro del formulario). En el apartado de detalle se observa que aparecen los nombres de los campos dentro de unos recuadros:


• Haz un solo clic con el botón izquierdo del ratón sobre cualquiera de los campos y no lo sueltes.


• Sin soltar el botón del ratón, arrástralo hacia cualquier dirección (arriba, abajo, izquierda o derecha). De esta forma tan sencilla puedes modificar la posición de los campos en la pantalla.