Informática Aplicada a las Ciencias Sociales.
Prácticas Bases de Datos, Openoffice Base
Capítulo 8. Formularios avanzados

En este tema, para empezar, vamos a crear un formulario con varios campos de control de distintos tipos.
A continuación, vamos a crear un formulario que contiene subformularios.

1. Creación de formularios con múltiples tipos de campos de control

En la unidad anterior creamos el formulario Form_Interpretes que sólo contenía campos de texto, pero vimos que existían muchos más campos de control disponibles. En este apartado vamos a crear un formulario llamado Form_Peliculas en el que vamos a incluir más variedad de campos.
El formulario Form_Peliculas va a contener cuatro campos de texto para las columnas Id_pelicula, Titulo, Año y Director. Para insertar estos campos, repetimos todos los pasos que realizamos en la unidad anterior hasta llegar a obtener un formulario que contenga los campos de texto mencionados tal y como se muestran en la figura 8.1.

unidad8_html_m239d4bfe_1.png

Figura 8.1 Form_Peliculas con cuatro campos de texto

A partir de aquí vamos a empezar a añadir campos que hasta ahora no hemos utilizado. El primero que vamos a incluir es del tipo "Casilla de verificación" para indicar si hemos visto o no la película. Para ello, seleccionamos este tipo de campo y, dentro de la opción "Campo de datos" de la ficha "Datos" de las propiedades, lo asociamos a la columna Visionada de Peliculas. Una vez que lo hayamos añadido y modificado usando las propiedades de la ficha "General" de propiedades, como se muestra en la figura 8.2, deberíamos tener nuestro formulario como el de la figura 8.3.

unidad8_html_m5ba5e462.png

Figura 8.2. Propiedades de casilla de verificación

unidad8_html_m29761ba2_1.png

Figura 8.3. Form_Peliculas con casilla de verificación

Para el campo Formato vamos a utilizar un "Cuadro de Grupo" para establecer por anticipado las diferentes opciones y para que el usuario no tenga que escribir tantas veces lo mismo. Elegimos entonces dicho campo y al incluirlo en el formulario nos debe aparecer un asistente (ver Figura 8.4) que nos va a guiar para indicarnos cómo asignar el valor seleccionado en el campo Formato.

unidad8_html_25933a21_1.png

Figura 8.4. Asistente Cuadro de Grupo

En primer lugar debemos incluir los nombres de las posibles opciones que queremos que aparezcan para el campo Formato, en nuestro caso, "DVD", "VHS" y "CD". En la siguiente ventana (ver Figura 8.5) del asistente podemos elegir si alguna de las tres opciones debe aparecer por defecto

unidad8_html_m17758061_1.png

Figura 8.5. Opción por defecto en Cuadro de Grupo

Dejamos por defecto "DVD" y en la siguiente ventana (ver Figura 8.6) tenemos que asociar a cada uno de los nombres de opción fijados en la primera ventana del asistente el valor real que se almacenará en dicho campo. En nuestro caso, el valor a almacenar es el mismo que el nombre de opción y así debemos indicarlo para cada uno de los tres campos.

unidad8_html_2a72a410_1.png

Figura 8.6. Valor asociado a cada nombre de opción.

La siguiente ventana del asistente (ver Figura 8.7) sirve para asociar el "Cuadro de Grupo" a un campo de la tabla. En nuestro caso al campo Formato.

unidad8_html_28923132_1.png

Figura 8.7.Campo asociado al cuadro de grupo

Para finalizar, la última ventana del asistente (ver Figura 8.8) permite ponerle un nombre al cuadro.

unidad8_html_1c3c93fb_1.png

Figura 8.8. Nombre del cuadro de grupo

Si hemos realizado todos los pasos correctamente, nuestro formulario debe tener un aspecto similar al de la Figura 8.9.

 

unidad8_html_5ef84a7_1.png
Figura 8.9. Form_Peliculas con cuadro de grupo

Para el campo Genero vamos a aprovecharnos de las ventajas de haber utilizado relaciones entre tablas de forma que sólo se puedan incluir los géneros que estén en la tabla Generos. Para ello vamos a utilizar la opción "Campo de lista" que, nada más elegirla, nos abre un asistente como el que se muestra en la Figura 8.10.

unidad8_html_m31b7b45_1.png

Figura 8.10. Selección de la tabla para el contenido del cuadro de lista.

En dicho asistente se nos va a permitir elegir el contenido del cuadro de lista a partir del contenido de alguna tabla, en nuestro caso Generos, y, dentro de la tabla elegida, debemos seleccionar el campo que queremos que se muestre, en este caso el campo Nombre (ver Figura 8.11).

unidad8_html_m5b941018_1.png

Figura 8.11. Selección del campo a mostrar en cuadro de lista.

Por último, debemos indicar qué campo tienen en común la tabla principal del formulario Peliculas con la tabla del cuadro de lista Generos; es decir, debemos especificar el campo a partir del cuál hemos construido la relación entre ambas tablas. Dicho campo era Genero en Peliculas e Id_genero en Generos (ver unidad 4 del curso) y así hay que indicarlo en la última ventana del asistente (ver Figura 8.12).

unidad8_html_6dc499e6_1.png

Figura 8.12. Selección del campo común entre tabla del formulario y tabla del cuadro de lista

Para finalizar este formulario le añadimos una etiqueta descriptiva delante del cuadro de lista creado para el género. Nuestro formulario en ejecución debe verse como el de la figura 8.13.

unidad8_html_m171d8fed_1.png

Figura 8.13. Vista de Form_Peliculas en ejecución

2. Creación de formulario con subformularios

En este apartado vamos a crear un formulario que permita relacionar los intérpretes con las películas en las que ha participado y al que llamaremos Form_Protagonistas.

unidad8_html_m185b3285_1.png

Figura 8.14. Creación de Form_Protagonistas asociado a tabla Protagonistas

Para comenzar, seguimos los pasos iniciales que vimos en la unidad anterior. Así, primero seleccionamos “Crear un nuevo formulario en vista Diseño…”, luego abrir el “Navegador de formularios” y, por último, crear un nuevo formulario llamado Form_Protagonistas asociado a la tabla Protagonistas (ver Figura 8.14).
Como sabemos, la tabla Protagonistas sólo contiene los identificadores de los intérpretes y los identificadores de las películas que están relacionadas. Por tanto, sería un poco complicado, al utilizar este formulario, tener que recordar el identificador de cada uno en el momento de ver los protagonistas o insertar nuevas interpretaciones.
Para solucionar esto nos vamos a valer de nuevo de los cuadros de lista para poder ver el título de las películas y los apellidos y el nombre de cada interpretación en lugar de simplemente los identificadores.
Vamos a empezar introduciendo en nuestro formulario el título de las películas; para ello, seleccionamos un nuevo cuadro de lista, donde debemos indicar que el contenido es el de la tabla Peliculas, que el campo que queremos que se muestre es el título y que las tablas Peliculas e Interpretes tienen en común el campo Id_pelicula y Pelicula, respectivamente. Junto con este cuadro debemos incluir una etiqueta delante llamada Título.
Debajo del título vamos a incluir el nombre y apellidos de los intérpretes. Debido a que son dos campos diferentes, necesitamos dos cuadros de lista distintos, uno para el campo Nombre y otro para el campo Apellidos, y en ambos casos se utilizarán los campos Id_Interprete de Interpretes e Interprete de Protagonistas como enlace entre ambas tablas. Si además activamos el Navegador de formulario, Form_Protagonistas debe verse como en la Figura 8.15.

unidad8_html_m1a1188a3_1.png

Figura 8.15. Form_Protagonistas con título, apellidos y nombre

En ejecución, podemos ver que este formulario (ver Figura 8.16) nos muestra y nos permite insertar las distintas interpretaciones de una forma mucho más amigable que a través de la tabla Protagonistas directamente.

unidad8_html_m11df6579_1.png

Figura 8.16. Form_Protagonistas en ejecución

Vamos a hacer aún más intuitivo este formulario haciendo que, cada vez que nos movemos entre los distintos registros, nos muestre todos los intérpretes asociados a esa película y todas las películas del intérprete seleccionado. Para ello, vamos a necesitar utilizar subformularios, que no son más que formularios construidos sobre otras tablas o consultas distintas a la asociada al formulario principal.
Vamos a empezar creando un subformulario que nos muestre todos los intérpretes de la película seleccionada. Para empezar, abrimos el navegador de formulario y teniendo seleccionado Form_Protagonistas le indicamos que queremos crear un nuevo formulario llamado Subform_Interpretes (ver Figura 8.17).

unidad8_html_71b270d6.png

Figura 8.17. Subformulario Subform_Interpretes creado

A continuación, en las pestaña “Datos” de las propiedades del subformulario debemos indicar varias opciones. Primero, en “Tipo de contenido” vamos a poner “Consulta” y en “Contenido” indicaremos la consulta ConsultaTotal (ver Figura 8.18) que creamos en la unidad 6. ¿Por qué utilizamos esta consulta en lugar de la tabla Interpretes? Porque dada la película seleccionada en Form_Protagonistas se quiere ver todos sus intérpretes; es decir, se necesita “algo” que contenga tanto la información de las películas como la de los intérpretes de una sola vez y dicha información sólo la tiene la consulta ConsultaTotal.

unidad8_html_m59f73acd_1.png

Figura 8.18. Subfomulario con el contenido de ConsultaTotal

Con esto no hemos terminado, sino que tenemos que indicar el vínculo que existe entre el formulario principal y el subfomulario creado. Para ello, sin salir de la pestaña “Datos”, nos vamos a cualquiera de los iconos en forma de puntos suspensivos que aparece a la derecha de las opciones “Vinculación de …” o “Vinculación con …” y hacemos clic con el ratón. Se nos despliega una ventana como la de la Figura 8.19 donde debemos indicar por qué campos vamos a relacionar ambos formularios.
Nosotros queremos conseguir que, dada una película seleccionada en el formulario principal, se muestren sus intérpretes en un subformulario. Es decir, si, por ejemplo, tenemos seleccionada la película “La Comunidad del Anillo”, cuyo identificador es el valor “5″, entonces, sólo nos interesarán aquellos intérpretes de ConsultaTotal cuyo valor para Id_pelicula sea “5″ (”Viggo Mortensen” y “Liv Tyler”), lo que podemos obtener vinculando ambos formularios utilizando el campo Pelicula de Protagonistas junto con el campo Id_pelicula de ConsultaTotal. De esta manera, en el subformulario sólo aparecerán aquellas filas de ConsultaTotal cuyo valor para Id_pelicula sea el mismo que el valor Pelicula en Protagonistas.

unidad8_html_35325b6b_1.png

Figura 8.19. Vinculación entre el formulario y el subformulario

Ahora sólo nos falta elegir un campo de control que permita mostrar en el subformulario los datos que queramos de los intérpretes. El más adecuado para mostrar toda la información de una vez es el campo “Control de tablas”. Lo seleccionamos y lo incluimos en nuestro formulario, de forma que nos aparece un asistente (ver Figura 8.20) donde podemos elegir los campos de ConsultaTotal que queremos que se muestren, en este caso, Apellidos, Nombre y Nacionalidad.

unidad8_html_c2e74d7_1.png

Figura 8.20. Selección de campos a mostrar en la tabla

Si añadimos una etiqueta descriptiva al subformulario y lanzamos el formulario deberíamos ver algo parecido a lo que muestra la Figura 8.21.

unidad8_html_m2a9382cc_1.png

Figura 8.21. Form_Protagonitas con todos los intérpretes de una película

Para finalizar, vamos a añadir un segundo subformulario que permita que se muestren las películas en las que aparece el intérprete que figura en el formulario principal.
Como para el primer subformulario, de nuevo abrimos el navegador de formulario y teniendo seleccionado Form_Protagonistas le indicamos que queremos crear un nuevo formulario llamado Subform_Peliculas.
Ahora, en las pestaña “Datos” de las propiedades del subformulario, volvemos a indicar en el tipo de contenido la opción “Consulta” y en contenido indicaremos la consulta ConsultaTotal, pero ahora el vínculo entre ambos formulario lo vamos a establecer entre el campo Interprete de Protagonistas junto con el campo Id_interprete de ConsultaTotal (ver Figura 8.22). Es decir, en este subformulario sólo queremos que aparezcan aquellas filas de ConsultaTotal cuyo valor para Id_interprete sea el mismo que el valor Interprete en Protagonistas.

unidad8_html_4e2368b7_1.png

Figura 8.22. Propiedades del subformulario Subform_Peliculas

También esta vez, para mostrar las películas del intérprete seleccionado, vamos a incluir un campo “Control de Tabla” en el nuevo subformulario con los campos Titulo, Director, Año, Formato, Visionada y NombreGenero (ver Figura 8.23).

unidad8_html_72370d33_1.png

Figura 8.23. Campos a incluir en tabla de subformulario Subform_Peliculas

Para terminar, añadimos la etiqueta que describe el subformulario y una vez lanzado el formulario que acabamos de construir debería ser parecido al de la Figura.8.24.

unidad8_html_m5184b035_1.png

Figura 8.24. Form_Protagonistas en funcionamiento.

3. Ejercicios propuestos

1.Crear el formulario Form_Peliculas siguiendo los pasos del apartado 1.
2.Crear el formulario Form_Protagonistas siguiendo los pasos del apartado 2.



Fuente: Tutorial de OpenOffice.org Base
Autor: Álvaro E. Prieto Ramos. Universidad de Extremadura
Bajo licencia de Creative Commons.

Búsquedas