Una relación en Access le ayuda a combinar datos de dos tablas distintas. Cada relación contiene campos en dos tablas con datos que se corresponden. Por ejemplo, el usuario tiene un campo Id_Producto en una tabla Productos y en una tabla Detalles de pedido. Cada registro de la tabla Detalles de pedidos tienen un Id_Producto que corresponde a un registro de la tabla Productos con el mismo Id_Producto.
Cuando se usan las tablas relacionadas en una consulta, la relación permite que Access determine qué registros de una tabla se relacionan con qué registros de otra para combinarse en el conjunto de resultados. Una relación también puede impedir que se pierdan datos, al evitar que los datos eliminados dejen de estar sincronizados. Esto se conoce como integridad referencial.
Antes de trabajar con relaciones, asegúrese de que comprende los conceptos de fondo. Para obtener más información, vea Guía de relaciones de tablas e Introducción a las relaciones de tablas.
En este artículo
Información general
En una base de datos de Access, puede crear una relación de tabla usando uno de los siguientes métodos:
-
En la ventana Relaciones, agregue las tablas que desee relacionar y, a continuación, arrastre el campo para relacionarlo desde una tabla a otra tabla.
-
Arrastre un campo de una hoja de datos de tabla desde el panel Lista de campos.
Cuando se crea una relación entre tablas, los campos comunes no tienen que tener los mismos nombres, si bien sus nombres suelen coincidir. Sin embargo, los campos comunes tienen que tener el mismo tipo de datos. No obstante, si el campo de clave principal es un campo Autonumeración, el campo de clave externa también puede ser un campo de tipo Número si la propiedad Tamaño del campo de ambos campos tiene el mismo valor. Por ejemplo, puede hacer coincidir un campo Autonumeración y un campo de tipo Número si la propiedad Tamaño del campo de ambos campos es Entero largo. Cuando ambos campos comunes son campos de tipo Número, tienen que tener el mismo valor para la propiedad Tamaño del campo.
Crear una relación de tabla mediante la ventana Relaciones
-
En la pestaña Herramientas de base de datos, en el grupo Relaciones, haga clic en Relaciones.
-
En la pestaña Diseño de relaciones , en el grupo Relaciones , haga clic en Agregar tablas.
-
Seleccione una o varias tablas o consultas y, a continuación, haga clic en Agregar. Cuando termine de agregar tablas y consultas a la pestaña de documentos Relaciones, haga clic en Cerrar.
-
Arrastre un campo (normalmente el campo de clave principal) de una tabla al campo común (la clave externa) en la otra tabla. Para arrastrar varios campos, presione la tecla CTRL, haga clic en cada uno de los campos y, a continuación, arrástrelos.
Aparece el cuadro de diálogo Modificar relaciones. -
Compruebe que los nombres de campo que se muestran sean de los campos comunes de la relación. Si un nombre de campo es incorrecto, haga clic en él y seleccione el campo apropiado en la lista.Exigir integridad referencial.
Para exigir la integridad referencial para esta relación, active la casilla Exigir integridad referencial. Para más información sobre la integridad referencial, consulte la sección -
Haga clic en Crear.
Access dibuja una línea de relación entre las dos tablas. Si activó la casilla Exigir integridad referencial , la línea aparece más gruesa en los extremos. Además, solo si activó la casilla Exigir integridad referencial , aparece el número 1 en la parte gruesa de un extremo de la línea de relación y aparece el símbolo de infinito (8) en la parte gruesa del otro extremo de la línea, tal y como se muestra en la siguiente ilustración.
Notas:
-
Para crear una relación uno a uno Ambos campos comunes (normalmente, los campos de clave principal y clave externa) deben tener un índice único. Esto significa que la propiedad Indizado de estos campos debe tener el valor Sí (Sin duplicados). Si ambos campos tienen un índice único, Access crea una relación uno a uno.
-
Para crear una relación uno a varios El campo en el lado uno de la relación (normalmente, el campo de clave principal) debe tener un índice único. Esto significa que la propiedad Indizado de este campo debe tener el valor Sí (Sin duplicados). El campo ubicado en el lado varios de la relación no debe tener un índice único. Puede tener un índice, pero debe permitir los duplicados. Esto quiere decir que la propiedad Indizado de este campo debe tener el valor No o Sí (Con duplicados). Cuando un campo tiene un índice único y el otro no, Access crea una relación uno a varios.
-
Crear una relación de tabla mediante el panel Lista de campos para agregar un campo
Se puede agregar un campo a una tabla existente abierta en la vista Hoja de datos arrastrándolo desde el panel Lista de campos. El panel Lista de campos muestra los campos que están disponibles en las tablas relacionadas así como los campos que están disponibles en las otras tablas de la base de datos.
Cuando se arrastra un campo de "otra" tabla (no relacionada) y, a continuación, se ejecuta el Asistente para búsquedas, se crea automáticamente una nueva relación uno a varios entre la tabla en el panel Lista de campos y la tabla a la que se ha arrastrado el campo. Esta relación, creada por Access, no exige la integridad referencial de manera predeterminada. Para exigirla, es preciso modificar la relación. Vea la sección Modificar una relación.
Abrir una tabla en la vista Hoja de datos
-
En el panel de navegación, haga doble clic en la tabla.
Abrir el panel Lista de campos
-
Presione ALT+F8. Aparece el panel Lista de campos.
En el panel Lista de campos se muestran todas las otras tablas de la base de datos agrupadas en categorías. Cuando trabaja con una tabla en la vista Hoja de datos, Access muestra los campos de alguna de estas dos categorías en el panel Lista de campos: Campos disponibles en tablas relacionadas y Campos disponibles en otras tablas. La primera categoría contiene todas las tablas que tienen una relación con la tabla con la que se trabaja actualmente. La segunda categoría contiene todas las tablas con las que la tabla no tiene ninguna relación.
En el panel Lista de campos, al hacer clic en el signo más (+) situado junto al nombre de una tabla, aparece una lista de todos los campos disponibles en esa tabla. Para agregar un campo a la tabla, arrastre el campo que desee del panel Lista de campos a la tabla en la vista Hoja de datos.
Agregar un campo y crear una relación desde el panel Lista de campos
-
Con la tabla abierta en la vista Hoja de datos, presione ALT+F8. Aparece el panel Lista de campos.
-
Bajo Campos disponibles en otras tablas, haga clic en el signo más (+) situado junto al nombre de una tabla para mostrar la lista de los campos de esa tabla.
-
Arrastre el campo que desee del panel Lista de campos a la tabla abierta en la vista Hoja de datos.
-
Cuando aparezca la línea de inserción, coloque el campo en su posición.
Se inicia el Asistente para búsquedas.
-
Siga las instrucciones para ejecutar el Asistente para búsquedas.
El campo aparece en la tabla en la vista Hoja de datos.
Cuando se arrastra un campo de "otra" tabla (no relacionada) y, a continuación, se ejecuta el Asistente para búsquedas, se crea automáticamente una nueva relación uno a varios entre la tabla en Lista de campos y la tabla a la que se ha arrastrado el campo. Esta relación, creada por Access, no exige la integridad referencial de manera predeterminada. Para exigirla, es preciso modificar la relación. Vea la sección Modificar una relación para obtener más información.
Modificar una relación
Para cambiar una relación, selecciónela en la ventana Relaciones y, a continuación, modifíquela.
-
Coloque el cursor de modo que apunte a la línea de relación y, a continuación, haga clic en la línea para seleccionarla.
La línea de relación aparece con mayor grosor cuando está seleccionada.
-
Con la línea de relación seleccionada, haga doble clic en ella.
- O bien -
En la pestaña Diseño de relaciones , en el grupo Herramientas , haga clic en Modificar relaciones.
Aparece el cuadro de diálogo Modificar relaciones.
Abrir el cuadro de diálogo Modificar relaciones
-
En la pestaña Herramientas de base de datos, en el grupo Relaciones, haga clic en Relaciones.
-
En la pestaña Diseño de relaciones , en el grupo Relaciones , haga clic en Todas las relaciones.
Se muestran todas las tablas que tengan relaciones y las líneas de relación. Observe que no se muestran las tablas ocultas (tablas con la casilla Oculto activada en el cuadro de diálogo Propiedades de la tabla) ni sus relaciones, a menos que esté seleccionada la opción Mostrar objetos ocultos en el cuadro de diálogo Opciones de navegación.
-
Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea de relación aparece con mayor grosor cuando está seleccionada.
-
Haga doble clic en la línea de relación.
O
En la pestaña Diseño de relaciones , en el grupo Herramientas , haga clic en Modificar relaciones.
Aparecerá el cuadro de diálogo Modificar relaciones.
-
Realice los cambios y, a continuación, haga clic en Aceptar.
El cuadro de diálogo Modificar relaciones permite cambiar una relación de tabla. En concreto, se pueden cambiar las tablas, las consultas o los campos a ambos lados de la relación. Se puede definir asimismo el tipo de combinación o exigir la integridad referencial y elegir una opción en cascada. Para obtener más información sobre el tipo de combinación y cómo configurarlo, vea la sección Configurar el tipo de combinación. Para obtener más información sobre cómo exigir la integridad referencial y elegir una opción en cascada, vea la sección Exigir integridad referencial.
Configurar el tipo de combinación
Cuando se define una relación de tabla, los hechos referentes a la relación determinan el diseño de las consultas. Por ejemplo, si se define una relación entre dos tablas y, a continuación, se crea una consulta que use las dos tablas, Access selecciona automáticamente los campos coincidentes predeterminados basándose en los campos especificados en la relación. Se pueden reemplazar los valores predeterminados iniciales en la consulta, pero los valores proporcionados por la relación suelen ser los correctos. Dado que va a hacer coincidir y combinar con frecuencia los datos de varias tablas hasta de las bases de datos más sencillas, la configuración de valores predeterminados mediante la creación de relaciones puede ahorrarle tiempo y resultarle beneficiosa.
Una consulta de varias tablas combina la información de más de una tabla haciendo coincidir los valores de los campos comunes. Esta operación se denomina combinación. Por ejemplo, supongamos que desea mostrar los pedidos de los clientes. Va a crear una consulta que combine la tabla Clientes y la tabla Pedidos por el campo Id. de cliente. El resultado de la consulta contiene información sobre los clientes y los pedidos solo para las filas en las que se ha encontrado una coincidencia.
Uno de los valores que puede especificar para cada relación es el tipo de combinación. El tipo de combinación indica a Access los registros que debe incluir en el resultado de una consulta. Por ejemplo, imagine una consulta que combine la tabla Clientes y la tabla Pedidos en los campos comunes que representa el identificador de cliente. Al usar el tipo de combinación predeterminado (denominado combinación interna), la consulta devuelve solo las filas de Cliente y las filas de Pedido en las que los campos comunes (también denominados los campos combinados) sean iguales.
Sin embargo, supongamos que desea incluir a todos los clientes, incluso los que aún no han realizado ningún pedido. Para ello, deberá cambiar el tipo de combinación de una combinación interna a lo que se denomina una combinación externa izquierda. Este tipo de combinación devuelve todas las filas de la tabla situada en el lado izquierdo de la relación y solo las filas que coinciden con las de la tabla a la derecha. Una combinación externa derecha devuelve todas las filas de la derecha y solo las filas que coinciden con las de la izquierda.
Nota: En este caso, "izquierda" y "derecha" hacen referencia a la posición de las tablas en el cuadro de diálogo Modificar relaciones y no en la ventana Relaciones.
Debe tener en mente el resultado que desea obtener de una consulta que combine las tablas de esta relación y, a continuación, configurar el tipo de combinación en consecuencia.
Configurar el tipo de combinación
-
En el cuadro de diálogo Modificar relaciones, haga clic en Tipo de combinación.
Aparece el cuadro de diálogo Propiedades de la combinación.
-
Seleccione su elección y, a continuación, haga clic en Aceptar.
En la siguiente tabla (con las tablas Clientes y Pedidos) se muestran las tres opciones que aparecen en el cuadro de diálogo Propiedades de la combinación, el tipo de combinación y si se devuelven todas las filas o las filas coincidentes de cada tabla.
Opción |
Combinación relacional |
Tabla izquierda |
Tabla derecha |
---|---|---|---|
1. Incluir solo las filas donde los campos combinados de ambas tablas sean iguales. |
Combinación interna |
Filas coincidentes |
Filas coincidentes |
2. Incluir TODOS los registros de 'Clientes' y solo aquellos registros de 'Pedidos' donde los campos combinados sean iguales. |
Combinación externa izquierda |
Todas las filas |
Filas coincidentes |
3. Incluir TODOS los registros de 'Pedidos' y solo aquellos registros de 'Clientes' donde los campos combinados sean iguales. |
Combinación externa derecha |
Filas coincidentes |
Todas las filas |
Cuando selecciona la opción 2 o 3, se muestra una flecha en la línea de relación. Esta flecha apunta al lado de la relación en el que se muestran solo las filas coincidentes.
Realizar cambios en el cuadro de diálogo Propiedades de la combinación
-
En la pestaña Herramientas de base de datos, en el grupo Relaciones, haga clic en Relaciones.
-
En la pestaña Diseño de relaciones , en el grupo Relaciones , haga clic en Todas las relaciones.
Se muestran todas las tablas que tengan relaciones y las líneas de relación. Observe que no se muestran las tablas ocultas (tablas con la casilla de verificación Oculto activada en el cuadro de diálogo Propiedades de la tabla) ni sus relaciones, a menos que esté seleccionada la opción Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. -
Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea de relación aparece con mayor grosor cuando está seleccionada.
-
Haga doble clic en la línea de relaciones. Aparecerá el cuadro de diálogo Modificar relaciones.
-
Haga clic en Tipo de combinación.
-
En el cuadro de diálogo Propiedades de la combinación, seleccione una opción y, a continuación, haga clic en Aceptar.
-
Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
Exigir integridad referencial
La integridad referencial tiene como finalidad evitar los registros huérfanos, registros que hacen referencia a otros registros que ya no existen. Para exigir la integridad referencial, es preciso habilitarla para una relación de tabla. Una vez habilitada, Access rechazará todas las operaciones que infrinjan la integridad referencial para esa relación de tabla. Esto significa que Access rechazará las actualizaciones que cambien el destino de una referencia así como las eliminaciones que quiten el destino de una referencia. Para que Access propague las actualizaciones y eliminaciones referenciales de modo que todas las filas relacionadas cambien en consecuencia, vea la sección Configurar las opciones en cascada.
Activar o desactivar la integridad referencial
-
En la pestaña Herramientas de base de datos, en el grupo Relaciones, haga clic en Relaciones.
-
En la pestaña Diseño de relaciones , en el grupo Relaciones , haga clic en Todas las relaciones.
Se muestran todas las tablas con relaciones y las líneas de relación. Observe que no se muestran las tablas ocultas (tablas con la casilla de verificación Oculto activada en el cuadro de diálogo Propiedades de la tabla) ni sus relaciones, a menos que esté seleccionada la opción Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. -
Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea de relación aparece con mayor grosor cuando está seleccionada.
-
Haga doble clic en la línea de relaciones. Aparecerá el cuadro de diálogo Modificar relaciones.
-
Active o desactive Exigir integridad referencial.
-
Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
Si habilita la integridad referencial, se aplican las siguientes reglas:
-
No se puede especificar un valor en el campo de clave externa de una tabla relacionada si ese valor no existe en el campo de clave principal de la tabla principal. En caso contrario, se crean registros huérfanos.
-
No se puede eliminar un registro de una tabla principal si existen registros coincidentes en una tabla relacionada. Por ejemplo, no se puede eliminar el registro de un empleado de la tabla Empleados si hay pedidos asignados a ese empleado en la tabla Pedidos. Sin embargo, se puede optar por eliminar un registro principal y todos los registros relacionados en una sola operación activando la casilla Eliminar en cascada los registros relacionados.
-
No se puede cambiar un valor de clave principal en la tabla principal si ese cambio crea registros huérfanos. Por ejemplo, no se puede cambiar un número de pedido en la tabla Pedidos si hay artículos de línea asignados a ese pedido en la tabla Detalles de pedidos. Sin embargo, se puede optar por actualizar un registro principal y todos los registros relacionados en una sola operación activando la casilla Actualizar en cascada los campos relacionados.
Notas: Si surgen problemas al habilitar la integridad referencial, observe que deben cumplirse las siguientes condiciones para exigir la integridad referencial:
-
El campo común de la tabla principal debe ser una clave principal o debe tener un índice único.
-
Los campos comunes deben tener el mismo tipo de datos. Hay una excepción: un campo Autonumeración puede estar relacionado con un campo de tipo Número cuya propiedad Tamaño del campo tenga el valor Entero largo.
-
Ambas tablas existen en la misma base de datos de Access. No se puede exigir la integridad referencial en las tablas vinculadas. Sin embargo, si las tablas de origen tienen formato de Access, se puede abrir la base de datos en las que están almacenadas y habilitar la integridad referencial en esa base de datos.
-
Configurar las opciones en cascada
Puede darse el caso de que haya una necesidad válida de cambiar el valor en el lado "uno" de una relación. En ese caso, es necesario que Access actualice automáticamente todas las filas afectadas como parte de una sola operación. De ese modo, la actualización es completa y la base de datos no tiene un estado incoherente, con algunas filas actualizadas y otras no. Access ayuda a evitar este problema ya que incluye la opción Actualizar en cascada los campos relacionados. Cuando se aplica la integridad referencial, se selecciona la opción Actualizar en cascada los campos relacionados y, a continuación, se actualiza una clave principal, Access actualiza automáticamente todos los campos que hacen referencia a la clave principal.
Puede que también haya que eliminar una fila y todos los registros relacionados; por ejemplo, un registro Compañía de transporte y todos los pedidos relacionados de esa compañía de transporte. Por ello, Access incluye la opción Eliminar en cascada los registros relacionados. Si se aplica la integridad referencial y se activa la casilla Eliminar en cascada los registros relacionados, Access elimina automáticamente todos los registros que hacen referencia a la clave principal cuando se elimina el registro que contiene la clave principal.
Activar o desactivar la actualización y/o la eliminación en cascada
-
En la pestaña Herramientas de base de datos, en el grupo Relaciones, haga clic en Relaciones.
-
En la pestaña Diseño de relaciones , en el grupo Relaciones , haga clic en Todas las relaciones.
Se muestran todas las tablas con relaciones y las líneas de relación. Observe que no se muestran las tablas ocultas (tablas con la casilla de verificación Oculto activada en el cuadro de diálogo Propiedades de la tabla) ni sus relaciones, a menos que esté seleccionada la opción Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. -
Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea de relación aparece con mayor grosor cuando está seleccionada.
-
Haga doble clic en la línea de relaciones.
Aparece el cuadro de diálogo Modificar relaciones. -
Active la casilla Exigir integridad referencial.
-
Active la casilla Actualizar en cascada los campos relacionados o Eliminar en cascada los registros relacionados, o bien, active ambas.
-
Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
Nota: Si la clave principal es un campo Autonumeración, la activación de la casilla de verificación Actualizar en cascada los campos relacionados no tendrá ningún efecto porque no se puede cambiar el valor de un campo Autonumeración.
Eliminar una relación de tabla
Importante: Cuando se quita una relación, también se quita la integridad referencial para esa relación si está habilitada. Por consiguiente, Access ya no impide automáticamente la creación de registros huérfanos en el lado "varios" de una relación.
Para quitar una relación de tabla, es preciso eliminar la línea de relación en la ventana Relaciones. Coloque el cursor de modo que apunte a la línea de relación y, a continuación, haga clic en la línea. La línea de relación aparece con mayor grosor cuando está seleccionada. Con la línea de relación seleccionada, presione SUPRIMIR.
-
En la pestaña Herramientas de base de datos, en el grupo Relaciones, haga clic en Relaciones.
-
En la pestaña Diseño de relaciones , en el grupo Relaciones , haga clic en Todas las relaciones.
Se muestran todas las tablas con relaciones y las líneas de relación. Observe que no se muestran las tablas ocultas (tablas con la casilla de verificación Oculto activada en el cuadro de diálogo Propiedades de la tabla) ni sus relaciones, a menos que esté seleccionada la opción Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. -
Haga clic en la línea de relación correspondiente a la relación que desee eliminar. La línea de relación aparece con mayor grosor cuando está seleccionada.
-
Presione la tecla SUPR.
-
Puede que Access muestre el mensaje ¿Confirma que desea eliminar de forma permanente la relación seleccionada de la base de datos?. Si aparece este mensaje de confirmación, haga clic en Sí.
Nota: Si alguna de las tablas empleadas en la relación de tabla están en uso, quizás por parte de otra persona u otro proceso, o bien, en un objeto de base de datos abierto como puede ser un formulario, no se podrá eliminar la relación. Es preciso cerrar todos los objetos abiertos que usen estas tablas para poder quitar la relación.
Vea también
Agregar un campo de búsqueda a una tabla
¿Qué es la ventana Relaciones?
Comparar dos tablas en Access y buscar sólo datos coincidentes