5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 1/43
Access Formularios tablas y consultas
Lecciones
1. Formularios de varias tablas
2. Formulario de tres tablas relacionadas3. Introducir datos en el formulario
4. Consultas de varias tablas y de totales
5. Access. Modificar consultas
6. Consultas de agrupación y de totales
7. Crear consultas basadas en consultas
8. Informes en Access
9. Vista preliminar en Access
10.Access. Secciones en los informes
1. Formularios de varias tablas
Objetivos del capítulo 1, 2 y 3
• Operar con formularios de varias tablas.
• Introducir cuadros de lista desplegables.
• Los subformularios.
En capítulos anteriores hemos aprendido a crear formularios; en este capítulo crearás
formularios avanzados que nos permitirán gestionar información de varias tablasrelacionadas.
También aprenderás a incorporar nuevos controles en tu formulario, e incluso, a
introducir un subformulario.
Formularios de varias tablas
Ya hemos visto en capítulos anteriores un par de ejemplos de formularios de varias
tablas. Sin embargo, queremos dedicar un capítulo independiente a este tema, ya que
hay algunos aspectos que no hemos visto y que son muy importantes a la hora de crear
formularios. Entre éstos destacan:
ð Cómo lograr que el profesor se pueda seleccionar de una lista y no haga falta conocer
su código para asignarlo a un curso.
ð Cómo lograr que no aparezca un código sino un nombre para identificar al profesor.
ð Cómo crear un formulario con tablas que están relacionadas de muchos a muchos
(bueno, ya sabemos que para este tipo de relación, se crean tres tablas, una de ellas de
enlace, como hicimos en las tablas Alumnos, AlumnosPorCurso y Cursos).
1
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 2/43
En la figura 8.1 vemos un ejemplo del formulario de varias tablas que vamos a crear en
este capítulo. Como puedes ver, este formulario contiene los datos de un curso,
incluidos sus alumnos y el nombre de su profesor.
Figura 8.1. Formulario que vamos a crear
Crear este formulario va a implicar que debemos aplicar casi todo lo visto sobre
formularios hasta ahora, y ver algunos aspectos nuevos. Observa de nuevo el formulario
y ten en cuenta lo siguiente:
ð El formulario contiene datos de las cuatro tablas de nuestra base de datos de ejemplo,
incluida también la tabla AlumnosPorCurso, la cual utilizamos como tabla intermedia
entre los cursos y los alumnos.
ð En la parte superior, aparecen los datos completos del curso.
ð En la parte inferior, aparecen los datos de los alumnos asignados al curso.
ð Dentro de los datos del curso, el profesor aparece con nombre y apellidos, y no sólo
con su código de identificación.
Pues bien, en los siguientes apartados veremos cómo crear un formulario de estas
características.
Formulario principal y subformulario
2
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 3/43
Al crear un formulario de varias tablas, éste suele estar formado por varios formularios
unidos en uno solo. En estos casos, se habla de formulario principal y subformulario (o
subformularios):
ð El formulario principal es el formulario que muestra los datos de la tabla más
importante para dicho formulario. Por ejemplo, el formulario de la figura 8.1 es unformulario pensado para mostrar e introducir datos sobre cursos. Por tanto, el
formulario principal es un formulario basado en la tabla Cursos.
ð El subformulario (o subformularios, ya que pueden ser varios) contiene los datos del
resto de tablas relacionadas. Por ejemplo, en la figura 8.1, el subformulario muestra
información sobre los alumnos que asisten a un curso.
Nota
Lo dicho aquí no es siempre exacto, ya que el formulario principal puede estar basado
en una consulta y no en una tabla. El objetivo es que entiendas que en un formulario siempre hay una tabla que actúa como tabla principal.
Alternativas al formulario de varias tablas
Es posible que ahora te estés planteando la necesidad o no de usar formularios de varias
tablas. Si, al fin y al cabo, ya hemos creado formularios con más de una tabla con el
Asistente para formularios, ¿para qué vamos a continuar con este tema tan complejo?
Si es tu caso, intenta ahora introducir los datos de un curso con sus alumnos respectivos.
Para hacerlo, tendrías que seguir estos pasos:
1. Utilizar un formulario de cursos para introducir los datos del curso. El formulario de
ejemplo Formulario para cursos que creamos podría servir, aunque con ciertos
cambios.
2. Eso sí, al introducir el profesor tendrías que conocer su código, ya que el campo que
aparece en la tabla Cursos para identificar al profesor es su código.
3. Después, una vez definido el curso, tendrías que apuntar el código del curso en un
papel (por ejemplo, para el curso de Access, el código es el 2).
4. Para introducir los alumnos, habría que usar un formulario de alumnos, como
Formulario para alumnos que modificamos en el capítulo 6 y que tiene la apariencia de
la figura 8.2.
5. Finalmente, habría que utilizar un formulario de la tabla AlumnosPorCurso para
incluir el código del curso y el código de cada alumno de dicho curso. Esta tarea que
parece tan sencilla podría llevarte mucho tiempo, ya que tendrías que ir abriendo y
cerrando la tabla de alumnos para conocer el código de cada uno de ellos.
3
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 4/43
Figura 8.2. Ejemplo de formulario ya muy trabajado
No es mala idea que intentes ahora introducir los datos de un curso como el mostrado en
la figura 8.1 para que compruebes exactamente el problema que surge al no utilizar un
formulario de varias tablas como el que vamos a crear en este capítulo.
Pasos para crear un formulario de varias tablas
A la hora de crear un formulario de varias tablas, no hay una única forma de hacerlo.Para simplificar, hay tres maneras principales de llevar a cabo esta tarea:
1. Utilizar el Asistente para formularios para introducir todos los datos necesarios en el
formulario y, una vez creado el formulario, utilizar las técnicas de modificación de
formularios que conocemos para darle su apariencia final.
2. Crear el formulario principal por un lado y el subformulario por otro y unirlos
posteriormente.
3. Utilizar una consulta como base para el formulario. Esto veremos cómo hacerlo enotro capítulo, cuando sepamos crear y usar las consultas de totales y de agrupación.
La elección del método que se va a seguir depende de cada caso. Como norma, nuestro
consejo es el siguiente:
ð Usa el Asistente para formularios siempre que sea posible, ya que es más fácil
modificar un formulario ya creado que tener que crear dos formularios y unirlos luego.
En este libro hemos usado esta técnica al crear el formulario Formulario para
profesores (figura 5.6). En este formulario sólo hay dos tablas relacionadas con una
relación de uno (Profesores) a muchos (Cursos).
4
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 5/43
ð Usa el método del formulario principal y subformulario cuando ya hayas creado un
formulario muy sofisticado que te pueda servir como formulario principal. Por ejemplo,
ya le hemos dedicado mucho tiempo a mejorar el formulario Formulario para alumnos(figura 8.2). Si queremos crear el formulario de la figura 8.3, que muestra todos los
cursos a los que ha asistido cada alumno, es mejor crear el subformulario y unirlos
posteriormente. Lo crearemos en otro capítulo.
Figura 8.3. Formulario de alumnos indicando sus cursos
↑ volver al índice ↑
2. Formulario de tres tablas relacionadas
Vamos a empezar a crear el ejemplo de la figura 8.1. Para ello, usaremos el Asistente
para formularios de Access. Los siguientes pasos indican el proceso a seguir:
1. En panel de exploración, haz clic en el menú y elige Formularios para ver los
formularios que hay creados.
2. Haz clic en la ficha Crearde la cinta de opciones y ejecuta el comando Másformularios, Asistente para formularios.
3. En nuestro ejemplo, primero añade todos los campos de la tabla principal (Cursos) y,
después, todos los campos de las otras dos tablas relacionadas: AlumnosPorCurso y
Alumnos. Al terminar, haz clic en Siguiente.
4. En la siguiente ventana del asistente (figura 8.4), tienes que indicar la tabla que
usarás para el formulario principal (en nuestro ejemplo, la tabla Cursos) y hacer clic en
Siguiente.
5
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 6/43
Figura 8.4. Ventana del asistente con campos de tres tablas
5. En la siguiente ventana del asistente, has de indicar si quieres un formulario Tabularo una Hoja de datos para mostrar el subformulario. En nuestro ejemplo, hemos usado
una hoja de datos. Haz clic en Siguiente.
6. La siguiente ventana ya la conocemos, y sirve para indicar el estilo del formulario
(hemos seleccionado Oficina). Haz clic en Siguiente.
7. En la última ventana del asistente tienes que indicar el nombre que quieres dar al
formulario principal y al subformulario, y hacer clic en Finalizar. En nuestro ejemplo,
hemos usado los nombres FormularioPrincipal de Cursos y SubformularioAlumnosPorCurso.
La figura 8.5 muestra el resultado de usar el asistente de formularios con los pasos
indicados anteriormente. Comprobarás que crear un formulario es bastante sencillo.
6
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 7/43
Figura 8.5. Resultado de usar el asistente con tres tablas
La mayoría de las diferencias entre este formulario y el formulario de la figura 8.1 son
estéticas. Esto quiere decir que este formulario sirve para introducir datos de los
alumnos que van a asistir a cada curso.
Ya vimos que en los formularios de varias tablas, al pulsar la tecla Tabal final delformulario principal se pasa al primer campo del subformulario. Si pruebas a introducir
los datos del curso mostrado en la figura 8.1 te surgirán los siguientes problemas:
ð Para introducir los datos del alumno, necesitamos su identificador y, por tanto, vuelve
a ser necesario abrir la tabla Alumnos o disponer de un listado en papel.
ð Al tener tantos campos el subformulario, hay que usar la barra de desplazamiento
horizontal para moverse hacia la derecha.
Las dos grandes ventajas de este formulario son:
1. Si el alumno ya existe, basta con introducir su código de alumno para asignarlo al
curso. Access añade automáticamente el resto de campos extrayéndolos de la tabla
Alumnos.
2. Si el alumno no existe en la tabla Alumnos, se puede usar el subformulario para crear
uno nuevo. Basta con dejar en blanco el campo IdAlumno e introducir el resto de datos.
Access asignará un código al nuevo alumno.
Para que el formulario sea igual que el muestra la figura 8.1, es necesario conocer
algunos aspectos que no hemos visto y que trataremos brevemente a continuación.
La vista de diseño del formulario 7
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 8/43
Todos los cambios que hay que llevar a cabo en el formulario, hay que realizarlos en la
vista de diseño de dicho formulario. Recuerda que para abrir este modo de vista de
diseño:
ð Si estás en el panel de exploración, pulsa en el menú y elige Formularios, selecciona
el formulario y haz clic secundario sobre él, elige abrir en Vista Diseño.
ð Si está el formulario abierto, haz clic en el comando Ver.
La figura 8.6 muestra la ventana de diseño del formulario creado. Es muy parecida a la
ventana de diseño de cualquiera de los formularios creados anteriormente, pero
conviene destacar una serie de elementos:
Figura 8.6. Ventana de diseño del nuevo formulario
ð Los datos de las tablas Alumnos y AlumnosPorCurso aparecen en un control especial
llamado Subformulario. Este control, a su vez, tiene en su interior todas las partes de unformulario: secciones, controles propios, etcétera.
ð Para modificar el subformulario, solamente tienes que hacer clic sobre él para
seleccionarlo, hacer otra vez clic en su interior para seleccionar el control o controles
que se quieran modificar, y utilizar las técnicas que ya conocemos de modificación de
formularios.
ð Si haces clic en la zona del formulario principal, observa que la lista de campos
muestra los campos de la tabla Cursos. Sin embargo, si haces clic en el subformulario,
la lista de campos tiene como título SELECT… Esto se debe a que se está usando una
consulta para este subformulario (aunque sea transparente para nosotros al haberlohecho el asistente).
8
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 9/43
Cuadros de lista desplegable o cuadros combinados
El primer cambio del formulario que vamos a incluir es el uso de un cuadro combinado
(también llamado de lista desplegable) para seleccionar el profesor en el formulario
principal. De este modo, en lugar de introducir un código (que tendremos que
memorizar o tener en una lista impresa), vamos a seleccionar el nombre del profesor deuna lista con las siguientes ventajas:
ð No hace falta memorizar los códigos ni llenar la mesa de listas de códigos.
ð No hay posibilidad de equivocarnos de código. Si se selecciona el nombre de una
lista, el código lo introduce Access automáticamente.
ð Al ver el formulario en pantalla, cualquier persona sabe cuál es el profesor que
imparte el curso, aunque no haya creado el formulario ni sepa nada de Access.
Para lograr este objetivo, hay que utilizar un control del tipo Cuadro combinado. Lossiguientes pasos nos muestran cómo añadir uno de estos controles a un formulario:
1. Abre la vista de diseño del formulario y asegúrate de que se ven la Lista de camposy el grupo de comandos Controles de la ficha Diseño de Herramientas de diseño deformulario .
2. Asegúrate de que está pulsado el botón Asistentes para controles del grupo de
comandos Controles.
3. Haz clic sobre el botón Cuadro combinado en el grupo de comandos Controles.
4. Haz clic en el campo que quieras añadir y, después, haz clic en la sección Detalledelformulario (donde están el resto de controles). En nuestro ejemplo, usa el campo
IdProfesor. Access abrirá un Asistente para cuadros combinados.
5. Activa la primera opción si es necesario para indicar a Access que deseas que los
valores del cuadro los extraiga de una tabla existente. Haz clic en Siguiente.
6. En la siguiente ventana del Asistente para cuadros combinados, selecciona la tabla de
la que quieras obtener los datos y haz clic en Siguiente. En nuestro ejemplo,
Profesores.
7. En la siguiente ventana, indica los campos que quieras que aparezcan en el cuadro
combinado. Introduce siempre el campo clave (es el que usarás para las relaciones) y los
campos mínimos necesarios para identificar el registro. En nuestro ejemplo,
IdProfesor, Nombre y Apellidos. Haz clic en Siguiente.
8. Después de elegir un criterio de ordenación, en la siguiente ventana modifica el
ancho de las columnas si lo deseas. Haz clic en Siguiente. En nuestro ejemplo, hemos
ensanchado la columna Apellidos. (Observa en la figura 8.7 que no aparece el campo
IdProfesor, y que está activa la casilla Ocultarla columna clave).
9
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 10/43
Figura 8.7. Puedes ensanchar las columnas y ocultar el campo clave
9. En la siguiente ventana, indica en la lista Almacenar el valor en el campo el campo
donde vas a guardar el valor seleccionado. En el ejemplo, IdProfesor. Haz clic en
Siguiente.
10. Por último, asigna una etiqueta al nuevo control y haz clic en Finalizar. La etiquetaProfesores la usada en nuestro ejemplo.
Nota
Si no aparece el Asistente para cuadros combinados, puede ser que no esté instalado.
Inserta el CD-ROM de Office en tu ordenador e indica a Access que lo instale.
La figura 8.8 muestra el estado del formulario tras añadir el nuevo control del profesor.
Observa que ahora hay dos controles con el dato del profesor: IdProfesor (que introdujo
el asistente al crear el formulario) y Profesor, que acabamos de crear.
10
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 11/43
Figura 8.8. El formulario con el nuevo cuadro combinado
Es evidente que nuestro nuevo control es mucho más claro que el otro para ver cuál es
el profesor que imparte un curso. Además, seleccionar el profesor es tan sencillo como
desplegar el cuadro combinado y hacer clic en su nombre.
Consejo
Prueba a seleccionar un profesor con el nuevo campo combinado. Observa que,
automáticamente, varía el contenido del control IdProfesor. Esto se debe a que,realmente, en nuestro nuevo control se almacena el código del profesor y no su
nombre.
Otro cuadro combinado en el subformulario
Prueba tú ahora a crear un nuevo cuadro combinado en el subformulario con el
contenido del campo IdAlumno de la tabla AlumnosPorCurso (que no sea de la tablaAlumnos). Mediante este nuevo control, seleccionaremos el alumno de una lista,
evitando tener que conocer su identificador. Como ayuda, piensa lo siguiente:
ð Tienes que hacer clic en el subformulario para seleccionarlo, y volver a hacer clic en
su interior para que la Lista de campos cambie y muestre los campos de este
subformulario.
ð Utiliza el campo AlumnosPorCurso_IdAlumno (antes, recuerda que has de
seleccionar el botón Cuadro combinado en el grupo de comandos Controles).
11
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 12/43
ð En el Asistente para cuadros combinados, elige la tabla Alumnos como origen de los
datos que vas a mostrar (no uses AlumnosPorCurso, ya que no contiene el nombre ni los
apellidos del alumno).
ð Incluye los campos IdAlumno, Nombre y Apellidos en el cuadro combinado.
ð Ensancha si quieres la columna Apellidos.
ð Almacena el valor en el campo
AlumnosPorCurso_IdAlumno.
ð Asígnale el nombre Alumno a la etiqueta del nuevo control.
Access incluirá el nuevo control en la última columna del subformulario. Es una buena
idea moverlo ahora junto al control IdAlumno para probar cómo funciona.
Eliminar campos innecesarios
Otra de las diferencias entre el formulario que tenemos en la actualidad y el mostrado en
la figura 8.1 es la apariencia del subformulario (su tamaño entre otras cosas) y los
controles que aparecen en él.
Por ejemplo, hay cuatro campos que no tiene sentido que estén en el subformulario y
que debemos eliminar para clarificar su contenido:
ð El campo Id no sirve para nada. Su única utilidad es servir de campo clave a la tabla
AlumnosPorCurso y, por tanto, como no aporta información, se puede quitar delsubformulario.
ð El campo Id alumno está repetido, ya que hemos añadido el control Alumno para
seleccionar al alumno de una lista, sin necesidad de conocer su identificador.
ð El campo Id curso tampoco tiene que aparecer, ya que lo vemos en el formulario
principal y es un campo repetido.
ð Finalmente, el campo Alumnos_IdAlumno también está de más, ya que es idéntico al
campo Id alumno que hemos eliminado.
Es importante que entiendas que podemos eliminar estos campos del subformulario,
pero no de la Lista de campos (y por eso lo seleccionamos al crear el formulario con el
asistente). Estos campos sirven para relacionar las tablas, aunque no muestren
información de interés. Si no estuvieran en la lista de campos del subformulario, Access
no podría mostrar los alumnos por curso, ya que no podría relacionarlos. Por eso, los
añadimos con el asistente aunque sabíamos que habría que eliminarlos.
Últimos retoques
Para lograr la figura 8.1, sólo quedan los siguientes retoques:
12
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 13/43
ð Elimina el control IdProfesor del formulario principal. Con el nuevo control del
profesor creado es suficiente.
ð Sitúa el nuevo control del profesor en la posición en la que estaba el control
IdProfesor que acabas de eliminar.
ð Reduce el tamaño del control del precio, ya que es excesivo.
ð Modifica el orden de tabulación del formulario principal para que el nuevo control
Profesor vaya después del nombre del curso (se llamará CuadroCombinadoX, siendo X
un número).
ð Ensancha el subformulario para que se vean sus campos. Nosotros hemos reducido el
ancho del campo Alumno y lo hemos situado el primero de la hoja de datos, ya que
repite el nombre del alumno que aparece a su derecha.
ð Haz el subformulario también más alto, para que si hay más de cuatro alumnos sevean bien.
ð Al terminar, guarda los cambios en el formulario y en el subformulario.
↑ volver al índice ↑
3. Introducir datos en el formulario
Vamos a usar el formulario para incluir alumnos en los cursos existentes. Así
comprobarás lo fácil que es introducir ahora nuevos alumnos y asignar un profesor y un
alumno a un curso sin saber los códigos. Realiza las siguientes operaciones:
ð Asigna al primer curso los 6 alumnos ya existentes en la tabla Alumnos.
ð Asigna al segundo curso los 4 primeros alumnos de la tabla Alumnos.
ð En el tercer curso, asigna los 3 últimos alumnos de la tabla Alumnos.
ð En el cuarto curso, asigna los 3 primeros alumnos de la tabla.
ð En el último curso existente, añade los alumnos segundo, cuarto y sexto al últimocurso.
ð Finalmente, crea un nuevo curso y añade los alumnos que se ven en la figura 8.1. Los
tres primeros los hemos seleccionado de los ya existentes, pero los otros dos son
nuevos.
Incluir un subformulario en un formulario
Para terminar con el tema de los formularios de varias tablas, vamos a ver cómo
introducir un formulario existente como subformulario de otro. Para hacerlo, vamos a
utilizar los formularios Formulario para profesores y Formulario para cursos que
13
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 14/43
creamos en los capítulos 5 y 8. Los tres pasos esenciales que se siguen a la hora de crear
formularios y añadirles un sobformulario son:
1. Crear el formulario principal.
2. Crear el subformulario.
3. Añadir el subformulario al formulario principal y enlazarlos.
Crear el formulario principal
En realidad, en el ejemplo, los puntos 1 y 2 están ya hechos, puesto que disponemos de
los formularios ya creados. Si no fuera así, tendrías que crear el formulario principal
con el Asistente para formularios, como vimos en los capítulos 5 y 8. En nuestro caso,
en lugar de crear el formulario principal, abriremos el formulario Formulario para
profesores y eliminaremos el subformulario que hay en su interior.
Eliminar un subformulario no es más que eliminar un control, así que para preparar
nuestro formulario principal, sigue estos pasos:
1. Abre el modo de vista de diseño del formulario Formulario para profesores.
2. Haz clic en el subformulario para seleccionarlo.
3. Finalmente, haz clic en la tecla Supr para borrar el subformulario.
Crear el subformulario
Ya sabemos que un subformulario no es más que un formulario dentro de otro. Por
tanto, para crearlo, sólo tienes que utilizar el asistente para crearlo. Eso sí, como se va a
utilizar como subformulario, has de seguir unas normas mínimas:
ð Incluye el campo que sirva para relacionar el formulario con el subformulario. Suele
ser el campo clave si es una relación de uno a muchos.
ð Utiliza un formato de hoja de datos o tabular para el subformulario. Es la mejor forma
de que el resultado quede elegante y se vean todos los campos en el formulario final.
Abre ahora el formulario Formulario para cursos y modifícalo para que tenga la
apariencia de la figura 8.9. Lo único que hemos hecho ha sido:
14
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 15/43
Figura 8.9. El subformulario modificado
ð Reducir el tamaño del control IdCurso (es un número y no aporta información
alguna).
ð Eliminar el control IdProfesor y su etiqueta. Ten en cuenta que al ser un
subformulario, el IdProfesor ya aparecerá en el formulario principal. (No lo elimines de
la Lista de campos, sólo del formulario).
ð Aumentar el tamaño del control FechaInicio y de su etiqueta, para ver completos el
contenido del control y de la etiqueta.
ð Aumentar el tamaño del control FechaFin y su etiqueta para lograr ver sus contenidos
completos.
ð Reducir el tamaño del control Precio y de su etiqueta.
ð Finalmente, hemos movido los controles y las etiquetas para que quedaran encima del
control correspondiente.
Añadir el subformulario al formulario principal
El tercer paso consiste en añadir el subformulario al formulario principal. No haymucha diferencia entre añadir un control del tipo «subformulario» y otros tipos de
controles, como muestran los siguientes pasos:
1. Abre la vista de diseño del formulario principal.
2. Asegúrate de que se ve el grupo de comandos Controles y de que está activado el
botón Asistente para controles.
3. Haz clic en el botón Subformulario/Subinforme del Cuadro de herramientas.
4. Haz clic sin soltar en la posición del formulario en la que desees incluir elsubformulario y arrastra hasta darle un tamaño apropiado (si no queda bien, puedes
15
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 16/43
ampliarlo o reducirlo después). Aparece la primera ventana del Asistente para
subformulario.
5. Selecciona el formulario que desees y haz clic en Siguiente. En nuestro caso,
selecciona Formulario para cursos.
6. Selecciona la opción de relación que sea correcta y pulsa Siguiente. En nuestro caso,
se relacionan por el campo IdProfesor.
7. Finalmente, asigna un nombre al subformulario y pulsa Finalizar. Nosotros hemos
usado el nombre Subformulario de cursos.
Nota
Si no está instalado el Asistente para subformularios, Access te lo indicará y te
ofrecerá la posibilidad de instalarlo.
La figura 8.10 muestra el formulario terminado. En principio, no parece necesitar
muchas modificaciones. Si hubiera que modificarlo, solamente tendrías que abrir la
ventana de diseño del formulario y realizar los cambios que desees como siempre.
Figura 8.10. Formulario terminado
↑ volver al índice ↑
16
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 17/43
4. Consultas de varias tablas y de totales
Objetivos del capítulo 4, 5, 6 y 7
• Realizar consultas de varias tablas.
• Consultas de agrupación y de totales.
• Creación de consultas basadas en consultas.
Al igual que en los formularios, en las consultas podemos hacer participar a varias
tablas. En este capítulo aprenderemos a crear consultas basadas en campos de varias
tablas, a introducir condiciones en consultas de varias tablas, a modificar las consultas
añadiendo y quitando tablas y campos.
También aprenderemos a crear consultas de totales o de agrupación, a incluir campos
calculados en consultas y a crear consultas basadas en otras consultas.
Consultas de varias tablas
En el capítulo 7, vimos cómo crear consultas con una única condición y con varias
condiciones. También vimos que estas condiciones podían referirse a uno o a varios
campos.
Sin embargo, hasta ahora todas las consultas incluyen condiciones relativas a campos de
una única tabla.
Por ejemplo, en el capítulo 7 vimos condiciones de todo tipo pero siempre sobre campos
de la tabla Profesores.
En este apartado vamos a ver cómo crear consultas de datos de más de una tabla. El
objetivo de este tipo de consultas suele ser doble:
ð Realizar consultas basadas en datos de más de una tabla. Por ejemplo, buscar los
profesores que viviendo en Barcelona hayan impartido un curso en el año 2010. En este
caso, necesitamos datos de la tabla Profesores (la ciudad del profesor) y de la tabla
Cursos (la fecha del curso).
ð Crear consultas que sirvan de base para mostrar datos en formularios e informes. Esto
lo veremos en otro capítulo.
Veamos paso a paso el ejemplo de una consulta con datos de más de una tabla. Ya
sabemos que queremos obtener información sobre los profesores de Barcelona que
hayan realizado un curso en el año 2010.
Como vimos en el capítulo 7, para crear la consulta hay que determinar dos cosas:
1. ¿Qué datos queremos ver? En otras palabras, ¿qué datos deseamos que nos devuelva
la consulta?
17
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 18/43
2. ¿Qué condiciones han de cumplir los registros para que aparezcan en el resultado de
la consulta?
Crear la consulta
El primer paso, por tanto, es determinar qué datos queremos que aparezcan en elresultado de la consulta.
A diferencia de las consultas de una única tabla, se pueden mostrar datos de más de una
tabla y, por tanto, también hay que saber en qué tabla se encuentra el dato buscado.
Para nuestro ejemplo, vamos a crear una consulta con los siguientes datos:
ð El nombre del profesor.
ð Los apellidos del profesor.
ð La ciudad del profesor.
ð El teléfono móvil del profesor.
ð La fecha de finalización de un curso que haya impartido en el año 2010.
Para saber esta información, necesitamos datos de las tablas Profesores (el nombre, los
apellidos, la ciudad y el móvil) y datos de la tabla Cursos (la fecha de final del curso).
Sabiendo los campos que necesitamos para la consulta, ha llegado el momento de crear la consulta en sí.
Los siguientes pasos muestran cómo hacerlo (la única diferencia con los pasos vistos en
el capítulo 7 es que hay que indicar que queremos usar campos de varias tablas):
1. En el panel de exploración, haz clic en el menú y elige Consultas. Verás las
consultas creadas en el capítulo 7.
2. Ve a la ficha Crear en la cinta de opciones y haz clic en el comando Asistente paraconsultas para ejecutar el asistente.
3. Elige una consulta sencilla y selecciona la primera tabla que contenga los datos que
quieres consultar en el cuadro Tablas/Consultas (la tabla Profesores) y, en la lista
Camposdisponibles, haz doble clic en los campos que quieras ver en la consulta.
Añade ahora el código del profesor (recuerda, IdProfesor), el nombre, los apellidos, la
ciudad y el móvil.
4. Repite el paso anterior para cada una de las tablas de las que quieras obtener campos.
En nuestro ejemplo, repítelo con la tabla Cursos y los datos indicados (fecha final y
profesor, como muestra la figura 9.1).
18
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 19/43
5. Haz clic en el botón Siguiente para pasar a la segunda ventana del asistente. Vuelve
a hacer clic en Siguiente para crear una consulta de Detalle (las consultas de totales o
resumen las veremos más adelante en este mismo capítulo).
6. Escribe el título de la consulta, por ejemplo, Profesores de Barcelona año 2010 y
haz clic en Finalizar.
Figura 9.1. Selección de campos de varias tablas
La figura 9.2 muestra el resultado de esta consulta. Observa que, efectivamente,
aparecen datos de la tabla Profesores y de la tabla Cursos, pero hay dos aspectos que
hay que destacar especialmente:
ð Igual que en el caso de consultas de una tabla, al usar el Asistente para consultas
sencillas no se ha introducido ninguna condición, por lo que aparecen profesores que no
son de Barcelona y que han terminado sus cursos en el año 2009 (y no sólo durante el
2010).
ð Pero lo más relevante es que no aparecen todos los datos de la tabla Profesores.
Aunque no se ha introducido ninguna condición en la consulta, sólo aparecen los profesores que han impartido algún curso.
Esto se debe a que Access considera intrínseca la condición siguiente:
ð IdProfesor (de la tabla Profesores) = IdProfesor (de la tabla Cursos).
19
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 20/43
Figura 9.2. La consulta con datos de varias tablas
El motivo de esta condición intrínseca es que las tablas Profesores y Cursos están
relacionadas por medio del campo IdProfesor de cada tabla.
Consejo
Por este motivo, cuando se usan consultas de varias tablas, es conveniente incluir loscampos que relacionan las tablas, aunque no se vayan a utilizar para introducir
condiciones ni se quieran mostrar en el resultado de la consulta.
Condiciones en consultas de varias tablas
Para terminar la consulta de ejemplo, sólo resta incluir las condiciones que consigan quesólo aparezcan los profesores que viviendo en Barcelona hayan terminado algún curso
en el año 2010.
Como ya sabemos, las condiciones hay que definirlas en la vista de diseño de la
consulta.
Observa la figura 9.3. Es la vista de diseño de la consulta que ha creado el Asistente
para consultas sencillas (cuya ventana de presentación se muestra en la figura 9.2).
20
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 21/43
Figura 9.3. Vista de diseño de la consulta
En esta ventana, puedes ver perfectamente varias características que distinguen las
consultas de varias tablas de las de una única tabla:
ð En la zona de tablas, hay más de una lista de campos. De hecho, aparecerá una lista
por cada una de las tablas que se añadan a la consulta.
ð Entre las listas de campos de cada tabla, aparece una línea similar a la que aparece en
la ventana de relaciones de Access. Esta línea indica que hay una relación entre dichas
tablas y que esta relación se «transfiere» también a las consultas creadas con tablas
relacionadas (en las consultas, las relaciones reciben el nombre de combinaciones).
ð La fila Tabla de la cuadrícula QBE adquiere ahora importancia, ya que indica a qué
tabla pertenece cada uno de los campos que se añaden a la cuadrícula QBE.
ð Cuando hay dos campos que se llaman de la misma forma en dos o más tablas (comoIdProfesor en el ejemplo), Access incluye delante del nombre del campo el nombre de
la tabla: Profesores_IdProfesor y Cursos_IdProfesor, para evitar confusiones.
Incluir condiciones en las consultas de varias tablas se hace exactamente igual que en
las consultas de una única tabla. Por tanto, para lograr el objetivo de nuestro ejemplo,
sólo hay que seguir estos pasos:
1. Abre la vista de diseño de la consulta creada (o si estás en la vista de hoja de datos,
haz clic en el comando Ver).
2. En el campo FechaFin, escribe >=#1/1/10# Y <=#31/12/10#.
21
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 22/43
3. En el campo Ciudad, escribe «Barcelona».
Esto significa que el curso ha terminado en el año 2010 y que el profesor vive en
Barcelona.
↑ volver al índice ↑
5. Access. Modificar consultas
Las consultas, al igual que el resto de elementos de Access, se pueden modificar
siempre que se desee. Como ocurría en los formularios y en las tablas, para realizar
cualquier cambio en las consultas hay que abrir la vista de diseño.
Algunas de las formas de modificar una consulta son muy sencillas (o ya las
conocemos), y sólo les vamos a dedicar una mención:
ð Ya sabes cómo añadir condiciones a las consultas.
ð Para borrar condiciones, solamente tienes que hacer clic en la condición en cuestión y
borrarla utilizando las teclas Supr o Retroceso.
ð Para aumentar el ancho de una columna en la consulta, sitúa el puntero del ratón en la
línea que separa las dos columnas y cuando se convierta en una doble flecha, haz clic y
arrastra sin soltar hacia la izquierda o la derecha.
ð Como el orden de las columnas en la ventana de diseño de las consultas define el
orden en que se muestran los datos en el resultado de la consulta, es importante saber
cómo modificar ese orden. Para cambiar de posición una columna en la consulta, has de
seguir estos pasos (es muy parecido al método usado en la hoja de datos de la tabla):
1. Haz clic en el recuadro gris situado justo encima (está marcado en la figura 9.3).
Observa que se selecciona toda la columna.
2. Una vez seleccionada la columna, vuelve a hacer clic y, sin soltar el botón del ratón,
arrastra la columna a la posición en la que quieras situarla. Observa que Access muestra
con una línea vertical gruesa la posición en la que va a situar la columna.
3. Suelta el botón del ratón cuando veas que Access muestra la columna en la posicióndeseada.
Sin embargo, hay otras formas de modificar el diseño de la consulta que debes conocer
y que se explican en los apartados siguientes.
Añadir más tablas a una consulta
Las consultas no han de estar basadas sólo en dos tablas. Pueden estar basadas en tantas
tablas como se desee. Eso sí, nuestro consejo es que utilices consultas con tablas
relacionadas. Para añadir más tablas a una consulta ya existente, utiliza los siguientes
pasos:
22
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 23/43
1. Abre la vista de diseño de la consulta.
2. Haz clic en el comando Mostrar tabla del grupo Configuración de consultas en la
cinta de opciones.
3. En el cuadro de diálogo Mostrar tabla, aparecerán las tablas existentes en la base dedatos. Haz doble clic en la tabla que quieras añadir.
4. Repite el paso 3 para cada una de las tablas que quieras añadir.
5. Cuando hayas añadido todas las tablas que desees, haz clic en Cerrar.
Una vez que aparezcan en la vista de diseño todas las tablas que quieras usar en la
consulta, introduce las condiciones que desees igual que si fuera una consulta de una
sola tabla.
Prueba ahora a añadir a la consulta Profesores de Madrid el resto de tablas de nuestra base de datos de ejemplo: Cursos, Alumnos y AlumnosPorCurso. Observa en la figura
9.4 el resultado.
Figura 9.4. La consulta con cuatro tablas
Utiliza el comando Guardar objeto como del menú del Botón Office para guardar la
nueva consulta con el nombre Consulta de cuatro tablas.
Añadir o eliminar campos en la cuadrícula QBE
Dos de las operaciones más habituales a la hora de modificar una consulta son añadir
nuevos campos a la cuadrícula QBE o eliminar alguno de los existentes.
Para eliminar, que es más sencillo, simplemente hay que seguir los dos siguientes pasos:
1. Seleccionar el campo que se quiere eliminar haciendo clic en el recuadro existente
encima de su nombre (marcado en la imagen de la figura 9.3).
2. Pulsar la tecla Supr.
23
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 24/43
Del mismo modo, se puede añadir un campo también en cualquier momento. Los
siguientes pasos indican cómo:
1. Asegúrate de que la tabla en la que se encuentra el campo que quieres añadir aparece
en la parte superior de la vista de diseño. Si no es así, añade la tabla a la consulta como
mostramos en el apartado anterior.
2. Si es necesario, utiliza la barra de desplazamiento de la lista de campos en cuestión
para ver el nombre del campo.
3. Haz clic en el nombre del campo que quieras añadir y, sin soltar el botón del ratón,
arrástralo a la cuadrícula QBE hasta la posición en la que desees situarlo.
Si en lugar de arrastrar el nombre del campo haces doble clic sobre él, se añadirá
rápidamente el campo en la primera columna que esté libre. Si quieres situarlo en otra
posición, ya sabes que sólo tienes que seleccionar la columna y arrastrarla a la posición
deseada.
Ocultar un campo en el resultado
Otra de las acciones que se pueden llevar a cabo en la cuadrícula QBE es ocultar alguno
de los campos existentes en dicha cuadrícula. Aunque ahora pueda parecerte absurdo,
hay dos casos en los que se utiliza mucho esta posibilidad:
ð Cuando se ha creado una consulta de varias tablas relacionadas utilizando el Asistente
para consultas sencillas, lo normal es que aparezca varias veces en el resultado el campo
que se utiliza para relacionar las tablas. Es mucho más elegante ocultar campos para quesólo se vea uno.
ð Se pueden incluir campos en la cuadrícula QBE con el único fin de especificar
condiciones que se hayan de cumplir. En estos casos, no interesa que se vea el campo en
el resultado de la consulta, pero es imprescindible que esté en la cuadrícula QBE para
poder incluir las condiciones.
En estos casos, y en cualquier otro que quieras tener un campo en la cuadrícula QBE pero que no se vea en el resultado, lo único que tienes que hacer es desmarcar la casilla
de verificación de la fila Mostrar (haz clic en la casilla para quitar la marca que hay
dentro).
↑ volver al índice ↑
6. Consultas de agrupación y de totales
Las consultas no sólo sirven para saber los datos existentes en las tablas. Hasta ahora,
todas las consultas las hemos empleado para saber qué profesores cumplían un número
determinado de condiciones, o qué cursos se celebraban en una fecha concreta.
Sin embargo, las consultas también se pueden usar para realizar cálculos, que pueden ir
desde sumar valores numéricos a contar registros de una tabla que cumplan lascondiciones impuestas.
24
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 25/43
Este tipo de consultas recibe el nombre de consultas de totales (y de agrupación, ya que
los totales se suelen obtener por grupos de registros, como veremos). Vamos ahora a
crear una consulta de totales bastante sencilla, para que aprendas cómo se hace.
La figura 9.5 muestra el resultado de la consulta que vamos a crear. Su objetivo es
bastante simple (contar el número de alumnos por curso), pero nos va a permitir ver cómo crear una consulta de totales.
Figura 9.5. Vista de hoja de datos de la consulta de ejemplo
Crear consultas de totales
En este caso, para lograr la consulta de ejemplo de la figura 9.5 vamos a comenzar a
crear la consulta desde cero, sin usar el Asistente para consultas sencillas. Es la primera
vez que lo hacemos, pero es conveniente que sepas crear consultas de este modo, ya que
si tienen pocos campos, es más rápido hacerlo así.
Los siguientes pasos muestran cómo crear una consulta desde cero:
1. Dentro del panel de exploración, haz clic sobre el menú y elige Consultas.
2. Haz clic en la ficha Crear y ejecuta el comando Diseño de consulta y Access abrirá
una vista de diseño vacía y el cuadro de diálogo Mostrar tabla.
3. Añade todas aquellas tablas de las que vayas a obtener datos haciendo doble clic en
su nombre (ya vimos cómo añadir tablas a una consulta anteriormente). En nuestro
ejemplo, añade Alumnos y Cursos.
4. Añade también las tablas relacionadas que vayas a necesitar. Por ejemplo, para
relacionar las tablas Alumnos y Cursos, hemos usado la tabla AlumnosPorCurso. Al
terminar, haz clic en Cerrar para cerrar el cuadro de diálogo Mostrar tabla.
5. Añade a la cuadrícula QBElos campos que desees que aparezcan en la consulta;recuerda que puedes hacer doble clic sobre el campo. En nuestro caso, añade los campos
25
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 26/43
mostrados en la figura 9.5. Si ejecutas ahora la consulta, verás los campos indicados
para cada alumno que ha asistido a cada curso, pero no es esto lo que queremos.
6. Haz clic en el botón Totales de la ficha Diseño en la cinta de opciones. Verás que
aparece una nueva línea en la cuadrícula QBEllamada Total con el contenido Agrupar
por en todos los campos (por eso también se llaman consultas de agrupación).
7. Utiliza las opciones de la fila Total para indicar la operación de total que desees
realizar con cada campo. En nuestro ejemplo, selecciona Cuenta en el campo
Apellidos.
8. Al terminar, ejecuta la consulta como siempre: haz clic en el botón Ejecutar.
9. Guarda la consulta con el nombre que desees (nosotros hemos usado ContarAlumnosPorCurso).
La tabla 9.1 muestra las opciones que se pueden seleccionar en la lista Total en lacuadrícula QBE. Dependiendo de la selección, se puede realizar una operación u otra.
Tabla 9.1. Opciones de la fila Total
Opción Resultado
Agrupar por Es el valor por omisión. Se utiliza para realizar laagrupación de registros de las tablas. Access busca todos losregistros que tengan iguales los campos con el valor Agrupar por y
los considera uno solo a la hora de realizar el cálculoindi- cado con el resto de opciones de esta tabla.
Suma Suma los valores de los campos.
Promedio Calcula la media de los valores.
Mín Muestra el valor menor de los existentes.
Máx Muestra el valor mayor de los existentes.
Cuenta Cuenta el número de registros.
DesvEst Calcula la desviación estándar de los valores.
Var Calcula la varianza de los valores.
Primero Muestra el primer valor.
Último Muestra el último valor.
Expresión Sirve para crear un campo calculado.
Donde Sirve para incluir condiciones.
26
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 27/43
Campos calculados en las consultas de totales
Mediante las opciones de la tabla 9.1, es posible crear campos calculados en las
consultas de totales.
Vamos a ver un ejemplo un poco más complicado pero que mostrará la importancia delas consultas de totales así como de los campos calculados en este tipo de consultas.
El objetivo de nuestra consulta es calcular la edad media, la mínima y la máxima de los
alumnos de cada curso. De ese modo, podremos conocer según la temática la edad de
interés de nuestros alumnos.
Para crear esta consulta, sigue los pasos vistos en el apartado anterior, teniendo en
cuenta:
ð Necesitamos las mismas tablas que en la consulta de la figura 9.5.
ð Añade a la cuadrícula los mismos campos que en la figura 9.5.
ð Añade un nuevo campo calculado al final de la cuadrícula QBE. Para hacerlo, escribe
el nombre del campo calculado seguido de dos puntos y de la operación que realice el
cálculo de dicho campo. En nuestro ejemplo, escribe Edad media: (Fecha()-[Fechanacimiento])/365. Esta expresión calcula el número de días existentes entre la fecha
actual (que obtenemos de la función Fecha()) y la fecha de nacimiento. Al final, lo
divide entre 365 para calcular los años del alumno.
ð Para terminar, define la operación que quieras realizar con el campo calculado en lafila Total (Máx, Mín, Cuenta, etcétera). Si dejas el valor Agrupar por, verás la edad de
cada alumno; si incluyes la opción Promedio, obtendrás la media de edad; la opción
Máxte indicará la edad del mayor, mientras que la opción Mín te proporcionará la edad
del más joven.
Consejo
En lugar de crear la consulta desde cero, puedes utilizar el comando Guardar como
del menú Archivo para guardar la consulta anterior con el nombre Edades por curso y
realizar los cambios posteriormente.
Usa ahora la opción Promedioy guarda la consulta (parte superior de la figura 9.6).
Ejecútala y obtendrás el resultado mostrado en la parte inferior de la figura 9.6.
27
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 28/43
Figura 9.6. Obtención de la media de edad de los alumnos en cada curso
Para terminar, cierra la consulta y vuelve a abrir su ventana de diseño. Observa que
Access ha introducido automáticamente la opción Expresión en la fila Total del campo
calculado y ha introducido la operación de promedio en el propio título del campo
calculado.
Condiciones en las consultas de totales
La parte superior de la figura 9.6 muestra la vista de diseño de la consulta de totales.
Como en cualquier otra consulta, se pueden incluir condiciones que afecten a las
consultas de totales.
En las consultas de totales, hay dos tipos de condiciones:
ð Las que se refieren a los valores originales de las tablas. Por ejemplo, que para
calcular la media de edad de los cursos sólo tengan en cuenta los cursos que hayan
finalizado en el año 2009 o que hayan sido impartidos por un profesor concreto. En este
caso, hay que introducir la condición en los campos originales de las tablas.
28
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 29/43
ð Las que se refieren al resultado de la operación de totales. Por ejemplo, podemos
indicar que sólo se muestren los datos de los cursos cuya media de edad sea superior a
32 años.
La diferencia principal entre estos dos tipos de condiciones radica en el momento en el
que Access comprueba la condición. En el primer caso, la condición se comprueba antesde llevar a cabo los cálculos de totales. En el segundo caso, la condición se evalúa una
vez realizado el cálculo.
Pero, ¿qué hacer si hay que introducir una condición en un campo que no tiene que
aparecer en el resultado de la consulta? Pues muy fácil, se introduce el campo, se oculta
dicho campo desactivando la casilla Mostrar y se selecciona la opción Dóndeen la fila
Total. De este modo, el campo no aparece en el resultado, ni se tiene en cuenta a la hora
de agrupar.
↑ volver al índice ↑
7. Crear consultas basadas en consultas
Hemos dejado para el final del capítulo sobre consultas la posibilidad de crear consultas
basadas en otras consultas. A lo largo del libro, siempre se ha hablado de formularios y
de consultas basadas en tablas (y en campos de dichas tablas). Sin embargo, se pueden
crear formularios que estén basados en consultas y consultas también basadas en
consultas.
La única diferencia a la hora de crear una consulta basada en otra consulta es que en
lugar de seleccionar los campos desde una tabla, se seleccionan desde una consulta.
El objetivo principal de generar una consulta basada en otra es simplificar el trabajo.
Vamos a ver un ejemplo que ilustra el uso de consultas basadas en consultas. El
objetivo de la consulta es calcular cuánto dinero hemos recaudado en cada curso. Para
lograrlo, tenemos que multiplicar el precio del curso por el número de alumnos.
La figura 9.7 muestra en su parte superior la ventana de diseño de la consulta creada al
efecto que hemos llamado Recaudación por curso. En su parte inferior, la misma
figura muestra otra consulta, llamada Recaudación basada en AlumnosPorCurso, que
aprovecha la consulta Contar AlumnosPorCurso creada en este capítulo.
29
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 30/43
Figura 9.7. Dos formas de obtener el mismo resultado
Es un ejemplo que ilustra el gran objetivo de las consultas basadas en consultas. Sin
embargo, la importancia de basar un nuevo objeto en una consulta y no en una tabla
radica en la facilidad que tienen las consultas de relacionar datos de varias tablas. Lo
veremos en el capítulo siguiente.
30
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 31/43
Para crear una consulta basada en otra consulta, lo único que hay que hacer es, a la hora
de añadir tablas a la ventana de diseño, utilizar la pestaña Consultasdel cuadro de
diálogo Mostrar tabla (figura 9.8).
Figura 9.8. Pestaña Consultas del cuadro Mostrar tabla
Una vez añadida la consulta, hay que crear la consulta como siempre: añadir campos y
condiciones según se desee.
Ten en cuenta que puedes añadir tablas y consultas a la misma consulta, aunque no es
muy normal.
↑ volver al índice ↑
8. Informes en Access
Objetivos del capítulo 8, 9 y 10
• Creación de informes.
• Las secciones en los informes.
• Modificar los informes.
31
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 32/43
Seguramente se te plantearán situaciones en las que sea imprescindible tener la
información de tu base de datos en papel. En este capítulo vamos a aprender a crear
informes.
Aprenderás a usar la ventana preliminar de informes, a modificar los informes usando la
vista de diseño, a ver las secciones de un informe, a modificar el tamaño de los informesy formularios, a añadir imágenes y a modificar una consulta base de un informe.
Los informes
Vamos a terminar los capítulos sobre Access con los informes. Los informes son los
elementos de las bases de datos pensados para imprimir los datos en papel.
Las técnicas para crear y modificar los informes son prácticamente las mismas que las
utilizadas con los formularios. Las únicas diferencias provienen del hecho de que
mientras los formularios se usan para introducir, modificar y ver los datos de las tablas,
los informes están diseñados para imprimirlos. Esto implica que, por ejemplo:
ð No tenga sentido en los informes el uso de controles que impliquen la intervención del
usuario. Por ejemplo, no tiene sentido incluir un cuadro combinado en un informe, ya
que no hay forma de que el usuario pueda seleccionar una opción en un papel impreso.
ð Las secciones toman una especial importancia en los informes, que no tienen en los
formularios.
La figura 10.1 muestra los datos de un curso tal y como se imprimirán. De hecho, esto
es un informe en la vista que muestra cómo aparecerán los datos al imprimirse en papel.En los siguientes apartados, vamos a ver cómo crear y modificar este informe.
32
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 33/43
Figura 10.1. Ejemplo de informe
Crear un informe
La forma de crear un informe es similar a la usada para los formularios: emplear un
asistente. Los siguientes pasos muestran cómo hacerlo:
1. En el panel de exploración, haz clic sobre el menú y elige Informes.
2. Haz clic en la ficha Crear y ejecuta el Asistente para informes del grupo Informes para abrir la primera ventana del asistente.
3. Utiliza esta ventana de igual forma que en los ejemplos de formularios. Si quieres
usar datos de varias tablas, añade campos de tantas tablas como desees. En nuestro
ejemplo, hemos añadido los campos IdCurso, Nombre, FechaInicio, FechaFin y Precio
de la tabla Cursos. De la tabla AlumnosPorCurso el campo IdAlumno. Y de la tabla
Alumnos, el nombre, los apellidos y el teléfono móvil.
4. Al hacer clic en Siguiente, aparece la segunda ventana del asistente (figura 10.2). En
ella, al ser varias las tablas involucradas, Access pregunta si quieres mostrar la
información por Curso o por Alumno. A nosotros nos interesa por cursos, así que haz
clic en Siguiente.
Figura 10.2. Segunda ventana del asistente
5. La siguiente ventana pregunta si quieres agrupar los datos por algún tipo de campo.
Es útil si se desea realizar alguna suma o contar algún tipo de dato. En este ejemplo no
tiene sentido, así que haz clic en Siguiente.
6. La siguiente ventana permite clasificar la salida por un campo (igual que ocurría en
las consultas). En nuestro ejemplo, es útil ordenar los alumnos de los cursos primero por nombre y, después, por apellidos (figura 10.3).
33
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 34/43
Figura 10.3. El informe de varias tablas terminado
7. Tras hacer clic en Siguiente, hay que decidir en la nueva ventana la distribución de
los datos (haz clic en las distintas opciones y verás el resultado en el cuadro de ejemplo)
y la orientación. Nuestro consejo es que elijas la orientación Horizontal.
8. Al hacer clic en Siguiente, la nueva ventana muestra los distintos estilos aplicables
al informe. Nosotros hemos dejado la opción Oficina.
9. Por último, haz clic en Siguiente, escribe el título del informe (Informe de alumnospor cursos) y haz clic en Finalizar.
La figura 10.4 muestra el resultado final de esta larga secuencia de pasos.
34
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 35/43
Figura 10.4. El informe de varias tablas terminado
↑ volver al índice ↑
9. Vista preliminar en Access
En realidad, la figura 10.4 es una de las posibles ventanas de un informe terminado. Enconcreto, es la ventana de presentación del informe que también recibe el nombre de
vista preliminar .
Es más que posible que esta ventana te suene, ya que es similar a la que utilizan otras
aplicaciones (como Word y Excel) a la hora de imprimir un documento. Esta vista
preliminar sirve para asegurarse de que el resultado obtenido es el deseado antes de
enviar a imprimir realmente.
Observa en la figura 10.4 que el puntero del ratón tiene forma de lupa con un signo +
dentro de ella. Si haces clic sobre el documento, verás el texto más grande. Vuelve a
hacer clic y verás de nuevo el documento a página completa.
Piensa que la vista preliminar sólo sirve para ver el resultado del informe y, por tanto,
no hay muchas operaciones que se puedan llevar a cabo con ella.
En la cinta de opciones, aparecen un conjunto de botones con la siguiente función:
ð Imprimir. Si te gusta lo que ves en la vista preliminar, puedes imprimir el documento
haciendo clic en este botón. Se abrirá el cuadro de diálogo Imprimir donde dar las
últimas instrucciones antes de la impresión, como son el número de copias, el intervalo
de páginas o la impresora que las imprimirá.
35
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 36/43
ð Zoom. Este botón tiene la misma función que el puntero del ratón sobre el informe:
actúa como un interruptor mostrando detalles del informe o el informe a página
completa. Si pulsas la flecha que indica desplegable podrás fijar el porcentaje de zoom
que se quiere aplicar al informe. En la barra de estado tienes los mismos controles que
en este comando.
ð Una página. Este botón muestra una única página del informe. Junto con los dos
siguientes define el número de páginas que se ven a la vez en pantalla.
ð Dos páginas. Este botón muestra en pantalla dos páginas consecutivas del informe.
ð Más páginas. Este botón es útil para los documentos de gran tamaño. Permite indicar
a la vista preliminar que muestre varias páginas a la vez. Para usarlo, haz clic sobre él y
arrastra (sin soltar) hasta definir el número de páginas que quieres ver.
ð Diseño de página. Este grupo de comandos sirve para configurar la página. Cambia la
orientación o el tamaño de la hoja; si pulsas en márgenes podrás elegir entre tresopciones predefinidas. La casilla Imprimirsolo los datos hace que no se imprima el
encabezado
ð Datos. Este grupo de comandos sirve para que además de imprimir, exportes el
informe a otros tipos de archivo.
ð Cerrar. Este botón cierra la vista preliminar.
Observa que en la parte inferior de la vista preliminar aparecen unos botones similares a
los vistos en los formularios y hojas de datos para moverse entre los registros de lastablas.
En este caso, estos botones sirven para moverse entre las páginas del informe (cuando
tiene más de una), y su nombre explica perfectamente su función:
ð Primera página. Este botón muestra la primera página del informe.
ð Página anterior. Este botón muestra la página anterior del informe.
ð Recuadro de página. En el recuadro central, puedes escribir el número de página del
informe a la que quieras ir. Cuando pulses Intro, Access mostrará dicha páginaautomáticamente.
ð Siguiente página. Muestra la página siguiente.
ð Última página. Muestra la última página del informe.
Vista de diseño de informes
Al igual que en el caso de los formularios, los informes tienen una vista de diseño
propia que sirve para modificar un informe una vez creado.
36
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 37/43
Para abrir esta vista de diseño, haz clic en el comando Ver de la cinta de opciones y
elige el modo de vista que buscamos.
Si prefieres hacerlo desde el panel de exploración, sólo tienes que hacer clic secundario
sobre el informe correspondiente y elegir la opción Vista Diseño.
La figura 10.5 muestra la ventana de diseño del informe creado con el asistente. Esta
ventana se usa igual que la ventana de diseño de los formularios. De este modo, podrás
usar las técnicas vistas en los formularios para añadir controles, para modificar su
tamaño o posición, para asignarles los formatos que desees, para incluir controles
calculados, etcétera.
Figura 10.5. Ventana de diseño del informe
De hecho, ahora deberías usar todas esas técnicas para mejorar la apariencia de este
informe y que se vean todas las etiquetas. A continuación te mostramos algunas pistas
sobre las operaciones que hemos llevado a cabo para obtener la apariencia del informede la figura 10.6:
37
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 38/43
Figura 10.6. El informe tras los cambios introducidos
ð Aumentar el tamaño de la etiqueta de la sección Encabezadodel informe para que se
vea completo el título: Informe de alumnos por cursos.
ð Reducir el tamaño del control IdCurso, así como de su etiqueta correspondiente.
ð Modificar algunas etiquetas para reducir su contenido. Por ejemplo, Fecha de inicio la
hemos convertido en Fecha inicio y Alumnos_Nombre en Nombre alumno.
ð Reducir el tamaño del control Precio y de su etiqueta.
ð Eliminar el control IdAlumno y su etiqueta, ya que no aporta información ninguna.
ð Aumentar el tamaño del control Apellidos.
ð Aumentar el tamaño y mover las etiquetas para que muestren todo su contenido justoencima del control correspondiente.
↑ volver al índice ↑
10. Access. Secciones en los informes
Observa que la vista de diseño de un informe aparece dividida horizontalmente por
varias líneas gruesas. Estas líneas separan las secciones de un informe. Lo mismo ocurre
en la ventana de diseño de los formularios, pero hemos preferido ver aquí las secciones
ya que tienen mucha más importancia en los informes que en los formularios.
38
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 39/43
El contenido de cada sección de un informe aparece una o varias veces dependiendo de
la sección de la que se trate. En concreto:
ð La sección Encabezadodel informe contiene la información que va a aparecer sólo
una vez al principio del informe en la primera página del mismo (en el caso de que
tenga varias). Suele incluir el título del informe.
ð La sección Encabezadode página contiene la información que va a aparecer al
principio de cada página del informe. Esto significa que si el informe se imprime en
siete páginas, aparecerá el contenido de esta sección al inicio de cada una de estas
páginas.
ð La sección Detalle contiene la información que va a aparecer por cada registro que
muestre el informe. Por tanto, se repite tantas veces como registros haya representados
en el informe. En este ejemplo, aparecen los datos de cada uno de los alumnos que
asiste a cada curso.
ð La sección Pie de página contiene la información que aparece al final de cada página
del informe.
ð La sección Pie del informe contiene la información que sólo aparece al final del
informe. Suele ser información de totales.
ð Finalmente, observa que aparece una sección llamada Encabezado IdCurso. Como el
informe está agrupado por curso (por eso la sección Detalle muestra los alumnos de
cada curso), el contenido de esta sección aparecerá al principio de cada curso. De ese
modo, las etiquetas de cada curso no aparecen tantas veces como alumnos tiene el curso,sino solamente una vez al principio.
Si haces clic secundario con el ratón sobre una de estas barras y pulsas en el menú
emergente sobre el nombre de la sección podrás ocultarla. Ten en cuenta que si ocultas
estas secciones, eliminarás los controles existentes en ellas. Access te advertira con un
mensaje antes de que eso ocurra.
Cambiar el tamaño de una sección
En más de una ocasión, tendrás la necesidad de modificar el tamaño de una sección,
esto es, hacer que una sección sea más o menos alta de lo que es. Para cambiar eltamaño de una sección, realiza los siguientes pasos:
1. Sitúa el puntero del ratón en la parte inferior de la sección a la que desees cambiar el
tamaño.
2. Cuando el puntero del ratón se convierta en una flecha de dos puntas (hacia arriba y
hacia abajo), haz clic y, sin soltar, arrastra el puntero hacia arriba para reducir su tamaño
o hacia abajo para aumentarlo.
3. Suelta el botón del ratón cuando la sección tenga el tamaño deseado.
39
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 40/43
Access aumentará el tamaño de una sección siempre que intentes crear un nuevo control
con un tamaño mayor del que quepa en la sección o cuando aumentes el tamaño de un
control más allá de la capacidad de la sección.
Aumentar el tamaño del informe
Para terminar con el tema de las secciones, queremos mencionar que además de
aumentar o reducir el tamaño de una sección, también puedes aumentar o reducir el
tamaño del informe (o formulario) completo.
Para modificar el tamaño del formulario, sólo hay que arrastrar su borde. Como el
término borde puede no estar muy claro cuando se habla de informe o formulario, en la
figura 10.7 se muestra el puntero del ratón justo en el borde del informe.
Figura 10.7. El borde del informe permite aumentar o reducir su tamaño
Si haces clic en este borde y arrastras hacia la parte interior del informe, reducirás sutamaño. Si arrastras hacia la derecha, aumentarás su tamaño.
Ten en cuenta que no podrás reducir el tamaño de un informe o formulario si hay algún
control que lo impida.
En otras palabras, Access no te permitirá que «ocultes» un control al reducir el tamaño
del informe.
Incluir imágenes en un informe o formulario
Si vuelves a observar la figura 10.1, verás que en ella aparece una imagen gráfica en eltítulo del informe.
40
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 41/43
Para terminar el libro, vamos a dedicar unos pequeños apartados a la inclusión de
imágenes u otros objetos en informes y formularios de Access.
Vamos a comenzar por el ejemplo más sencillo, que consiste en incluir una imagen ya
existente en un informe de Access. Como siempre, todo lo visto para los informes lo
puedes aplicar a los formularios.
Los pasos que aparecen a continuación muestran cómo incluir una imagen que ya existe
en un informe:
1. Abre la vista de diseño del informe en el que quieras insertar la imagen y asegúrate
de que aparece en pantalla la ficha de la cinta de opciones Diseño de Herramientas dediseño de informe.
2. Haz clic en el comando Imagen.
3. Haz clic en el interior de la sección del informe en la que desees situar la imagen. Ennuestro ejemplo, hemos hecho clic en la sección Encabezado del informe, si usas el
comando Logotipo, se coloca por defecto en esa sección. Aparecerá el cuadro de
diálogo Insertar imagen.
4. Usa este cuadro de diálogo para localizar la imagen que desees insertar en el informe
y haz clic en Aceptar cuando la hayas encontrado.
Nota
Si hubiésemos incluido la imagen en la sección Encabezadode página , la imagenhabría aparecido en la parte superior de todas las páginas del informe en cuestión.
Al terminar estos pasos, Access incluirá la imagen seleccionada en el punto indicado en
el paso 3. Una vez esté el nuevo control en el informe, puedes moverlo, cambiarle el
tamaño, etcétera, como a cualquier otro control del informe.
Otros elementos gráficos independientes
Además de las imágenes, queremos destacar en este apartado del libro la posibilidad de
usar los elementos gráficos existentes en el grupo de comando Controles. En concreto,
la Línea y el Recuadro.
Es muy normal que el Asistente para informes y formularios incluya en estos objetos de
la base de datos líneas para separar las secciones entre sí o para destacar información
importante, como los títulos.
Tú también puedes utilizarlos para el mismo fin. Lo único que tienes que hacer es
añadirlos como cualquier otro control:
1. En la vista de diseño del informe o formulario, asegúrate de que se muestra el grupo
de comandos Controles.
2. Haz clic sobre el botón Línea o Rectángulo de este grupo en la cinta de opciones.
41
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 42/43
3. Haz clic en la posición del informe en la que quieras añadir el nuevo elemento
gráfico.
4. Modifica el tamaño y posición de la línea o del recuadro para situarlo donde desees.
Nota
El uso de rectángulos es perfecto para, sobre todo en los formularios, conseguir
agrupar los controles relacionados entre sí. Observa en el Formulario para alumnos
(capítulo 8) cómo se ven mucho más claras las divisiones de controles que hicimos en
su momento.
Modificar la consulta base de un informe o formulario
Ya hemos dicho en muchas ocasiones que los informes y formularios pueden estar
basados en consultas en lugar de en tablas.
De hecho, lo normal al usar el Asistente para informes con varias tablas es que Access
base el informe creado en una consulta y no en una tabla.
Para comprobar si un informe está basado en una tabla o en una consulta, sólo tienes
que seguir estos pasos:
1. Una vez que estés en la vista de diseño del informe, selecciona la opción Informedel
cuadro de lista desplegable Objeto. Este cuadro de lista es el primero que aparece en la
barra de herramientas Formato.
2. Haz clic en el comando Hoja de propiedades de la ficha Diseño, grupo de
comandos Herramientas, para abrir así el cuadro de propiedades del informe.
3. Haz clic sobre la pestaña Datos (observa la figura 10.8).
4. Observa el contenido de la propiedad Origendel registro. Si empieza por SELECT,
es que el informe está basado en una consulta. Sólo si aparece el nombre de una tabla es
que el informe está basado en ella.
42
5/10/2018 Access Formularios Tablas y Consultas - slidepdf.com
http://slidepdf.com/reader/full/access-formularios-tablas-y-consultas 43/43
Figura 10.8. Cuadro de propiedades del informe
Sin embargo, esto no implica que la consulta origen no se pueda modificar. Para abrir
dicha consulta y modificarla a nuestro antojo, sólo hay que hacer clic en el cuadro de
puntos suspensivos que aparece a la derecha de la propiedad Origendel registro cuando
se hace clic en su interior.
La figura 10.9 muestra el resultado de hacer clic en este botón en la consulta de
ejemplo. Como ves, la consulta en sí no tiene más que las tablas de las que se han
obtenido campos y los campos correspondientes en la cuadrícula QBE.
Figura 10.9. Consulta base del informe de ejemplo
Una vez abierta, se pueden añadir nuevos campos, eliminar alguno de los existentes,
añadir condiciones, etcétera. En definitiva, combinando lo aprendido sobre consultas
con lo aprendido sobre informes y formularios, podrás crear objetos realmente potentes
en Access.
↑ volver al índice ↑
43