5.-Los Formularios que crean Consultas

En el apartado anterior hemos visto cómo crear un formulario que utiliza una consulta ya creada, y lo hicimos servir para la introducción de datos en la tabla "Libros".

Puede hacerse también que un formulario genere cada vez su propia consulta, de manera que no necesitemos crearla ni grabarla de forma independiente, quedando, por así decirlo, "embebida" en el propio formulario que la gestiona.

Pondremos como ejemplo la creación de un formulario que nos haga una consulta sobre "qué libros son de un determinado autor". Los pasos a seguir se explican a continuación.


5.01
-Empezando donde siempre, seleccionamos la pestaña Formularios y luego Nuevo

5.02
-Elegir arriba el Asistente para formularios y abajo la "Tabla Libros" , Aceptar para continuar.

5.03
-Pasar los tres campos que se ven a la derecha, elegir Siguiente, aceptar Columnas y Estandar

5.04
1-Poner el nombre "LibrosXautor" y escoger la opción Modificar.

2-Clicar en Terminar para continuar.


5.05
1-Empezaremos a trabajar en la zona del Encabezado del formulario, para lo cual hacemos sitio como otras veces.

2-Igual que lo explicado anteriormente, con la herramienta Etiqueta ponemos un título, al que le cambiamos la letra, el tamaño, el color, etc.

3-Las etiquetas de los tres campos del Detalle del formulario las pasamos al encabezado, como ya hicimos otras veces, y los campos del Detalle los ponemos en una línea horizontal.

4-Más o menos el aspecto sería el que aquí se muestra.


5.06
1-Ahora hay que hacer algunas cosas sobre los tres campos del Detalle. En primer lugar, el campo "Editorial" conserva su carácter de Cuadro Combinado, que ahora no interesa. Con el botón derecho clicamos encima de él, seleccionamos Cambiar a y escogemos la opción Cuadro de edición. Veremos que ha desaparecido la flecha hacia abajo que nos indicaba que era un cuadro combinado, teniendo el mismo aspecto que los otros dos.
2-Además, estos tres campos van a trabajar ahora en modo consulta, es decir, que no tienen que actualizarse desde aquí. Así que clicamos en el campo "Título" con el botón derecho, opción Propiedades, pestaña Datos, y cambiamos la propiedad Bloqueado a Si , de manera que no se le podrán hacer cambios desde este formulario.

3-Repetiremos este mismo proceso con los campos "Editorial" y "Comentario". (No olvidar ir grabando los cambios de tanto en tanto)


5.07 / 5.08
-A continuación, vamos a añadir en el Encabezado del formulario un Cuadro combinado que nos permita seleccionar un Autor desde la Tabla "Autores" para luego preguntarle cuáles son sus libros.

-Para ello, abrimos el icono de Herramientas y de las que salen seleccionamos la herramienta Cuadro combinado, es la quinta de la columna de la izquierda.


5.09
-Con ella ponemos un Cuadro combinado en la zona de Encabezado, debajo del título del formulario que pusimos antes. Nos preguntará varias cosas al abrirse el asistente...
-En primer lugar, habrá que decirle desde que tabla leerá los datos, que en este caso será la tabla "Autores"...

-Mejor, veánse las figuras siguientes para seguir adecuadamente todo el proceso:


5.10

5.11

5.12

5.13

5.14


-Una vez tenemos creado el Cuadro combinado que nos servirá para seleccionar el Autor cuyos libros queremos consultar, aún le haremos alguna pequeña modificación.

5.15

-Clicando con el botón derecho encima de ese Cuadro combinado, seleccionamos la opción Propiedades, pestaña Todas, y en la primera línea ponemos como Nombre "wautor".

5.16
-En la propiedad Origen de la fila, clicar en los tres puntitos de más a la derecha.

5.17
1-Aparece entonces la consulta de la tabla "Autores" sobre la que hemos basado el Cuadro combinado "wautor". No hay que añadir más que un detalle, que nos enseñe los nombres de los Autores ordenados de forma Ascendente... (al acabar nos pedirá que guardemos los cambios)

2-Y por si acaso, antes de cerrar el cuadro de diálogo del Cuadro combinado "wautor" nos aseguraremos de que la propiedad Limitar a la lista esté puesta en el valor "Si".


-Como ya hicimos en otras ocasiones, iremos a las propiedades del Formulario, pestaña Todas, y convertiremos la Vista predeterminada en Formulario continuo.

5.18

-Cambiando a la pestaña Datos, pondremos las propiedades Permitir... y Entrada... tal y como se ven en la figura.

-Ahora podríamos ver lo que llevamos hecho... Poniendo en marcha el formulario aparecerá algo similar a esto:

5.19

-En primer lugar, observaremos al probarlo que el cuadro combinado creado en la zona de encabezado "funciona" en el sentido que deja elegir el autor en la lista desplegable, pero "no funciona" en el sentido que no filtra los registros de libros, que aparecen todos abajo, sin importar qué autor seleccionemos.

También puede verse que en el campo editorial aparece la información numérica identificativa de la editorial, pero no su nombre... son dos cosas a arreglar.


5.20
-Procederemos pues en primer lugar a establecer una conexión entre el Cuadro Combinado de arriba y los registros de libros de abajo.

-Para ello entraremos en el modo de edición del formulario, Propiedades, pestaña Datos, y en Origen del registro clicamos en los tres puntitos de la derecha "..."


-Después de aceptar la entrada en el Diseño de Consulta, se nos abre la pantalla que ya conocemos para diseñar consultas.

5.21

En este momento sólo aparece la Tabla "Libros", así que lo primero que hacemos es añadir las otras dos.

5.22
-Para ello, con el botón derecho encima de la zona de tablas hacemos aparecer la opción Mostrar tablas, y añadimos las dos que faltan.

-Obsérvese que también se han arrastrado diferentes campos desde las tablas de arriba a las columnas de abajo... Hay que asegurarse de que se configuran exactamente como se ven en la figura para que el enlace entre cada editorial y cada identificador de editorial solucione el segundo problema que teníamos pendiente.


El punto clave en la figura anterior es el "criterio" que se le ha dado al campo "Autor" de la tabla "Libros", diciéndole que sólo debe enseñar aquellos libros cuyo autor coincida con el especificado en el cuadro combinado "wautor". Se escribe exactamente lo siguiente:

[Formularios]![LibrosXautor]![wautor] (versiones antiguas de Access)

o bien:

[Forms]![LibrosXautor]![wautor] (versiones recientes de Access)

(hay que usar la sintaxis que funcione correctamente con el programa Access concreto que tengamos)


-Después de cerrar el generador de consultas y de grabar todos los cambios realizados, podemos mirar qué hemos conseguido...

5.23

-Aparentemente, peor... Se ponga lo que se ponga en el Cuadro combinado de arriba, no sale nada en el formulario...

-Para conseguir que el formulario se "refresque" cada vez que se modifique la selección de Autor, haremos lo siguiente...

5.24

-En el modo de Edición (diseño) del formulario, clicamos con el botón derecho encima del Cuadro combinado "wautor".

-Escogemos la opción Propiedades, pestaña Eventos, y clicamos en la opción Después de actualizar.

-A continuación clicamos en los tres puntitos que se abren a la derecha , y seleccionamos la opción Generador de código.


5.25
-Se abrirá el generador de código con el aspecto que se ve al lado.

5.26
-Simplemente hay que añadir la línea que se ve al lado, Me.Requery , que hará que cada vez que se modifique la selección de Autor se recalcule y actualice el contenido del formulario con el filtrado correcto.

-Es imprescindible guardar todos los cambios que se hayan ido haciendo. Para ello puede usarse el icono del disquet en la barra de herramientas.


-Si se pone en marcha el formulario, puede verse cómo, al ir cambiando el Autor seleccionado en el Cuadro combinado, van apareciendo sus libros...

5.27

5.28