Microsoft Office XP
Access XP (II)
Para la realización de esta práctica necesitas contar con la base de datos generada en la
práctica anterior así que, abre la base de datos
biblioteca.mdb
y… ¡manos a la obra!!
1. Relaciones entre tablas
¾ Existen ocasiones en las cuales es necesaria la utilización de dos o más tablas que compartan datos. No debemos precipitarnos y comenzar a introducir datos en una tabla cuando la acabamos de crear (¡tal y como habíamos hecho en la práctica anterior!). Debemos esperar a tener definidas todas las tablas y una vez las hemos definido tendremos que realizar un paso más: establecer las relaciones entre ellas (las mismas relaciones que has dibujado sobre el papel en la práctica anterior).
¾
Estos enlaces permiten asegurar que no habrá inconsistencias en la información equivalente. Por ejemplo, en la tabla de Libros tenemos un campo que hace referencia a un código de autor. Al establecer una relación entre este atributo en las tablas de Autor y la de Libros estamos forzando a que un libro sólo pueda ser asociado a un autor existente en nuestra base de datos.tabla Autores y la tabla Autores de libro. A continuación pulsaremos el botón y las tablas seleccionadas pasan a la pantalla de creación de relaciones que podemos ver en la Figura 2.
Figura 2
¾ Ya estamos preparados para crear una relación entre dos tablas. Seguiremos estos pasos:
1. Nos colocaremos sobre el atributo de la tabla principal sobre el que vamos a establecer la relación (el campo IdAutor de la tabla Autores en este caso)
2. Pulsamos el botón izquierdo del ratón y no lo soltamos. Veremos que el cursor se convierte en un rectángulo.
3. Manteniendo pulsado el botón situamos el cursor sobre el campo del mismo nombre de la segunda tabla que estamos relacionando (el campo IdAutor de la tabla Autores de libro).
4. Soltamos el botón izquierdo del ratón.
En este momento hemos indicado a Access que deseamos establecer una relación entre los campos seleccionados, pero ahora debemos indicar el tipo de relación que mantiene unidos los campos de las dos tablas. Para ello Access muestra un cuadro de diálogo como el que aparece en la Figura 3.
Figura 3
La integridad referencial es un sistema de reglas que utiliza Microsoft Access para garantizar que las relaciones entre los registros de tablas relacionadas son válidas y que no se eliminan ni modifican accidentalmente datos relacionados.
Cuando la casilla de verificación Actualizar en cascada los campos relacionados está activada, el cambio de un valor de clave principal en la tabla principal actualiza automáticamente el valor coincidente en todos los registros relacionados.
Cuando la casilla de verificación Eliminar en cascada los registros relacionados está activada, la eliminación de un registro en la tabla principal elimina todos los registros relacionados en la tabla relacionada.
PREGUNTA!!! ¿Qué pasa cuando seleccionas la opción de Exigir integridad referencial? ¿Puedes crear la relación con Integridad referencial? ¿Por qué? ¿Qué significa el mensaje de error que aparece?
Para conseguir establecer la relación con integridad referencial tienes dos opciones: 1. Borra todos los registros introducidos en la base de datos en la práctica anterior… o
2. Actualiza los campos correspondientes a identificadores que anteriormente habías completado con valor ‘0’ (y que no son los campos clave de la tabla, estos ya son autonuméricos) con valores correctos, esto es, con los valores existentes como clave de la tabla a la que están asociados.
ATENCIÓN!!
Personalmente yo te recomiendo que BORRES TODOS LOS REGISTROS introducidos anteriormente de forma manual (vacía las tablas de información erróneamente relacionada) y que sigas con el proceso:¾ Ahora sí, (una vez las tablas están vacías) pulsando el botón Crear finalizaremos el proceso de creación de la relación entre las tablas. Si hubiese más relaciones seguiríamos creándolas, tal y como se ha explicado. El resultado del proceso provoca la aparición de una línea que une gráficamente los campos relacionados (Figura 4).
Figura 4
¾ Una vez visto cómo se crean relaciones entre tablas, y a la vista del esquema en papel realizado en la práctica anterior, terminad de implementar la base de datos.
ATENCIÓN!!
Es necesario establecer estas relaciones correctamente ya que nos servirán posteriormente para resolver las consultas que se planteaban al comienzo de la práctica anterior.PREGUNTA!!! Si os fijáis, en la tabla Libros no aparece ningún campo que indique el autor, y en la tabla Autores no aparece ningún campo que indique los libros de ese autor que tenemos en la biblioteca. Para ello se debe definir una relación de varios a varios entre estas tablas (utilizando una de las que tenemos como tabla puente ¿CUÁL?).
2. Formularios
¾ Los formularios se utilizan para diversos propósitos : - Como entrada de datos en una tabla.
- Como conmutación para abrir otros formularios e informes.
- Como cuadro dialogo para aceptar los datos del usuario y llevar acabo una acción basada en los mismos.
¾ Como, en principio y para poder establecer las relaciones entre tablas con integridad referencial (ver punto anterior), hemos eliminado toda la información existente en las tablas (hemos borrado todos los registros), vamos a crear una serie de formularios que utilizaremos para la introducción de la información en nuestra base de datos de manera controlada.
¾ Utilizando el asistente para formularios (Figura 8) intenta crear los formularios siguientes. Si algunos de ellos no te salen como en las figuras (campos desplegables), no desesperes, continúa con el siguiente punto de la práctica.
- Por ejemplo, para crear el formulario de introducción de registros en la tabla Autores, selecciona del asistente esa misma tabla, y añade (desde la ventana de la izquierda hasta la de la derecha) todos los campos de la tabla (Figura 5).
Figura 5: Asistente para la creación de formularios
Figura 6: Asistente para la creación de formularios
Figura 7: formulario para introducir registros en la tabla Autores
Figura 8: formulario para introducir registros en la tabla Citas
Figura 10: formulario para introducir registros en la tabla Temas
PREGUNTA!!!
¿Has conseguido que, por ejemplo, te aparezca el desplegable de los campos Autor o Libro de la Figura 8? ¿Sabes por qué?¾ Seguramente no has podido mostrar los desplegables. Lo ideal sería que, por ejemplo, cuando utilices un formulario para introducir la información de un nuevo libro, apareciera un desplegable con los autores existentes en la base de datos, pudiendo seleccionar rápidamente uno de ellos si se da el caso. Si el autor todavía no existe, deberás utilizar previamente otro formulario para crear e introducir el nuevo autor en la base de datos. A continuación vamos a elaborar un formulario que nos muestre tanto el desplegable de Temas, como un subformulario con los campos Autores.Nombre y Autores.Apellidos (Figura 11). Sigue los pasos siguientes:
Figura 11
1. Primero tenemos que dar un nuevo formato a los campos que se utilizarán para la presentación tipo desplegable. Un desplegable no es más que una búsqueda que se está realizando automáticamente sobre la base de datos en tiempo real para mostrar (desplegar) los posibles registros asociados con el criterio seleccionado. El formato de datos que realiza esta búsqueda es del tipo búsqueda, por lo que deberemos reformatear los campos que utilicemos para las búsquedas. En el caso concreto que nos ocupa estos campos son los que relacionan la información de unas tablas con otras, es decir:
- Para la tabla Libros, deberemos cambiar el formato del campo IdTema. Vuelve a la vista Diseño del Objeto Tabla y selecciona el formato asistente para búsqueda (Figura 12). configura la sentencia de búsqueda de la siguiente forma:
Figura 12
-
Sobre el cuadro de diálogo que aparece a continuación, selecciona la opción de búsqueda de valores en una tabla o consulta (Figura 14). Esto significa que, al incluir en un formulario el campo IdTema, automáticamente irá a buscar valores sobre una tabla (que definiremos a continuación, pero ya puedes imaginar que será la tabla Temas), mostrando en un desplegable los valores de dicha tabla. Te aparecerá la siguiente advertencia (Figura 13), que significa que antes de empezar a cambiar el tipo de los campos DEBEREMOS ELIMINAR todas las relaciones entre tablas establecidas anteriormente y que impiden crear campos con autobúsqueda:Figura 13
− Para ello activa la vista Relaciones y elimina TODA la información que aparece en ella y que acabas de crear manualmente (tanto las tablas como las relaciones entre ellas). Ten en cuenta que sólo estás eliminando las relaciones y no las tablas creadas anteriormente (con mucho esfuerzo). Si ahora haces clic sobre el botón de la vista Relaciones el cuadro de relaciones entre tablas aparece vacío.
ATENCIÓN!!
Lo que vamos a hacer definiendo un campo con el asistente para la búsqueda es el sustituir en la tabla Libros un campo de índice (IdTema) por una secuencia de búsqueda sobre otra tabla!!! (con lo que los valores que aparecen en el desplegable son los de la otra tabla). Además, al definir este campo como una secuencia de búsqueda, lo que también conseguimos es que la relación entre las dos tablas SE CREE AUTOMÁTICAMENTE.Figura 14
- Ahora seleccionamos la tabla sobre la que vamos a realizar la búsqueda (Figura 15)
Figura 15
- Y a continuación seleccionamos aquellos campos que queremos que aparezcan en el desplegable de búsqueda (en este caso DescripcionTema de la tabla Temas seleccionada anteriormente, Figura 16).
Figura 16
- Ordenamos la lista de campos seleccionados tal y como queremos que aparezcan en el desplegable (Figura 17). En este caso sólo hay un campo por lo que no necesitamos ordenar nada.
Figura 17
- Finaliza con la creación del campo de búsqueda siguiendo la secuencias de figuras (Figura 18 y Figura 19).
Figura 18
Figura 19
- Ahora que ya has terminado de dar el nuevo formato al campo IdTema, fíjate como en la pestaña Búsqueda de la Vista de la tabla Libros seleccionada en modo Diseño aparece una sentencia típica del lenguaje de programación en base de datos SQL. Esto significa que al agregar este campo a cualquier formulario, automáticamente se realiza la búsqueda que has configurado, con la posibilidad de mostrar los desplegables que aparecen en las figuras anteriores.
- Si quieres que aparezcan los desplegables de Autores o de Libros, cambia el formato (pero con los valores adecuados) de los campos IdLibro e IdAutor de la tabla Autores de Libro.
2. Una vez formateado el campo IdTema como campo de búsqueda podrás comprobar como la relación entre las dos tablas utilizadas (Libros y Temas) se ha creado automáticamente (para ello ve a la ventana de relaciones) aunque NO aparece el TIPO DE RELACIÓN (que en este caso es de uno a varios). Para que aparezca el tipo de relación (un mismo tema puede aparecer en varios libros aunque, en nuestro caso, un libro sólo puede estar asociado a una temática) haz clic sobre ella y utiliza la opción de Modificar relación para exigir integridad referencial
Figura 20
Figura 21
¾
Ahora y para finalizar con esta parte de la práctica, termina de elaborar todos los formularios necesarios y utilízalos para introducir registros en la base de datos. Crea al menos unos 10 registros en la tabla de Libros y 5 ó 6 en la de Autores. Genera también los diferentes temas y citas.Figura 22
¾
Tal y como podrás observar, no sólo aparece un campo desplegable para el campo de
Tema
(en el desplegable se muestran TODOS los temas que previamente han sido
introducidos en la tabla de
Temas
, a través del formulario correspondiente), sino que
también se muestra un subformulario que nos permite seleccionar, no uno, sino varios
de los autores existentes en la tabla de
Autores
.
ATENCIÓN!!!
Para conseguirlo te proporcionamos una PISTA: deberás formatear
primero como autobúsqueda los campo
s
IdAutor
e
IdLibro
de la tabla
AutoresLibros
, de tal
forma que el campo
IdAutor
haga una búsqueda sobre la tabla Autores (ordenando los datos,
por ejemplo, por
Apellido
) y el campo
IdLibro
haga una búsqueda sobre la tabla
Libros
(ordenando los datos por
Título
).
¾