Formulario principal con 2 subformularios

He creado un formulario (fprincipal) y 2 subformularios (subf1 y subf2) basados en 3 tablas relacionadas.

El subf1 muestra los registros del campo relacionado situado en el fprincipal.

El subf2 muestra los registros del campo relacionado situado en el subf1.

El subf1 y el subf2 tienen incluido un botón de comando que al pulsarlo deberá ir a un formulario concreto.

He puesto los 2 subformularios en el formulario principal a través del control "subformulario/subinforme" de la pestaña "Diseño" de la cinta (utilizo access 2007), pero no sé como hacer que los tres se relacionen entre ellos. No utilizo el sistema de fichas del access 2007, utilizo ventanas superpuestas.

He probado de hacer los 3 formularios a través del asistente de access 2007, pero deja mucho que desear, sobre todo cuando intentas modificar los datos o hacer ocultos algunos campos y he desistido.

Me puedes echar una mano sobre este tema.

1 respuesta

Respuesta
1
Prueba con esto, a ver q tal: inserta el subform 2 en el subform1, y luego este en el form principal.
No lo probe, porque estoy de viaje hasta mañana y no tengo ordenador.

Gracias por tu respuesta.

Ya lo he hecho así, pero en el subf1 no me deja ver todos los registros solo me muestra uno, el resto de ellos los puedo ver pero con los botones de desplazamiento, no obstante el subf2 si que me muestra todos los registros. Creo que es por la vista predeterminada, el subf2 tiene la vista "formularios continuos", pero el subf1 tiene la vista en "un único formulario", ya que no permite ponerle la vista "formularios continuos" al contener un subformulario (subf2).

De momento, hasta que me comentes alguna otra cosa, lo dejo así provisionalmente y me dedicaré a ir programando los botones para ir a otro formulario.

Hasta pronto.

Ya di con la solución, te lo explico con el típico ejemplo:

TPaises: IDPais, País

TRegiones: IDRegion, País (Relacionado con IDPais), Región

TCiudades: IDCiudad, Región(Relacionado con IDRegion), Región

Creas un Formulario para Cada uno, los de Regiones y Ciudades, con Distribución Tabular u Hoja de Datos. Yo los llamé FPaises, FRegiones y FCiudades

Insertas los dos en el Formulario de Países, cancelando el asistente si te sale.

Seleccionas el control subformulario de Regiones, y en propiedades->pestaña datos, le pones en Vincular campos principales: IDPais, y en campos secundarios: País.

Seleccionas el otro control subformulario, y pones en campos principales: [FRegiones].Form![IDRegion], y en campos secundarios: Región.

Guardas los cambios, cierras, y abres FRegiones en vista diseño. En la pestaña Eventos, en al activar registro, le das a generar código y le pones este:

Private Sub Form_Current()
Dim ParentDocName As String
On Error Resume Next
ParentDocName = Me.Parent.Name
If Err <> 0 Then
GoTo Form_Current_Exit
Else
On Error GoTo Form_Current_Err
Me.Parent![TCiudades].Requery
End If
Form_Current_Exit:
Exit Sub
Form_Current_Err:
MsgBox Error$
Resume Form_Current_Exit
End Sub

Este código lo saqué al hacer el formulario con los dos subforms con el asistente de access 2010, pero luego lo probé haciendo yo los formularios como te comento arriba y funciona perfectamente.

Te comento cómo lo hice con el asistente, por si con el 2007 también sale:

Le das a Asistente para formularios, seleccionas TPaises y añades todos los campos, seleccionas TRegiones y añades todos los campos, y seleccionas TCiudades y añades todos los campos. Le das a siguiente, Formulario con subformularios, eliges la distribución que prefieras (Tabular/Hoja de Datos) para los subformularios, les pones los nombres que quieres y finalizar/modificar. Yo elegí modificar, y puse Visible: No los campos IDPais en FPais, IDRegios y País en el subform FRegiones e IDCiudad, Regions en el subform FCiudades.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas