Crear un formulario que contiene un subformulario (formulario de uno a varios)

Crear un formulario que contiene un subformulario (formulario de uno a varios)

Al trabajar con datos relacionales (datos relacionados que están almacenados en tablas independientes), a menudo necesita ver los datos de varias tablas o consultas en el mismo formulario. Por ejemplo, puede que quiera ver al mismo tiempo datos de clientes de una tabla e información sobre los pedidos de clientes desde otra tabla. Los subformularios son una herramienta útil para hacerlo, y Access ofrece varios métodos para crearlos rápidamente.

Nota:  Este artículo no es válido para las aplicaciones web de Access (el tipo de base de datos que se diseña con Access y se publica en línea).

¿Qué quiere hacer?

Información sobre subformularios

Crear o agregar un subformulario

Crear un formulario que contenga un subformulario mediante el Asistente para formularios

Agregar uno o varios subformularios a un formulario existente mediante el Asistente para subformularios

Crear un subformulario arrastrando un formulario hasta otro

Abrir un subformulario en una nueva ventana de la vista Diseño

Cambiar la vista predeterminada de un subformulario

Agregar datos relacionados a un formulario sin crear un subformulario

Información sobre subformularios

Un subformulario es un formulario que se inserta en otro. El formulario contenedor se denomina formulario principal, y el formulario contenido en un formulario se llama subformulario. Una combinación de formulario y subformulario se denomina a veces formulario jerárquico, formulario maestro/detalles, o formulario principal/secundario.

Los subformularios son especialmente útiles para mostrar datos de tablas o consultas que tienen una relación uno a varios. Una relación uno a varios es una asociación entre dos tablas en la que el valor de la clave principal de cada registro de la tabla principal se corresponde con el valor de los campos coincidentes de varios registros de la tabla relacionada. Por ejemplo, se puede crear un formulario donde se muestren datos de empleados y que, a su vez, contenga un subformulario donde se muestren todos los pedidos de los empleados. Los datos de la tabla Empleados son el lado “uno” de la relación. Los datos de la tabla Pedidos son el lado “varios” de la relación (cada empleado puede tener más de un pedido).

Un formulario que contiene un subformulario

1. En el formulario principal, se muestran los datos del lado “uno” de la relación.

2. En el subformulario, se muestran los datos del lado “varios” de la relación.

El formulario principal y el subformulario de este tipo de formulario están vinculados de forma que en el subformulario solo se muestran los registros relacionados con el registro actual del formulario principal. Por ejemplo, cuando en el formulario principal se muestra la información de Naiara Padilla, en el subformulario solo se muestran sus pedidos. Si el formulario y el subformulario no estuvieran vinculados, en el subformulario se mostrarían todos los pedidos, no solo los de Naiara.

En la siguiente tabla se definen algunos términos asociados con los subformularios. Access se encarga de la mayoría de los detalles si se usan los procedimientos descritos en este artículo, pero es útil saber lo que sucede "entre bastidores" por si hay que realizar modificaciones más adelante.

Término

Definición

Control de subformulario

Control que inserta un formulario en otro. El control de subformulario se puede considerar como una "vista" de otro objeto de la base de datos, ya sea otro formulario, una tabla o una consulta. El control de subformulario proporciona propiedades que permiten vincular los datos presentados en el control a los datos del formulario principal.

Propiedad Objeto origen

Propiedad del control de subformulario que determina el objeto que se muestra en el control.

Hoja de datos

Representación simple de datos en filas y columnas, similar a una hoja de cálculo. El control de subformulario muestra una hoja de datos cuando su objeto de origen es una tabla o consulta, o bien, cuando su objeto de origen es un formulario cuya propiedad Vista predeterminada está establecida en Hoja de datos. En estos casos, el subformulario se denomina a veces hoja de datos u hoja secundaria de datos en vez de subformulario.

Propiedad Vincular campos secundarios

Propiedad del control de subformulario que especifica los campos del subformulario que lo vinculan al formulario principal.

Propiedad Vincular campos principales

Propiedad del control de subformulario que especifica los campos del formulario principal que lo vinculan al subformulario.

Notas: 

  • Para obtener los mejores resultados, establezca relaciones entre tablas antes de seguir los procedimientos de este artículo. De este modo, Access podrá crear automáticamente los vínculos entre los subformularios y los formularios principales. Para ver, agregar o modificar las relaciones entre las tablas de una base de datos, en la pestaña Herramientas de base de datos, en el grupo Mostrar u ocultar, haga clic en Relaciones.

  • Cuando un control de subformulario tiene un formulario como objeto de origen, contiene los campos del formulario y se puede ver como un único formulario, un formulario continuo o una hoja de datos. Basar un subformulario en un objeto de formulario tiene como ventaja que se pueden agregar campos calculados al subformulario, como [Cantidad] * [Precio unidad].

  • Se puede insertar una hoja de datos o vista dinámica en un formulario creando un control de subformulario cuyo objeto de origen sea una tabla o consulta. Para obtener más información, vea la sección Agregar datos relacionados a un formulario sin crear un subformulario.

Principio de página

Crear o agregar un subformulario

Use la siguiente tabla para determinar el procedimiento que es más adecuado para la situación.

Escenario

Procedimiento recomendado

Desea que Access cree un formulario principal y un subformulario, y que vincule el subformulario al formulario principal.

Crear un formulario que contenga un subformulario con el Asistente para formularios

Desea usar un formulario existente como formulario principal, pero desea que Access cree un nuevo subformulario y lo agregue al formulario principal.

Agregar uno o varios subformularios a un formulario existente con el Asistente para subformularios

Desea usar un formulario existente como formulario principal y desea agregar uno o varios formularios existentes a ese formulario como subformularios.

Crear un subformulario arrastrando un formulario hasta otro

Crear un formulario que contenga un subformulario mediante el Asistente para formularios

Con este procedimiento se crea una nueva combinación de formulario y subformulario mediante el Asistente para formularios. También es la forma más rápida de empezar si aún no se han creado los formularios que se van a usar como formulario principal o subformulario.

  1. En el grupo Formularios de la pestaña Crear, haga clic en Asistente para formularios. Si usa Access 2007, haga clic en Crear > Más formularios (en el grupo Formularios) > Asistente para formularios.

  2. En la primera página del asistente, en la lista desplegable Tablas/Consultas, seleccione una tabla o consulta. En este ejemplo, para crear un formulario denominado Empleados que muestre los pedidos de cada empleado en un subformulario, vamos a seleccionar Tabla: Empleados (el lado "uno" de la relación uno a varios).

    Nota: No importa la tabla o consulta que elija primero.

  3. Haga doble clic en los campos de esta tabla o consulta que desee incluir.

  4. En la misma página del asistente, en la lista desplegable Tablas/consultas, seleccione otra tabla o consulta de la lista. En este ejemplo, seleccionaremos la tabla Pedidos (el lado “varios” de la relación uno a varios).

  5. Haga doble clic en los campos que quiera incluir de la tabla o consulta.

  6. Al hacer clic en Siguiente (si configuró correctamente las relaciones antes de iniciar el asistente), se mostrará la pregunta ¿Cómo desea ver los datos? (es decir, de qué tabla o consulta). Seleccione la tabla del lado “uno” de la relación uno a varios. En este ejemplo, para crear el formulario Empleados, haremos clic en Por empleados. En el asistente se mostrará un diagrama pequeño de un formulario. La página será similar a ilustración siguiente:

    Página de subformulario del Asistente para formularios

    El cuadro de la parte inferior del diagrama de formulario representa el subformulario.

    Nota: Si en el asistente no se muestra la pregunta ¿Cómo desea ver los datos?, quiere decir que Access no encontró una relación uno a varios entre las tablas o consultas seleccionadas. El asistente continuará, pero Access no agregará un subformulario al formulario. Antes de continuar, puede hacer clic en Cancelar y examinar las relaciones entre tablas.

  7. En la parte inferior de la página del asistente, seleccione Formulario con subformularios y, a continuación, haga clic en Siguiente.

  8. En la página ¿Qué distribución desea aplicar al subformulario?, haga clic en la opción de diseño que desee y, a continuación, haga clic en Siguiente. Ambos estilos de diseño ordenan los datos del subformulario en filas y columnas, pero un diseño tabular se puede personalizar con más facilidad. Se puede agregar color, gráficos y otros elementos de formato a un subformulario tabular, mientras que una hoja de datos es más compacta, como la vista de hoja de datos de una tabla.

  9. En la página siguiente del asistente, seleccione un estilo de formato para el formulario y, después, haga clic en Siguiente. Si seleccionó Tabular en la página anterior, el estilo de formato que seleccione también se aplicará en el subformulario.

  10. En la página final del asistente, escriba los títulos que desee para los formularios. Access asigna nombres a los formularios según los títulos que escriba, y etiqueta el subformulario de acuerdo con los títulos que escriba para el subformulario.

  11. Especifique si quiere abrir el formulario en la vista Formulario (para que pueda ver o agregar información) o en la vista Diseño (para que pueda modificar su diseño) y, después, haga clic en Finalizar.

    Access creará dos formularios: uno para el formulario principal que contiene el control de subformulario, y otro para el subformulario en sí.

Principio de página

Agregar uno o varios subformularios a un formulario existente mediante el Asistente para subformularios

Use este procedimiento para agregar uno o varios subformularios a un formulario existente. Para cada subformulario, puede optar por que Access cree un nuevo formulario o use uno existente como subformulario.

  1. Haga clic con el botón derecho en el formulario existente del panel de navegación y, después, haga clic en Vista Diseño.

  2. En el grupo Controles de la pestaña Diseño, haga clic en la flecha abajo para mostrar la galería Controles y asegúrese de que la opción Utilizar asistentes para controles está seleccionada.

  3. En la pestaña Diseño, en el grupo Controles, haga clic en el botón Subformulario/subinforme.

  4. En el formulario, haga clic en la ubicación en la que desee colocar el subformulario.

  5. Siga las instrucciones del asistente.

    Al hacer clic en Finalizar, Access agregará un control de subformulario al formulario. Si selecciona la opción para que Access cree un formulario para el subformulario (en lugar de usar un formulario existente), Access creará el objeto de formulario y lo agregará al panel de navegación.

Crear un subformulario arrastrando un formulario hasta otro

Use este procedimiento si desea usar un formulario existente como formulario principal y desea agregar uno o varios formularios existentes a ese formulario como subformularios.

  1. En el panel de navegación, haga clic con el botón secundario en el formulario que desee usar como formulario principal y, a continuación, haga clic en Vista Presentación.

  2. Arrastre el formulario que quiera usar como el subformulario desde el panel de navegación hasta el formulario principal.

    Access agregará un control de subformulario al formulario principal y enlazará el control al formulario que arrastró desde el panel de navegación. Access también intentará vincular el subformulario al formulario principal, según las relaciones que definió en la base de datos.

  3. Repita este paso para agregar más subformularios al formulario principal.

  4. Para comprobar que la vinculación se haya realizado correctamente, en el grupo Vistas de la pestaña Inicio, haga clic en Ver, elija Vista Formulario y, a continuación, use el selector de registros del formulario principal para ver varios registros. Si el subformulario se filtra correctamente para cada empleado, el procedimiento está completo.

Si la prueba anterior no funciona, Access no pudo determinar cómo vincular el subformulario al formulario principal, y las propiedades Vincular campos secundarios y Vincular campos principales del control de subformulario están en blanco. Estas propiedades deben configurarse manualmente de la siguiente manera:

  1. Haga clic con el botón derecho en el formulario principal del panel de navegación y, después, haga clic en Vista Diseño.

  2. Haga clic una vez en el control de subformulario para seleccionarlo.

  3. Si no se muestra el panel de tareas Hoja de propiedades, presione F4 para visualizarlo.

  4. En la hoja de propiedades, haga clic en la pestaña Datos.

  5. Haga clic en el botón Generar Botón Generador junto al cuadro de propiedades Vincular campos secundarios.

    Se mostrará el cuadro de diálogo Vinculador de campos de subformulario.

  6. En las listas desplegables Campos principales y Campos secundarios, seleccione los campos a los que quiera vincular los formularios y, después, haga clic en Aceptar. Si no está seguro de los campos que quiere usar, haga clic en Sugerir para que Access intente determinar los campos vinculantes.

    Sugerencia: Si no ve el campo que desea 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 de vinculación. Por ejemplo, si el formulario está basado en una consulta, debe asegurarse de que el campo de vinculación está en los resultados de la consulta.

  7. Guarde el formulario principal, cambie a la vista Formulario y, a continuación, compruebe que el formulario funciona según previsto.

Abrir un subformulario en una nueva ventana de la vista Diseño

Si quiere cambiar el diseño de un subformulario mientras trabaja en el formulario principal en la vista Diseño, puede abrir el subformulario en su propia ventana:

  1. Haga clic en el subformulario para seleccionarlo.

  2. En la pestaña Diseño, en el grupo Herramientas, haga clic en Subformulario en nueva ventana.

Principio de página

Cambiar la vista predeterminada de un subformulario

Al agregar un subformulario a un formulario, el control de subformulario/subinforme muestra el subformulario de acuerdo con la propiedad Vista predeterminada del subformulario. Esta propiedad se puede establecer en los siguientes valores:

  • Un único formulario

  • Formularios continuos

  • Hoja de datos

  • Formulario dividido

Al crear un subformulario, esta propiedad se puede establecer en Formularios continuos o en Un único formulario. Pero, si establece la propiedad Vista predeterminada de un subformulario en Hoja de datos, el subformulario se mostrará como una hoja de datos en el formulario principal.

Para establecer la propiedad Vista predeterminada de un subformulario:

  1. Cierre todos los objetos abiertos.

  2. En el panel de navegación, haga clic con el botón derecho en el subformulario y, después, haga clic en Vista Diseño.

  3. Si no se muestra la hoja de propiedades, presione F4.

  4. En la lista desplegable en la parte superior de la hoja de propiedades, asegúrese de que la opción Formulario está seleccionada.

  5. En la pestaña Formato de la hoja de propiedades, establezca la propiedad Vista predeterminada en la vista que desee usar.

    Nota:  Si la vista que desea usar no está en la lista, asegúrese de que la propiedad “Permitir vista…” para dicha vista se establezca en . Por ejemplo, si desea especificar Hoja de datos como la vista predeterminada del formulario, asegúrese de que la propiedad Permitir vista Hoja de datos se establezca en .

  6. Guarde y cierre el subformulario. A continuación, abra el formulario principal para comprobar los resultados.

Principio de página

Agregar datos relacionados a un formulario sin crear un subformulario

No siempre es necesario crear un objeto de formulario independiente para mostrar datos relacionados. Por ejemplo, si trabaja en un formulario en la vista Presentación o en la vista Diseño y arrastra una tabla o consulta desde el panel de navegación hasta el formulario, Access creará un control de subformulario o subinforme y se mostrarán los datos en ese objeto. La propiedad Vista predeterminada del objeto determina cómo se muestran los datos. En general, se establece en la vista Hoja de datos, pero también se puede establecer la propiedad Vista predeterminada de una tabla o consulta en Un único formulario, Formulario dividido o Formularios continuos, lo que ofrece más flexibilidad al mostrar datos relacionados en los formularios.

Nota:  El cambio de la propiedad Vista predeterminada de una tabla o consulta determina cómo se muestra cada vez que se abre, si se abre desde el panel de navegación o si se ve en un control de subformulario/subinforme. Dado que el cambio de configuración de la vista de una tabla a veces puede provocar confusión cuando se abre la tabla desde el panel de navegación, se recomienda usar una consulta para este procedimiento en lugar de una tabla.

Principio de página

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×