Sei sulla pagina 1di 46

Access.

Formularios, tablas y
consultas
Autor: Julin Casas

1
mailxmail - Cursos para compartir lo que sabes
Presentacin del curso
Access. Formularios, tablas y consultas, aprende a crear formularios avanzados
que nos permitirn gestionar informacin de varias tablas relacionadas.
Al igual que en los formularios, en las consultas podemos hacer participar a varias tablas
tablas. Aprende a crear consultas basadas en campos de varias tablas, a
introducir condiciones en consultas de varias tablas, a modificar las consultas
aadiendo y quitando tablas y campos.
Seguramente se te plantearn situaciones en las que sea imprescindible tener la
informacin de tu base de datos en papel. Aprender adems a crear informes.

2
mailxmail - Cursos para compartir lo que sabes
1. Formularios de varias tablas
Objetivos del captulo 1, 2 y 3
Operar con formularios de varias tablas.
Introducir cuadros de lista desplegables.
Los subformularios.
En captulos anteriores hemos aprendido a crear formularios; en este captulo
crears formularios avanzados que nos permitirn gestionar informacin de varias
tablas relacionadas.
Tambin aprenders a incorporar nuevos controles en tu formulario, e incluso, a
introducir un subformulario.
Formularios de varias tablas
Ya hemos visto en captulos anteriores un par de ejemplos de formularios de varias
tablas. Sin embargo, queremos dedicar un captulo 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:
Cmo lograr que el profesor se pueda seleccionar de una lista y no haga falta
conocer su cdigo para asignarlo a un curso.
Cmo lograr que no aparezca un cdigo sino un nombre para identificar al
profesor.
Cmo crear un formulario con tablas que estn relacionadas de muchos a muchos
(bueno, ya sabemos que para este tipo de relacin, se crean tres tablas, una de ellas
de enlace, como hicimos en las tablas Alumnos, AlumnosPorCurso y Cursos).
En la figura 8.1 vemos un ejemplo del formulario de varias tablas que vamos a crear
en este captulo. Como puedes ver, este formulario contiene los datos de un curso,
incluidos sus alumnos y el nombre de su profesor.
3
mailxmail - Cursos para compartir lo que sabes
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 tambin 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
slo con su cdigo de identificacin.
Pues bien, en los siguientes apartados veremos cmo crear un formulario de estas
caractersticas.
Formulario principal y subformulario
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 ms
importante para dicho formulario. Por ejemplo, el formulario de la figura 8.1 es un
formulario pensado para mostrar e introducir datos sobre cursos. Por tanto, el
formulario principal es un formulario basado en la tabla Cursos.
4
mailxmail - Cursos para compartir lo que sabes
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 informacin 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 acta como tabla principal.
Alternativas al formulario de varias tablas
Es posible que ahora te ests planteando la necesidad o no de usar formularios de
varias tablas. Si, al fin y al cabo, ya hemos creado formularios con ms 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, tendras 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 podra servir, aunque con ciertos
cambios.
2. Eso s, al introducir el profesor tendras que conocer su cdigo, ya que el campo
que aparece en la tabla Cursos para identificar al profesor es su cdigo.
3. Despus, una vez definido el curso, tendras que apuntar el cdigo del curso en
un papel (por ejemplo, para el curso de Access, el cdigo es el 2).
4. Para introducir los alumnos, habra que usar un formulario de alumnos, como
Formulario para alumnos que modificamos en el captulo 6 y que tiene la apariencia
de la figura 8.2.
5. Finalmente, habra que utilizar un formulario de la tabla AlumnosPorCurso para
incluir el cdigo del curso y el cdigo de cada alumno de dicho curso. Esta tarea que
parece tan sencilla podra llevarte mucho tiempo, ya que tendras que ir abriendo y
cerrando la tabla de alumnos para conocer el cdigo de cada uno de ellos.
5
mailxmail - Cursos para compartir lo que sabes
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
captulo.
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 tcnicas de modificacin
de formularios que cono-cemos 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 cmo hacerlo
en otro captulo, cuando sepamos crear y usar las consultas de totales y de
agrupacin.
La eleccin del mtodo 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 ms fcil
modificar un formulario ya creado que tener que crear dos formularios y unirlos
luego. En este libro hemos usado esta tcnica al crear el formulario Formulario para
profesores (figura 5.6). En este formulario slo hay dos tablas relacionadas con una
relacin de uno (Profesores) a muchos (Cursos).
Usa el mtodo 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 dedi-cado mucho tiempo a mejorar el formulario Formulario
para alumnos (figura 8.2). Si queremos crear el formulario de la figura 8.3, que
6
mailxmail - Cursos para compartir lo que sabes
muestra todos los cursos a los que ha asistido cada alumno, es mejor crear el
subformulario y unirlos posteriormente. Lo crearemos en otro captulo.
Figura 8.3. Formulario de alumnos indicando sus cursos
7
mailxmail - Cursos para compartir lo que sabes
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 exploracin, 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 Ms
formularios, Asistente para formularios.
3. En nuestro ejemplo, primero aade todos los campos de la tabla principal
(Cursos) y, despus, 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
usars para el formulario principal (en nuestro ejemplo, la tabla Cursos) y hacer clic
en Siguiente.
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 Tabular
Tabular o 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
Subformulario AlumnosPorCurso.
La figura 8.5 muestra el resultado de usar el asistente de formularios con los pasos
8
mailxmail - Cursos para compartir lo que sabes
La figura 8.5 muestra el resultado de usar el asistente de formularios con los pasos
indicados anteriormente. Comprobars que crear un formulario es bastante sencillo.
Figura 8.5. Resultado de usar el asistente con tres tablas
La mayora de las diferencias entre este formulario y el formulario de la figura 8.1
son estticas. 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 del
formulario principal se pasa al primer campo del subformulario. Si pruebas a
introducir los datos del curso mostrado en la figura 8.1 te surgirn 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 cdigo de alumno para asignarlo
al curso. Access aade automticamente el resto de campos extrayndolos 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 cdigo 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 continuacin.
La vista de diseo del formulario
9
mailxmail - Cursos para compartir lo que sabes
Todos los cambios que hay que llevar a cabo en el formulario, hay que realizarlos en
la vista de diseo de dicho formulario. Recuerda que para abrir este modo de vista
de diseo:
Si ests en el panel de exploracin, pulsa en el men y elige Formularios,
selecciona el formulario y haz clic secundario sobre l, elige abrir en Vista Diseo.
Si est el formulario abierto, haz clic en el comando Ver.
La figura 8.6 muestra la ventana de diseo del formulario creado. Es muy parecida a
la ventana de diseo de cualquiera de los formularios creados anteriormente, pero
conviene destacar una serie de elementos:
Figura 8.6. Ventana de diseo 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 un formulario: secciones, controles propios, etctera.
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 tcnicas que ya conocemos de
modificacin 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 embar-go, si haces clic en el
subformulario, la lista de campos tiene como ttulo SELECT Esto se debe a que se
est usando una consulta para este subformulario (aunque sea transparente para
nosotros al haberlo hecho el asistente).
Cuadros de lista desplegable o cuadros combinados
El primer cambio del formulario que vamos a incluir es el uso de un cuadro
10
mailxmail - Cursos para compartir lo que sabes
combinado (tambin llamado de lista desplegable) para seleccionar el profesor en el
formulario principal. De este modo, en lugar de introducir un cdigo (que tendremos
que memorizar o tener en una lista impresa), vamos a seleccionar el nombre del
profesor de una lista con las siguientes ventajas:
No hace falta memorizar los cdigos ni llenar la mesa de listas de cdigos.
No hay posibilidad de equivocarnos de cdigo. Si se selecciona el nombre de una
lista, el cdigo lo introduce Access automticamente.
Al ver el formulario en pantalla, cualquier persona sabe cul 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.
Los siguientes pasos nos muestran cmo aadir uno de estos controles a un
formul ari o:
1. Abre la vista de diseo del formulario y asegrate de que se ven la Lista de
campos y el grupo de comandos Controles de la ficha Diseo de Herramientas de
diseo de formulario .
2. Asegrate de que est pulsado el botn Asistentes para controles del grupo de
comandos Controles.
3. Haz clic sobre el botn Cuadro combinado en el grupo de comandos Controles.
4. Haz clic en el campo que quieras aadir y, despus, haz clic en la seccin
Detalledel formulario (donde estn el resto de controles). En nuestro ejemplo, usa
el campo IdProfesor. Access abrir un Asistente para cuadros combinados.
5. Activa la primera opcin 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 usars para las
relaciones) y los campos mnimos necesarios para identificar el registro. En nuestro
ejemplo, IdProfesor, Nombre y Apellidos. Haz clic en Siguiente.
8. Despus de elegir un criterio de ordenacin, 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).
11
mailxmail - Cursos para compartir lo que sabes
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
etiqueta Profesores 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 orde-nador e indica a Access que lo
instale.
La figura 8.8 muestra el estado del formulario tras aadir 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.
12
mailxmail - Cursos para compartir lo que sabes
Figura 8.8. El formulario con el nuevo cuadro combinado
Es evidente que nuestro nuevo control es mucho ms claro que el otro para ver cul
es el profesor que imparte un curso. Adems, 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,
automticamente, vara el contenido del control IdProfesor. Esto se debe a que,
realmente, en nuestro nuevo control se almacena el cdigo 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 tabla
Alumnos). 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 botn Cuadro combinado en el grupo de comandos Controles).
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.
13
mailxmail - Cursos para compartir lo que sabes
Almacena el valor en el campo
AlumnosPorCurso_IdAlumno.
Asgnale 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 cmo 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 tamao entre otras
cosas) y los controles que aparecen en l.
Por ejemplo, hay cuatro campos que no tiene sentido que estn en el subformulario
y que debemos eliminar para clarificar su contenido:
El campo I d no sirve para nada. Su nica utilidad es servir de campo clave a la
tabla AlumnosPorCurso y, por tanto, como no aporta informacin, se puede quitar
del subformulario.
El campo Id alumno est repetido, ya que hemos aadido el control Alumno para
seleccionar al alumno de una lista, sin nece-sidad 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 tambin est de ms, ya que es
idntico 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
informacin de inters. Si no estuvieran en la lista de campos del subformulario,
Access no podra mostrar los alumnos por curso, ya que no podra relacionarlos. Por
eso, los aadimos con el asistente aunque sabamos que habra que -eliminarlos.
ltimos retoques
Para lograr la figura 8.1, slo quedan los siguientes retoques:
Elimina el control IdProfesor del formulario principal. Con el nuevo control del
profesor creado es suficiente.
Sita el nuevo control del profesor en la posicin en la que estaba el control
IdProfesor que acabas de eliminar.
Reduce el tamao del control del precio, ya que es excesivo.
Modifica el orden de tabulacin del formulario principal para que el nuevo control
Profesor vaya despus del nombre del curso (se llamar CuadroCombinadoX, siendo
X un nmero).
Ensancha el subformulario para que se vean sus campos. Noso-tros 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 tambin ms alto, para que si hay ms de cuatro alumnos se
14
mailxmail - Cursos para compartir lo que sabes
vean bien.
Al terminar, guarda los cambios en el formulario y en el subformulario.
15
mailxmail - Cursos para compartir lo que sabes
3. Introducir datos en el formulario
Vamos a usar el formulario para incluir alumnos en los -cursos existentes. As
comprobars lo fcil que es introducir ahora -nuevos alumnos y asignar un profesor
y un alumno a un curso sin saber los cdigos. 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, aade los alumnos segundo, cuarto y sexto al ltimo
curso.
Finalmente, crea un nuevo curso y aade 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 cmo
introducir un formulario existente como subformulario de otro. Para hacerlo, vamos
a utilizar los formularios Formulario para profesores y Formulario para cursos que
creamos en los captulos 5 y 8. Los tres pasos esenciales que se siguen a la hora de
crear formularios y aadirles un sobformulario son:
1. Crear el formulario principal.
2. Crear el subformulario.
3. Aadir el subformulario al formulario principal y enlazarlos.
Crear el formulario principal
En realidad, en el ejemplo, los puntos 1 y 2 estn ya hechos, puesto que disponemos
de los formularios ya creados. Si no fuera as, tendras que crear el formulario
principal con el Asistente para formularios, como vimos en los captulos 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 ms que eliminar un control, as que para preparar
nuestro formulario principal, sigue estos pasos:
1. Abre el modo de vista de diseo del formulario Formulario para profesores.
2. Haz clic en el subformulario para seleccionarlo.
3. Finalmente, haz clic en la tecla Suprpara borrar el subformulario.
Crear el subformulario
Ya sabemos que un subformulario no es ms que un formulario dentro de otro. Por
tanto, para crearlo, slo tienes que utilizar el asistente para crearlo. Eso s, como se
va a utilizar como subformulario, has de seguir unas normas mnimas:
16
mailxmail - Cursos para compartir lo que sabes
Incluye el campo que sirva para relacionar el formulario con el subformulario.
Suele ser el campo clave si es una relacin 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 modifcalo para que tenga la
apariencia de la figura 8.9. Lo nico que hemos hecho ha sido:
Figura 8.9. El subformulario modificado
Reducir el tamao del control IdCurso (es un nmero y no aporta informacin
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, slo del formulario).
Aumentar el tamao del control FechaInicio y de su etiqueta, para ver completos el
contenido del control y de la etiqueta.
Aumentar el tamao del control FechaFin y su etiqueta para lograr ver sus
contenidos completos.
Reducir el tamao del control Precio y de su etiqueta.
Finalmente, hemos movido los controles y las etiquetas para que quedaran encima
del control correspondiente.
Aadir el subformulario al formulario principal
El tercer paso consiste en aadir el subformulario al formulario principal. No hay
mucha diferencia entre aadir un control del tipo subformulario y otros tipos de
controles, como muestran los siguientes pasos:
1. Abre la vista de diseo del formulario principal.
2. Asegrate de que se ve el grupo de comandos Controles y de que est activado
el botn Asistente para controles.
17
mailxmail - Cursos para compartir lo que sabes
3. Haz clic en el botn Subformulario/Subinforme del Cuadro de herramientas.
4. Haz clic sin soltar en la posicin del formulario en la que desees incluir el
subformulario y arrastra hasta darle un tamao apropiado (si no queda bien, puedes
ampliarlo o reducirlo despus). 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 opcin de relacin 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 tendras que abrir la
ventana de diseo del formulario y realizar los cambios que desees como -siempre.
Figura 8.10. Formulario terminado
18
mailxmail - Cursos para compartir lo que sabes
4. Consultas de varias tablas y de totales
Objetivos del captulo 4, 5, 6 y 7
Realizar consultas de varias tablas.
Consultas de agrupacin y de totales.
Creacin de consultas basadas en consultas.
Al igual que en los formularios, en las consultas podemos hacer participar a varias
tablas. En este captulo aprenderemos a crear consultas basadas en campos de
varias tablas, a introducir condiciones en consultas de varias tablas, a modificar las
consultas aadiendo y quitando tablas y campos.
Tambin aprenderemos a crear consultas de totales o de agrupacin, a incluir
campos calculados en consultas y a crear consultas basadas en otras consultas.
Consultas de varias tablas
En el captulo 7, vimos cmo crear consultas con una nica condicin y con varias
condiciones. Tambin vimos que estas condiciones podan 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 captulo 7 vimos condiciones de todo tipo pero siempre sobre
campos de la tabla Profesores.
En este apartado vamos a ver cmo crear consultas de datos de ms de una tabla. El
objetivo de este tipo de consultas suele ser doble:
Realizar consultas basadas en datos de ms de una tabla. Por ejemplo, buscar los
profesores que viviendo en Barcelona -hayan impartido un curso en el ao 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 captulo.
Veamos paso a paso el ejemplo de una consulta con datos de ms de una tabla. Ya
sabemos que queremos obtener informacin sobre los profesores de Barcelona que
hayan realizado un curso en el ao 2010.
Como vimos en el captulo 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?
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 el
resultado de la consulta.
19
mailxmail - Cursos para compartir lo que sabes
resultado de la consulta.
A diferencia de las consultas de una nica tabla, se pueden mostrar datos de ms de
una tabla y, por tanto, tambin 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 telfono mvil del profesor.
La fecha de finalizacin de un curso que haya impartido en el ao 2010.
Para saber esta informacin, necesitamos datos de las tablas Profesores (el nombre,
los apellidos, la ciudad y el mvil) 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 cmo hacerlo (la nica diferencia con los pasos
vistos en el captulo 7 es que hay que indicar que queremos usar campos de varias
tablas):
1. En el panel de exploracin, haz clic en el men y elige Consultas. Vers las
consultas creadas en el captulo 7.
2. Ve a la ficha Crear en la cinta de opciones y haz clic en el comando Asistente
para consultas 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. Aade ahora el cdigo del profesor (recuerda, IdProfesor), el nombre, los
apellidos, la ciudad y el mvil.
4. Repite el paso anterior para cada una de las tablas de las que quieras obtener
campos. En nuestro ejemplo, reptelo con la tabla Cursos y los datos indicados
(fecha final y profesor, como muestra la figura 9.1).
5. Haz clic en el botn 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 ms adelante en este mismo captulo).
6. Escribe el ttulo de la consulta, por ejemplo, Profesores de Barcelona ao 2010
y haz clic en Finalizar.
20
mailxmail - Cursos para compartir lo que sabes
Figura 9.1. Seleccin 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 condicin, por lo que aparecen profesores
que no son de Barcelona y que han terminado sus cursos en el ao 2009 (y no slo
durante el 2010).
Pero lo ms relevante es que no aparecen todos los datos de la tabla Profesores.
Aunque no se ha introducido ninguna condicin en la consulta, slo aparecen los
profesores que han impar-tido algn curso.
Esto se debe a que Access considera intrnseca la condicin siguiente:
IdProfesor (de la tabla Profesores) = IdProfesor (de la tabla Cursos).
Figura 9.2. La consulta con datos de varias tablas
El motivo de esta condicin intrnseca es que las tablas Profesores y Cursos estn
21
mailxmail - Cursos para compartir lo que sabes
relacionadas por medio del campo IdProfesor de cada tabla.
Consejo
Por este motivo, cuando se usan consultas de varias tablas, es conveniente incluir
los campos 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, slo resta incluir las condiciones que consigan
que slo aparezcan los profesores que viviendo en Barcelona hayan terminado algn
curso en el ao 2010.
Como ya sabemos, las condiciones hay que definirlas en la vista de diseo de la
consulta.
Observa la figura 9.3. Es la vista de diseo de la consulta que ha creado el Asistente
para consultas sencillas (cuya ventana de presentacin se muestra en la figura 9.2).
Figura 9.3. Vista de diseo de la consulta
En esta ventana, puedes ver perfectamente varias caractersticas que distinguen las
consultas de varias tablas de las de una nica tabla:
En la zona de tablas, hay ms de una lista de campos. De hecho, aparecer una
lista por cada una de las tablas que se aadan a la consulta.
Entre las listas de campos de cada tabla, aparece una lnea similar a la que aparece
en la ventana de relaciones de Access. Esta lnea indica que hay una relacin entre
dichas tablas y que esta relacin se transfiere tambin a las consultas creadas con
tablas relacionadas (en las consultas, las relaciones reciben el nombre de
combinaciones).
22
mailxmail - Cursos para compartir lo que sabes
La fila Tabla de la cuadrcula QBE adquiere ahora importancia, ya que indica a qu
tabla pertenece cada uno de los campos que se aaden a la cuadrcula QBE.
Cuando hay dos campos que se llaman de la misma forma en dos o ms tablas
(como IdProfesor 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, slo hay que seguir estos pasos:
1. Abre la vista de diseo de la consulta creada (o si ests 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#.
3. En el campo Ciudad, escribe Barcelona.
Esto significa que el curso ha terminado en el ao 2010 y que el profesor vive en
Barcelona.
23
mailxmail - Cursos para compartir lo que sabes
5. Access. Modificar consultas
Las consultas, al igual que el resto de elementos de Access, se pueden modificar
siempre que se desee. Como ocurra en los formularios y en las tablas, para realizar
cualquier cambio en las consultas hay que abrir la vista de diseo.
Algunas de las formas de modificar una consulta son muy sencillas (o ya las
conocemos), y slo les vamos a dedicar una mencin:
Ya sabes cmo aadir condiciones a las consultas.
Para borrar condiciones, solamente tienes que hacer clic en la condicin en
cuestin y borrarla utilizando las teclas Supr o -Retroceso.
Para aumentar el ancho de una columna en la consulta, sita el puntero del ratn
en la lnea 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 diseo de las consultas define el
orden en que se muestran los datos en el resultado de la consulta, es importante
saber cmo modificar ese orden. Para cambiar de posicin una columna en la
consulta, has de seguir estos pasos (es muy parecido al mtodo 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 botn del
ratn, arrastra la columna a la posicin en la que quieras situarla. Observa que
Access muestra con una lnea vertical gruesa la posicin en la que va a situar la
columna.
3. Suelta el botn del ratn cuando veas que Access muestra la columna en la
posicin deseada.
Sin embargo, hay otras formas de modificar el diseo de la consulta que debes
conocer y que se explican en los apartados siguientes.
Aadir ms tablas a una consulta
Las consultas no han de estar basadas slo en dos tablas. Pueden estar basadas en
tantas tablas como se desee. Eso s, nuestro consejo es que utilices consultas con
tablas relacionadas. Para aadir ms tablas a una consulta ya existente, utiliza los
siguientes pasos:
1. Abre la vista de diseo de la consulta.
2. Haz clic en el comando Mostrar tabla del grupo Configuracin de consultas en
la cinta de opciones.
3. En el cuadro de dilogo Mostrar tabla, aparecern las tablas existentes en la
base de datos. Haz doble clic en la tabla que quieras aadir.
4. Repite el paso 3 para cada una de las tablas que quieras aadir.
5. Cuando hayas aadido todas las tablas que desees, haz clic en Cerrar.
24
mailxmail - Cursos para compartir lo que sabes
Una vez que aparezcan en la vista de diseo 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 aadir 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 Botn Office para guardar la
nueva consulta con el nombre Consulta de cuatro tablas.
Aadir o eliminar campos en la cuadrcula QBE
Dos de las operaciones ms habituales a la hora de modificar una consulta son
aadir nuevos campos a la cuadrcula QBE o eliminar alguno de los existentes.
Para eliminar, que es ms 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.
Del mismo modo, se puede aadir un campo tambin en cualquier momento. Los
siguientes pasos indican cmo:
1. Asegrate de que la tabla en la que se encuentra el campo que quieres aadir
aparece en la parte superior de la vista de diseo. Si no es as, aade 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
cuestin para ver el nombre del campo.
3. Haz clic en el nombre del campo que quieras aadir y, sin soltar el botn del
ratn, arrstralo a la cuadrcula QBE hasta la posicin en la que desees situarlo.
Si en lugar de arrastrar el nombre del campo haces doble clic sobre l, se aadir
rpidamente el campo en la primera columna que est libre. Si quieres situarlo en
otra posicin, ya sabes que slo tienes que seleccionar la columna y arrastrarla a la
25
mailxmail - Cursos para compartir lo que sabes
otra posicin, ya sabes que slo tienes que seleccionar la columna y arrastrarla a la
posicin deseada.
Ocultar un campo en el resultado
Otra de las acciones que se pueden llevar a cabo en la cuadrcula QBE es ocultar
alguno de los campos existentes en dicha cuadrcula. 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 ms elegante
ocultar campos para que slo se vea uno.
Se pueden incluir campos en la cuadrcula 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
cuadrcula QBE para poder incluir las condiciones.
En estos casos, y en cualquier otro que quieras tener un campo en la cuadrcula QBE
pero que no se vea en el resultado, lo nico que tienes que hacer es desmarcar la
casilla de verificacin de la fila Mostrar (haz clic en la casilla para quitar la marca
que hay dentro).
26
mailxmail - Cursos para compartir lo que sabes
6. Consultas de agrupacin y de totales
Las consultas no slo sirven para saber los datos existentes en las tablas. Hasta
ahora, todas las consultas las hemos empleado para saber qu profesores cumplan
un nmero determinado de condiciones, o qu cursos se celebraban en una fecha
concreta.
Sin embargo, las consultas tambin se pueden usar para realizar clculos, que
pueden ir desde sumar valores numricos a contar registros de una tabla que
cumplan las condiciones impuestas.
Este tipo de consultas recibe el nombre de consultas de totales (y de agrupacin, 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 cmo se
hace.
La figura 9.5 muestra el resultado de la consulta que vamos a crear. Su objetivo es
bastante simple (contar el nmero de alumnos por curso), pero nos va a permitir ver
cmo 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 ms rpido hacerlo as.
Los siguientes pasos muestran cmo crear una consulta desde cero:
1. Dentro del panel de exploracin, haz clic sobre el men y elige Consultas.
2. Haz clic en la ficha Crear y ejecuta el comando Diseo de consulta y Access
abrir una vista de diseo vaca y el cuadro de dilogo Mostrar tabla.
3. Aade todas aquellas tablas de las que vayas a obtener datos haciendo doble clic
27
mailxmail - Cursos para compartir lo que sabes
en su nombre (ya vimos cmo aadir tablas a una consulta anteriormente). En
nuestro ejemplo, aade Alumnos y Cursos.
4. Aade tambin 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 dilogo Mostrar tabla.
5. Aade a la cuadrcula QBElos campos que desees que aparezcan en la consulta;
recuerda que puedes hacer doble clic sobre el campo. En nuestro caso, aade los
campos mostrados en la figu-ra 9.5. Si ejecutas ahora la consulta, vers los campos
indicados para cada alumno que ha asistido a cada curso, pero no es esto lo que
queremos.
6. Haz clic en el botn Totales de la ficha Diseo en la cinta de opciones. Vers
que aparece una nueva lnea en la cuadrcula QBEllamada - Tot al con el contenido Agrupar por
Agrupar por en todos los campos (por eso tambin se llaman consultas de
agrupacin).
7. Utiliza las opciones de la fila Total para indicar la operacin 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 -botn Ejecutar.
9. Guarda la consulta con el nombre que desees (nosotros hemos usado Contar
AlumnosPorCurso).
La tabla 9.1 muestra las opciones que se pueden seleccionar en la lista Total en la
cuadrcula QBE. Dependiendo de la seleccin, se puede realizar una operacin u otra.
Tabla 9.1. Opciones de la fila Total
Opcin Resultado
Agrupar por Es el valor por omisin. Se utiliza para realizar la
agrupacin de registros de las tablas. Access busca todos los
registros que tengan iguales los campos con el valor Agrupar por y
los considera uno solo a la hora de realizar el clculo
indi- cado con el resto de opciones de esta tabla.
Suma Suma los valores de los campos.
Promedio Calcula la media de los valores.
Mn Muestra el valor menor de los existentes.
Mx Muestra el valor mayor de los existentes.
Cuenta Cuenta el nmero de registros.
DesvEst Calcula la desviacin estndar de los valores.
Var Calcula la varianza de los valores.
Primero Muestra el primer valor.
ltimo Muestra el ltimo valor.
Expresin Sirve para crear un campo calculado.
28
mailxmail - Cursos para compartir lo que sabes
Donde Sirve para incluir condiciones.
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 ms complicado pero que mostrar la importancia
de las 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 mnima y la mxima de
los alumnos de cada curso. De ese modo, podremos conocer segn la temtica la
edad de inters 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.
Aade a la cuadrcula los mismos campos que en la figura 9.5.
Aade un nuevo campo calculado al final de la cuadrcula QBE. Para hacerlo,
escribe el nombre del campo calculado seguido de dos puntos y de la operacin que
realice el clculo de dicho campo. En nuestro ejemplo, escribe Edad media:
(Fecha()-[Fecha nacimiento])/365. Esta expresin calcula el nmero de das
existentes entre la fecha actual (que obtenemos de la funcin -Fecha()) y la fecha de
nacimiento. Al final, lo divide entre 365 para calcular los aos del alumno.
Para terminar, define la operacin que quieras realizar con el campo calculado en
la fila Total (Mx, Mn, Cuenta, etctera). Si dejas el valor Agrupar por, vers la
edad de cada alumno; si incluyes la opcin Promedio, obtendrs la media de edad;
la opcin Mxte indicar la edad del mayor, mientras que la opcin M n te
proporcionar la edad del ms 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 opcin Promedioy guarda la consulta (parte superior de la figura 9.6).
Ejectala y obtendrs el resultado mostrado en la parte inferior de la figura 9.6.
29
mailxmail - Cursos para compartir lo que sabes
Figura 9.6. Obtencin de la media de edad de los alumnos en cada curso
Para terminar, cierra la consulta y vuelve a abrir su ventana de diseo. Observa que
Access ha introducido automticamente la opcin Expresin en la fila Total del
campo calculado y ha introducido la operacin de promedio en el propio ttulo del
campo calculado.
Condiciones en las consultas de totales
La parte superior de la figura 9.6 muestra la vista de diseo 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 slo tengan en cuenta los cursos que hayan
finalizado en el ao 2009 o que hayan sido impartidos por un profesor concreto. En
este caso, hay que introducir la condicin en los campos originales de las tablas.
Las que se refieren al resultado de la operacin de totales. Por ejemplo, podemos
indicar que slo se muestren los datos de los cursos cuya media de edad sea
superior a 32 aos.
30
mailxmail - Cursos para compartir lo que sabes
superior a 32 aos.
La diferencia principal entre estos dos tipos de condiciones radica en el momento en
el que Access comprueba la condicin. En el primer caso, la condicin se comprueba
antes de llevar a cabo los clculos de totales. En el segundo caso, la condicin se
evala una vez realizado el clculo.
Pero, qu hacer si hay que introducir una condicin en un campo que no tiene que
aparecer en el resultado de la consulta? Pues muy fcil, se introduce el campo, se
oculta dicho campo desactivando la casilla Mostrar y se selecciona la opcin Dnde
Dndeen la fila Total. De este modo, el campo no aparece en el resultado, ni se
tiene en cuenta a la hora de agrupar.
31
mailxmail - Cursos para compartir lo que sabes
7. Crear consultas basadasen consultas
Hemos dejado para el final del captulo 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 estn basados en consultas y consultas
tambin 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 cunto dinero hemos recaudado en cada curso.
Para lograrlo, tenemos que multiplicar el precio del curso por el nmero de alumnos.
La figura 9.7 muestra en su parte superior la ventana de diseo de la consulta
creada al efecto que hemos llamado Recaudacin por curso. En su parte inferior, la
misma figura muestra otra consulta, llamada Recaudacin basada en
AlumnosPorCurso, que aprovecha la consulta Contar AlumnosPorCurso creada en
este captulo.
32
mailxmail - Cursos para compartir lo que sabes
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 captulo siguiente.
Para crear una consulta basada en otra consulta, lo nico que hay que hacer es, a la
hora de aadir tablas a la ventana de diseo, utilizar la pestaa Consultasdel
cuadro de dilogo Mostrar tabla (figura 9.8).
33
mailxmail - Cursos para compartir lo que sabes
Figura 9.8. Pestaa Consultas del cuadro Mostrar tabla
Una vez aadida la consulta, hay que crear la consulta como siempre: aadir campos
y condiciones segn se desee.
Ten en cuenta que puedes aadir tablas y consultas a la misma consulta, aunque no
es muy normal.
34
mailxmail - Cursos para compartir lo que sabes
8. Informesen Access
Objetivos del captulo 8, 9 y 10
Creacin de informes.
Las secciones en los informes.
Modificar los informes.
Seguramente se te plantearn situaciones en las que sea imprescindible tener la
informacin de tu base de datos en papel. En este captulo vamos a aprender a crear
informes.
Aprenders a usar la ventana preliminar de informes, a modificar los informes
usando la vista de diseo, a ver las secciones de un informe, a modificar el tamao
de los informes y formularios, a aadir imgenes y a modificar una consulta base de
un informe.
Los informes
Vamos a terminar los captulos sobre Access con los informes. Los informes son los
elementos de las bases de datos pensados para imprimir los datos en papel.
Las tcnicas para crear y modificar los informes son prcticamente 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 estn diseados para imprimirlos. Esto implica que, por ejemplo:
No tenga sentido en los informes el uso de controles que impliquen la
intervencin 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 opcin
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 imprimirn. De hecho,
esto es un informe en la vista que muestra cmo aparecern los datos al imprimirse
en papel. En los siguientes apartados, vamos a ver cmo crear y modificar este
i nforme.
35
mailxmail - Cursos para compartir lo que sabes
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 cmo hacerlo:
1. En el panel de exploracin, haz clic sobre el men y elige Informes.
2. Haz clic en la ficha Crear y ejecuta el Asistente para informes del grupo Informes
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, aade campos de tantas -tablas como desees.
En nuestro ejemplo, hemos aadido 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 telfono mvil.
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
informacin por Curso o por Alumno. A nosotros nos interesa por cursos, as que
haz clic en Siguiente.
36
mailxmail - Cursos para compartir lo que sabes
Figura 10.2. Segunda ventana del asistente
5. La siguiente ventana pregunta si quieres agrupar los datos por algn tipo de
campo. Es til si se desea realizar alguna suma o contar algn 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 ocurra
en las consultas). En nuestro ejemplo, es til ordenar los alumnos de los cursos
primero por nombre y, despus, por apellidos (figura 10.3).
Figura 10.3. El informe de varias tablas terminado
7. Tras hacer clic en Siguiente, hay que decidir en la nueva ventana la distribucin
de los datos (haz clic en las distintas opciones y vers el resultado en el cuadro de
ejemplo) y la orientacin. Nuestro consejo es que elijas la orientacin Horizontal.
37
mailxmail - Cursos para compartir lo que sabes
8. Al hacer clic en Siguiente, la nueva ventana muestra los distintos estilos
aplicables al informe. Nosotros hemos dejado la -opcin Oficina.
9. Por ltimo, haz clic en Siguiente, escribe el ttulo del informe (Informe de
alumnos por cursos) y haz clic en Finalizar.
La figura 10.4 muestra el resultado final de esta larga secuencia de pasos.
Figura 10.4. El informe de varias tablas terminado
38
mailxmail - Cursos para compartir lo que sabes
9. Vista preliminar en Access
En realidad, la figura 10.4 es una de las posibles ventanas de un informe terminado.
En concreto, es la ventana de presentacin del informe que tambin recibe el
nombre de vista preliminar.
Es ms 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 ratn tiene forma de lupa con un signo
+ dentro de ella. Si haces clic sobre el documento, vers el texto ms grande. Vuelve
a hacer clic y vers de nuevo el documento a pgina completa.
Piensa que la vista preliminar slo 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 funcin:
Imprimir. Si te gusta lo que ves en la vista preliminar, puedes imprimir el
documento haciendo clic en este botn. Se abrir el cuadro de dilogo Imprimir
donde dar las ltimas instrucciones antes de la impresin, como son el nmero de
copias, el intervalo de pginas o la impresora que las imprimir.
Zoom. Este botn tiene la misma funcin que el puntero del ratn sobre el
informe: acta como un interruptor mostrando detalles del informe o el informe a
pgina completa. Si pulsas la flecha que indica desplegable podrs 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 pgina. Este botn muestra una nica pgina del informe. Junto con los dos
siguientes define el nmero de pginas que se ven a la vez en pantalla.
Dos pginas. Este botn muestra en pantalla dos pginas consecutivas del
i nforme.
Ms pginas. Este botn es til para los documentos de gran tamao. Permite
indicar a la vista preliminar que muestre varias pginas a la vez. Para usarlo, haz clic
sobre l y arrastra (sin soltar) hasta definir el nmero de pginas que quieres ver.
Diseo de pgina. Este grupo de comandos sirve para configurar la pgina.
Cambia la orientacin o el tamao de la hoja; si pulsas en mrgenes podrs elegir
entre tres opciones predefinidas. La casilla Imprimirsolo los datos hace que no se
imprima el encabezado
Datos. Este grupo de comandos sirve para que adems de imprimir, exportes el
informe a otros tipos de archivo.
Cerrar. Este botn 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 las tablas.
39
mailxmail - Cursos para compartir lo que sabes
En este caso, estos botones sirven para moverse entre las pginas del informe
(cuando tiene ms de una), y su nombre explica perfectamente su funcin:
Primera pgina. Este botn muestra la primera pgina del -informe.
Pgina anterior. Este botn muestra la pgina anterior del -informe.
Recuadro de pgina. En el recuadro central, puedes escribir el nmero de pgina
del informe a la que quieras ir. Cuando pulses Intro, Access mostrar dicha pgina
automticamente.
Siguiente pgina. Muestra la pgina siguiente.
ltima pgina. Muestra la ltima pgina del informe.
Vista de diseo de informes
Al igual que en el caso de los formularios, los informes tienen una vista de diseo
propia que sirve para modificar un informe una vez creado.
Para abrir esta vista de diseo, 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 exploracin, slo tienes que hacer clic
secundario sobre el informe correspondiente y elegir la opcin Vista Diseo.
La figura 10.5 muestra la ventana de diseo del informe creado con el asistente.
Esta ventana se usa igual que la ventana de diseo de los formularios. De este
modo, podrs usar las tcnicas vistas en los formularios para aadir controles, para
modificar su tamao o posicin, para asignarles los formatos que desees, para
incluir controles calculados, etctera.
Figura 10.5. Ventana de diseo del informe
40
mailxmail - Cursos para compartir lo que sabes
De hecho, ahora deberas usar todas esas tcnicas para mejorar la apariencia de este
informe y que se vean todas las etiquetas. A continuacin te mostramos algunas
pistas sobre las operaciones que hemos llevado a cabo para obtener la apariencia
del informe de la figura 10.6:
Figura 10.6. El informe tras los cambios introducidos
Aumentar el tamao de la etiqueta de la seccin Encabezadodel informe para
que se vea completo el ttulo: Informe de alumnos por cursos.
Reducir el tamao del control IdCurso, as como de su etiqueta correspondiente.
Modificar algunas etiquetas para reducir su contenido. Por ejemplo, Fecha de
i ni ci o la hemos convertido en Fecha inicio y Alumnos_Nombre en Nombre alumno.
Reducir el tamao del control Precio y de su etiqueta.
Eliminar el control IdAlumno y su etiqueta, ya que no aporta informacin ninguna.
Aumentar el tamao del control Apellidos.
Aumentar el tamao y mover las etiquetas para que muestren todo su contenido
justo encima del control correspondiente.
41
mailxmail - Cursos para compartir lo que sabes
10. Access. Secciones en los informes
Observa que la vista de diseo de un informe aparece dividida horizontalmente por
varias lneas gruesas. Estas lneas separan las secciones de un informe. Lo mismo
ocurre en la ventana de diseo de los formularios, pero hemos preferido ver aqu las
secciones ya que tienen mucha ms importancia en los informes que en los
formularios.
El contenido de cada seccin de un informe aparece una o varias veces dependiendo
de la seccin de la que se trate. En concreto:
La seccin Encabezadodel informe contiene la informacin que va a aparecer
slo una vez al principio del informe en la primera pgina del mismo (en el caso de
que tenga varias). Suele incluir el ttulo del informe.
La seccin Encabezadode pgina contiene la informacin que va a aparecer al
principio de cada pgina del informe. Esto significa que si el informe se imprime en
siete pginas, aparecer el contenido de esta seccin al inicio de cada una de estas
pginas.
La seccin Detalle contiene la informacin 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 seccin Pie de pgina contiene la informacin que aparece al final de cada
pgina del informe.
La seccin Pie del informe contiene la informacin que slo aparece al final del
informe. Suele ser informacin de totales.
Finalmente, observa que aparece una seccin llamada Encabezado IdCurso. Como
el informe est agrupado por curso (por eso la seccin Detalle muestra los alumnos
de cada curso), el contenido de esta seccin 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 ratn sobre una de estas barras y pulsas en el men
emergente sobre el nombre de la seccin podrs ocultarla. Ten en cuenta que si
ocultas estas secciones, eliminars los controles existentes en ellas. Access te
advertira con un mensaje antes de que eso ocurra.
Cambiar el tamao de una seccin
En ms de una ocasin, tendrs la necesidad de modificar el tamao de una seccin,
esto es, hacer que una seccin sea ms o menos alta de lo que es. Para cambiar el
tamao de una seccin, realiza los siguientes pasos:
1. Sita el puntero del ratn en la parte inferior de la seccin a la que desees
cambiar el tamao.
2. Cuando el puntero del ratn 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 tamao o hacia abajo para aumentarlo.
42
mailxmail - Cursos para compartir lo que sabes
3. Suelta el botn del ratn cuando la seccin tenga el tamao deseado.
Access aumentar el tamao de una seccin siempre que intentes crear un nuevo
control con un tamao mayor del que quepa en la seccin o cuando aumentes el
tamao de un control ms all de la capacidad de la seccin.
Aumentar el tamao del informe
Para terminar con el tema de las secciones, queremos mencionar que adems de
aumentar o reducir el tamao de una seccin, tambin puedes aumentar o reducir el
tamao del informe (o formulario) completo.
Para modificar el tamao del formulario, slo hay que arrastrar su borde. Como el
trmi no borde puede no estar muy claro cuando se habla de informe o formulario,
en la figura 10.7 se muestra el puntero del ratn justo en el borde del informe.
Figura 10.7. El borde del informe permite aumentar o reducir su tamao
Si haces clic en este borde y arrastras hacia la parte interior del informe, reducirs
su tamao. Si arrastras hacia la derecha, aumentars su tamao.
Ten en cuenta que no podrs reducir el tamao de un informe o formulario si hay
algn control que lo impida.
En otras palabras, Access no te permitir que ocultes un control al reducir el
tamao del informe.
Incluir imgenes en un informe o formulario
Si vuelves a observar la figura 10.1, vers que en ella aparece una imagen grfica en
el ttulo del informe.
Para terminar el libro, vamos a dedicar unos pequeos apartados a la inclusin de
imgenes u otros objetos en informes y formularios de Access.
43
mailxmail - Cursos para compartir lo que sabes
Vamos a comenzar por el ejemplo ms 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 continuacin muestran cmo incluir una imagen que ya
existe en un informe:
1. Abre la vista de diseo del informe en el que quieras insertar la imagen y
asegrate de que aparece en pantalla la ficha de la cinta de opciones Diseo de
Herramientas de diseo de informe.
2. Haz clic en el comando Imagen.
3. Haz clic en el interior de la seccin del informe en la que desees situar la
imagen. En nuestro ejemplo, hemos hecho clic en la seccin Encabezado del
informe, si usas el comando Logotipo, se coloca por defecto en esa seccin.
Aparecer el cuadro de dilogo Insertar imagen.
4. Usa este cuadro de dilogo para localizar la imagen que desees insertar en el
informe y haz clic en Aceptar cuando la hayas encontrado.
Nota
Si hubisemos incluido la imagen en la seccin Encabezadode pgina, la imagen
habra aparecido en la parte superior de todas las pginas del informe en cuestin.
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 tamao, etctera, como a cualquier otro control del informe.
Otros elementos grficos independientes
Adems de las imgenes, queremos destacar en este apartado del libro la
posibilidad de usar los elementos grficos existentes en el grupo de comando Controles
Controles. En concreto, la Lnea y el Recuadro.
Es muy normal que el Asistente para informes y formularios incluya en estos objetos
de la base de datos lneas para separar las secciones entre s o para destacar
informacin importante, como los ttulos.
T tambin puedes utilizarlos para el mismo fin. Lo nico que tienes que hacer es
aadirlos como cualquier otro control:
1. En la vista de diseo del informe o formulario, asegrate de que se muestra el
grupo de comandos Controles.
2. Haz clic sobre el botn Lnea o Rectngulo de este grupo en la cinta de
opciones.
3. Haz clic en la posicin del informe en la que quieras aadir el nuevo elemento
grfico.
4. Modifica el tamao y posicin de la lnea o del recuadro para situarlo donde
desees.
Nota
El uso de rectngulos es perfecto para, sobre todo en los formularios, conseguir
44
mailxmail - Cursos para compartir lo que sabes
agrupar los controles relacionados entre s. Observa en el Formulario para alumnos
(captulo 8) cmo se ven mucho ms 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, slo
tienes que seguir estos pasos:
1. Una vez que ests en la vista de diseo del informe, selecciona la opcin
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 Diseo, grupo de
comandos Herramientas, para abrir as el cuadro de propiedades del informe.
3. Haz clic sobre la pestaa 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. Slo si aparece el nombre de
una tabla es que el infor-me est basado en ella.
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, slo 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 botn en la consulta de
ejemplo. Como ves, la consulta en s no tiene ms que las tablas de las que se han
obtenido campos y los campos correspondientes en la cuadrcula QBE.
45
mailxmail - Cursos para compartir lo que sabes
Figura 10.9. Consulta base del informe de ejemplo
Una vez abierta, se pueden aadir nuevos campos, eliminar alguno de los
existentes, aadir condiciones, etctera. En definitiva, combinando lo aprendido
sobre consultas con lo aprendido sobre informes y formularios, podrs crear objetos
realmente potentes en Access.
46
mailxmail - Cursos para compartir lo que sabes

Potrebbero piacerti anche