RELACIONES DE ACESS

58
Nombre: Nicole Navarrete RELACIONES EN ACCESS Guía de relaciones de tablas Uno de los objetivos de un buen diseño de base de datos es eliminar la redundancia de los datos (datos duplicados). Para lograr dicho objetivo, conviene desglosar los datos en muchas tablas basadas en temas para que cada hecho esté representado sólo una vez. A continuación, se debe proporcionar a Microsoft Office Access 2007 los medios para recopilar de nuevo la información desglosada (esto se realiza colocando campos comunes en tablas que están relacionadas). Sin embargo, para realizar este paso correctamente, primero deberá comprender las relaciones existentes entre las tablas y, a continuación, especificar dichas relaciones en la base de datos de Office Access 2007. Para obtener más información, vea el artículo Conceptos básicos del diseño de una base de datos. En este artículo Introducción Tras crear una tabla para cada tema en la base de datos, es preciso proporcionar a Office Access 2007 los medios para recopilar de nuevo esa información cuando sea necesario. Para ello, se colocan campos comunes en las tablas que están relacionadas y se definen las relaciones entre las tablas. De ese modo, se pueden crear consultas, formularios e informes que muestren a la vez la información de varias tablas. Por ejemplo, el formulario que se muestra a continuación incluye información recopilada de varias tablas: La información de este formulario procede de la tabla Clientes... ...la tabla Pedidos... ...la tabla Productos... ...y la tabla Detalles de pedidos. El nombre de cliente del cuadro Facturar a se obtiene de la tabla Clientes, los valores de Id. de pedido y Fecha de pedido proceden de la tabla Pedidos, el nombre de producto viene de la tabla Productos, y los valores Precio por unidad y Cantidad proceden de la tabla Detalles del pedido. Estas tablas se vinculan entre sí de varias formas para recopilar información de cada una e incorporarla al formulario. Siguiendo en el ejemplo anterior, los campos de las tablas deben coordinarse de modo que muestren información acerca del mismo pedido. Esta coordinación se lleva a cabo mediante las relaciones de tablas. Una relación de tabla hace coincidir los datos de los campos clave (a menudo un campo con el mismo nombre en ambas tablas). En la mayoría de los casos, estos campos coincidentes son la clave principal de una tabla, que proporciona un identificador único para cada registro, y una clave externa de la otra tabla. Por ejemplo, los empleados pueden asociarse a los pedidos de los que son responsables mediante la creación de una relación de tabla entre los campos Id. de empleado en las tablas Empleados y Pedidos. Id. de empleado aparece en ambas tablas; como clave principal ... ... y como clave externa. Volver al principio Tipos de relaciones de tabla Existen tres tipos de relaciones de tabla. Una relación uno a varios Considere una base de datos de seguimiento de pedidos que incluya una tabla Clientes y una tabla Pedidos. Un cliente puede realizar cualquier número de pedidos. Por lo tanto, para cualquier cliente representado en la tabla

Transcript of RELACIONES DE ACESS

Page 1: RELACIONES DE ACESS

Nombre: Nicole Navarrete

RELACIONES EN ACCESS Guía de relaciones de tablas Uno de los objetivos de un buen diseño de base de datos es eliminar la redundancia de los datos (datos duplicados). Para lograr dicho objetivo, conviene desglosar los datos en muchas tablas basadas en temas para que cada hecho esté representado sólo una vez. A continuación, se debe proporcionar a Microsoft Office Access 2007 los medios para recopilar de nuevo la información desglosada (esto se realiza colocando campos comunes en tablas que están relacionadas). Sin embargo, para realizar este paso correctamente, primero deberá comprender las relaciones existentes entre las tablas y, a continuación, especificar dichas relaciones en la base de datos de Office Access 2007. Para obtener más información, vea el artículo Conceptos básicos del diseño de una base de datos. En este artículo

Introducción Tras crear una tabla para cada tema en la base de datos, es preciso proporcionar a Office Access 2007 los medios para recopilar de nuevo esa información cuando sea necesario. Para ello, se colocan campos comunes en las tablas que están relacionadas y se definen las relaciones entre las tablas. De ese modo, se pueden crear consultas, formularios e informes que muestren a la vez la información de varias tablas. Por ejemplo, el formulario que se muestra a continuación incluye información recopilada de varias tablas:

La información de este formulario procede de la tabla Clientes...

...la tabla Pedidos...

...la tabla Productos...

...y la tabla Detalles de pedidos. El nombre de cliente del cuadro Facturar a se obtiene de la tabla Clientes, los valores de Id. de pedido y Fecha de pedido proceden de la tabla Pedidos, el nombre de producto viene de la tabla Productos, y los valores Precio por unidad y Cantidad proceden de la tabla Detalles del pedido. Estas tablas se vinculan entre sí de varias formas para recopilar información de cada una e incorporarla al formulario. Siguiendo en el ejemplo anterior, los campos de las tablas deben coordinarse de modo que muestren información acerca del mismo pedido. Esta coordinación se lleva a cabo mediante las relaciones de tablas. Una relación de tabla hace coincidir los datos de los campos clave (a menudo un campo con el mismo nombre en ambas tablas). En la mayoría de los casos, estos campos coincidentes son la clave principal de una tabla, que proporciona un identificador único para cada registro, y una clave externa de la otra tabla. Por ejemplo, los empleados pueden asociarse a los pedidos de los que son responsables mediante la creación de una relación de tabla entre los campos Id. de empleado en las tablas Empleados y Pedidos.

Id. de empleado aparece en ambas tablas; como clave principal ...

... y como clave externa. Volver al principio

Tipos de relaciones de tabla Existen tres tipos de relaciones de tabla. Una relación uno a varios Considere una base de datos de seguimiento de pedidos que incluya una tabla Clientes y una tabla Pedidos. Un cliente puede realizar cualquier número de pedidos. Por lo tanto, para cualquier cliente representado en la tabla

Page 2: RELACIONES DE ACESS

Clientes puede haber representados muchos pedidos en la tabla Pedidos. Por consiguiente, la relación entre la tabla Clientes y la tabla Pedidos es una relación de uno a varios. Para representar una relación de uno a varios en el diseño de la base de datos, tome la clave principal del lado "uno" de la relación y agréguela como un campo o campos adicionales a la tabla en el lado "varios" de la relación. En este caso, por ejemplo, agregaría un nuevo campo: (el campo Id. de la tabla Clientes) a la tabla Pedidos y le denominaría Id. de cliente. Access utilizaría entonces el número de identificador del cliente de la tabla Pedidos para localizar el cliente correcto de cada producto. Una relación de varios a varios Considere la relación entre una tabla Productos y una tabla Pedidos. Un solo pedido puede incluir varios productos. Por otro lado, un único producto puede aparecer en muchos pedidos. Por tanto, para cada registro de la tabla Pedidos puede haber varios registros en la tabla Productos. Además, para cada registro de la tabla Productos puede haber varios registros en la tabla Pedidos. Este tipo de relación se denomina relación de varios a varios porque para un producto puede haber varios pedidos, y para un pedido puede haber varios productos. Tenga en cuenta que para detectar las relaciones de varios a varios existentes entre las tablas, es importante que considere ambas partes de la relación. Para representar una relación de varios a varios, debe crear una tercera tabla, a menudo denominada tabla de unión, que divide la relación de varios a varios en dos relaciones uno a varios. Debe insertar la clave principal de cada una de las dos tablas en la tercera. Como resultado, la tercera tabla registra cada ocurrencia, o instancia, de la relación. Por ejemplo, la tabla Pedidos y la tabla Productos tienen una relación varios a varios que se define mediante la creación de dos relaciones uno a varios con la tabla Detalles de pedidos. Un pedido puede incluir muchos productos, y cada producto puede aparecer en muchos pedidos. Una relación uno a uno En una relación uno a uno, cada registro de la primera tabla sólo puede tener un registro coincidente en la segunda tabla y viceversa. Este tipo de relación no es común porque, muy a menudo, la información relacionada de este modo se almacena en la misma tabla. Puede utilizar la relación uno a uno para dividir una tabla con muchos campos, para aislar parte de una tabla por razones de seguridad o para almacenar información que sólo se aplica a un subconjunto de la tabla principal. Cuando identifique esta relación, ambas tablas deben compartir un campo común.

Volver al principio ¿Por qué crear relaciones de tabla? Puede crear relaciones de tabla explícitamente mediante la ventana Relaciones, o arrastrando un campo desde el panel Lista de campos.Office Access 2007 usa relaciones de tabla para combinar tablas si hay que utilizarlas en un objeto de base de datos. Existen varias razones por las que se deben crear relaciones de tabla antes de crear otros objetos de base de datos, como formularios, consultas e informes. Las relaciones de tabla informan de los diseños de consulta Para trabajar con registros de más de una tabla, a menudo se debe crear una consulta que combine las tablas. La consulta compara los valores del campo de clave principal de la primera tabla con el campo de clave externa de la segunda tabla. Por ejemplo, para devolver filas que enumeren todos los pedidos de cada cliente, deberá crear una consulta que combine la tabla Clientes con la tabla Pedidos de acuerdo con el campo Id. de cliente. En la ventana Relaciones, puede especificar manualmente los campos que desea combinar. Sin embargo, si ya tiene definida una relación entre las tablas, Office Access 2007 suministrará la combinación predeterminada, de acuerdo con la relación de tabla existente. Además, si usa uno de los asistentes para consultas, Access utilizará la información recopilada de las relaciones de tabla ya definidas para presentarle selecciones bien fundamentadas y para rellenar de antemano los valores predeterminados de las opciones de la propiedad. Las relaciones de tabla informan de los diseños de formulario e informe Al diseñar un formulario o informe, Office Access 2007 utiliza la información recopilada de las relaciones de tabla ya definidas para presentarle selecciones bien fundamentadas y para rellenar de antemano los valores predeterminados de las opciones de la propiedad. Las relaciones de tabla son la base con la que exigir integridad referencial y evitar los registros huérfanos en la base de datos. Un registro huérfano es el que hace referencia a otro registro que no existe por ejemplo, un registro de un pedido que hace referencia a un registro de un cliente que no existe. Al diseñar una base de datos, se divide la información en tablas, cada una de las cuales tiene una clave principal. A continuación, se agregan claves externas a las tablas relacionadas que hacen referencia a dichas claves principales. Estos pares de clave principal y clave externa forman la base de las relaciones de tabla y de las consultas de varias tablas. Por lo tanto, resulta importante, que dichas referencias de clave principal y clave externa estén sincronizadas. La integridad referencial sirve para asegurarse de que las referencias permanecen sincronizadas y depende de las relaciones de tabla.

Volver al principio Descripción de la integridad referencial Al diseñar una base de datos, se divide la información en muchas tablas basadas en temas para minimizar la redundancia de los datos. A continuación, se proporciona a Office Access 2007 los medios para recopilar de nuevo la información, colocando campos comunes en tablas relacionadas. Por ejemplo, para representar una relación de uno a varios se toma la clave principal de la tabla "uno" y se agrega como un campo adicional a la tabla "varios". Para recopilar de nuevo los datos, Access toma el valor de la tabla "varios" y busca el valor correspondiente en la tabla "uno". De este modo los valores de la tabla "varios" hacen referencia a los valores correspondientes de la tabla "uno".

Page 3: RELACIONES DE ACESS

Suponga que tiene una relación de uno a varios entre las tablas Transportistas y Pedidos y desea eliminar un transportista. Si el destinatario que desea quitar tiene pedidos en la tabla Pedidos, dichos pedidos quedarán "huérfanos" si elimina el registro Transportista. Los pedidos todavía contendrán un Id.de transportista, pero el Id. ya no será válido, porque el registro al que hace referencia ya no existe. El propósito de la integridad referencial es evitar los registros huérfanos y mantener las referencias sincronizadas para que esta situación hipotética no ocurra nunca. La integridad referencial se aplica habilitándola para una relación de tabla (vea Exigir integridad referencial para obtener instrucciones paso a paso). Una vez habilitada, Access rechazará todas las operaciones que infrinjan la integridad referencial de esa relación de tabla. Esto significa que Access rechaza las actualizaciones que cambian el destino de una referencia, así como las eliminaciones que quitan el destino de una referencia. Sin embargo, es posible que tenga la necesidad perfectamente válida de cambiar la clave principal de un transportista que tiene pedidos en la tabla Pedidos. Para tales casos, lo que realmente necesita es que Access actualice automáticamente todas las filas afectadas como parte de una única operación. De ese modo, Access se asegura de que la actualización es completa y la base de datos no tiene un estado inconsistente con algunas filas actualizadas y otras no. Por ello, Access incluye la opción Eliminar en cascada los registros 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. También es posible que tenga la necesidad válida de eliminar una fila y todos los registros relacionados; por ejemplo, un registro Transportista y todos los pedidos relacionados de ese transportista. Por ello, Access incluye la opción Eliminar en cascada los registros relacionados. Si aplica la integridad referencial y selecciona la opción Actualizar en cascada los campos relacionados y, a continuación, elimina un registro en la parte de la clave principal de la relación, Access eliminará automáticamente todos los campos que hagan referencia a la clave principal.

Volver al principio Ver relaciones de tabla Para ver las relaciones de tabla, haga clic en Relaciones en la ficha Herramientas de base de datos. Se abrirá la ventana Relaciones y se mostrarán las relaciones existentes. Si aún no se han definido relaciones de tabla y abre la ventana Relaciones por primera vez, Access le pedirá que agregue una tabla o consulta a la ventana. Abra la ventana Relaciones.

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Si la base de datos contiene relaciones, aparecerá la ventana Relaciones y se mostrarán las relaciones existentes. Si la base de datos no contiene relaciones y abre la ventana Relaciones por primera vez, aparecerá el cuadro de diálogo Mostrar tabla. Haga clic en Cerrar para cerrar el cuadro de diálogo. En la ficha Diseño, en el grupo Relaciones, haga clic en Todas las relaciones. Se mostrarán todas las relaciones definidas en la base de datos. Observe que las tablas ocultas (las tablas que tienen activada la casilla de verificación Oculto del cuadro de diálogo Propiedades de la tabla) y sus relaciones no se mostrarán a no ser que esté activada la casilla de verificación Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel de exploración.

La clave principal

Esta línea representa la relación

La clave externa

Page 4: RELACIONES DE ACESS

Una relación de tabla se representa mediante una línea de relación trazada entre las tablas en la ventana Relaciones. Una relación que no exige integridad referencial aparece como una línea delgada entre los campos comunes que admiten la relación. Si selecciona la relación haciendo clic en su línea, la línea se hará más gruesa para indicar que está seleccionada. Si exige la integridad referencial, la línea aparecerá más gruesa en los extremos. Además, aparece el número 1 sobre la parte gruesa de un extremo de la línea de relación y aparece el símbolo de infinito (∞) en la parte gruesa del otro extremo de la línea. Puede seleccionar los siguientes comandos en la cinta de opciones cuando la ventana Relaciones está activa: En la ficha Diseño, en el grupo Herramientas: Modificar relaciones Abre el cuadro de diálogo Modificar relaciones. Si selecciona una línea de relación, puede hacer clic en Modificar relaciones para cambiar la relación de tabla. También puede hacer doble clic en la línea de relación. Borrar diseño Oculta de la visualización todas las relaciones y tablas en la ventana Relaciones. Observe que este comando sólo oculta las relaciones y tablas, no las elimina. Informe Relaciones Crea un informe que muestra las relaciones y tablas de la base de datos. El informe sólo muestra todas las relaciones y tablas que no están ocultas en la ventana Relaciones. En la ficha Diseño, en el grupo Relaciones: Mostrar tabla Abre el cuadro de diálogo Mostrar tabla para que pueda seleccionar tablas y consultas para verlas en la ventana Relaciones. Ocultar tabla Oculta la tabla seleccionada en la ventana Relaciones. Mostrar relaciones directas Muestra todas las relaciones y tablas relacionadas de la tabla seleccionada en la ventana Relaciones, si aún no se muestran. Mostrar todas las relaciones Muestra todas las relaciones y tablas relacionadas de la base de datos en la ventana Relaciones. Observe que las tablas ocultas (las tablas que tienen activada la casilla de verificación Oculto del cuadro de diálogo Propiedades de la tabla) y sus relaciones no se mostrarán a no ser que esté activada la casilla de verificación Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. Para obtener más información sobre la opción Mostrar tablas ocultas, vea el artículo Guía del panel de exploración. Cerrar Cierra la ventana Relaciones. Si realiza algún cambio en el diseño de la ventana Relaciones, le pedirán que guarde los cambios.

Volver al principio Crear una relación de tabla Se puede crear una relación de tabla mediante la ventana Relaciones o arrastrando un campo en una hoja de datos 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, dichos campos tienen que tener el mismo tipo de datos. No obstante, si el campo de clave principal es un campo Autonumérico, el campo de clave externa 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 Autonumérico 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

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Si aún no ha definido ninguna relación, aparecerá automáticamente el cuadro de diálogo Mostrar tabla. Si no aparece, en la ficha Diseño, en el grupo Relaciones, haga clic en Mostrar tabla. En el cuadro de diálogo Mostrar tabla se muestran todas las tablas y consultas de la base de datos. Para ver únicamente las tablas, haga clic en Tablas. Para ver únicamente las consultas, haga clic en Consultas. Para ver las tablas y las consultas, haga clic en Ambas. Seleccione una o varias tablas o consultas y, a continuación, haga clic en Agregar. Cuando termine de agregar tablas y consultas a la ventana 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. Aparecerá el cuadro de diálogo Modificar relaciones. Compruebe que los nombres de campo mostrados son los campos comunes de la relación. Si un nombre de campo es incorrecto, haga clic en él y seleccione un nuevo campo de la lista. Para exigir la integridad referencial de esta relación, active la casilla de verificación Exigir integridad referencial. Para obtener más información sobre la integridad referencial, vea las secciones Descripción de la integridad referencial y Exigir integridad referencial.

Page 5: RELACIONES DE ACESS

Haga clic en Crear. Se dibujará una línea de relación entre las dos tablas. Si activó la casilla de verificación Exigir integridad referencial, la línea aparecerá más gruesa en los extremos. Además, sólo si activó la casilla de verificación Exigir integridad referencial, aparecerá el número 1 sobre la parte gruesa de un extremo de la línea de relación y aparece el símbolo de infinito (∞) sobre la parte gruesa del otro extremo.

Notas Para crear una relación uno a uno Ambos campos comunes (normalmente los campos de clave principal y de clave externa) tienen que tener un índice único. Esto significa que la propiedad Indexado 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 ubicado en el lado "uno" de la relación (normalmente, el campo de clave principal) tiene que tener un índice único. Esto significa que la propiedad Indexado 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 significa que la propiedad Indexado 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 En Office Access 2007, 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 disponibles de las tablas relacionadas y también los de otras tablas. 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 Cambiar una relación de tabla para obtener más información. Abrir una tabla en la vista Hoja de datos

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En el panel de exploración, haga clic con el botón secundario del mouse (ratón) en la tabla a la que desee agregar el campo, cree la relación y haga clic en Vista Hoja de datos en el menú contextual. Abrir el panel Lista de campos En la ficha Hoja de datos, en el grupo Campos y columnas, haga clic en Agregar campos existentes.

Aparecerá 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 en alguna de estas dos categorías del 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 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 a un nombre de 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 En la ficha Hoja de datos, en el grupo Campos y columnas, haga clic en Agregar campos existentes.

Page 6: RELACIONES DE ACESS

Aparecerá el panel Lista de campos. Bajo Campos disponibles en otras tablas, haga clic en el signo más (+) situado junto a un nombre de 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 iniciará el Asistente para búsquedas. Siga las instrucciones para completar 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 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 Cambiar una relación de tabla para obtener más información.

Volver al principio Eliminar una relación de tabla 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. Observe que si se quita una relación, también se quita la integridad referencial para esa relación si está habilitada. Como resultado, Access ya no evitará automáticamente la creación de registros huérfanos en el lado "varios" de una relación.

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Aparecerá la ventana Relaciones. Si aún no ha definido ninguna relación y es la primera vez que abre la ventana Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el cuadro de diálogo, haga clic en Cerrar. En la ficha Diseño, en el grupo Relaciones, haga clic en Todas las relaciones. Aparecerán todas las tablas que tengan relaciones, mostrando las líneas de relació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 SUPRIMIR. O bien, Haga clic con el botón secundario y, a continuación, haga clic en Eliminar. 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 se está usando alguna de las tablas empleadas en la relación de tabla, quizás por 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. Primero se deben cerrar todos los objetos abiertos que usen estas tablas para poder quitar la relación.

Volver al principio Cambiar una relación de tabla Para cambiar una relación de tabla, 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 haga clic en Modificar relaciones en el grupo Herramientas en la ficha Diseño. Aparecerá el cuadro de diálogo Modificar relaciones. Realice sus cambios en el cuadro de diálogo Modificar relaciones

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Page 7: RELACIONES DE ACESS

Aparecerá la ventana Relaciones. Si aún no ha definido ninguna relación y es la primera vez que abre la ventana Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el cuadro de diálogo, haga clic en Cerrar. En la ficha Diseño, en el grupo Relaciones, haga clic en Todas las relaciones. Aparecerán todas las tablas que tengan relaciones y se muestran las líneas de relación. Observe que las tablas ocultas (las tablas que tienen activada la casilla de verificación Oculto en el cuadro de diálogo Propiedades) y las relaciones no se muestran a menos que se seleccione Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel de exploración. Haga clic en la línea de relación de la relación que desee modificar. La línea de relación aparece con mayor grosor cuando está seleccionada. Haga doble clic en la línea de relación. O bien, En la ficha Diseño, 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. Establecer 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 dichas 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 sólo para las filas en las que se ha encontrado una coincidencia. Uno de los valores que se puede especificar para cada relación es el tipo de combinación, que indica a Access qué registros se van a incluir en el resultado de una consulta. Por ejemplo, consideremos de nuevo una consulta que combine la tabla Clientes y la tabla Pedidos por los campos comunes que representan el Id. de cliente. Mediante el tipo de combinación predeterminado (denominado combinación interna), la consulta devolverá únicamente las filas Cliente y las filas Pedido en las que los campos comunes (denominados 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

Page 8: RELACIONES DE ACESS

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 sólo 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 sólo 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. Establecer el tipo de combinación En el cuadro de diálogo Modificar relaciones, haga clic en Tipo de combinación. Aparecerá el cuadro de diálogo Propiedades de la combinación. Haga clic en la opción que desee 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 incluyen todas las filas o las filas coincidentes de cada tabla.

Opción Combinación relacional Tabla izquierda

Tabla derecha

1. Incluir sólo 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 sólo 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 sólo 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 ó 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 sólo las filas coincidentes. Realizar cambios en el cuadro de diálogo Propiedades de la combinación

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Aparecerá la ventana Relaciones. Si aún no ha definido ninguna relación y es la primera vez que abre la ventana Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el cuadro de diálogo, haga clic en Cerrar. En la ficha Diseño, en el grupo Relaciones, haga clic en Todas las relaciones. Aparecerán todas las tablas que tengan relaciones, mostrando las líneas de relación. Observe que las tablas ocultas (las tablas que tienen activada la casilla de verificación Oculto del cuadro de diálogo Propiedades de la tabla) y sus relaciones no se mostrarán a no ser que esté activada la casilla de verificación Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel de exploración. Haga clic en la línea de relación de la relación que desee modificar. La línea de relación aparece con mayor grosor cuando está seleccionada. Haga doble clic en la línea de relación. O bien, En la ficha Diseño, en el grupo Herramientas, haga clic en Modificar 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, haga clic en una opción y, a continuación, haga clic en Aceptar.

Page 9: RELACIONES DE ACESS

Realice cambios adicionales en la relación y, a continuación, haga clic en Aceptar.

Volver al principio Exigir integridad referencial El uso de la integridad referencial tiene como finalidad evitar los registros huérfanos y mantener sincronizadas las referencias de modo que no haya registros que hagan 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. Access rechaza 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

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Aparecerá la ventana Relaciones. Si aún no ha definido ninguna relación y es la primera vez que abre la ventana Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el cuadro de diálogo, haga clic en Cerrar. En la ficha Diseño, en el grupo Relaciones, haga clic en Todas las relaciones. Aparecerán todas las tablas que tengan relaciones, mostrando las líneas de relación. Observe que las tablas ocultas (las tablas que tienen activada la casilla de verificación Oculto check box in the table's Propiedades dialog box is selected) and their relationships will not be shown unless Show Hidden Objects is selected in the Navigation Options dialog box. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel de exploración. Haga clic en la línea de relación de la relación que desee modificar. La línea de relación aparece con mayor grosor cuando está seleccionada. Haga doble clic en la línea de relación. O bien, En la ficha Diseño, en el grupo Herramientas, haga clic en Modificar relaciones. Aparecerá el cuadro de diálogo Modificar relaciones. Active la casilla de verificación Exigir integridad referencial. Realice cambios adicionales en la relación y, a continuación, haga clic en Aceptar. Tras aplicar 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 de verificación 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 de verificación Actualizar en cascada los campos relacionados. Notas Si surgen problemas al habilitar la integridad referencial, observe que deben cumplirse las siguientes condiciones para poder aplicar la integridad referencial: El campo común de la tabla principal debe ser una clave principal o debe tener un índice único.

Page 10: RELACIONES DE ACESS

Los campos comunes deben tener el mismo tipo de datos. Hay una excepción: un campo Autonumérico puede estar relacionado con un campo de tipo Número cuya propiedad Tamaño del campo tenga el valor Largo entero. Ambas tablas deben existir 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 inconsistente 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 se 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. Cuando se aplica la integridad referencial y se activa la casilla de verificación Eliminar en cascada los registros relacionados, Access elimina automáticamente todos los registros que hacen referencia a la clave principal al eliminarse el registro que contiene la clave principal. Activar o desactivar la actualización y/o la eliminación en cascada

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Aparecerá la ventana Relaciones. Si aún no ha definido ninguna relación y es la primera vez que abre la ventana Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el cuadro de diálogo, haga clic en Cerrar. En la ficha Diseño, en el grupo Relaciones, haga clic en Todas las relaciones. Aparecerán todas las tablas que tengan relaciones, mostrando las líneas de relación. Observe que las tablas ocultas (las tablas que tienen activada la casilla de verificación Oculto del cuadro de diálogo Propiedades de la tabla) y sus relaciones no se mostrarán a no ser que esté activada la casilla de verificación Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración. Para obtener más información sobre la opción Mostrar objetos ocultos, vea Guía del panel de exploración. Haga clic en la línea de relación de la relación que desee modificar. La línea de relación aparece con mayor grosor cuando está seleccionada. Haga doble clic en la línea de relación. O bien, En la ficha Diseño, en el grupo Herramientas, haga clic en Modificar relaciones. Aparecerá el cuadro de diálogo Modificar relaciones. Active la casilla de verificación Exigir integridad referencial. Active la casilla de verificación Actualizar en cascada los campos relacionados o Eliminar en cascada los registros relacionados, o bien, active ambas. Realice cambios adicionales en la relación y, a continuación, haga clic en Aceptar. Nota Si la clave principal es un campo Autonumérico, 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 Autonumérico.

Volver al principio Vea también Agregar, establecer, cambiar o quitar la clave principal Conceptos básicos del diseño de una base de datos Introducción al panel de exploración Access>Tablas Crear, modificar o eliminar una relación

Mostrar todo Tras crear una tabla para cada tema en la base de datos, es preciso proporcionar a Office Access 2007 los medios para recopilar de nuevo esa información cuando sea necesario. Para ello, se colocan campos comunes

Page 11: RELACIONES DE ACESS

en las tablas que están relacionadas y se definen las relaciones entre las tablas. De ese modo, se pueden crear consultas, formularios e informes que muestren a la vez la información de varias tablas. En este artículo se describen los procedimientos paso a paso para crear, modificar y eliminar una relación de tabla. Se incluye información sobre cómo exigir la integridad referencial para evitar la creación de registros huérfanos, cómo definir el tipo de combinación para determinar qué registros de cada lado de una relación se incluyen en el resultado de una consulta y cómo configurar las opciones en cascada para mantener sincronizadas las referencias. Para obtener más información sobre las relaciones de tablas, vea el artículo Guía de relaciones de tablas. En este artículo

Crear una relación de tabla Crear una relación de tabla mediante la ficha de documentos Relaciones Crear una relación de tabla mediante el panel Lista de campos Modificar una relación de tabla Exigir integridad referencial Eliminar una relación de tabla

Crear una relación de tabla Se puede crear una relación de tabla en la ventana Relaciones o arrastrando un campo hasta una hoja de datos 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 Autonumérico, 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 Autonumérico 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.

Volver al principio Crear una relación de tabla mediante la ficha de documentos Relaciones

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en el botón Relaciones.

Si aún no ha definido ninguna relación, aparecerá automáticamente el cuadro de diálogo Mostrar tabla. Si no aparece, en la ficha Diseño, en el grupo Relaciones, haga clic en Mostrar tabla.

En el cuadro de diálogo Mostrar tabla se muestran todas las tablas y consultas de la base de datos. Para ver únicamente las tablas, haga clic en Tablas. Para ver únicamente las consultas, haga clic en Consultas. Para ver ambas, haga clic en Ambas. Seleccione una o varias tablas o consultas y, a continuación, haga clic en Agregar. Cuando termine de agregar tablas y consultas a la ficha 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.

Page 12: RELACIONES DE ACESS

Compruebe que los nombres de campo mostrados son 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. Para exigir la integridad referencial para esta relación, active la casilla de verificación Exigir integridad referencial. Para obtener más información sobre la integridad referencial, vea la sección Exigir integridad referencial. Además, vea el artículo Guía de relaciones de tablas. Haga clic en Crear. Access dibuja una línea de relación entre las dos tablas. Si activó la casilla de verificación Exigir integridad referencial, la línea aparece más gruesa en los extremos. Además, sólo si activó la casilla de verificación 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 (∞) 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 de clave externa) tienen que tener un índice único. Esto significa que la propiedad Indexado 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 ubicado en el lado uno de la relación (normalmente, el campo de clave principal) tiene que tener un índice único. Esto significa que la propiedad Indexado 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 significa que la propiedad Indexado 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.

Volver al principio Crear una relación de tabla mediante el panel Lista de campos En Office Access 2007, 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 de tabla para obtener más información. Abrir una tabla en la vista Hoja de datos

Page 13: RELACIONES DE ACESS

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En el panel de exploración, haga clic con el botón secundario del mouse (ratón) en la tabla a la que desee agregar el campo, cree la relación y, a continuación, haga clic en Vista Hoja de datos en el menú contextual. Abrir el panel Lista de campos En la ficha Hoja de datos, en el grupo Campos y columnas, haga clic en Agregar campos existentes.

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 a un nombre de 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 En la ficha Hoja de datos, en el grupo Campos y columnas, haga clic en Agregar campos existentes.

Page 14: RELACIONES DE ACESS

Aparece el panel Lista de campos. Bajo Campos disponibles en otras tablas, haga clic en el signo más (+) situado junto a un nombre de 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 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 de tabla para obtener más información.

Volver al principio Modificar una relación de tabla Para cambiar una relación de tabla, selecciónela en la ficha de documentos 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 ficha Diseño, 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

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en el botón Relaciones. Aparece la ficha de documentos Relaciones. Si aún no ha definido ninguna relación y ésta es la primera vez que abre la ficha de documentos Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece, haga clic en Cerrar. En la ficha Diseño, en el grupo Relaciones, haga clic en Mostrar 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. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel 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 relación. O bien, En la ficha Diseño, en el grupo Herramientas, haga clic en Modificar relaciones. Aparece el cuadro de diálogo Modificar relaciones.

Page 15: RELACIONES DE ACESS

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 sólo para las filas en las que se ha encontrado una coincidencia. Uno de los valores que se puede especificar para cada relación es el tipo de combinación, que indica a Access qué registros se van a incluir en el resultado de una consulta. Por ejemplo, consideremos de nuevo una consulta que combine la tabla Clientes y la tabla Pedidos por los campos comunes que representan el Id. de cliente. Mediante el tipo de combinación predeterminado (denominado combinación interna), la consulta devolverá únicamente las filas Cliente y las filas Pedido en las que los campos comunes (denominados 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 sólo 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 sólo 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 ficha de documentos 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. Haga clic en la opción que desee 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 sólo 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 sólo aquellos registros de 'Pedidos' donde los campos combinados sean

Combinación externa

Todas las filas Filas coincidentes

Page 16: RELACIONES DE ACESS

iguales. izquierda

3. Incluir TODOS los registros de 'Pedidos' y sólo 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 ó 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 sólo las filas coincidentes. Realizar cambios en el cuadro de diálogo Propiedades de la combinación

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Aparece la ficha de documentos Relaciones. Si aún no ha definido ninguna relación y ésta es la primera vez que abre la ficha de documentos Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece, haga clic en Cerrar. En la ficha Diseño, 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. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel 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 relación. O bien, En la ficha Diseño, en el grupo Herramientas, haga clic en Modificar relaciones. Aparece 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, haga clic en 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.

Volver al principio Exigir integridad referencial La integridad referencial tiene como finalidad evitar los registros huérfanos y mantener sincronizadas las referencias de modo que no haya registros que hagan 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

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir.

Page 17: RELACIONES DE ACESS

En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Aparece la ficha de documentos Relaciones. Si aún no ha definido ninguna relación y ésta es la primera vez que abre la ficha de documentos Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece, haga clic en Cerrar. En la ficha Diseño, 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. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel 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 relación. O bien, En la ficha Diseño, en el grupo Herramientas, haga clic en Modificar relaciones. Aparece el cuadro de diálogo Modificar relaciones. Active la casilla de verificación Exigir integridad referencial. Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar. Tras habilitar 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 de verificación 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 de verificación 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 Autonumérico puede estar relacionado con un campo de tipo Número cuya propiedad Tamaño del campo tenga el valor Largo entero. 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 inconsistente 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 se 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. Cuando se aplica la integridad referencial y se activa la casilla de verificación Eliminar en cascada los registros relacionados, Access elimina automáticamente todos los registros que hacen referencia a la clave principal al eliminarse el registro que contiene la clave principal. Activar o desactivar la actualización y/o la eliminación en cascada

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos.

Page 18: RELACIONES DE ACESS

En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Aparece la ficha de documentos Relaciones. Si aún no ha definido ninguna relación y ésta es la primera vez que abre la ficha de documentos Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece, haga clic en Cerrar. En la ficha Diseño, 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. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel 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 relación. O bien, En la ficha Diseño, en el grupo Herramientas, haga clic en Modificar relaciones. Aparece el cuadro de diálogo Modificar relaciones. Active la casilla de verificación Exigir integridad referencial. Active la casilla de verificación 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 Autonumérico (tipo de datos Autonumérico: tipo de datos de campo

que, en una base de datos de Microsoft Access, almacena automáticamente un número exclusivo para cada registro en el momento en que éste se agrega a una tabla. Se pueden generar tres tipos de números: secuencial, aleatorio e Id. de réplica.), 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 Autonumérico.

Volver al principio Eliminar una relación de tabla Para quitar una relación de tabla, es preciso eliminar la línea de relación en la ficha de documentos 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. Observe que si se quita una relación, también se quita la integridad referencial para esa relación si está habilitada. Como resultado, Access ya no evitará automáticamente la creación de registros huérfanos en el lado "varios" de una relación.

Haga clic en el Botón Microsoft Office y, a continuación, haga clic en Abrir. En el cuadro de diálogo Abrir, seleccione y abra la base de datos. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en el botón Relaciones.

Aparece la ficha de documentos Relaciones. Si aún no ha definido ninguna relación y ésta es la primera vez que abre la ficha de documentos Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece, haga clic en Cerrar. En la ficha Diseño, 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. Para obtener más información sobre la opción Mostrar objetos ocultos, vea el artículo Guía del panel 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 SUPRIMIR. O bien, Haga clic con el botón secundario del mouse y, a continuación, haga clic en Eliminar. 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í.

Page 19: RELACIONES DE ACESS

NOTA Si se está usando alguna de las tablas empleadas en la relación de tabla, quizás por 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.

Volver al principio Vea también Agregar, establecer, cambiar o quitar la clave principal Conceptos básicos del diseño de una base de datos Guía de relaciones de tablas Access>Formularios Insertar una hoja de datos en un formulario

Mostrar todo Una hoja de datos es una sencilla vista de datos organizados en filas y columnas. Si se hace doble clic en una tabla en el panel de exploración, Microsoft Office Access 2007 la muestra como una hoja de datos. Gracias a su presentación compacta de los datos, las hojas de datos funcionan bien cuando se usan como subformularios para mostrar los datos del lado "varios" de una relación uno a varios (relación uno a varios: asociación entre dos tablas en la que el valor de clave principal de cada registro de la tabla principal se corresponde con el valor del campo o los campos coincidentes de varios registros de la tabla relacionada.). En este artículo se describe cómo se pueden agregar hojas de datos a los formularios de Office Access 2007. ¿Qué desea hacer?

Ver un ejemplo de una hoja de datos en un formulario Establecer relaciones entre tablas Crear un formulario que contenga una hoja de datos mediante la herramienta Formulario Crear un formulario que contenga una hoja de datos mediante la vista Presentación Insertar una hoja de datos en un formulario existente mediante la vista Presentación Insertar una hoja de datos en un formulario existente mediante la vista Diseño Obtener información sobre las diferencias entre un formulario dividido y un formulario que contiene una hoja de

datos

Ver un ejemplo de una hoja de datos en un formulario Supongamos que desea crear un formulario que muestre datos sobre categorías de productos y todos los productos dentro de esas categorías. Los datos de la tabla Categorías representan el lado "uno" de la relación, mientras que los datos de la tabla Productos representan el lado "varios" de la relación. Cada categoría puede contener numerosos productos.

El formulario principal muestra los datos del lado "uno" de la relación.

La hoja de datos muestra los datos del lado "varios" de la relación. Volver al principio

Establecer relaciones entre tablas Antes de diseñar un formulario con una hoja de datos, debe revisar la relación que existe entre las tablas y agregar las relaciones que falten. De este modo, Access podrá crear automáticamente los vínculos entre las hojas de datos y los formularios principales. Para ver, agregar o modificar las relaciones entre las tablas de una base de datos, en la ficha Herramientas avanzadas, en el grupo Analizar, haga clic en Relaciones. Para obtener más información sobre cómo crear relaciones, vea los vínculos que aparecen en la sección Vea también.

Volver al principio Crear un formulario que contenga una hoja de datos mediante la herramienta Formulario Cuando se usa la herramienta Formulario para crear un formulario basado en una tabla que está en el lado "uno" de una relación uno a varios, Access inserta automáticamente una hoja de datos que muestra los datos del lado "varios" de la relación. Por ejemplo, si se cumplen las condiciones siguientes, Access inserta una hoja de datos que muestra todos los pedidos de cada cliente: Se crea un formulario simple basado en la tabla Compradores. Se ha definido una relación uno a varios con la tabla Pedidos que especifica que un registro de la tabla Compradores se puede relacionar con varios registros de la tabla Pedidos. La tabla Compradores no está en el lado "uno" de ninguna otra relación uno a varios.

Page 20: RELACIONES DE ACESS

En el panel de exploración, haga clic en la tabla que está en el lado "uno" de la relación uno a varios.

En la ficha Crear, en el grupo Formularios, haga clic en Formulario. Access crea el formulario con la hoja de datos en su parte inferior. Si Access no crea una hoja de datos, eso significa que la tabla usada para el formulario no forma parte de una relación uno a varios o que la tabla forma parte de más de una relación uno a varios.

NOTAS

Además de crear el formulario principal, este proceso no crea ningún otro objeto de formulario. La hoja de datos es una vista directa de la tabla. Para ocultar una columna en una hoja de datos Haga clic con el botón secundario del mouse (ratón) y, a continuación, haga clic en Ocultar columna. Esta configuración se guarda. Si se guarda y se cierra el formulario y, a continuación, se vuelve a abrirlo, la columna permanecerá oculta. Para restaurar una columna oculta en una hoja de datos Haga clic con el botón secundario del mouse en cualquier encabezado de columna de la hoja de datos y, a continuación, haga clic en Mostrar columnas. Active la casilla de verificación situada junto a cada columna que desee restaurar y, a continuación, haga clic en Cerrar.

Volver al principio Crear un formulario que contiene una hoja de datos mediante la vista Presentación Si ya se han definido las relaciones entre las tablas de la base de datos, se puede crear rápidamente un formulario que contiene una hoja de datos mediante la vista Presentación. Cuando se agrega un campo del lado "varios" de una relación a un formulario basado en el lado "uno" de la relación, Access crea automáticamente una hoja de datos para mostrar los registros relacionados.

En la ficha Crear, en el grupo Formularios, haga clic en En blanco. Access abre un formulario en blanco en la vista Presentación y muestra el panel Lista de campos.

NOTA Si cierra el panel Lista de campos de manera fortuita, puede volver a abrirlo siguiendo uno de estos

procedimientos: Presione ALT+F8. O bien,

En la ficha Formato, en el grupo Controles, haga clic en Agregar campos existentes. Haga clic en el signo más situado junto a la tabla que está en el lado "uno" de la relación uno a varios y, a continuación, arrastre el primer campo que desee incluir hasta el formulario. Observe que el panel Lista de campos divide las tablas en secciones: Campos disponibles para esta vista y, más abajo, Campos disponibles en tablas relacionadas. En la parte inferior del panel Lista de campos, las tablas que no están directamente relacionadas con la tabla principal se encuentran bajo Campos disponibles en otras tablas. Desde la sección Campos disponibles para esta vista, arrastre todos los campos que desee hasta el formulario principal. Desde la sección Campos disponibles en tablas relacionadas, arrastre hasta el formulario el primer campo que desee incluir en la hoja de datos. Access crea una hoja de datos y le agrega el campo. Para agregar campos adicionales a la nueva hoja de datos, primero debe hacer clic en la hoja para seleccionarla. Observe que Access reorganiza el panel Lista de campos para que los campos disponibles para la hoja de datos estén en la parte superior. Desde la sección Campos disponibles para esta vista, arrastre los otros campos que desee incluir en la hoja de datos. Cuando arrastra cada uno de los campos hasta la hoja de datos, Access dibuja una barra de inserción para mostrar dónde se va a insertar el campo cuando suelte el botón del mouse. Siga agregando campos al formulario principal o a la hoja de datos haciendo clic primero en el formulario principal o en la hoja de datos para seleccionarlo y arrastrando, luego, el campo desde el panel Lista de campos. La sección Campos disponibles en otras tablas del panel Lista de campos contiene tablas que no están directamente relacionadas con la tabla o consulta en la que se basa el formulario o la hoja de datos seleccionados. Si se han definido todas las relaciones válidas entre las tablas en la ventana Relaciones, es probable que los campos de la sección Campos disponibles en otras tablas no sean selecciones válidas para el formulario que se está creando. Si se arrastra un campo de esta sección hasta el formulario, Access muestra el cuadro de diálogo Especificar relación. Es preciso especificar los campos que relacionen las dos tablas antes de proceder. De hacerlo, el panel Lista de campos ya no se ordenará en secciones de acuerdo con las relaciones predefinidas. Se recomienda hacer clic en el botón Cancelar de este cuadro de diálogo y volver a examinar las relaciones entre las tablas. Para obtener información sobre relaciones, vea el artículo Crear, modificar o eliminar una relación.

Volver al principio Insertar una hoja de datos en un formulario existente mediante la vista Presentación Si ya se han definido las relaciones entre las tablas de la base de datos, se puede agregar rápidamente una hoja de datos a un formulario existente mediante la vista Presentación. Cuando se agrega un campo del lado "varios" de una relación a un formulario basado en el lado "uno" de la relación, Access crea automáticamente una hoja de datos para mostrar los registros relacionados. Abra el formulario existente en la vista Presentación haciendo clic con el botón secundario del mouse en el formulario en el panel de exploración y, a continuación, haciendo clic en Vista Presentación en el menú contextual. Si no ve el panel Lista de campos:

Page 21: RELACIONES DE ACESS

Presione ALT+F8. O bien,

En la ficha Formato, en el grupo Controles, haga clic en Agregar campos existentes. Observe que el panel Lista de campos divide las tablas en secciones: Campos disponibles para esta vista y, más abajo, Campos disponibles en tablas relacionadas. En la parte inferior del panel Lista de campos, las tablas que no están directamente relacionadas con la tabla principal se encuentran bajo Campos disponibles en otras tablas. En la sección Campos disponibles en tablas relacionadas, expanda la tabla que contiene el primer campo que desee incluir en la hoja de datos y arrastre el campo hasta el formulario. Access crea una hoja de datos y le agrega el campo. Para agregar campos adicionales a la nueva hoja de datos, primero debe hacer clic en la hoja para seleccionarla. Observe que Access reorganiza el panel Lista de campos para que los campos disponibles para la hoja de datos estén en la parte superior. Desde la sección Campos disponibles para esta vista, arrastre los otros campos que desee incluir en la hoja de datos. Cuando arrastra cada uno de los campos hasta la hoja de datos, Access dibuja una barra de inserción para mostrar dónde se va a insertar el campo cuando suelte el botón del mouse. Siga agregando campos al formulario principal o a la hoja de datos haciendo clic primero en el formulario principal o en la hoja de datos para seleccionarlo y arrastrando, luego, el campo desde el panel Lista de campos. La sección Campos disponibles en otras tablas del panel Lista de campos contiene tablas que no están directamente relacionadas con la tabla o consulta en la que se basa el formulario seleccionado. Si se han definido todas las relaciones válidas entre las tablas en la ventana Relaciones, es probable que los campos de la sección Campos disponibles en otras tablas no sean selecciones válidas para el formulario que se está creando. Si se arrastra un campo de esta sección hasta el formulario, Access muestra el cuadro de diálogo Especificar relación. Es preciso especificar los campos que relacionen las dos tablas antes de proceder. De hacerlo, el panel Lista de campos ya no se ordenará en secciones de acuerdo con las relaciones predefinidas. Se recomienda hacer clic en el botón Cancelar de este cuadro de diálogo y volver a examinar las relaciones entre las tablas. Para obtener información sobre relaciones, vea el artículo Crear, modificar o eliminar una relación.

Volver al principio Insertar una hoja de datos en un formulario existente mediante la vista Diseño Use este procedimiento para agregar una hoja de datos directamente basada en una tabla o consulta a un formulario existente en la vista Diseño. Abra el formulario en la vista Diseño haciendo clic con el botón secundario del mouse en el formulario en el panel de exploración y, a continuación, haciendo clic en Vista Diseño. En la ficha Diseño, en el grupo Controles, si está seleccionada la herramienta Utilizar Asistentes para controles, haga clic en ella de modo que no esté seleccionada.

¿Por qué?

En la ficha Diseño, en el grupo Controles, haga clic en la herramienta Subformulario/Subinforme. En la cuadrícula de diseño del formulario, haga clic en el lugar donde desee insertar la hoja de datos. Para cambiar la posición y el tamaño del control de subformulario, arrastre los controladores situados en los bordes y esquinas del control. Para editar la etiqueta asociada del control de subformulario, haga clic en ella y, a continuación, haga doble clic en ella para seleccionar su texto y luego escriba una nueva etiqueta. Si prefiere eliminar la etiqueta, haga clic en ella y, a continuación, presione SUPRIMIR. Si no se muestra la hoja de propiedades, presione F4. Si no está seleccionado el control de subformulario, haga clic en él para seleccionarlo. En la ficha Datos de la hoja de propiedades, haga clic en la lista desplegable Objeto origen y, a continuación, haga clic en la tabla o consulta que desee mostrar en la hoja de datos. Por ejemplo, si desea mostrar los datos de la tabla denominada Pedidos, haga clic en Tabla.Pedidos. Si ha definido correctamente las relaciones antes de iniciar este procedimiento, Access configurará automáticamente las propiedades Vincular campos secundarios y Vincular campos principales con los valores correctos que vinculen el formulario principal a la hoja de datos.

Las propiedades Vincular campos secundarios y Vincular campos principales están en blanco Abra el formulario principal en la vista Diseño. Haga clic en el control de subformulario para seleccionarlo. Si no ve la hoja de propiedades, presione F4. En la ficha Datos de la hoja de propiedades, haga clic en (...) junto al cuadro de la propiedad Vincular campos secundarios. Aparece el cuadro de diálogo Vinculador de campos de subformulario. En las listas desplegables Campos principales y Campos secundarios, seleccione los campos a los que desee vincular los formularios. Si no está seguro de los campos, haga clic en Sugerir para que Access determine los campos de vinculación. Cuando termine, haga clic en Aceptar. Si no ve el campo que desee usar para vincular los formularios, puede que tenga que editar el origen de registros del formulario principal o secundario para asegurarse de que contiene el campo. Por ejemplo, si el formulario está basado en una consulta, asegúrese de que el campo de vinculación está en los resultados de la consulta.

Page 22: RELACIONES DE ACESS

Guarde el formulario principal y cambie a la vista Formulario para comprobar que el formulario funciona según previsto.

Guarde el formulario haciendo clic en Guardar en la Barra de herramientas de acceso rápido o presionando CTRL+G. Cambie a la vista Formulario (vista Formulario: ventana que muestra un formulario para mostrar o aceptar datos. La vista Formulario es el medio principal para agregar y modificar datos a tablas. También se puede cambiar el diseño de un formulario en esta vista.) y compruebe que la hoja de datos funciona según previsto.

Volver al principio Obtener información sobre las diferencias entre un formulario dividido y un formulario que contiene una hoja de datos Un formulario que contiene una hoja de datos muestra datos de orígenes de datos diferentes (si bien suelen estar relacionados). Por ejemplo, un formulario puede mostrar empleados y puede tener una hoja de datos que muestra todas las tareas asignadas a cada empleado. La hoja de datos tiene otro origen de datos que el formulario que lo contiene. En cambio, un formulario dividido tiene dos secciones (un formulario y una hoja de datos), pero en ambas secciones se muestran los mismos datos. Las dos secciones están conectadas y ofrecen a la vez dos vistas distintas de los datos. Para obtener más información sobre cómo crear y trabajar con un formulario dividido, vea el artículo Crear un formulario dividido.

Volver al principio Vea también Agregar un campo a un formulario o informe Crear un formulario Crear un formulario dividido Crear un formulario que contiene un subformulario (formulario de uno a varios) Crear, modificar o eliminar una relación Guía de relaciones de tablas Access>Consultas Usar consultas para eliminar uno o varios registros de una base de datos

Mostrar todo En este artículo se explica cómo eliminar datos de una base de datos de Microsoft Office Access 2007 mediante consultas de actualización y de eliminación. Las consultas de actualización se usan para eliminar campos individuales de los registros de una base de datos, mientras que las consultas de eliminación se usan para quitar registros completos de una base de datos, inclusive el valor de clave que le otorga al registro un carácter único. Cuando proceda, recuerde que Access también permite eliminar manualmente parte de registros o registros completos de varias maneras. Para obtener más información sobre cómo eliminar manualmente registros, vea el artículo Eliminar uno o varios registros de una base de datos. En este artículo

Obtener información sobre cómo usar las consultas para eliminar datos Planear la eliminación Evitar que el modo deshabilitado bloquee una consulta Eliminar parte de registros (uno o varios campos) Eliminar registros completos Criterios de ejemplo para consultas de selección

Obtener información sobre cómo usar las consultas para eliminar datos Se pueden usar dos tipos de consultas para eliminar datos de una base de datos de Access. La consulta elegida depende del tipo de eliminación que se desee realizar. Para eliminar campos individuales de los registros de una o varias tablas, se usa una consulta de actualización que cambie los valores existentes a un valor nulo (es decir, no hay datos) o una cadena de longitud cero (un par de comillas dobles sin espacio entre ellas).

Page 23: RELACIONES DE ACESS

Se usa una consulta de actualización para eliminar datos de campos individuales porque, de forma predeterminada, las consultas de eliminación quitan filas completas. La eliminación de datos mediante una consulta de actualización se compone de los siguientes pasos: se crea una consulta de selección asegurándose de que devuelve sólo los datos que desee eliminar. A continuación, se convierte esa consulta en una consulta de actualización, usando valores NULL o cadenas de longitud cero como valor de actualización. Por último, se ejecuta la consulta para actualizar los datos existentes. Para quitar registros completos (filas), se usa una consulta de eliminación. De forma predeterminada, las consultas de eliminación quitan todos los datos de cada campo, junto con el valor de clave que le otorga al registro un carácter único. Cuando se ejecuta la consulta, siempre se quita la fila completa de la tabla. El proceso se compone de los siguientes pasos: se crea una consulta de selección, asegurándose de que devuelve los datos que desea eliminar. A continuación, se convierte esa consulta en una consulta de eliminación y se ejecuta para quitar los datos. Cuando proceda, recuerde que si los registros que desea eliminar residen en el lado "uno" de una relación uno a varios, va a cambiar primero una propiedad de la relación antes de ejecutar la consulta. En la sección Preparativos para eliminar datos relacionados, más adelante en este artículo, se explica cómo llevar a cabo esa tarea. Es preciso realizar esos cambios adicionales porque, de forma predeterminada, Access impide eliminar datos del lado "uno" de una relación uno a varios. Para obtener más información acerca del diseño de bases de datos y las relaciones de tablas, vea los artículos Conceptos básicos del diseño de una base de datos y Crear, modificar o eliminar una relación. Asimismo, recuerde que después de actualizar o eliminar parte de un registro o un registro completo, no se pueden deshacer los cambios, por lo que se recomienda realizar siempre una copia de seguridad de los datos antes de ejecutar una consulta de eliminación. Vea Realizar una copia de seguridad de la base de datos, más adelante en este artículo, para obtener más información. En los procedimientos descritos en las siguientes secciones se explica cómo crear consultas de actualización que quiten datos de campos individuales, y cómo crear consultas de eliminación que quiten registros completos.

NOTA En general, las consultas de actualización y eliminación se usan para cambiar o quitar rápidamente

grandes cantidades de datos. Si desea quitar un número reducido de registros (es decir, cualquier cantidad que sea fácil de eliminar manualmente), abra la tabla en la vista Hoja de datos, seleccione los campos o las filas que desee eliminar y, a continuación, presione SUPRIMIR. Para obtener más información sobre otras formas de eliminar datos, vea el artículo Eliminar uno o varios registros de una base de datos.

Volver al principio Planear la eliminación La eliminación de registros mediante una consulta se compone de los siguientes pasos generales: Planee la eliminación. Asegúrese de que tiene los permisos necesarios para eliminar los datos, que todos los demás usuarios han cerrado todos los objetos que usen las tablas en cuestión y, a continuación, haga una copia de seguridad de la base de datos. Asegúrese de que la base de datos reside en una ubicación de confianza o que lleva una firma digital. Si no es el caso, puede optar por confiar en la base de datos únicamente para la sesión actual. Recuerde que, de forma predeterminada, Access bloquea todas las consultas de acción (consultas de eliminación, consultas de actualización y consultas de creación de tabla) a menos que se confíe primero en la base de datos. Para obtener información sobre cómo confiar en una base de datos, vea Evitar que el modo deshabilitado bloquee una consulta, más adelante en este artículo. Si desea eliminar datos de más de una tabla y esas tablas están relacionadas, habilite las opciones Integridad referencial y Eliminar en cascada los registros relacionados para cada relación. De este modo, la consulta podrá eliminar datos de las tablas en los lados "uno" y "varios" de la relación. Cree una consulta de selección y, a continuación, agregue los criterios necesarios hasta que la consulta devuelva el conjunto de registros correcto. Si desea eliminar campos individuales de una tabla, convierta la consulta de selección en una consulta de actualización, especifique NULL o una cadena de longitud cero ("") como criterios de actualización y, a continuación, ejecute la consulta. Si desea eliminar registros completos, convierta la consulta de selección en una consulta de eliminación y, a continuación, ejecute la consulta. Preparativos generales Realice las siguientes tareas antes de eliminar parte de un registro o un registro completo de una base de datos: Asegúrese de que la base de datos no es de sólo lectura. Para ello, en el Explorador de Windows, haga clic con el botón secundario del mouse (ratón) en el archivo de la base de datos (archivo .accdb o .mdb) y, a continuación, haga clic en Propiedades en el menú contextual. En el cuadro de diálogo Propiedades, asegúrese de que está desactivada la casilla de verificación Sólo lectura. Compruebe que dispone de los permisos necesarios para eliminar registros de la base de datos. Si no está seguro, póngase en contacto con el administrador del sistema o el diseñador de la base de datos. Compruebe si la eliminación no va a afectar negativamente a los demás usuarios de la base de datos. Pida a todos los usuarios de la base de datos que cierren todos los formularios, tablas, consultas e informes que usen los datos que desee eliminar. De este modo, ayuda a evitar infracciones de bloqueo.

SUGERENCIA Si hay un gran número de usuarios conectados a la base de datos, puede que tenga que cerrar

la base de datos y, a continuación, abrirla de nuevo en modo exclusivo. Para ello:

Page 24: RELACIONES DE ACESS

Haga clic en el botón Microsoft Office y, a continuación, haga clic en Abrir. Busque la base de datos, selecciónela, haga clic en la flecha situada junto al botón Abrir y, a continuación, haga clic en Abrir en modo exclusivo.

Cree una copia de seguridad de la base de datos antes de modificar o eliminar registros. Algunas operaciones de eliminación se pueden invertir, pero si crea una copia de seguridad, se asegura de poder invertir siempre los cambios. Realizar una copia de seguridad de la base de datos

Haga clic en el Botón Microsoft Office , seleccione Administrar y, a continuación, haga clic en Administrar esta base de datos. En el cuadro de diálogo Guardar como, especifique un nombre y una ubicación para la copia de seguridad y, a continuación, haga clic en Guardar. Access cierra el archivo original, crea una copia de seguridad y, a continuación, vuelve a abrir el archivo original. Para revertir a una copia de seguridad, cierre el archivo original y cambie su nombre de modo que se pueda usar el nombre de la versión original para la copia de seguridad. Asigne el nombre de la versión original a la copia de seguridad y, a continuación, abra la copia de seguridad con el nombre cambiado en Access. Preparativos para eliminar datos relacionados Si necesita eliminar datos de tablas relacionadas, recuerde esta regla: si los datos residen en el lado "varios" de una relación uno a varios, podrá eliminarlos sin tener que cambiar la relación. Sin embargo, si los datos residen en el lado "uno" de una relación uno a varios, es preciso modificar primero la relación. En caso contrario, Access bloqueará la eliminación. El proceso de eliminación de datos relacionados se compone de los siguientes pasos: Determine qué registros residen en el lado "uno" de la relación y cuáles residen en el lado "varios". Si necesita eliminar registros del lado "uno" de la relación y los registros relacionados del lado "varios", debe habilitar un conjunto de reglas denominado Integridad referencial y debe habilitar la eliminación en cascada. En esta sección se explica la Integridad referencial y se indica cómo llevar a cabo ambas tareas. Si necesita eliminar registros únicamente del lado "uno" de la relación, elimine primero esa relación y, a continuación, elimine los datos. O bien, Si necesita eliminar datos únicamente del lado "varios" de la relación, puede crear y ejecutar una consulta de eliminación sin tener que cambiar la relación. En las siguientes secciones se explica cómo preparar los datos relacionados para la eliminación. Determinar qué registros están en el lado "uno" de una relación y cuáles residen en el lado "varios" En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones. Aparece la ficha Relaciones en la que se muestran todas las tablas de la base de datos así como las relaciones entre cada tabla y todas las demás tablas. Cada relación aparece como una línea que conecta las tablas entre los campos. En la siguiente ilustración se muestra una relación típica. La mayoría de las relaciones de una base de datos, si no todas, tienen un lado "uno" y un lado "varios". En el diagrama de relaciones se indica el lado "uno" con el número 1 y el lado "varios" con el símbolo del infinito (∞).

En general, cuando se eliminan registros del lado "uno" de una relación, se eliminan asimismo todos los registros relacionados del lado "varios" de la relación. Sin embargo, cuando se eliminan registros del lado "varios" de una relación, normalmente no se eliminan registros del lado "uno". Además, de forma predeterminada, Access aplica asimismo un conjunto de reglas denominado Integridad referencial. Estas reglas garantizan que las claves externas de una base de datos contienen los valores correctos. Una clave externa es una columna cuyos valores coinciden con los valores de la columna de clave principal de otra tabla.

Obtener información sobre las reglas de integridad referencial

Page 25: RELACIONES DE ACESS

Regla 1: no se puede especificar un valor en el campo de clave externa de una tabla relacionada, a menos que ese valor ya exista en la clave principal de la tabla principal. No obstante, se puede especificar un valor nulo en el campo de clave externa. Regla 2: no se puede eliminar un registro completo de una tabla principal si existen registros coincidentes en una tabla relacionada. Recuerde que puede evitar esta regla si habilita una propiedad en la relación entre las tablas principal y secundaria. Para obtener más información, vea el siguiente procedimiento, Modificar la relación. Regla 3: no se puede cambiar un valor de clave principal en la tabla principal si ese registro tiene registros relacionados. No obstante, también puede evitar esta regla si habilita una propiedad en la relación entre las tablas principal y secundaria. Recuerde que, si bien Access habilita la integridad referencial de forma predeterminada en la mayoría de los casos, una base de datos deberá cumplir primero las siguientes condiciones: El campo coincidente de la tabla principal debe ser una clave principal o tener un índice único. Los campos relacionados de la tabla principal y la tabla relacionada deben tener el mismo tipo de datos.

NOTA Access incluye dos excepciones a esta regla. Un campo de tipo Autonumérico puede estar relacionado

con un campo de tipo Número si el valor de la propiedad TamañoDelCampo (FieldSize) de ese campo de tipo Número está establecido en Entero Largo. Asimismo, un campo de tipo Autonumérico cuya propiedad TamañoDelCampo está establecida en Id. de réplica puede estar relacionado con un campo de tipo Número cuya propiedad TamañoDelCampo está establecida en Id. de réplica. Ambas tablas deben pertenecer a la misma base de datos de Access.

NOTA Si las tablas están vinculadas, deben tener el formato de Access. Asimismo, hay que abrir la base de

datos que contiene las tablas vinculadas y, a continuación, habilitar la integridad referencial. No se pueden aplicar las reglas de integridad referencial para las tablas vinculadas de bases de datos con otros formatos, como libros de Microsoft Office Excel 2007. Para obtener información sobre cómo habilitar la integridad referencial, vea los pasos descritos en la siguiente sección. Tome nota de los nombres de los campos de tabla en cada lado de la relación. Abra cada tabla y revise los datos de cada campo para comprobar que los campos contienen efectivamente los datos que desea eliminar. Mantenga abierto el panel Relaciones y continúe con los pasos descritos en la siguiente sección. Modificar la relación Siga estos pasos únicamente para eliminar datos del lado "uno" y del lado "varios" de una relación. Si aún no lo ha hecho, abra el panel Relaciones. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones. Haga clic con el botón secundario del mouse en la relación (línea) que conecta las tablas implicadas en la operación de eliminación y, a continuación, haga clic en Modificar relación en el menú contextual. Aparece el cuadro de diálogo Modificar relaciones. Asegúrese de que está activada la casilla de verificación Exigir integridad referencial. Active la casilla de verificación Eliminar en cascada los registros relacionados.

NOTA Hasta que vuelva a deshabilitar esta propiedad, si elimina un registro del lado "uno" de la relación, se

eliminarán todos los registros relacionados del lado "varios" de la relación. Haga clic en Aceptar, cierre el panel Relaciones y, después, continúe con los siguientes pasos. Eliminar una relación Si aún no lo ha hecho, abra el panel Relaciones. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones. Tome note de los campos implicados en la relación para poder restaurar la relación después de eliminar los datos. Haga clic con el botón secundario del mouse en la relación (línea) que conecta las tablas implicadas en la operación de eliminación y, a continuación, haga clic en Eliminar en el menú contextual. O bien Seleccione la relación y presione SUPR.

NOTA Para restaurar la relación, siga los pasos anteriores para abrir el panel Relaciones y, a continuación,

arrastre el campo de clave principal desde la tabla del lado "uno" y colóquelo en el campo de clave externa de la tabla del lado "varios". Aparecerá el cuadro de diálogo Modificar relaciones. Si la relación antigua exigía integridad referencial, seleccione Exigir integridad referencial y, a continuación, haga clic en Crear. En caso contrario, sólo haga clic en Crear.

Volver al principio Evitar que el modo deshabilitado bloquee una consulta De forma predeterminada, si se abre una base de datos que no sea de confianza o no resida en una ubicación de confianza, Access bloquea la ejecución de todas las consultas de acción. Si intenta ejecutar una consulta de acción y parece que no sucede nada, compruebe si en la barra de estado de Access aparece el siguiente mensaje: El modo deshabilitado ha bloqueado la acción o el evento. Si ve este mensaje, siga el procedimiento que se describe a continuación: Habilitar el contenido bloqueado

Page 26: RELACIONES DE ACESS

En la barra de mensajes, haga clic en Opciones. Aparece el cuadro de diálogo Confiar en Office. Haga clic en Habilitar este contenido y, a continuación, haga clic en Aceptar. Vuelva a ejecutar la consulta. Si no ve la barra de mensajes Haga clic en la ficha Herramientas de base de datos y, en el grupoMostrar u ocultar, elija Barra de mensajes. Para obtener más información sobre el modo deshabilitado y la seguridad en Access, vea el artículo Proteger una base de datos de Access 2007. Eliminar parte de registros (uno o varios campos) En esta sección se explica cómo usar una consulta de actualización para eliminar registros parciales (campos individuales) de tablas del lado "varios" de una relación uno a varios. Estos pasos pueden seguirse asimismo para eliminar datos de tablas que no están relacionadas con otros datos. Recuerde que ejecutar una consulta de actualización para eliminar datos cambia los valores existentes a NULL o a una cadena de longitud cero (un par de comillas dobles sin espacio entre ellas), en función de los criterios que haya especificado. Para obtener más información sobre cómo usar las consultas de actualización, vea el artículo Crear una consulta de actualización. Crear una consulta de selección En la ficha Crear, en el grupo Otros, haga clic en Diseño de consulta. Se abre el diseñador de consultas, aparece la ficha Diseño y aparece el cuadro de diálogo Mostrar tabla. Seleccione la tabla que contiene los datos que desee eliminar, haga clic en Agregar y, a continuación, haga clic en Cerrar. La tabla aparece como una ventana en la sección superior de la cuadrícula de diseño de la consulta. En la ventana se muestran todos los campos de la tabla. En esta ilustración se muestra una tabla típica en el diseñador.

Agregue los campos cuyo valor desee establecer en NULL a la fila Campo del diseñador. Puede hacer doble clic en cada campo o arrastrar y colocar cada campo. Si lo desea, especifique criterios para uno o varios campos en la fila Criterios del diseñador. Los criterios se utilizan para que se devuelvan únicamente los registros que se desean eliminar. En caso contrario, la consulta de actualización establece en NULL todos los registros de cada uno de los campos de la consulta. Para obtener más información sobre el uso de criterios, vea Criterios de ejemplo para consultas de selección más adelante en este artículo. En la ficha Diseño, en el grupo Resultados, haga clic en Ejecutar. Compruebe que la consulta devuelva los registros cuyo valor desee establecer en NULL o en una cadena de longitud cero. Si es preciso, repita los pasos 3 a 5 y modifique los campos o criterios hasta que la consulta devuelva únicamente los datos que desee cambiar. Mantenga abierta la consulta y, después, continúe con los siguientes pasos. Convertir la consulta de selección en una consulta de actualización Haga clic en Vista Diseño para cambiar de la hoja de datos al diseñador de consultas. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Actualizar. Access convierte la consulta de selección en una consulta de actualización, oculta la fila Mostrar en la sección inferior de la cuadrícula de diseño y agrega la fila Actualizar a. En la fila Actualizar a de cada campo, especifique NULL o una cadena de longitud cero (un par de comillas dobles sin espacio entre ellas, "").

Haga clic en Ejecutar . Access le pedirá que confirme los cambios. Si está muy seguro de que desea cambiar los valores, haga clic en Sí para cambiar los datos.

Page 27: RELACIONES DE ACESS

Volver al principio Eliminar registros completos En esta sección se explica cómo usar una consulta de eliminación para eliminar registros completos de una tabla. Crear una consulta de selección En la ficha Crear, en el grupo Otros, haga clic en Diseño de consulta. Se abre el diseñador de consultas, aparece la ficha Diseño y aparece el cuadro de diálogo Mostrar tabla. Seleccione la tabla en el lado "uno" de la relación, haga clic en Agregar y, a continuación, haga clic en Cerrar. La tabla aparece como una ventana en la sección superior de la cuadrícula de diseño de la consulta. En la ventana se muestran todos los campos de la tabla. En esta ilustración se muestra una tabla típica en el diseñador.

Haga doble clic en el asterisco (*) para agregar todos los campos de la tabla a la cuadrícula de diseño. Si agrega todos los campos de tabla, la consulta de eliminación podrá quitar registros completos (filas) de la tabla. De manera opcional, agregue un campo de tabla que permita especificar criterios. Por ejemplo, supongamos que un cliente cierra su negocio y hay que quitar todos los pedidos pendientes de ese cliente. Para buscar únicamente esos registros, se agregan los campos Id. de cliente y Fecha de pedido a la cuadrícula de diseño. Después del paso anterior, especifique los criterios en la fila Criterios de la cuadrícula de diseño. Los criterios se utilizan para que se devuelvan únicamente los registros que se desean eliminar. En caso contrario, la consulta de eliminación quita todos los registros de la tabla. Para continuar con el ejemplo del paso anterior, especifique el identificador del cliente que cerró su negocio así como la fecha en la que los pedidos de ese cliente dejaron de ser válidos. Para obtener más información sobre el uso de criterios, vea Criterios de ejemplo para consultas de selección más adelante en este artículo. Después del paso anterior, desactive la casilla de verificación Mostrar de cada campo de criterio. En la ficha Diseño, en el grupo Resultados, haga clic en Ejecutar. Compruebe que la consulta devuelve los registros que desee eliminar. Mantenga abierta la consulta y, después, continúe con los siguientes pasos. Convertir la consulta de selección en una consulta de eliminación y eliminar los datos Haga clic en Vista Diseño para cambiar de la hoja de datos al diseñador de consultas. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Eliminar. Access convierte la consulta de selección en una consulta de eliminación, oculta la fila Mostrar en la sección inferior de la cuadrícula de diseño y agrega la fila Eliminar. Asegúrese de que en la fila Eliminar de la columna * (todos los campos) aparece De. La palabra Ubicación debe aparecer en todas las columnas usadas para criterios.

Asegúrese de que desea eliminar los datos y, a continuación, haga clic en Ejecutar . Access le pedirá que confirme la eliminación. Haga clic en Sí para eliminar los datos.

Volver al principio Volver al principio

Criterios de ejemplo para consultas de selección En la siguiente tabla se muestran algunos criterios de ejemplo que se pueden usar en las consultas de selección para asegurar que se eliminan únicamente los datos correctos. Puede adaptar estos ejemplos para que pueda usarlos con sus propios datos. En algunos de estos ejemplos se usan caracteres comodín.

Page 28: RELACIONES DE ACESS

Para obtener más información sobre el uso de los caracteres comodín, vea el artículo Información de referencia sobre los caracteres comodín en Access.

Criterios Efecto

> 234 Devuelve todos los números mayores que 234. Para buscar todos los números menores que 234, use < 234.

>="Díaz" Devuelve todos los registros desde Díaz hasta el final del alfabeto.

Entre #02.02.2007# Y #01.12.2007#

Devuelve las fechas comprendidas entre el 2 de febrero de 2007 y el 1 de diciembre de 2007 (ANSI-89). Si la base de datos usa los caracteres comodín ANSI-92, use comillas simples (') en vez de signos de almohadilla (#). Por ejemplo: Entre '02.02.2007' Y '01.12.2007'.

Sin "Alemania" Encuentra todos los registros en los que el contenido exacto del campo no sea exactamente igual a "Alemania". El criterio devolverá registros que contengan caracteres además de "Alemania," como "Alemania (euro)" o "Europa (Alemania)".

Sin "T*" Busca todos los registros, salvo los que empiezan por T. Si la base de datos usa los caracteres comodín ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

No "*t" Busca todos los registros que no terminen en t. Si la base de datos utiliza el juego de caracteres comodín ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

En(Canadá,Reino Unido)

En una lista, busca todos los registros que contengan Canadá o Reino Unido.

Como "[A-D]*" En un campo de texto, busca todos los registros que empiecen por las letras comprendidas entre la A y la D, ambas inclusive. Si la base de datos usa el juego de caracteres comodín ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

Como "*ar*" Busca todos los registros que incluyan la secuencia de letras "ar". Si la base de datos usa el juego de caracteres comodín ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

Como "Casa Dewe?" Busca todos los registros que empiecen por "Casa" y contengan una segunda cadena de 5 letras, cuyas cuatro primeras letras son "Dewe" y cuya última letra se desconoce. Si la base de datos usa el juego de caracteres comodín ANSI-92, use el carácter de subrayado (_) en vez del signo de interrogación (?).

#02.02.2007# Busca todos los registros del 2 de febrero de 2007. Si la base de datos utiliza el juego de caracteres comodín ANSI-92, incluya la fecha entre comillas simples en lugar de usar signos de almohadilla ('02.02.2007').

< Fecha() - 30 Usa la función Fecha para devolver todas las fechas con una antigüedad de más de 30 días.

Fecha() Usa la función Fecha para devolver todos los registros que contienen la fecha actual.

Entre Fecha() Y AgregFecha("M", 3, Fecha())

Usa las funciones Fecha y AgregFecha para devolver todos los registros entre la fecha actual y tres meses a partir de la fecha actual.

Es Nulo Devuelve todos los registros que contengan un valor nulo (en blanco o sin definir).

No es Nulo Devuelve todos los registros que contengan algún valor (que no sea nulo).

"" Devuelve todos los registros que contienen una cadena de longitud cero. Las cadenas de longitud cero se utilizan cuando es necesario agregar un valor a un campo obligatorio, pero aún no se conoce el valor. Por ejemplo, un campo puede requerir un número de fax, pero puede que algunos clientes no tengan fax. En ese caso, en vez de especificar un número, se incluye un par de comillas dobles sin espacios entre ellas ('''').

Access>Diseño de base de datos Conceptos básicos del diseño de una base de datos Una base de datos correctamente diseñada permite obtener acceso a información exacta y actualizada. Puesto que un diseño correcto es esencial para lograr los objetivos fijados para la base de datos, parece lógico emplear el tiempo que sea necesario en aprender los principios de un buen diseño ya que, en ese caso, es mucho más probable que la base de datos termine adaptándose a sus necesidades y pueda modificarse fácilmente.

Page 29: RELACIONES DE ACESS

En este artículo se proporcionan instrucciones para preparar una base de datos. Aprenderá a decidir qué información necesita, a dividir la información en las tablas y columnas adecuadas y a relacionar las tablas entre sí. Debe leer este artículo antes de crear la primera base de datos. En este artículo

Algunos términos sobre bases de datos que debe conocer ¿Qué es un buen diseño de base de datos? El proceso de diseño Determinar la finalidad de la base de datos Buscar y organizar la información necesaria Dividir la información en tablas Convertir los elementos de información en columnas Especificar claves principales Crear relaciones entre las tablas Ajustar el diseño Aplicar las reglas de normalización Para obtener más información

Algunos términos sobre bases de datos que debe conocer Microsoft Office Access 2007 organiza la información en tablas, que son listas y columnas similares a las de los libros contables o a las de las hojas de cálculo de Microsoft Office Excel 2007. Una base de datos simple puede que sólo contenga una tabla, pero la mayoría de las bases de datos necesitan varias tablas. Por ejemplo, podría tener una tabla con información sobre productos, otra con información sobre pedidos y una tercera con información sobre clientes.

Cada fila recibe también el nombre de registro y cada columna se denomina también campo. Un registro es una forma lógica y coherente de combinar información sobre alguna cosa. Un campo es un elemento único de información: un tipo de elemento que aparece en cada registro. En la tabla Products (Productos), por ejemplo, cada fila o registro contendría información sobre un producto, y cada columna contendría algún dato sobre ese producto, como su nombre o el precio.

Volver al principio ¿Qué es un buen diseño de base de datos? El proceso de diseño de una base de datos se guía por algunos principios. El primero de ellos es que se debe evitar la información duplicada o, lo que es lo mismo, los datos redundantes, porque malgastan el espacio y aumentan la probabilidad de que se produzcan errores e incoherencias. El segundo principio es que es importante que la información sea correcta y completa. Si la base de datos contiene información incorrecta, los informes que recogen información de la base de datos contendrán también información incorrecta y, por tanto, las decisiones que tome a partir de esos informes estarán mal fundamentadas. Un buen diseño de base de datos es, por tanto, aquél que: Divide la información en tablas basadas en temas para reducir los datos redundantes. Proporciona a Access la información necesaria para reunir la información de las tablas cuando así se precise. Ayuda a garantizar la exactitud e integridad de la información. Satisface las necesidades de procesamiento de los datos y de generación de informes.

Volver al principio El proceso de diseño

Page 30: RELACIONES DE ACESS

El proceso de diseño consta de los pasos siguientes: Determinar la finalidad de la base de datos Esto le ayudará a estar preparado para los demás pasos. Buscar y organizar la información necesaria Reúna todos los tipos de información que desee registrar en la base de datos, como los nombres de productos o los números de pedidos. Dividir la información en tablas Divida los elementos de información en entidades o temas principales, como Productos o Pedidos. Cada tema pasará a ser una tabla. Convertir los elementos de información en columnas Decida qué información desea almacenar en cada tabla. Cada elemento se convertirá en un campo y se mostrará como una columna en la tabla. Por ejemplo, una tabla Empleados podría incluir campos como Apellido y Fecha de contratación. Especificar claves principales Elija la clave principal de cada tabla. La clave principal es una columna que se utiliza para identificar inequívocamente cada fila, como Id. de producto o Id. de pedido. Definir relaciones entre las tablas Examine cada tabla y decida cómo se relacionan los datos de una tabla con las demás tablas. Agregue campos a las tablas o cree nuevas tablas para clarificar las relaciones según sea necesario. Ajustar el diseño Analice el diseño para detectar errores. Cree las tablas y agregue algunos registros con datos de ejemplo. Compruebe si puede obtener los resultados previstos de las tablas. Realice los ajustes necesarios en el diseño. Aplicar las reglas de normalización Aplique reglas de normalización de los datos para comprobar si las tablas están estructuradas correctamente. Realice los ajustes necesarios en las tablas.

Volver al principio Determinar la finalidad de la base de datos Es conveniente plasmar en papel el propósito de la base de datos: cómo piensa utilizarla y quién va a utilizarla. Para una pequeña base de datos de un negocio particular, por ejemplo, podría escribir algo tan simple como "La base de datos de clientes contiene una lista de información de los clientes para el envío masivo de correo y la generación de informes". Si la base de datos es más compleja o la utilizan muchas personas, como ocurre normalmente en un entorno corporativo, la finalidad podría definirse fácilmente en uno o varios párrafos y debería incluir cuándo y cómo va a utilizar cada persona la base de datos. La idea es desarrollar una declaración de intenciones bien definida que sirva de referencia durante todo el proceso de diseño. Esta declaración de intenciones le permitirá centrarse en los objetivos a la hora de tomar decisiones.

Volver al principio Buscar y organizar la información necesaria Para buscar y organizar la información necesaria, empiece con la información existente. Por ejemplo, si registra los pedidos de compra en un libro contable o guarda la información de los clientes en formularios en papel en un archivador, puede reunir esos documentos y enumerar cada tipo de información que contienen (por ejemplo, cada casilla de un formulario). Si no dispone de formularios, imagine que tiene que diseñar uno para registrar la información de los clientes. ¿Qué información incluiría en el formulario? ¿Qué casillas crearía? Identifique cada uno de estos elementos y cree un listado. Suponga, por ejemplo, que guarda la lista de clientes en fichas. Cada ficha podría contener un nombre de cliente, su dirección, ciudad, provincia, código postal y número de teléfono. Cada uno de estos elementos representa una columna posible de una tabla. Cuando prepare esta lista, no se preocupe si no es perfecta al principio. Simplemente, enumere cada elemento que se le ocurra. Si alguien más va a utilizar la base de datos, pídale también su opinión. Más tarde podrá ajustar la lista. A continuación, considere los tipos de informes o la correspondencia que desea producir con la base de datos. Por ejemplo, tal vez desee crear un informe de ventas de productos que contenga las ventas por región, o un informe de resumen de inventario con los niveles de inventario de los productos. Es posible que también desee generar cartas modelo para enviárselas a los clientes con un anuncio de una actividad de ventas o una oferta. Diseñe el informe en su imaginación y piense cómo le gustaría que fuera. ¿Qué información incluiría en el informe? Cree un listado de cada elemento. Haga lo mismo para la carta modelo y para cualquier otro informe que tenga pensado crear.

Page 31: RELACIONES DE ACESS

Detenerse a pensar en los informes y en la correspondencia que desea crear le ayudará a identificar los elementos que necesita incluir en la base de datos. Suponga, por ejemplo, que ofrece a sus clientes la oportunidad de inscribirse o borrarse de las actualizaciones periódicas de correo electrónico y desea imprimir un listado de los que han decidido inscribirse. Para registrar esa información, agrega una columna "Enviar correo electrónico" a la tabla de clientes. Para cada cliente, puede definir el campo en Sí o No. La necesidad de enviar mensajes de correo electrónico a los clientes implica la inclusión de otro elemento. Cuando sepa que un cliente desea recibir mensajes de correo electrónico, tendrá que conocer también la dirección de correo electrónico a la que éstos deben enviarse. Por tanto, tendrá que registrar una dirección de correo electrónico para cada cliente. Parece lógico crear un prototipo de cada informe o listado de salida y considerar qué elementos necesita para crear el informe. Por ejemplo, cuando examine una carta modelo, puede que se le ocurran algunas ideas. Si desea incluir un saludo (por ejemplo, las abreviaturas "Sr." o "Sra." con las que comienza un saludo), tendrá que crear un elemento de saludo. Además, tal vez desee comenzar las cartas con el saludo "Estimado Sr. García", en lugar de "Estimado Sr. Miguel Ángel García". Esto implicaría almacenar el apellido independientemente del nombre. Un punto clave que hay que recordar es que debe descomponer cada pieza de información en sus partes lógicas más pequeñas. En el caso de un nombre, para poder utilizar el apellido, dividirá el nombre en dos partes: el nombre y el apellido. Para ordenar un informe por nombre, por ejemplo, sería útil que el apellido de los clientes estuviera almacenado de forma independiente. En general, si desea ordenar, buscar, calcular o generar informes a partir de un elemento de información, debe incluir ese elemento en su propio campo. Piense en las preguntas que le gustaría que la base de datos contestara. Por ejemplo, ¿cuántas ventas de un determinado producto se cerraron el pasado mes? ¿Dónde viven sus mejores clientes? ¿Quién es el proveedor del producto mejor vendido? Prever esas preguntas le ayudará a determinar los elementos adicionales que necesita registrar. Una vez reunida esta información, ya puede continuar con el paso siguiente.

Volver al principio Dividir la información en tablas Para dividir la información en tablas, elija las entidades o los temas principales. Por ejemplo, después de buscar y organizar la información de una base de datos de ventas de productos, la lista preliminar podría ser similar a la siguiente:

Las entidades principales mostradas aquí son los productos, los proveedores, los clientes y los pedidos. Por tanto, parece lógico empezar con estas cuatro tablas: una para los datos sobre los productos, otra para los datos

Page 32: RELACIONES DE ACESS

sobre los proveedores, otra para los datos sobre los clientes y otra para los datos sobre los pedidos. Aunque esto no complete la lista, es un buen punto de partida. Puede seguir ajustando la lista hasta obtener un diseño correcto. Cuando examine por primera vez la lista preliminar de elementos, podría estar tentado a incluirlos todos ellos en una sola tabla en lugar de en las cuatro tablas mostradas en la ilustración anterior. A continuación le explicaremos por qué eso no es una buena idea. Considere por un momento la tabla que se muestra a continuación:

En este caso, cada fila contiene información sobre el producto y su proveedor. Como hay muchos productos del mismo proveedor, la información del nombre y la dirección del proveedor debe repetirse muchas veces, con lo que se malgasta el espacio en disco. Registrar la información del proveedor una sola vez en una tabla Proveedores distinta y luego vincular esa tabla a la tabla Productos es una solución mucho mejor. Otro problema de este diseño surge cuando es necesario modificar la información del proveedor. Suponga, por ejemplo, que necesita cambiar la dirección de un proveedor. Como ésta aparece en muchos lugares, podría sin querer cambiar la dirección en un lugar y olvidarse de cambiarla en los demás lugares. Ese problema se resuelve registrando la información del proveedor en un único lugar. Cuando diseñe la base de datos, intente registrar siempre cada dato una sola vez. Si descubre que está repitiendo la misma información en varios lugares, como la dirección de un determinado proveedor, coloque esa información en una tabla distinta. Por último, suponga que el proveedor Bodega Sol sólo suministra un producto y desea eliminar ese producto pero conservar el nombre del proveedor y la información de dirección. ¿Cómo eliminaría el producto sin perder la información del proveedor? No puede. Como cada registro contiene datos sobre un producto, además de datos sobre un proveedor, no puede eliminar unos sin eliminar los otros. Para mantener estos datos separados, debe dividir la tabla en dos: una tabla para la información sobre los productos y otra tabla para la información sobre los proveedores. Al eliminar un registro de producto sólo se eliminarían los datos del producto y no los datos del proveedor. Una vez seleccionado el tema representado por una tabla, las columnas de esa tabla deben almacenar datos únicamente sobre ese tema. Por ejemplo, la tabla de productos sólo debe contener datos de productos. Como la dirección del proveedor es un dato del proveedor, pertenece a la tabla de proveedores.

Volver al principio Convertir los elementos de información en columnas Para determinar las columnas de una tabla, decida qué información necesita registrar sobre el tema representado por la tabla. Por ejemplo, para la tabla Clientes, una buena lista de columnas iniciales sería Nombre, Dirección, Ciudad-Provincia-Código postal, Enviar correo electrónico, Saludo y Correo electrónico. Cada registro de la tabla contiene el mismo número de columnas, por lo que puede almacenar información sobre el nombre, dirección, ciudad-provincia-código postal, envío de correo electrónico, saludo y dirección de correo electrónico para cada registro. Por ejemplo, la columna de dirección podría contener las direcciones de los clientes. Cada registro contendrá datos sobre un cliente y el campo de dirección, la dirección de ese cliente. Cuando haya determinado el conjunto inicial de columnas para cada tabla, puede ajustar con mayor precisión las columnas. Por ejemplo, tiene sentido almacenar los nombres de los clientes en dos columnas distintas (el nombre y el apellido) para poder ordenar, buscar e indizar por esas columnas. De igual forma, la dirección consta en realidad de cinco componentes distintos: dirección, ciudad, provincia, código postal y país o región, y parece lógico también almacenarlos en columnas distintas. Si desea realizar, por ejemplo, una búsqueda o una operación de ordenación o filtrado por provincia, necesita que la información de provincia esté almacenada en una columna distinta. Debe considerar también si la base de datos va a contener información sólo de procedencia nacional o internacional. Por ejemplo, si piensa almacenar direcciones internacionales, es preferible tener una columna Región en lugar de Provincia, ya que esa columna puede incluir provincias del propio país y regiones de otros países o regiones. De igual forma, es más lógico incluir una columna Región en lugar de Comunidad Autónoma si va a almacenar direcciones internacionales. En la lista siguiente se incluyen algunas sugerencias para determinar las columnas de la base de datos. No incluya datos calculados En la mayoría de los casos, no debe almacenar el resultado de los cálculos en las tablas. En lugar de ello, puede dejar que Access realice los cálculos cuando desee ver el resultado. Suponga, por ejemplo, que tiene un informe Productos bajo pedido que contiene el subtotal de unidades de un pedido para cada categoría de producto de la base de datos. Sin embargo, no hay ninguna tabla que contenga una columna de subtotal Unidades en pedido. La tabla Productos contiene una columna Unidades en pedido que almacena las unidades incluidas en un pedido de cada producto. Con esos datos, Access calcula el subtotal cada vez que se imprime el informe, pero el subtotal propiamente dicho no debe almacenarse en una tabla.

Page 33: RELACIONES DE ACESS

Almacene la información en sus partes lógicas más pequeñas Puede ceder a la tentación de habilitar un único campo para los nombres completos o para los nombres de productos junto con sus descripciones. Si combina varios tipos de información en un campo, será difícil recuperar datos individuales más adelante. Intente dividir la información en partes lógicas. Por ejemplo, cree campos distintos para el nombre y el apellido, o para el nombre del producto, la categoría y la descripción.

Una vez ajustadas las columnas de datos de cada tabla, ya puede seleccionar la clave principal de cada tabla.

Volver al principio Especificar claves principales Cada tabla debe incluir una columna o conjunto de columnas que identifiquen inequívocamente cada fila almacenada en la tabla. Ésta suele ser un número de identificación exclusivo, como un número de identificador de empleado o un número de serie. En la terminología de bases de datos, esta información recibe el nombre de clave principal de la tabla. Access utiliza los campos de clave principal para asociar rápidamente datos de varias tablas y reunir automáticamente esos datos. Si ya tiene un identificador exclusivo para una tabla, como un número de producto que identifica inequívocamente cada producto del catálogo, puede utilizar ese identificador como clave principal de la tabla, pero sólo si los valores de esa columna son siempre diferentes para cada registro. No puede tener valores duplicados en una clave principal. Por ejemplo, no utilice los nombres de las personas como clave principal, ya que los nombres no son exclusivos. Es muy fácil que dos personas tengan el mismo nombre en la misma tabla. Una clave principal siempre debe tener un valor. Si el valor de una columna puede quedar sin asignar o vacío (porque no se conoce) en algún momento, no puede utilizarlo como componente de una clave principal. Debe elegir siempre una clave principal cuyo valor no cambie. En una base de datos con varias tablas, la clave principal de una tabla se puede utilizar como referencia en las demás tablas. Si la clave principal cambia, el cambio debe aplicarse también a todos los lugares donde se haga referencia a la clave. Usar una clave principal que no cambie reduce la posibilidad de que se pierda su sincronización con las otras tablas en las que se hace referencia a ella. A menudo, se utiliza como clave principal un número único arbitrario. Por ejemplo, puede asignar a cada pedido un número de pedido distinto. La única finalidad de este número de pedido es identificar el pedido. Una vez asignado, nunca cambia. Si piensa que no hay ninguna columna o conjunto de columnas que pueda constituir una buena clave principal, considere la posibilidad de utilizar una columna que tenga el tipo de datos Autonumérico. Cuando se utiliza el tipo de datos Autonumérico, Access asigna automáticamente un valor. Este tipo de identificador no es "fáctico", es decir, no contiene información objetiva sobre la fila que representa. Los identificadores de este tipo son perfectos para usarlos como claves principales, ya que no cambian. Una clave principal que contiene datos sobre una fila, como un número de teléfono o el nombre de un cliente, es más probable que cambie, ya que la propia información "fáctica" podría cambiar.

Una columna establecida en el tipo de datos Autonumérico suele constituir una buena clave principal. No hay

dos identificadores de producto iguales.

Page 34: RELACIONES DE ACESS

En algunos casos, tal vez considere conveniente utilizar dos o más campos juntos como clave principal de una tabla. Por ejemplo, una tabla Detalles de pedidos que contenga artículos de línea de pedidos tendría dos columnas en su clave principal: Id. de pedido e Id. de producto. Cuando una clave principal está formada por más de una columna se denomina clave compuesta. Para la base de datos de ventas de productos, puede crear una columna autonumérica para cada una de las tablas que funcione como clave principal: IdProducto para la tabla Productos, IdPedido para la tabla Pedidos, IdCliente para la tabla Clientes e IdProveedores para la tabla Proveedores.

Volver al principio Crear relaciones entre las tablas Ahora que ha dividido la información en tablas necesita un modo de reunir de nuevo la información de forma provechosa. Por ejemplo, el siguiente formulario incluye información de varias tablas.

La información de este formulario procede de la tabla Clientes...

...la tabla Empleados...

...la tabla Pedidos...

...la tabla Productos...

...y la tabla Detalles de pedidos.

Page 35: RELACIONES DE ACESS

Access es un sistema de administración de bases de datos relacionales. En una base de datos relacional, la información se divide en tablas distintas en función del tema. A continuación, se utilizan relaciones entre las tablas para reunir la información según se precise.

Volver al principio Crear una relación de uno a varios Considere este ejemplo: las tablas Proveedores y Productos de la base de datos de pedidos de productos. Un proveedor puede suministrar cualquier número de productos y, por consiguiente, para cada proveedor representado en la tabla Proveedores, puede haber muchos productos representados en la tabla Productos. La relación entre la tabla Proveedores y la tabla Productos es, por tanto, una relación de uno a varios.

Para representar una relación de uno a varios en el diseño de la base de datos, tome la clave principal del lado "uno" de la relación y agréguela como columna o columnas adicionales a la tabla en el lado "varios" de la relación. En este caso, por ejemplo, agregaría la columna Id. de proveedor de la tabla Proveedores a la tabla Productos. Access utilizaría entonces el número de identificador de proveedor de la tabla Productos para localizar el proveedor correcto de cada producto. La columna Id. de proveedor de la tabla Productos se denomina clave externa. Una clave externa es la clave principal de otra tabla. La columna Id. de proveedor de la tabla Productos en una clave externa porque también es la clave principal en la tabla Proveedores.

El punto de partida para la unión de tablas relacionadas se proporciona estableciendo parejas de claves principales y claves externas. Si no está seguro de las tablas que deben compartir una columna común, al identificar una relación de uno a varios se asegurará de que las dos tablas implicadas requerirán una columna compartida.

Volver al principio Crear una relación de varios a varios Considere la relación entre la tabla Productos y la tabla Pedidos. Un solo pedido puede incluir varios productos. Por otro lado, un único producto puede aparecer en muchos pedidos. Por tanto, para cada registro de la tabla Pedidos puede haber varios registros en la tabla Productos. Y para cada registro de la tabla Productos puede haber varios registros en la tabla Pedidos. Este tipo de relación

Page 36: RELACIONES DE ACESS

se denomina relación de varios a varios porque para un producto puede haber varios pedidos, y para un pedido puede haber varios productos. Tenga en cuenta que para detectar las relaciones de varios a varios entre las tablas, es importante que considere ambas partes de la relación. Los temas de las dos tablas (pedidos y productos) tienen una relación de varios a varios. Esto presenta un problema. Para comprender el problema, imagine qué sucedería si intenta crear la relación entre las dos tablas agregando el campo Id. de producto a la tabla Pedidos. Para que haya más de un producto por pedido, necesita más de un registro en la tabla Pedidos para cada pedido y, en ese caso, tendría que repetir la información de pedido para cada fila relacionada con un único pedido, lo que daría lugar a un diseño ineficaz que podría producir datos inexactos. El mismo problema aparece si coloca el campo Id. de pedido en la tabla Productos: tendría varios registros en la tabla Productos para cada producto. ¿Cómo se soluciona este problema? La solución a este problema consiste en crear una tercera tabla que descomponga la relación de varios a varios en dos relaciones de uno a varios. Insertaría la clave principal de cada una de las dos tablas en la tercera tabla y, por consiguiente, la tercera tabla registraría todas las apariciones o instancias de la relación.

Cada registro de la tabla Detalles de pedidos representa un artículo de línea de un pedido. La clave principal de la tabla Detalles de pedidos consta de dos campos: las claves externas de las tablas Pedidos y Productos. El campo Id. de pedido no se puede utilizar en solitario como clave principal, ya que un pedido puede tener varios artículos de línea. El identificador de pedido se repite para cada artículo de línea del pedido, por lo que el campo no contiene valores únicos. Tampoco serviría utilizar solamente el campo Id. de producto, porque un producto puede aparecer en varios pedidos. Pero los dos campos juntos producen un valor exclusivo para cada registro. En la base de datos de ventas de productos, la tabla Pedidos y la tabla Productos no se relacionan directamente entre sí, sino indirectamente a través de la tabla Detalles de pedidos. La relación de varios a varios entre los pedidos y los productos se representa en la base de datos mediante dos relaciones de uno a varios: La tabla Pedidos y la tabla Detalles de pedidos tienen una relación de uno a varios. Cada pedido tiene varios artículos de línea, pero cada artículo está asociado a un único pedido. La tabla Productos y la tabla Detalles de pedidos tienen una relación de uno a varios. Cada producto puede tener varios artículos asociados, pero cada artículo de línea hace referencia únicamente a un producto. Desde la tabla Detalles de pedidos puede determinar todos los productos de un determinado pedido, así como todos los pedidos de un determinado producto. Después de incorporar la tabla Detalles de pedidos, la lista de tablas y campos sería similar a la siguiente:

Page 37: RELACIONES DE ACESS

Volver al principio Crear una relación de uno a uno Otro tipo de relación es la relación de uno a uno. Suponga, por ejemplo, que necesita registrar información complementaria sobre productos que apenas va a necesitar o que sólo se aplica a unos pocos productos. Como no necesita la información con frecuencia, y como almacenar la información en la tabla Productos crearía un espacio vacío para todos los productos que no necesitan esa información, la coloca en una tabla distinta. Al igual que en la tabla Productos, utiliza el identificador de producto como clave principal. La relación entre esta tabla complementaria y la tabla Productos es una relación de uno a uno. Para cada registro de la tabla Productos hay un único registro coincidente en la tabla complementaria. Cuando identifique esta relación, ambas tablas deben compartir un campo común. Cuando necesite crear una relación de uno a uno en la base de datos, considere si puede incluir la información de las dos tablas en una tabla. Si no desea hacer eso por algún motivo (quizás porque se crearía una gran cantidad de espacio vacío), puede representar esa relación en su diseño guiándose por las pautas siguientes: Si las dos tablas tienen el mismo tema, probablemente podrá definir la relación utilizando la misma clave principal en ambas tablas. Si las dos tablas tienen temas diferentes con claves principales distintas, elija una de las tablas (cualquiera de ellas) e inserte su clave principal en la otra tabla como clave externa. Determinar las relaciones entre las tablas le ayudará a asegurarse de que tiene las tablas y columnas correctas. Cuando existe una relación de uno a uno o de uno a varios, las tablas implicadas deben compartir una o varias columnas comunes. Cuando la relación es de varios a varios, se necesita una tercera tabla para representar la relación.

Volver al principio Ajustar el diseño Cuando tenga las tablas, los campos y las relaciones necesarias, debe crear y rellenar las tablas con datos de ejemplo y probar que funcionan con la información: creando consultas, agregando nuevos registros, etc. Esto le permitirá encontrar posibles problemas, como la necesidad de agregar una columna que olvidó insertar durante la fase de diseño, o dividir una tabla en dos tablas para eliminar datos duplicados. Compruebe si puede usar la base de datos para obtener las respuestas que desea. Cree formularios e informes provisionales y compruebe si muestran los datos según lo previsto. Compruebe si existen datos duplicados innecesarios y, si encuentra alguno, modifique el diseño para eliminar la duplicación. Cuando pruebe la base de datos inicial, probablemente se dará cuenta de que se puede mejorar. Éstas son algunas comprobaciones que puede hacer: ¿Olvidó incluir alguna columna? Y, en ese caso, ¿pertenece la información a alguna de las tablas existentes? Si se trata de información sobre otro tema, tal vez necesite crear otra tabla. Cree una columna para cada elemento de información que desee registrar. Si la información no se puede calcular a partir de otras columnas, es probable que necesite una nueva columna para esa información. ¿Hay alguna columna innecesaria porque se puede calcular con los campos existentes? Si un elemento de información se puede calcular a partir de otras columnas existentes (como un descuento calculado a partir del precio de venta al público), normalmente es preferible que se calcule en lugar de crear una nueva columna.

Page 38: RELACIONES DE ACESS

¿Ha proporcionada información duplicada en alguna de las tablas? Si es así, probablemente tendrá que dividir la tabla en dos tablas que tengan una relación de uno a varios. ¿Tiene tablas con muchos campos, un número limitado de registros y muchos campos vacíos en cada registro? En ese caso, considere la posibilidad de volver a diseñar la tabla de forma que tenga menos campos y más registros. ¿Ha dividido cada elemento de información en sus partes lógicas más pequeñas? Si necesita generar informes, ordenar, buscar o calcular a partir de un elemento de información, incluya ese elemento en su propia columna. ¿Contiene cada columna datos sobre el tema de la tabla? Si una columna no contiene información sobre el tema de la tabla, pertenece a una tabla distinta. ¿Están representadas todas las relaciones entres las tablas mediante campos comunes o mediante una tercera tabla? Las relaciones de uno a uno y de uno a varios requieren columnas comunes. Las relaciones de varios a varios requieren una tercera tabla. Ajustar la tabla Productos Suponga que cada producto de la base de datos de ventas de productos pertenece a una categoría general, como bebidas, condimentos o marisco. La tabla Productos podría incluir un campo que mostrara la categoría de cada producto. Suponga que después de examinar y ajustar el diseño de la base de datos, decide almacenar una descripción de la categoría junto con su nombre. Si agrega un campo Descripción de categoría a la tabla Productos, tendría que repetir la descripción de cada categoría para cada producto perteneciente a dicha categoría, lo cual no es una buena solución. Una solución mejor es convertir las categorías en un nuevo tema de la base de datos, con su propia tabla y su propia clave principal. A continuación, puede agregar la clave principal de la tabla Categorías a la tabla Productos como clave externa. Las tablas Categorías y Productos tienen una relación de uno a varios: una categoría puede incluir varios productos, pero un producto pertenece únicamente a una categoría. Cuando examine las estructuras de las tablas, compruebe si existen grupos extensibles. Por ejemplo, considere una tabla con las siguientes columnas: Id. de producto Nombre Id1 de producto Nombre1 Id2 de producto Nombre2 Id3 de producto Nombre3 Aquí, cada producto es un grupo extensible de columnas que se diferencia de los demás solamente por el número agregado al final del nombre de columna. Si tiene columnas numeradas de esta forma, debe revisar el diseño. Un diseño como éste tiene varios defectos. Para empezar, obliga a crear un límite máximo de número de productos. En cuanto supere ese límite, deberá agregar un nuevo grupo de columnas a la estructura de la tabla, lo que supone una tarea administrativa importante. Otro problema es que se malgastará el espacio en aquellos proveedores que tengan menos que el número máximo de productos, ya que las columnas adicionales quedarán en blanco. El defecto más grave de este diseño es que muchas tareas son difíciles de realizar, como ordenar o indizar la tabla por identificador de producto o nombre. Siempre que aparezcan grupos extensibles, revise atentamente el diseño con vistas a dividir la tabla en dos. En el ejemplo anterior, sería conveniente usar dos tablas, una para proveedores y otra para productos, vinculadas por el identificador de proveedor.

Volver al principio Aplicar las reglas de normalización En el siguiente paso del diseño, puede aplicar las reglas de normalización de datos (denominadas a veces simplemente reglas de normalización). Estas reglas sirven para comprobar si las tablas están estructuradas correctamente. El proceso de aplicar las reglas al diseño de la base de datos se denomina normalizar la base de datos o, simplemente, normalización. La normalización es más útil una vez representados todos los elementos de información y después de haber definido un diseño preliminar. La idea es asegurarse de que se han dividido los elementos de información en las tablas adecuadas. Lo que la normalización no puede hacer es garantizar que se dispone de los elementos de datos correctos para empezar a trabajar. Las reglas se aplican consecutivamente en cada paso para garantizar que el diseño adopta lo que se conoce como "forma normal". Hay cinco formas normales ampliamente aceptadas: de la primera forma normal a la quinta forma normal. En este artículo se abordan las tres primeras, porque todas ellas son necesarias para la mayoría de los diseños de base de datos. Primera forma normal La primera forma normal establece que en cada intersección de fila y columna de la tabla existe un valor y nunca una lista de valores. Por ejemplo, no puede haber un campo denominado Precio en el que se incluya más de un

Page 39: RELACIONES DE ACESS

precio. Si considera cada intersección de filas y columnas como una celda, cada celda sólo puede contener un valor. Segunda forma normal La segunda forma normal exige que cada columna que no sea clave dependa por completo de toda la clave principal y no sólo de parte de la clave. Esta regla se aplica cuando existe una clave principal formada por varias columnas. Suponga, por ejemplo, que existe una tabla con las siguientes columnas, de las cuales Id. de pedido e Id. de producto forman la clave principal: Id. de pedido (clave principal) Id. de producto (clave principal) Nombre de producto Este diseño infringe los requisitos de la segunda forma normal, porque Nombre de producto depende de Id. de producto, pero no de Id. de pedido, por lo que no depende de toda la clave principal. Debe quitar Nombre de producto de la tabla, ya que pertenece a una tabla diferente (a la tabla Productos). Tercera forma normal La tercera forma normal exige no sólo que cada columna que no sea clave dependa de toda la clave principal, sino también que las columnas que no sean clave sean independientes unas de otras. O dicho de otra forma: cada columna que no sea clave debe depender de la clave principal y nada más que de la clave principal. Por ejemplo, considere una tabla con las siguientes columnas: IdProducto (clave principal) Nombre PVP Descuento Suponga que la columna Descuento depende del precio de venta al público (PVP) sugerido. Esta tabla infringe los requisitos de la tercera forma normal porque una columna que no es clave, la columna Descuento, depende de otra columna que no es clave, la columna PVP. La independencia de las columnas implica que debe poder cambiar cualquier columna que no sea clave sin que ninguna otra columna resulte afectada. Si cambia un valor en el campo PVP, la columna Descuento cambiaría en consecuencia e infringiría esa regla. En este caso, la columna Descuento debe moverse a otra tabla cuya clave sea PVP.

Volver al principio Para obtener más información Para obtener más información sobre los principios básicos de diseño de una tabla, vea el artículo Crear tablas en una base de datos. Para obtener información adicional sobre el diseño de la base de datos, vea los libros siguientes: Hernandez, Michael J. Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design, Second Edition.Addison-Wesley Professional. 2003. Fleming, Candace C. von Halle, Barbara. Handbook of Relational Database Design.Addison-Wesley Professional. 1989. Riordan, Rebecca M. Designing Effective Database Systems.Addison-Wesley Professional. 2005.

Volver al principio Vea también Agregar, establecer, cambiar o quitar la clave principal Crear tablas en una base de datos Guía de relaciones de tablas Insertar, agregar o crear un nuevo campo en una tabla Access>Fundamentos de base de datos Eliminar uno o varios registros de una base de datos

Mostrar todo Si se eliminan los datos obsoletos o inexactos, las bases de datos pueden llegar a ser más rápidas y más fáciles de usar. Por ejemplo, si se mueven los datos del anterior trimestre del calendario o trimestre fiscal a un conjunto de tablas de almacenamiento en otra base de datos, se puede reducir el tamaño de la base de datos de trabajo y ayudar a que funcione con mayor rapidez. Si se quitan los datos duplicados o inexactos, se pueden reducir los costos de trabajo. En este artículo se explica cómo eliminar datos de una base de datos de Microsoft Office Access 2007. Se explica asimismo cómo se eliminan datos de campos individuales, lo cual es un proceso relativamente sencillo, y

Page 40: RELACIONES DE ACESS

cómo se eliminan registros completos, lo cual es un proceso que puede ser mucho más complejo. En este artículo, se explica también cómo se eliminan datos manualmente y cómo se usan las consultas de eliminación.

NOTA Para comprender y usar la información incluida en este artículo, es preciso comprender primero los

conceptos de clave principal y clave externa. Para obtener información introductoria sobre claves primarias y externas, vea el artículo Conceptos básicos del diseño de una base de datos. En este artículo

Eliminar datos Eliminar los datos de un campo Eliminar los datos de una lista Eliminar registros no relacionados de una base de datos Eliminar registros relacionados de una base de datos Eliminar tablas de una base de datos Criterios de ejemplo para consultas de selección

Eliminar datos Access proporciona varios tipos o niveles de eliminación de datos. Se pueden eliminar datos de puntos de datos individuales de un registro, eliminar registros completos de una tabla y, también, eliminar tablas completas. Se pueden eliminar valores individuales cuando se desea que algunos o todos los puntos de datos de un registro se queden en blanco y que el propio registro (la fila) se mantenga en la tabla. Eliminar un valor de datos de un campo es relativamente fácil: se selecciona parte o todos los datos del campo y se presiona la tecla SUPR. Cuando se elimina un registro completo, se quitan todos los datos de cada uno de los campos así como el valor de clave que hace que el registro sea único. Mediante este proceso, se quita toda la fila de la tabla. Se pueden eliminar registros individuales manualmente o se pueden crear consultas de eliminación para quitar de golpe un gran número de registros. Si los registros que se van a eliminar no están relacionados con ningún otro dato de la base de datos, el proceso de eliminación es bastante sencillo. Se puede seleccionar una fila completa y, a continuación, presionar SUPR, o bien, se puede crear y ejecutar una consulta de eliminación. Sin embargo, si los registros que se van a eliminar están relacionados con otros datos y si residen en el lado uno de una relación uno a varios, es preciso dar algunos pasos adicionales ya que, de forma predeterminada, Access no permite eliminar datos relacionados. Además, recuerde que después de eliminar un registro completo, no se puede deshacer la eliminación. Por ese motivo siempre debe realizar una copia de seguridad de la base de datos antes de eliminar datos. Eliminar tablas completas no es un proceso tan complejo como eliminar datos de campos o eliminar registros completos, pero recuerde que al eliminarse una tabla completa, se puede romper la funcionalidad de parte y, posiblemente, toda la base de datos si se quita incorrectamente la tabla. Además, los datos de la tabla eliminada se pierden de manera permanente. Por ese motivo siempre debe realizar una copia de seguridad de la base de datos antes de eliminar una tabla. Por último, podrá eliminar datos en menos tiempo y con mayor precisión si comprende el diseño de bases de datos relacionales. Si no está familiarizado con Access o con las bases de datos relacionales en general, vea el tema Conceptos básicos del diseño de una base de datos. Los procedimientos descritos en las siguientes secciones explican cómo se eliminan datos de campos individuales, cómo se eliminan registros completos y cómo se eliminan tablas completas. En cada sección se proporciona la información necesaria para llevar a cabo una tarea determinada.

Volver al principio Eliminar los datos de un campo Se pueden eliminar los datos de campos individuales si hay tablas o consultas abiertas en la vista Hoja de datos

y si hay formularios de entrada de datos abiertos en las vistas Formulario y Presentación . Eliminar datos de una hoja de datos En el panel de exploración, haga doble clic en la tabla o consulta que desee usar. Esto abrirá la tabla o consulta en la vista Hoja de datos. Seleccione los datos que desee eliminar. Puede resaltar parte o todos los datos, o bien, colocar únicamente el cursor en el campo. Si selecciona todos los datos del campo, presione SUPRIMIR. O bien, En la ficha Inicio, en el grupo Registros, haga clic en Eliminar.

O bien, Si sitúa el cursor en el campo, presione SUPRIMIR o RETROCESO según sea necesario. Eliminar datos de un formulario En el panel de exploración, haga doble clic en el formulario que desee usar. Esto abrirá el formulario en la vista Formulario.

Page 41: RELACIONES DE ACESS

O bien, En el panel de exploración, seleccione el formulario que desee usar, y en la ficha Inicio, en el grupo Vistas, haga clic en Vista y, a continuación, haga clic en Vista Presentación. Seleccione los datos que desee eliminar. Puede resaltar parte o todos los datos, o bien, colocar únicamente el cursor en el campo. Si selecciona todos los datos del campo, presione SUPRIMIR. O bien, En la ficha Inicio, en el grupo Registros, haga clic en Eliminar.

O bien, Si sitúa el cursor en el campo, presione SUPRIMIR o RETROCESO según sea necesario.

NOTAS

Puede que Access muestre un mensaje de error e impida la eliminación de los datos. Hay varios factores que pueden detener la eliminación: Por motivos de diseño, no se pueden eliminar datos de algunos tipos de consultas Por ejemplo, no se puede editar los datos devueltos por una consulta de tabla de referencias cruzadas ni editar o quitar campos calculados (valores que calcula una fórmula al usar la base de datos, pero que no residen en una tabla). No dispone de los permisos necesarios para eliminar datos Póngase en contacto con el administrador del sistema o el diseñador de la base de datos. El campo no acepta valores en blanco o valores nulos (campo nulo: campo que contiene un valor Null. No se consideran nulos los campos que contienen una cadena de longitud cero (" ") o el valor 0.) Si tiene los permisos necesarios, abra la tabla en la vista Diseño y, a continuación, cambie la propiedad de tabla Requerido (Required) de Sí a No. Está intentando eliminar información de una lista En una hoja de datos de un formulario, siempre se puede ver

una lista porque Access coloca una flecha abajo en un extremo, como esta: . Para obtener información sobre cómo eliminar valores de una lista, vea la siguiente sección de este tema.

Volver al principio Eliminar los datos de una lista Se pueden eliminar datos de dos tipos de lista: listas de valores y listas de búsqueda. Las listas de valores muestran un conjunto de valores predefinidos; es decir, valores que el usuario o el diseñador de la base de datos especifica manualmente. En cambio, las listas de búsqueda usan una consulta para recuperar valores de otra tabla o consulta y, a continuación, esos valores devueltos rellenan la lista. Los elementos de una lista de valores residen en la misma tabla que los demás valores de un registro. En cambio, los datos de una lista de búsqueda residen en una o varias tablas diferentes. Para quitar datos de una lista de valores, abra la tabla y edite los elementos. Quitar datos de una lista de búsqueda requiere pasos adicionales, y dichos pasos varían dependiendo de si la consulta de las listas de búsqueda toma sus datos de una tabla u otra consulta. Si la consulta de la lista de búsqueda se basa en una tabla, identifique dicha tabla y el campo que contiene los datos que aparecen en la lista. A continuación abra la tabla de origen y edite los datos de dicho campo. Si la consulta de la lista de búsqueda se basa en otra consulta, deberá abrir esa segunda consulta, encontrar la tabla de origen y el campo de los que la segunda consulta toma sus datos y cambiar los valores de dicha tabla. En los siguientes procedimientos se explica cómo se eliminan datos de una lista de valores y una lista de búsqueda. Quitar datos de una lista de valores En el panel de exploración, haga clic con el botón secundario en la tabla que desee cambiar y haga clic en Vista Diseño en el menú contextual. En la sección superior de la cuadrícula de diseño, seleccione el campo de tabla que contenga la lista de valores. En la sección inferior de la cuadrícula, haga clic en la ficha Búsqueda y, a continuación, busque la propiedad Origen de la fila (Row Source). De forma predeterminada, los elementos de una lista de valores aparecen entre comillas dobles y vienen separados por signos de punto y coma: "Excellent";"Fair";"Average";"Poor". Según sea necesario, quite elementos de la lista. No olvide eliminar las comillas de cada elemento eliminado. No deje un signo de punto y como inicial, no deje pares de signos de puntos y coma (;;) y si quita el último elemento de la lista, elimine el último signo de punto y coma.

NOTA Si elimina un elemento de una lista de valores, y los registros de la tabla ya usaban el elemento

eliminado, éste seguirá formando parte del registro hasta que lo cambie. Por ejemplo, suponga que su compañía tiene un almacén en la Ciudad A, pero vende dicho edificio. Si quita "Ciudad A" de la lista de almacenes, verá "Ciudad A" en la tabla hasta que cambie dichos valores. Quitar datos de una lista de búsqueda

Page 42: RELACIONES DE ACESS

En el panel de exploración, haga clic con el botón secundario en la tabla que desee cambiar y haga clic en Vista Diseño en el menú contextual. En la sección superior de la cuadrícula de diseño, seleccione el campo de búsqueda. En la sección inferior de la cuadrícula de diseño, haga clic en la ficha Búsqueda y localice las propiedades Tipo de origen de la fila y Origen de la fila. En la propiedad Tipo de origen de la fila debe aparecer Tabla o consulta y la propiedad Origen de la fila debe contener una consulta que haga referencia a una tabla u otra consulta.

NOTA Las consultas para los campos de búsqueda siempre comienzan con la palabra SELECT.

Normalmente, aunque no siempre, las consultas de selección tienen esta sintaxis básica: SELECT [nombre_de_tabla_o_consulta].[nombre_de_campo] FROM [nombre_de_tabla_o_consulta]. En este caso, la consulta contiene dos cláusulas (SELECT y FROM). La primera hace referencia a una tabla y a un campo de dicha tabla; en cambio, la segunda hace referencia únicamente a la tabla. Recuerde: la cláusula FROM siempre indica el nombre de la tabla o consulta de origen. Las cláusulas SELECT no siempre contienen el nombre de una tabla o consulta, si bien siempre contienen el nombre de al menos un campo. Sin embargo, todas las cláusulas FROM tienen que hacer referencia a una tabla o consulta. Siga uno de estos procedimientos: Si la consulta en el campo de búsqueda hace referencia a otra consulta, haga clic en el botón Generar (en la

ficha Datos de la hoja de propiedades, haga clic en a continuación) para abrir la consulta en la vista Diseño. Anote el nombre de la tabla que aparece en la sección superior del diseñador de consultas y proceda con el paso 4. Si la consulta en el campo de búsqueda hace referencia a una tabla, anote el nombre de la tabla y, después, continúe con el paso 4. En el panel de exploración, haga doble clic en la tabla de origen para abrirla en la vista Hoja de datos. Busque el campo que contenga los datos usados en la lista de búsqueda y, a continuación, edite los datos como sea necesario.

Volver al principio Eliminar registros no relacionados de una base de datos Cuando se eliminan registros completos de una base de datos, se eliminan los datos de cada uno de los campos y se elimina asimismo el valor de clave; es decir, el valor que hace que el registro sea único. Si el registro no está relacionado con ningún otro registro (es decir, si el valor de clave no reside en ningún otro registro o tabla de la base de datos), se puede eliminar el registro seleccionándolo y presionando la tecla SUPR. Si se desea eliminar un gran número de registros no relacionados (es decir, un número mayor del que se desea eliminar manualmente), se puede usar una consulta de eliminación para quitarlos. En los procedimientos descritos en las siguientes secciones, se explica cómo llevar a cabo ambas tareas. Eliminar manualmente un registro no relacionado En la vista Hoja de datos, abra la tabla o consulta que contenga los datos que desee eliminar. Busque el registro (la fila) que desee eliminar y, a continuación, haga clic en el botón Seleccionar todo, es decir, en el cuadrado ubicado a la izquierda o derecha del registro. Puede seleccionar filas individuales, o hacer clic y arrastrar para seleccionar un conjunto de filas contiguas, o presionar CTRL y hacer clic con el botón del mouse (ratón) para seleccionar varias filas no contiguas. Access colocará un borde alrededor de todo el registro (toda la fila) o bloque de registros seleccionados. Presione SUPRIMIR. O bien, En la ficha Inicio, en el grupo Registros, haga clic en Eliminar.

O bien, Haga clic en con el botón secundario en el botón Seleccionar todo y haga clic en Eliminar registro. Si por algún motivo no puede hacer clic en el botón Seleccionar todo, sitúe el cursor en un campo del registro. A continuación, en la ficha Inicio, en el grupo Registros, haga clic en la flecha abajo al lado de Eliminar y haga clic en Eliminar registro.

NOTA Puede que Access muestre un mensaje de error que indique que no se puede eliminar el registro

porque está relacionado con otros datos. Si aparece este tipo de mensaje, haga clic en Aceptar y vaya a la siguiente sección Eliminar registros relacionados de una base de datos, más adelante en este artículo. Cuando Access pregunte si desea realmente eliminar el registro, haga clic en Sí. Eliminar registros no relacionados mediante una consulta de eliminación Cuando se usa una consulta de eliminación para quitar datos, el proceso es igual para los registros relacionados y los no relacionados: primero se crea una consulta de selección. A continuación, hay que asegurarse de que devuelve sólo los registros que desea eliminar y, por último, se convierte la consulta de selección en una consulta de eliminación. La información de referencia y los pasos de la siguiente sección explican cómo eliminar registros relacionados.

Volver al principio

Page 43: RELACIONES DE ACESS

Eliminar registros relacionados de una base de datos El proceso de eliminación de registros relacionados se compone de los siguientes pasos generales. Planee la eliminación. Asegúrese de que dispone de los permisos necesarios para eliminar los datos, asegúrese de que todos los demás usuarios han cerrado todos los objetos que usen las tablas afectadas y, a continuación, cree una copia de seguridad de la base de datos. Cambie la relación entre las tablas implicadas en la operación de eliminación. En concreto, habilite las opciones Integridad referencial y Eliminar en cascada los registros relacionados. Cree una consulta de selección y, a continuación, agregue los criterios necesarios hasta que la consulta devuelva el conjunto de registros correcto. Convierta la consulta de selección en una consulta de eliminación y, a continuación, úsela para eliminar los datos. En las secciones siguientes se explica este proceso. Planear y preparar la eliminación Realice las siguientes tareas antes de eliminar registros de una base de datos. Asegúrese de que la base de datos no es de sólo lectura. Para comprobar el estado de la base de datos, en el Explorador de Microsoft Windows, haga clic con el botón secundario en el archivo de la base de datos (archivo .accdb o .mdb) y, a continuación, haga clic en Propiedades en el menú contextual. En el cuadro de diálogo Propiedades, asegúrese de que está desactivada la casilla de verificación Sólo lectura. Compruebe que dispone de los permisos necesarios para eliminar registros de la base de datos. Si no está seguro, póngase en contacto con el administrador del sistema o el diseñador de la base de datos. Compruebe si la eliminación no va a afectar negativamente a los demás usuarios de la base de datos. Pida a todos los usuarios de la base de datos que cierren todos los formularios, tablas, consultas e informes que usen los datos que desee eliminar. De este modo, ayuda a evitar infracciones de bloqueo.

SUGERENCIA Si hay un gran número de usuarios conectados a la base de datos, puede que tenga que cerrar

la base de datos y abrirla de nuevo en modo exclusivo. Para ello, haga clic en el botón de Microsoft Office y haga clic en Abrir. Busque la base de datos, selecciónela, haga clic en la flecha situada junto al botón Abrir y, a continuación, haga clic en Abrir en modo exclusivo.

Cree una copia de seguridad de la base de datos antes de modificar o eliminar registros. Algunas operaciones de eliminación se pueden invertir, pero si crea una copia de seguridad, se asegura de poder invertir siempre los cambios.

Haga clic en el Botón Microsoft Office , seleccione Administrar y, a continuación, haga clic en Administrar esta base de datos. En el cuadro de diálogo Guardar copia de seguridad como, especifique un nombre y una ubicación para la copia de seguridad y, a continuación, haga clic en Guardar. Access cierra el archivo original, crea una copia de seguridad y, a continuación, vuelve a abrir el archivo original. Para revertir a una copia de seguridad, cierre el archivo original y cambie su nombre de modo que se pueda usar el nombre de la versión original para la copia de seguridad. Asigne el nombre de la versión original a la copia de seguridad y, a continuación, abra la copia de seguridad con el nombre cambiado en Access. Según sea necesario, identifique y compruebe las relaciones que impliquen la tabla de la que se van a eliminar registros. Siga los pasos que se detallan a continuación: En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Aparece la ficha de documento Relaciones en el que se muestran todas las tablas de una base de datos, además de las relaciones entre cada tabla y todas las demás tablas. En la ficha, cada relación aparece como una línea que conecta las tablas. En la siguiente ilustración se ve un conjunto típico de relaciones. En la ficha de documento Relaciones, se indica el lado "uno" con el número 1 y el lado "varios" con el símbolo del infinito (∞). La siguiente figura muestra una relación típica:

Page 44: RELACIONES DE ACESS

En general, cuando se eliminan registros del lado "uno" de una relación, se eliminan asimismo todos los registros relacionados del lado "varios" de la relación. Si no es así, se crearán registros huérfanos, que no tienen significado. Sin embargo, cuando se eliminan registros del lado "varios" de una relación, normalmente no se eliminan registros del lado "uno". La relación podría aplicar un conjunto de reglas denominado integridad referencial. Esas reglas garantizan que las claves externas de una base de datos contienen los valores correctos. Una clave externa es una columna cuyos valores coinciden con los valores de la columna de clave principal de otra tabla.

Obtener información sobre las reglas de integridad referencial Regla 1: no se puede especificar un valor en el campo de clave externa de una tabla relacionada, a menos que ese valor ya exista en la clave principal de la tabla principal. No obstante, se puede especificar un valor nulo en el campo de clave externa. Regla 2: no se puede eliminar un registro completo de una tabla principal si existen registros coincidentes en una tabla relacionada. Recuerde que puede evitar esta regla si habilita una propiedad en la relación entre las tablas principal y secundaria. Para obtener más información, vea el siguiente procedimiento. Regla 3: no se puede cambiar un valor de clave principal en la tabla principal si ese registro tiene registros relacionados. No obstante, también puede evitar esta regla si habilita una propiedad en la relación entre las tablas principal y secundaria. Para obtener más información, vea el siguiente procedimiento. Recuerde que, si bien Access habilita la integridad referencial de forma predeterminada en la mayoría de los casos, una base de datos deberá cumplir primero las siguientes condiciones: Para agregar una relación entre dos tablas que ya tienen datos, los datos existentes deben cumplir la reglas de la relación. Por ejemplo: El campo coincidente de la tabla principal debe ser una clave principal o tener un índice único. Los campos relacionados de la tabla principal y la tabla relacionada deben tener el mismo tipo de datos.

NOTA Hay dos excepciones a esta regla. Un campo autonumérico puede estar relacionado con un campo

numérico si el valor de la propiedad TamañoDelCampo (FieldSize) de ese campo numérico está establecido en Entero Largo. Asimismo, un campo autonumérico cuya propiedad TamañoDelCampo está establecida en Id. de réplica puede estar relacionado con un campo numérico cuya propiedad TamañoDelCampo está establecida en Id. de réplica. Ambas tablas pertenecen a la misma base de datos de Access.

NOTA Si las tablas están vinculadas, deben tener el formato de Access. Asimismo, hay que abrir la base de

datos que contiene las tablas vinculadas y aplicar la integridad referencial. No se pueden aplicar las reglas de integridad referencial para las tablas vinculadas de bases de datos con otros formatos, como libros de Microsoft Office Excel 2007. Para obtener información sobre cómo habilitar la integridad referencial, vea los pasos descritos en la siguiente sección. Anote el nombre de los campos de tabla en cada lado de la relación. Abra cada tabla y revise los datos de cada campo para comprobar que los campos contienen realmente los datos que desea eliminar. Mantenga abierta la ventana Relaciones y continúe con los pasos descritos en la siguiente sección. Modificar la relación Si aún no lo ha hecho, abra la ventana Relaciones. En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

Haga clic con el botón secundario en la relación (línea) que conecta las tablas implicadas en la operación de eliminación y, a continuación, haga clic en Modificar relación en el menú contextual. O bien, En la ficha Diseño, en el grupo Herramientas, haga clic en Modificar relaciones. Aparece el cuadro de diálogo Modificar relaciones. Asegúrese de que está activada la casilla de verificación Exigir integridad referencial. Active la casilla de verificación Eliminar en cascada los registros relacionados.

Page 45: RELACIONES DE ACESS

NOTA Hasta que vuelva a deshabilitar esta propiedad, si elimina un registro del lado "uno" de la relación, se

eliminarán todos los registros relacionados del lado "varios" de la relación. Haga clic en Aceptar, cierre la ventana Relaciones y, después, continúe con los siguientes pasos. Crear una consulta de selección En la ficha Crear, en el grupo Otros, haga clic en Diseño de consulta.

Se abre el diseñador de consultas, aparece la ficha Diseño y aparece el cuadro de diálogo Mostrar tabla. Seleccione la tabla en el lado "uno" de la relación, haga clic en Agregar y, a continuación, haga clic en Cerrar. La tabla aparece como una ventana en la sección superior de la cuadrícula de diseño de la consulta. En la ventana se muestran todos los campos de la tabla. En esta ilustración se muestra una tabla típica en el diseñador.

Haga doble clic en el asterisco (*) para agregar todos los campos de la tabla a la cuadrícula de diseño. Si agrega todos los campos de tabla, la consulta de eliminación podrá quitar registros completos (filas) de la tabla. De manera opcional, agregue un campo de tabla que permita especificar criterios. Por ejemplo, supongamos que un cliente cierra su negocio y hay que quitar todos los pedidos pendientes de ese cliente. Para buscar únicamente esos registros, se agregan los campos Id. de cliente y Fecha de pedido a la cuadrícula de diseño. Después del paso anterior, especifique los criterios en la fila Criterios de la cuadrícula de diseño. Los criterios se utilizan para que se devuelvan únicamente los registros que se desean eliminar. En caso contrario, la consulta de eliminación quita todos los registros de la tabla. Para continuar con el ejemplo del paso anterior, especifique el identificador del cliente que cerró su negocio así como la fecha en la que los pedidos de ese cliente dejaron de ser válidos. Para obtener más información sobre el uso de criterios, vea Criterios de consulta de ejemplo, más adelante en este artículo. Después del paso anterior, desactive la casilla de verificación Mostrar de cada campo de criterio. En la ficha Diseño, en el grupo Resultados, haga clic en Ejecutar. Compruebe que la consulta devuelve los registros que desee eliminar. Mantenga abierta la consulta y, después, continúe con los siguientes pasos. Convertir la consulta de selección en una consulta de eliminación y eliminar los datos Haga clic en Vista Diseño para cambiar de la hoja de datos al diseñador de consultas. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Eliminar. Access convierte la consulta de selección en una consulta de eliminación, oculta la fila Mostrar en la sección inferior de la cuadrícula de diseño y agrega la fila Eliminar. Asegúrese de que en la fila Eliminar de la columna Todos los campos (*) aparece De. La palabra Ubicación debe aparecer en todas las columnas de criterios.

Asegúrese de que desea eliminar los datos y, a continuación, haga clic en Ejecutar . Access le pedirá que confirme la eliminación. Haga clic en Sí para eliminar los datos.

Volver al principio

Page 46: RELACIONES DE ACESS

Eliminar tablas de una base de datos Recuerde que si elimina una tabla de una base de datos, no podrá deshacer la eliminación, por lo que se recomienda crear primero una copia de seguridad de la base de datos. Para obtener información sobre cómo crear una copia de seguridad de una base de datos, vea la sección Crear una copia de seguridad de la base de datos antes de modificar o eliminar registros, que aparece anteriormente en este artículo. Si la tabla está abierta en alguna de las vistas (como la vista Diseño u Hoja de datos), ciérrela. En el panel de exploración, haga clic con el botón secundario en la tabla y, a continuación, haga clic en Eliminar en el menú contextual. Access le pedirá que confirme la eliminación. Haga clic en Sí. Si esta tabla está relacionada con una o varias tablas adicionales, Access preguntará si desea eliminar esas relaciones. Haga clic en Sí. Access elimina las relaciones y, a continuación, elimina la tabla.

Volver al principio Criterios de ejemplo para consultas de selección En la siguiente tabla se muestran algunos ejemplos de los tipos de criterio que se pueden usar en las consultas de selección para reducir la cantidad de datos que va a devolver la consulta.

Criterios Efecto

> 234 Devuelve todos los números mayores que 234. Para buscar todos los números menores que 234, use < 234.

>= "Díaz" Devuelve todos los registros desde Díaz hasta el final del alfabeto.

Entre #2/2/2006# y #1/12/2006#

Devuelve las fechas comprendidas entre el 2 de febrero de 2006 y el 1 de diciembre de 2006 (ANSI-89). Si la base de datos usa los caracteres comodín ANSI-92, use comillas simples (') en vez de signos de número. Por ejemplo: Entre '2/2/2006' Y '1/12/2006'.

Sin "Alemania" Encuentra todos los registros en los que el contenido exacto del campo no es exactamente igual a "Alemania". El criterio devolverá registros que contienen caracteres además de "Alemania," como "Alemania (euro)" o "Europa (Alemania)".

Sin "T*" Busca todos los registros, salvo los que empiecen por T. Si la base de datos usa los caracteres comodín ANSI-92, use el signo de porcentaje (%) en lugar del asterisco (*).

No "*t" Busca todos los registros que terminen en t. Si la base de datos usa los caracteres comodín ANSI-92, use el signo de porcentaje (%) en lugar del asterisco.

En(Canadá,Reino Unido)

En una lista, busca todos los registros que contengan Canadá o Reino Unido.

Como "[A-D]*" En un campo de texto, busca todos los registros que empiecen por las letras comprendidas entre la A y la D, ambas inclusive. Si la base de datos usa el juego de caracteres comodín ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

Como "*ar*" Busca todos los registros que incluyan la secuencia de letras "ar". Si la base de datos usa el juego de caracteres comodín ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

Como "Casa Dewe?" Busca todos los registros que empiecen por "Casa" y contengan una segunda cadena de 5 letras, cuyas cuatro primeras letras son "Dewe" y cuya última letra se desconoce. Si la base de datos usa el juego de caracteres comodín ANSI-92, use el carácter de subrayado (_) en vez del signo de interrogación.

#2/2/2006# Busca todos los registros correspondientes al 2 de febrero de 2006. Si la base de datos usa el juego de caracteres comodín ANSI-92, escriba la fecha entre comillas simples en vez de signos de número ('2/2/2006').

< Fecha() - 30 Devuelve todas las fechas cuya antigüedad sea mayor que 30 días.

Fecha() Devuelve todos los registros que contengan la fecha actual.

Entre Fecha() Y AgregFecha("M", 3, Fecha())

Devuelve todos los registros comprendidos entre la fecha de hoy y tres meses a partir de la fecha de hoy.

Es Nulo Devuelve todos los registros que contengan un valor nulo (en blanco o sin definir).

No es Nulo Devuelve todos los registros que contengan algún valor (que no sea nulo).

"" Devuelve todos los registros que contienen una cadena de longitud cero. Las cadenas de longitud cero se utilizan cuando es necesario agregar un valor a un campo

Page 47: RELACIONES DE ACESS

obligatorio, pero aún no se conoce el valor. Por ejemplo, un campo podría requerir un número de fax, pero podría que algunos clientes no tengan fax. En ese caso, se incluye un par de comillas dobles sin espacios entre ellas ("") en lugar de un número.

Volver al principio Access>Consultas Crear una consulta basada en varias tablas

Mostrar todo A veces, el proceso de crear y usar consultas es sólo cuestión de seleccionar campos de una tabla, quizás aplicar algunos criterios y, a continuación, ver los resultados. Pero, ¿qué sucede si, como suele ser el caso, los datos se encuentran dispersos en varias tablas? Afortunadamente, se puede crear una consulta que combine información procedente de varios orígenes. En este tema se describen algunos casos en los que se extraen los datos de más de una tabla y se muestra cómo hacerlo. ¿Qué desea hacer?

Usar los datos de una tabla relacionada para mejorar la información de la consulta Conectar los datos de dos tablas mediante sus relaciones con una tercera tabla Ver todos los registros de dos tablas similares

Usar los datos de una tabla relacionada para mejorar la información de la consulta Puede haber casos en los que una consulta basada en una tabla proporcione la información necesaria, pero la extracción de datos de otra tabla ayudaría a que los resultados de la consulta fuesen aún más elocuentes y más útiles. Por ejemplo, supongamos que tiene una lista de identificadores de empleado que aparecen en los resultados de una consulta. Es consciente de que sería más útil que apareciese el nombre de los empleados en los resultados, pero esos nombres se encuentran en otra tabla. Para que aparezcan los nombres de los empleados en los resultados de la consulta, tendrá que incluir ambas tablas en la consulta. Usar el Asistente para consultas para crear una consulta a partir de una tabla principal y una tabla relacionada Asegúrese de que las tablas tienen una relación (relación: asociación que se establece entre campos comunes (columnas) en dos tablas. Una relación puede ser uno a uno, uno a varios o varios a varios.) definida en la ventana Relaciones (ventana Relaciones: ventana en la que se pueden ver, crear y modificar las relaciones entre tablas y consultas.).

¿Cómo? En la ficha Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones. En la ficha Diseño, en el grupo Relaciones, haga clic en Todas las relaciones. Identifique las tablas que deberían tener una relación definida. Si se ven las tablas en la ventana Relaciones, compruebe si ya hay una relación definida. Una relación aparece como una línea que conecta las dos tablas en un campo común. Puede hacer doble clic en una línea de relación para ver qué campos de las tablas están conectados por la relación. Si no se ven las tablas en la ventana Relaciones, deberá agregarlas. En la ficha Diseño, en el grupo Mostrar u ocultar, haga clic en Nombres de tablas. Haga doble clic en cada una de las tablas que desee mostrar y, a continuación, haga clic en Cerrar. Si no encuentra ninguna relación entre las dos tablas, cree una arrastrando un campo de una de las tablas a un campo de la otra tabla. Los campos usados para crear la relación entre las tablas deben tener el mismo tipo de datos.

NOTA Se puede crear una relación entre un campo con el tipo de datos Autonumérico (tipo de datos

Autonumérico: tipo de datos de campo que, en una base de datos de Microsoft Access, almacena automáticamente un número exclusivo para cada registro en el momento en que éste se agrega a una tabla. Se pueden generar tres tipos de números: secuencial, aleatorio e Id. de réplica.) y un campo con el tipo de datos Número (tipo de datos Numérico: en una base de datos de Microsoft Access, tipo de datos de campo diseñado para datos numéricos que se utilizarán en cálculos matemáticos. Utilice el tipo de datos Moneda, sin embargo, para mostrar o calcular valores de moneda.) si el tamaño de ese campo está establecido en un entero largo. Éste suele ser el caso cuando se crea una relación uno a varios (relación uno a varios: asociación entre dos tablas en la que el valor de clave principal de cada registro de la tabla principal se corresponde con el valor del campo o los campos coincidentes de varios registros de la tabla relacionada.). Aparece el cuadro de diálogo Modificar relaciones. Haga clic en Crear para crear la relación. Para obtener más información sobre las opciones de las que dispone al crear una relación, vea el artículo Crear, modificar o eliminar una relación. Cierre la ventana Relaciones. En la ficha Crear, en el grupo Otros, haga clic en Asistente para consultas.

Page 48: RELACIONES DE ACESS

En el cuadro de diálogo Nueva consulta, haga clic en Asistente para consultas sencillas y, a continuación, haga clic en Aceptar. En el cuadro combinado Tablas y consultas, haga clic en la tabla con la información básica que desee incluir en la consulta. En la lista Campos disponibles, haga clic en el primer campo que desee incluir en la consulta y, a continuación, haga clic en el botón de una sola flecha derecha para mover ese campo a la lista Campos seleccionados. Haga lo mismo con cada campo adicional de esa tabla que desee incluir en la consulta. Puede tratarse de campos que desee que se devuelvan en los resultados de la consulta o campos que desee usar para limitar las filas en los resultados mediante criterios. En el cuadro combinado Tablas y consultas, haga clic en la tabla con los datos relacionados que desee usar para mejorar los resultados de la consulta. Agregue a la lista Campos seleccionados los campos que desee usar para mejorar los resultados de la consulta y, a continuación, haga clic en Siguiente. Bajo ¿Desea una consulta de detalle o resumen?, haga clic en Detalle o en Resumen. Si desea que la consulta no realice ninguna función de agregado (Suma, Promedio, Mín, Máx, Cuenta, DesvEst o Var), elija una consulta de detalle. Si desea que la consulta realice una función de agregado, elija una consulta de resumen. Después de elegir la opción adecuada, haga clic en Siguiente. Haga clic en Finalizar para ver los resultados. Ejemplo en el que se usa la base de datos de ejemplo Neptuno En el siguiente ejemplo, se usa el Asistente para consultas para crear una consulta que muestre una lista de pedidos, los gastos de envío de cada pedido y el nombre del empleado responsable de cada pedido.

NOTA Este ejemplo implica la modificación de la base de datos de ejemplo Neptuno. Se recomienda realizar

una copia de seguridad de la base de datos de ejemplo Neptuno y usar esa copia de seguridad para llevar a cabo el siguiente ejemplo. Usar el Asistente para consultas para crear la consulta Abra la base de datos de ejemplo Neptuno. Cierre el formulario de inicio de sesión. En la ficha Crear, en el grupo Otros, haga clic en Asistente para consultas. En el cuadro de diálogo Nueva consulta, haga clic en Asistente para consultas sencillas y, a continuación, haga clic en Aceptar. En el cuadro combinado Tablas y consultas, haga clic en Tabla: Pedidos. En la lista Campos disponibles, haga doble clic en IdPedido para mover ese campo a la lista Campos seleccionados. Haga doble clic en Gastos de envío para mover ese campo a la lista Campos seleccionados. En el cuadro combinado Tablas y consultas, haga clic en Tabla: Empleados. En la lista Campos disponibles, haga doble clic en Nombre para mover ese campo a la lista Campos seleccionados. Haga doble clic en Apellidos para mover ese campo a la lista Campos seleccionados. Haga clic en Siguiente Dado que está creando una lista de todos los pedidos, va a usar una consulta de resumen. Si está sumando los gastos de envío por empleado o realizando alguna otra función de agregado, usará una consulta de resumen. Haga clic en Detalle (muestra cada campo de cada registro) y, a continuación, en Siguiente. Haga clic en Finalizar para ver los resultados. La consulta devuelve una lista de los pedidos, indicando para cada uno los gastos de envío así como el nombre y los apellidos del empleado responsable.

Volver al principio Conectar los datos de dos tablas mediante sus relaciones con una tercera tabla En muchas ocasiones, los datos de dos tablas están relacionados a través de una tercera tabla. Suele ser el caso cuando los datos de las dos primeras tablas están relacionados a través de una relación varios a varios (relación varios a varios: asociación entre dos tablas en las que un registro de una tabla se puede relacionar con varios registros de la otra tabla. Para establecer una, cree una tercera tabla y agregue los campos de clave principal de las otras dos tablas a esta tabla.). A menudo, se recomienda dividir una relación varios a varios existente entre dos tablas en dos relaciones uno a varios (relación uno a varios: asociación entre dos tablas en la que el valor de clave principal de cada registro de la tabla principal se corresponde con el valor del campo o los campos coincidentes de varios registros de la tabla relacionada.) que implican tres tablas. Para ello, se crea una tercera tabla, denominada tabla de unión o tabla de relación, que tiene una clave principal (clave principal: uno o más campos (columnas) cuyos valores identifican de manera exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulo y debe tener siempre un índice exclusivo. Una clave principal se utiliza para relacionar una tabla con claves externas de otras tablas.) y una clave externa (clave externa: uno o más campos de tabla (columnas) que hacen referencia al campo o campos de clave principal de otra tabla. Una clave externa indica cómo están relacionadas las tablas.) para cada una de las demás tablas. A continuación, se crea una relación uno a varios entre cada clave externa de la tabla de unión y la correspondiente clave principal de una de las demás tablas. En esos casos, es preciso incluir las tres tablas en la consulta, incluso si se desea recuperar datos sólo de dos de ellas. Crear una consulta de selección mediante tablas con una relación varios a varios En la ficha Crear, en el grupo Otros, haga clic en Diseño de consulta. Se abre el cuadro de diálogo Mostrar tabla. En el cuadro de diálogo Mostrar tabla, haga doble clic en las dos tablas que contienen los datos que desee incluir en la consulta así como la tabla de unión que las vincula. A continuación, haga clic en Cerrar.

Page 49: RELACIONES DE ACESS

Las tres tablas aparecen en el área de trabajo del diseño de la consulta, combinadas en los campos apropiados. Haga doble clic en cada uno de los campos que desee usar en los resultados de la consulta. Cada campo aparecerá en la cuadrícula de diseño (cuadrícula de diseño: cuadrícula utilizada para diseñar una consulta o un filtro en la vista Diseño de consulta o en la ventana Filtro u orden avanzado. Para las consultas, esta cuadrícula se conocía antes como la cuadrícula QBE.) de la consulta. En la cuadrícula de diseño de la consulta, use la fila Criterios para especificar criterios de campo. Para usar un criterio de campo sin mostrar el campo en los resultados de la consulta, desactive la casilla de verificación en la fila Mostrar correspondiente a ese campo. Para ordenar los resultados en función de los valores de un campo, en la cuadrícula de diseño de la consulta, haga clic en Ascendente o Descendente (dependiendo de cómo desee ordenar los registros) en la fila Ordenar correspondiente a ese campo. En la ficha Diseño, en el grupo Resultados, haga clic en Ejecutar. Access muestra los resultados de la consulta en la vista Hoja de datos (vista Hoja de datos: ventana que muestra datos de una tabla, formulario, consulta, vista o procedimiento almacenado con formato de filas y columnas. En la vista Hoja de datos, puede editar campos, buscar y agregar o eliminar datos.). Ejemplo en el que se usa la base de datos de ejemplo Neptuno

NOTA Este ejemplo implica la modificación de la base de datos de ejemplo Neptuno. Se recomienda realizar

una copia de seguridad de la base de datos de ejemplo Neptuno y usar esa copia de seguridad para llevar a cabo el siguiente ejemplo. Supongamos que se le presenta una nueva oportunidad: un proveedor de Río de Janeiro ha encontrado su página Web y es posible que desee hacer negocios. No obstante, sólo operan en Río de Janeiro y cerca de São Paulo. Suministran todas las categorías de productos de alimentación a las que usted se dedica. Son una empresa bastante grande y desean estar seguros de que puede proporcionarles acceso a unas ventas potenciales suficientes para que les sea rentable: al menos un volumen de R$20.000,00 al año en ventas (unos $9.300,00). ¿Les puede suministrar el mercado que exigen? Los datos necesarios para poder responder a esta pregunta se encuentran en dos lugares: una tabla Clientes y una tabla Detalles de pedidos. Estas tablas están relacionadas entre sí por la tabla Pedidos. Las relaciones entre las tablas ya están definidas. En la tabla Productos, cada pedido sólo puede tener un cliente, relacionado con la tabla Clientes por el campo IdCliente. Cada registro de la tabla Detalles de pedidos está relacionado sólo con otro registro de la tabla Pedidos, por el campo IdPedido. Por lo tanto, un cliente dado puede tener muchos pedidos, de los cuales cada uno puede tener muchos detalles de pedidos. En este ejemplo, va a crear una consulta de referencias cruzadas que muestra el total de ventas por año, en las ciudades de Río de Janeiro y São Paulo. Crear la consulta en la vista Diseño Abra la base de datos de ejemplo Northwind. Cierre el formulario de inicio de sesión. En la ficha Crear, en el grupo Otros, haga clic en Diseño de consulta. Aparece el cuadro de diálogo Mostrar tabla. En el cuadro de diálogo Mostrar tabla, haga doble clic en Clientes, Pedidos y Detalles de pedidos y, a continuación, haga clic en Cerrar. Las tres tablas aparecen en el área de trabajo del diseño de la consulta. En la tabla Clientes, haga doble clic en el campo Ciudad para agregarlo a la cuadrícula de diseño de la consulta. En la cuadrícula de diseño de la consulta, en la columna Ciudad, en la fila Criterios, escriba En ("Río de Janeiro","São Paulo"). Esto hace que sólo se incluyan en la consulta los registros en los que el cliente está en una de estas dos ciudades. En la tabla Detalles de pedidos, haga doble clic en los campos FechaEnvío y PrecioUnidad. Los campos se agregan a la cuadrícula de diseño de la consulta. En la columna FechaEnvío, en la cuadrícula de diseño de la consulta, seleccione la fila Campo. Reemplace [FechaEnvío] por Año: Formato([FechaEnvío],"aaaa"). Esto crea un alias de campo, Año, que permite utilizar sólo la parte del año del valor del campo FechaEnvío. En la columna PrecioUnidad, en la cuadrícula de diseño de la consulta, seleccione la fila Campo. Reemplace [PrecioUnidad] por Ventas: [Detalles de pedidos].[PrecioUnidad]*[Cantidad]-[Detalles de pedidos].[PrecioUnidad]*[Cantidad]*[Descuento]. Esto crea un alias de campo, Ventas, que calcula las ventas para cada registro. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Tabla de referencias cruzadas. Aparecen dos nuevas filas, Total y Tabla de referencias cruzadas, en la cuadrícula de diseño de la consulta. En la columna Ciudad en la cuadrícula de diseño de la consulta, haga clic en la ficha Tabla de referencias cruzadas y luego en Encabezado de fila. Esto hace que aparezcan los valores de ciudad como encabezados de fila (es decir, la consulta devuelve una fila para cada ciudad). En la columna Año, haga clic en la fila Tabla de referencias cruzadas y luego en Encabezado de columna. Esto hace que aparezcan los valores de año como encabezados de columna (es decir, la consulta devuelve una columna para cada año). En la columna Ventas, haga clic en la fila Tabla de referencias cruzadas y luego en Valor. Esto hace que los valores de ventas aparezcan en la intersección de filas y columnas (es decir, la consulta devuelve un valor de ventas para cada combinación de ciudad y año). En la columna Ventas, haga clic en la fila Totales y luego en Suma.

Page 50: RELACIONES DE ACESS

Esto hace que la consulta sume los valores de esta columna. Puede dejar la fila Totales para las otras dos columnas como valor predeterminado de Agrupar por porque desea ver el valor de estas columnas y no valores agregados. En la ficha Diseño, en el grupo Resultados, haga clic en Ejecutar. Ahora tiene una consulta que devuelve el total de ventas por año en Río de Janeiro y São Paulo.

Volver al principio Ver todos los registros de dos tablas similares En ocasiones, se desea combinar los datos de dos tablas que tienen una estructura idéntica pero una de ellas está ubicada en otra base de datos. Contemplemos el siguiente escenario. Supongamos que es un analista que trabaja con datos de alumnos. Se ha embarcado en una iniciativa para compartir datos con otro centro escolar de modo que ambos centros puedan mejorar su plan de estudios. Para algunas cuestiones que desea estudiar, sería mejor poder ver conjuntamente todos los registros de ambos centros escolares, en vez de ver los registros de cada centro por separado. Podría importar los datos del otro centro a nuevas tablas de su base de datos, pero los cambios en los datos del otro centro no se reflejarían en esa base de datos. Sería mejor vincularse a las tablas del otro centro y, a continuación, crear consultas que combinen los datos cuando se ejecuten. De este modo, podrá analizar los datos como un solo conjunto, en vez de llevar a cabo dos análisis e intentar interpretarlos como si fuese uno solo. Para ver todos los registros de dos tablas con una estructura idéntica, se usa una consulta de unión (consulta de unión: consulta que utiliza el operador UNION para combinar los resultados de dos o más consultas de selección.). Las consultas de unión no se pueden mostrar en la vista Diseño. Se crean mediante comandos SQL que se escriben en una ficha de objeto de la vista SQL (vista SQL: ventana que muestra la instrucción SQL para la consulta activa o que se utiliza para crear una consulta específica de SQL (unión, paso a través o definición de datos). Cuando se crea una consulta en la vista Diseño, Access construye el SQL equivalente en la vista SQL.). Crear una consulta de unión mediante dos tablas En la ficha Crear, en el grupo Otros, haga clic en Diseño de consulta. Se abre una nueva cuadrícula de diseño de consulta y aparece el cuadro de diálogo Mostrar tabla. En el cuadro de diálogo Mostrar tabla, haga clic en Cerrar. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Unión. La consulta cambia de la vista Diseño a la vista SQL. La ficha de objeto de la vista SQL está vacía. En la vista SQL, escriba SELECT, seguido de una lista de los campos de la primera tabla que desee incluir en la consulta. Los nombres de los campos deben aparecer entre corchetes y separados por una coma. Tras escribir los nombres de los campos, presione ENTRAR. El cursor baja una línea en la vista SQL. Escriba FROM seguido del nombre de la primera tabla que desee incluir en la consulta. Después, presione ENTRAR. Si desea especificar un criterio para un campo de la primera tabla, escriba WHERE, seguido del nombre del campo, un operador de comparación (normalmente, el signo igual (=)) y el criterio. Para agregar criterios adicionales al final de la cláusula WHERE, use la palabra clave AND y aplique la misma sintaxis usada para el primer criterio; por ejemplo, WHERE [NivelClase]="100" AND [HorasCrédito]>2. Cuando termine de especificar los criterios, presione ENTRAR. Escriba UNION y, a continuación, presione ENTRAR. Escriba SELECT, seguido de una lista de los campos de la segunda tabla que desee incluir en la consulta. De esta tabla, deberá incluir los mismos campos que los campos que incluyó de la primera tabla, y en el mismo orden. Los nombres de los campos deben aparecer entre corchetes y separados por una coma. Tras escribir los nombres de los campos, presione ENTRAR. Escriba FROM seguido del nombre de la segunda tabla que desee incluir en la consulta. Después, presione ENTRAR. Si lo desea, agregue una cláusula WHERE, según las indicaciones del paso 6 de este procedimiento. Escriba un signo de punto y coma (;) para indicar el final de la consulta. En la ficha Diseño, en el grupo Resultados, haga clic en Ejecutar. Los resultados aparecerán en la vista Hoja de datos.

Volver al principio Vea también Combinar tablas y consultas Ejecutar una consulta Ejemplos de criterios de consulta Sumar datos mediante una consulta Usar parámetros en consultas e informes Access>Consultas Combinar tablas y consultas

Mostrar todo

Page 51: RELACIONES DE ACESS

Cuando se incluyen varias tablas en una consulta, se usan combinaciones que ayudan a obtener los resultados deseados. Una combinación ayuda a que la consulta devuelva únicamente los registros deseados de cada tabla, basándose en cómo esas tablas están relacionadas con otras tablas en la consulta. En este artículo se proporciona información conceptual sobre las combinaciones, se abordan los distintos tipos de combinación y se muestra cómo usarlas. En este artículo

Introducción Combinaciones internas Combinaciones externas Combinaciones cruzadas Combinaciones de desigualdad Quitar una combinación

Introducción Las bases de datos relacionales se componen, en el nivel más básico, de tablas que guardan relaciones lógicas entre ellas. Las relaciones se usan para conectar las tablas en los campos que tienen en común. Una relación viene representada en una consulta por medio de una combinación. Cuando se agregan tablas a una consulta, Microsoft Office Access 2007 crea combinaciones basadas en las relaciones que se han definido entre las tablas. Se pueden crear manualmente combinaciones en las consultas, incluso si no representan relaciones ya definidas. Si se usan otras consultas (en vez de las tablas o además de ellas) como origen de los datos de una consulta, se pueden crear combinaciones entre las consultas de origen y también entre esas consultas y todas las tablas que se usen como origen de datos. Las combinaciones se comportan de manera similar a los criterios de consulta ya que establecen reglas que deben cumplir los datos que se van a incluir en las operaciones de consulta. A diferencia de los criterios, las combinaciones especifican asimismo que cada par de filas que cumplan las condiciones de combinación se combinen en el conjunto de registros para formar una sola fila. Hay cuatro tipos básicos de combinación: combinaciones internas, combinaciones externas, combinaciones cruzadas y combinaciones de desigualdad. En este artículo se aborda cada tipo de combinación que se puede usar, por qué se usa cada uno de los tipos y cómo se crean las combinaciones.

Volver al principio Combinaciones internas Las combinaciones internas son el tipo de combinación más común. Indican a una consulta que las filas de una de las tablas combinadas corresponden a las filas de otra tabla, basándose en los datos incluidos en los campos combinados. Cuando se ejecuta una consulta con una combinación interna, se incluirán en las operaciones de consulta únicamente las filas en las que haya un valor común en ambas tablas combinadas. ¿Por qué se usa una combinación interna? Se usa una combinación interna cuando se desea que se devuelvan únicamente las filas de ambas tablas de la combinación que coinciden en el campo combinado. ¿Cómo se usa una combinación interna? En la mayoría de los casos, no hay que hacer nada para poder usar una combinación interna. Si se han creado relaciones entre las tablas en la ventana Relaciones (ventana Relaciones: ventana en la que se pueden ver, crear y modificar las relaciones entre tablas y consultas.), Access crea automáticamente las combinaciones internas cuando se agregan tablas relacionadas en la vista Diseño (vista Diseño: ventana que muestra el diseño de estos objetos de base de datos: tablas, consultas, formularios, informes, macros y páginas de acceso a datos. En la vista Diseño, puede crear objetos de base de datos nuevos y modificar el diseño de otros existentes.) de la consulta. Si se aplica la integridad referencial (integridad referencial: reglas que se siguen para preservar las relaciones definidas entre las tablas cuando se especifican o eliminan registros.), Access muestra asimismo "1" sobre la línea de combinación para indicar la tabla del lado "uno" de una relación uno a varios (relación uno a varios: asociación entre dos tablas en la que el valor de clave principal de cada registro de la tabla principal se corresponde con el valor del campo o los campos coincidentes de varios registros de la tabla relacionada.) así como el símbolo de infinito (∞) para indicar la tabla del lado "varios". Aunque no se hayan creado relaciones, Access crea automáticamente combinaciones internas si se agregan dos tablas a una consulta y cada una de esas tablas tiene un campo con un tipo de datos igual o compatible y uno de los campos combinados es una clave principal (clave principal: uno o más campos (columnas) cuyos valores identifican de manera exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulo y debe tener siempre un índice exclusivo. Una clave principal se utiliza para relacionar una tabla con claves externas de otras tablas.). Los símbolos de "uno" y "varios" no se muestran en este caso porque no se aplica la integridad referencial. Si se agregan consultas a una consulta y no se crean relaciones entre esas consultas, Access no crea automáticamente combinaciones internas entre esas consultas o entre las consultas y las tablas. En general, es el usuario quien tiene que crearlas. Para crear una combinación interna, se arrastra un campo de un origen de datos a un campo de otro origen de datos. Access muestra una línea entre los dos campos para indicar que se ha creado una combinación.

Sintaxis SQL para una combinación interna

Page 52: RELACIONES DE ACESS

Parte Descripción

tabla1, tabla2 Nombres de las tablas cuyos registros se combinan.

campo1, campo2 Nombres de los campos que se combinan. Si no son numéricos, los campos deben ser del mismo tipo de datos (tipo de datos: característica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son: Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) y contener la misma clase de datos, pero no tienen que tener el mismo nombre.

operadordecomparación Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".

Volver al principio Combinaciones externas Las combinaciones externas indican a una consulta que, si bien algunas de las filas en ambos lados de la combinación coinciden exactamente, la consulta debe incluir todas las filas de una tabla así como las filas de la otra tabla que comparten un valor común en ambos lados de la combinación. Las combinaciones externas pueden ser combinaciones izquierdas o combinaciones derechas. En una combinación izquierda, la consulta incluye todas las filas de la primera tabla de la declaración SQL de la cláusula FROM y sólo las filas de la otra tabla donde el campo de combinación contiene valores comunes de ambas tablas. En una combinación derecha, la consulta incluye todas las filas de la segunda tabla de la declaración SQL de la cláusula FROM y sólo las filas de la otra tabla donde el campo de combinación contiene valores comunes de ambas tablas.

NOTA Se puede saber fácilmente qué tabla es la de la izquierda o la de la derecha en una combinación; para

ello basta con hacer doble clic en la combinación y consultar el cuadro de diálogo Propiedades de la combinación. También puede cambiar a la vista SQL y examinar la cláusula FROM. Dado que algunas de las filas en un lado de una combinación externa no tendrán filas correspondientes en la otra tabla, algunos de los campos devueltos en los resultados de la consulta de esa otra tabla estarán vacíos cuando no coinciden las filas. ¿Por qué se usa una combinación externa? Se usa una combinación externa cuando se desea que los resultados incluyan todas las filas de una de las tablas de la combinación y se desea que la consulta devuelva sólo las filas de la otra tabla que coinciden con la primera tabla del campo de combinación. ¿Cómo se usa una combinación externa? Las combinaciones externas se crean modificando las combinaciones internas. Convertir una combinación interna en una combinación externa En la vista Diseño de la consulta, haga doble clic en la combinación que desee cambiar. Aparece el cuadro de diálogo Propiedades de la combinación. En el cuadro de diálogo Propiedades de la combinación, observe las opciones situadas junto a la opción 2 y la opción 3. Haga clic en la opción que desee usar y, a continuación, haga clic en Aceptar. Access muestra la combinación así como una flecha que va desde el origen de datos donde estarán incluidas todas las filas hasta el origen de datos donde estarán incluidas sólo las filas que cumplan la condición de combinación.

Sintaxis SQL para una combinación externa

Parte Descripción

tabla1, tabla2 Nombres de las tablas cuyos registros se combinan.

campo1, campo2 Nombres de los campos que se combinan. Estos campos deben ser del mismo tipo de datos (tipo de datos: característica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son: Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) y contener la misma clase de datos, pero no tienen que tener el mismo nombre.

operadordecomparación Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".

Volver al principio Combinaciones cruzadas Las combinaciones cruzadas se diferencian de las combinaciones internas y externas en que no se representan explícitamente en Office Access 2007. En una combinación cruzada, cada fila de una tabla se combina con cada fila de otra tabla, generando lo que se denomina un producto cruzado o producto cartesiano. Cada vez que se ejecuta una consulta con tablas que no están explícitamente combinadas, se genera un producto cruzado. Las combinaciones cruzadas suelen ser involuntarias, aunque hay casos en los que pueden resultar útiles. ¿Por qué se usa una combinación cruzada? Se usa una combinación cruzada cuando se desea comprobar todas las combinaciones posibles de las filas de dos tablas o consultas. Por ejemplo, supongamos que su negocio tiene un año fantástico y está considerando la posibilidad de ofrecer descuentos a sus clientes. Podrá crear una consulta que sume las compras de cada cliente, crear una pequeña tabla con los posibles porcentajes de descuento y combinar las dos en otra consulta

Page 53: RELACIONES DE ACESS

que lleve a cabo una combinación cruzada. El resultado será una consulta que muestre un conjunto de descuentos hipotéticos para cada cliente. ¿Cómo se usa una combinación cruzada? Se genera una combinación cruzada cada vez que se incluyen tablas o consultas en una consulta y no se crea al menos una combinación explícita para cada tabla o consulta. Access combina todas las filas de cada tabla o consulta que no está explícitamente combinada con ninguna otra tabla o consulta con cada dos filas de los resultados. Contemplemos el caso de los descuentos del párrafo anterior. Supongamos que tiene 91 clientes y desea examinar cinco posibles porcentajes de descuento. La combinación cruzada genera 455 filas (el resultado de multiplicar 91 por 5). Tal y como se puede imaginar, las combinaciones cruzadas involuntarias pueden crear un número considerable de filas en los resultados de consulta. Es más, estos resultados suelen no tener sentido porque, si en realidad la intención no es combinar cada fila con cada dos filas, la mayoría de las filas combinadas que aparecen en los resultados no tendrán ningún sentido. En último lugar, las consultas que usan combinaciones cruzadas involuntarias pueden tardar mucho tiempo en ejecutarse.

Combinación cruzada involuntaria en la vista Diseño de la consulta.

Los campos rodeados de un círculo deben estar combinados.

Producto cruzado devuelto por la combinación cruzada involuntaria arriba representada.

Observe el número considerable de registros.

Page 54: RELACIONES DE ACESS

Resultados después de crearse la combinación correcta.

Observe que el número de registros es mucho menor. Volver al principio

Combinaciones de desigualdad Las combinaciones no tienen que basarse necesariamente en la equivalencia de los campos combinados. Una combinación puede basarse en cualquier operador de comparación, como mayor que (>), menor que (<) o no es igual a (<>). Las combinaciones que no se basan en la equivalencia se denominan combinaciones de desigualdad. ¿Por qué se usa una combinación de desigualdad? Si se desea combinar las filas de dos orígenes de datos basándose en los valores de campo que no son iguales, se usa una combinación de desigualdad. Normalmente, las combinaciones de desigualdad se basan en los operadores de comparación mayor que (>), menor que (<), mayor o igual que (>=), o bien, menor o igual que (<=). Las combinaciones de desigualdad que se basan en el operador no es igual a (<>) pueden devolver casi tantas filas como las combinaciones cruzadas, por lo que los resultados pueden ser difíciles de interpretar. ¿Cómo se usa una combinación de desigualdad? Las combinaciones de desigualdad no se admiten en la vista Diseño. Si desea usarlas, deberá hacerlo en la vista SQL. Sin embargo, se puede crear una combinación en la vista Diseño, cambiar a la vista SQL, buscar el operador de comparación igual a (=) y cambiarlo al operador que desee usar. Después, sólo podrá abrir la consulta en la vista Diseño si cambia primero el operador de comparación al operador igual a (=) en la vista SQL.

Volver al principio Quitar una combinación Si crea una combinación por equivocación, por ejemplo, entre dos campos con tipos de datos distintos, podrá eliminarla. Para eliminar una combinación: En la cuadrícula de diseño de la consulta, haga clic en la combinación que desee quitar. Presione SUPR. O bien, En la cuadrícula de diseño de la consulta, haga clic con el botón secundario en la combinación que desee quitar y, a continuación, haga clic en Eliminar.

Volver al principio Vea también Crear una consulta basada en varias tablas Crear, modificar o eliminar una relación Guía de relaciones de tablas Operación INNER JOIN Operaciones LEFT JOIN, RIGHT JOIN

Page 55: RELACIONES DE ACESS

Access>Fundamentos de base de datos Actualizar los datos de una base de datos

Mostrar todo Ocultar todo

En este artículo se explica cómo actualizar datos existentes. Microsoft Office Access 2007 proporciona una serie de herramientas para actualizar registros existentes, incluidos formularios, hojas de datos, consultas, el cuadro de diálogo Buscar y reemplazar y la nueva característica Recopilación de datos. Cuando empiece a trabajar, recuerde que actualizar datos no es el mismo proceso que escribir datos nuevos. Para obtener información sobre cómo escribir nuevos datos en una base de datos, vea el artículo Agregar uno o varios registros a una base de datos. En este artículo

Cómo afecta el diseño de base de datos a la actualización Cómo afectan los tipos de datos a la actualización Cómo afectan las propiedades de los campos de tabla a la actualización Usar un formulario para actualizar datos Usar una hoja de datos para actualizar datos Usar una consulta de actualización para cambiar datos existentes Usar una consulta de datos anexados para agregar registros a tablas Usar la característica Recopilación de datos para actualizar registros Usar el cuadro de diálogo Buscar y reemplazar para modificar datos Usar actualizaciones en cascada para cambiar los valores de las claves primarias y externas

Volver al principio

Cómo afecta el diseño de base de datos a la actualización Lea esta sección si es la primera vez que utiliza Access o no está familiarizado con los conceptos relativos a las bases de datos relacionales. Las actualizaciones a gran escala serán mucho más fáciles de realizar si conoce algunos de los principios básicos del diseño de bases de datos. Una base de datos de Access no es un archivo como lo es un documento de Microsoft Office Word 2007 o un conjunto de diapositivas de Microsoft Office PowerPoint 2007. Por el contrario, una base de datos de Access típica es un conjunto de tablas más una serie de objetos construidos entorno a dichas tablas: formularios, informes, consultas, etc. Además, estos objetos deben cumplir una serie de principios de diseño o, de lo contrario, la base de datos tendrá deficiencias o errores de funcionamiento. A su vez, estos principios de diseño afectan al modo en que se escriben los datos. Tenga en cuenta las siguientes consideraciones relativas a los objetos de base de datos cuando empiece a trabajar. Con algunas excepciones (como, por ejemplo, un tipo de lista llamado lista de valores), Access almacena todos los datos en una o varias tablas. El número de tablas depende del diseño y de la complejidad de la base de datos. Aunque vea o actualice los datos en un formulario, en un informe o en los resultados devueltos por una consulta, Access almacena los datos únicamente en tablas. Cada tabla debería almacenar datos de una materia, categoría o propósito determinado. Por ejemplo, una tabla con información de contactos profesionales no debe contener información de ventas ya que, en ese caso, puede resultar difícil encontrar la información correcta o puede que no se encuentre. Cada uno de los campos de una tabla debería admitir únicamente un tipo de datos. Por ejemplo, no se debería poder almacenar notas en un campo definido para aceptar números. Si intenta escribir texto en dicho campo, Access muestra un mensaje de error. Salvo en un caso, los campos de un registro deberían aceptar un único valor. Por ejemplo, una base de datos que esté bien diseñada impedirá que se incluya más de una dirección en un campo de dirección, a diferencia de lo que ocurre en Microsoft Office Excel 2007 que, de forma predeterminada, permite incluir cualquier número de nombres, direcciones o imágenes en una sola celda, a no ser que defina esa celda para que admita tipos de datos restringidos. Sin embargo, Office Access 2007 proporciona también una nueva característica denominada campo multivalor. Los campos multivalor sirven para adjuntar varios fragmentos de datos a un único registro y para crear listas que acepten varios valores. Por ejemplo, puede adjuntar un archivo de texto, una diapositiva de Office PowerPoint 2007 y el número de imágenes que desee a un registro de la base de datos. Puede crear también una lista de nombres y seleccionar tantos nombres de la lista como sea necesario. Puede parecer que el uso de campos multivalor infringe las reglas de diseño de bases de datos al permitir almacenar varios fragmentos de datos en un campo de tabla, pero no es así, ya que Access exige el cumplimiento de estas reglas "entre bastidores" al almacenar los datos en tablas ocultas especiales. Los vínculos siguientes llevan a artículos que proporcionan más información acerca de las materias y características descritas en esta sección. En Conceptos básicos del diseño de una base de datos: este artículo ofrece una explicación de los conceptos fundamentales, como el diseño de la base de datos y los datos y el proceso de normalización (la división de los datos en tablas relacionadas y la eliminación de datos redundantes).

Page 56: RELACIONES DE ACESS

En Crear tablas en una base de datos: este artículo proporciona una explicación acerca de cómo crear tablas, agregar claves principales (campos que identifican inequívocamente cada fila o registro de la tabla) y definir tipos de datos y propiedades de la tabla. En Adjuntar archivos a los registros de una base de datos: este artículo explica cómo adjuntar uno o varios fragmentos de datos a un campo Datos adjuntos. En Usar una lista que almacene varios valores y Guía de campos multivalor: estos artículos explican cómo usar listas de casilla de verificación y listas desplegables de casilla de verificación para almacenar varios valores.

Volver al principio Cómo afectan los tipos de datos a la actualización Lea esta sección si es la primera vez que utiliza Access o no está familiarizado con los conceptos relativos a las bases de datos relacionales. Las actualizaciones a gran escala serán mucho más fáciles de realizar si conoce algunos de los principios básicos del diseño de bases de datos. Cuando se diseña una tabla de base de datos, se selecciona un tipo de datos para cada uno de los campos de esa tabla, proceso mediante el cual se garantiza una entrada de datos más exacta. Suponga, por ejemplo, que especifica un tipo de datos Número para un campo porque necesita calcular cifras de ventas. Si alguien intenta escribir texto en ese campo, Access muestra un mensaje de error y no permite que el usuario guarde el registro cambiado con el fin de proteger los datos.

Cómo se ven los tipos de datos Access ofrece ahora dos formas de ver los tipos de datos de un campo de una tabla. Puede usar los comandos de la ficha Hoja de datos o puede abrir la tabla en la vista Diseño. A continuación se explica cómo se usan los dos procedimientos. Ver tipos de datos usando comandos en la ficha Hoja de datos En el panel de exploración, haga doble clic en la tabla que desee usar. Haga clic en el campo en el que desee investigar. En la ficha Hoja de datos, en el grupo Tipo de datos y formato, haga clic en la flecha abajo de la lista Tipo de datos para ver el conjunto de tipo de datos para el campo. Ver tipos de datos en la vista Diseño En el panel de exploración, haga clic con el botón secundario en la tabla y haga clic en Vista Diseño en el menú contextual. Access abre la tabla en la cuadrícula de diseño, y en la sección superior de la cuadrícula se muestra el nombre y el tipo de datos de cada campo de la tabla.

El tipo de datos definido para cada campo de la tabla proporciona el primer nivel de control sobre lo que se puede y no se puede incluir en un campo. En algunos casos, la definición de un tipo de datos impide la inclusión de cualquier dato. En la tabla siguiente se ofrece un listado de los tipos de datos que proporciona Office Access 2007 y una descripción de cómo afectan a la entrada de datos.

Tipo de datos Efecto en la entrada de datos

Texto Los campos de texto aceptan caracteres de texto o numéricos, incluidas las listas delimitadas de elementos. Un campo de texto acepta menos caracteres que un campo Memo (de 0 a 255 caracteres). En algunos casos, puede usar funciones de conversión para realizar cálculos con los datos de un campo de texto.

Memo Puede escribir una gran cantidad de texto y de datos numéricos en este tipo de campo. Además, si el diseñador de la base de datos define el campo para que admita formato de texto enriquecido, puede aplicar los tipos de formato que se encuentran normalmente en los programas de procesamiento de texto como Office Word 2007. Por ejemplo, puede aplicar fuentes y tamaños de fuentes distintos a caracteres específicos del texto y aplicarles formato de negrita, cursiva, etc. También puede agregar etiquetas de lenguaje de marcas de hipertexto (HTML) a los datos. Para obtener más información sobre el uso del formato de texto enriquecido en un campo Memo, vea el artículo Dar formato a los datos en filas y columnas. Al igual que en el caso de los campos Texto, se pueden usar funciones de conversión con los datos de un campo Memo.

Número Sólo puede escribir números en este tipo de campo y puede realizar cálculos con los valores

Page 57: RELACIONES DE ACESS

de un campo Número. Fecha/Hora Sólo puede escribir fechas y horas en este tipo de campo. Según cómo haya definido el

campo el diseñador de la base de datos, pueden darse las siguientes condiciones: Si el diseñador de la base de datos ha definido una máscara de entrada para el campo (una serie de caracteres literales y de marcador de posición que aparecen al seleccionar el campo), deberá escribir los datos en los espacios y en el formato proporcionado por la máscara. Por ejemplo, si la máscara es DD_MMM_AAAA, debe escribir una fecha en ese formato en los espacios provistos, por ejemplo, Oct 11 2006. No puede escribir el nombre completo del mes (como por ejemplo, julio) ni el año con dos dígitos. Si el diseñador no ha creado una máscara de entrada para controlar el modo en que se escriben las fechas o las horas, puede escribir el valor utilizando cualquier formato de fecha u hora válido. Por ejemplo, puede escribir 11 Oct. 2006, 11/10/06, 11 de octubre, 2006, etc. El diseñador de la base de datos puede aplicar un formato de presentación al campo. En ese caso, si no hay una máscara de entrada, puede escribir un valor en prácticamente cualquier formato, pero Access muestra las fechas de acuerdo con el formato de visualización. Por ejemplo, puede escribir 11/10/2006, pero el formato de presentación puede estar establecido para que muestre el valor como 11-oct-2006. Para obtener más información sobre las máscaras de entrada, vea el artículo Dar formato a los datos en filas y columnas.

Moneda Sólo puede escribir valores monetarios en este tipo de campo. Además, no es necesario que incluya manualmente un símbolo de moneda. De forma predeterminada, Access aplica el símbolo de moneda ( ¥, £, $, etc.) especificado en la configuración regional de Windows.

Autonumérico No puede escribir ni cambiar los datos en este tipo de campo. Access incrementa los valores de un campo Autonumérico cada vez que se agrega un nuevo registro a una tabla.

Sí/No Al hacer clic en un campo definido en este tipo de datos, Access muestra una casilla de verificación o una lista desplegable, según el formato que aplique al campo. Si establece el formato del campo para que muestre una lista, podrá seleccionar Sí o No, Verdadero o Falso o Activado o Desactivado en la lista, en función del formato aplicado al campo. No puede escribir valores en la lista ni cambiar los valores de la lista directamente desde un formulario o tabla.

Objeto OLE Este tipo de campo se utiliza cuando se desean mostrar datos de un archivo creado con otro programa. Por ejemplo, puede mostrar un archivo de texto, un diagrama de Excel o un grupo de diapositivas de PowerPoint en un campo Objeto OLE. Nota Los datos adjuntos proporcionan una forma más rápida, fácil y flexible de ver los datos de otros programas. Vea la entrada Datos adjuntos, más adelante en esta tabla, para obtener información adicional.

Hipervínculo Puede escribir cualquier dato en este tipo de campo y Access lo convertirá en una dirección Web. Por ejemplo, si escribe un valor en el campo, Access rodeará el texto con el Localizador uniforme de recursos (URL) (Localizador de recursos uniforme (URL): dirección que especifica un protocolo (como HTTP o FTP) y la ubicación de un objeto, documento, página World Wide Web u otro destino en Internet o una intranet, por ejemplo: http://www.microsoft.com/.) de esta forma: http://www.texto.com. Si escribe una dirección Web válida, el vínculo funcionará; de lo contrario, el vínculo dará como resultado un mensaje de error. Sin embargo, puede resultar difícil modificar hipervínculos existentes, porque al hacer clic en un hipervínculo se abre el explorador y se obtiene acceso al sitio especificado en el vínculo. Para modificar un campo de hipervínculo, seleccione un campo contiguo, utilice la tecla TAB o las teclas de dirección para mover el foco al campo de hipervínculo y, a continuación, presione F2 para activar la edición.

Datos adjuntos Puede adjuntar datos de otros programas a este tipo de campo, pero no puede escribir ni incluir de ninguna otra forma datos de texto o numéricos. Para obtener información sobre cómo usar un campo Datos adjuntos, vea el artículo Adjuntar archivos a los registros de una base de datos.

Asistente para búsquedas

El Asistente para búsquedas no es para tipos de datos. Este asistente se usa para crear dos tipos de listas desplegables: las listas de valores y los campos de búsqueda. Una lista de valores utiliza una lista delimitada de elementos que se especifican manualmente al usar el Asistente para búsquedas. Estos valores pueden ser independientes de cualquier otro dato u objeto de la base de datos. En cambio, un campo de búsqueda usa una consulta para recuperar datos de una o varias de las otras tablas de la base de datos o de otra ubicación como, por ejemplo, un servidor que ejecute Microsoft Windows SharePoint Services 3.0. El campo de búsqueda muestra entonces los datos en una lista desplegable. De forma predeterminada, el Asistente para búsquedas establece el tipo de datos del campo de tabla en Número. Se puede trabajar con los campos de búsqueda directamente en las tablas, pero también en los formularios e informes. De forma predeterminada, los valores de un campo de búsqueda aparecen en un tipo de control de lista denominado cuadro combinado: una lista con una

Page 58: RELACIONES DE ACESS

flecha desplegable: . Dependiendo de cómo el diseñador de la base de datos haya configurado el campo de búsqueda y el cuadro combinado, se pueden editar los elementos de la lista y agregar elementos a la lista. Para ello, el diseñador de la base de datos tiene que configurar una propiedad del campo de búsqueda (la propiedad se denomina Limitar a la lista y el diseñador tiene que desactivarla). Si no se pueden editar directamente los valores de una lista de búsqueda, se deben agregar o cambiar los datos en la lista predefinida de valores o en la tabla que sirve como origen del campo de búsqueda. Para obtener información sobre cómo hacerlo, vea la sección titulada "Editar los elementos de un campo de búsqueda" en el artículo Agregar uno o varios registros a una base de datos. Por último, cuando se crea un campo de búsqueda, es posible configurarlo de manera opcional para que admita varios valores. De hacerlo, la lista resultante muestra una casilla de verificación junto a cada elemento de la lista, y se pueden activar o desactivar tantos elementos como sean necesarios. Esta figura muestra una lista típica de varios valores:

Para obtener información sobre cómo crear campos de búsqueda multivalor y usar las listas resultantes, vea los artículos Usar una lista que almacene varios valores y Guía de campos multivalor. .