|
Responder
|
| Autor | |
paloma
Habitual
Unido: 24/Junio/2010 Estado: Sin conexión Puntos: 139 |
Tema: Ver en formulario padre, registro de subformularioEnviado: 17/Noviembre/2022 a las 12:22 |
|
Hola. Estoy intentando que en el evento Al Activar registro del subformulario, se visualice el registro en el formulario padre, donde se ve más información en detalle. Ambos formularios tienen vinculado el Campo "Contrato". Este campo puede tener el mismo valor en varios registros, por lo que cuando abro el formulario principal, "frmContratos", se muestra en el subformulario "frmDetalle", todos los registros del mismo Contrato, pongamos Nº 5599, y en el formulario padre, el primer registro. Y de ahí no se mueve. Yo quiero visualizar en frmContratos, el registro que activo en el subformulario pero no puedo. El código lo he cambiado mil veces. Tengo esto: If Me.Parent.Name = "frmContratos" Then Dim frmCurrentForm As Form Set frmCurrentForm = Screen.ActiveForm If Screen.ActiveControl = "frmContratos" Then Dim rst As Recordset Set rst = Me.RecordsetClone rst.FindFirst IdContrato = Me.IdContrato If rst.NoMatch Then MsgBox rst.Bookmark Else Me.Parent.Bookmark = rst.Bookmark End If End If End If La condición de si el formulario padre es "frmContratos" es porque el subformulario está anexado en otro formulario también. Gracias Saludos,
|
|
![]() |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Enviado: 17/Noviembre/2022 a las 18:35 |
|
Hola,
Sospecho que no se mueve porque el subformulario está vinculado por el campo Contrato. ¿No sería más adecuado que el subformulario fuera independiente? Creo que deberías probar sin vincular campos principales ni secundarios. Un saludo |
|
![]() |
|
paloma
Habitual
Unido: 24/Junio/2010 Estado: Sin conexión Puntos: 139 |
Enviado: 17/Noviembre/2022 a las 19:31 |
|
Hola, gracias por responder. Pero quitada la vinculación sigue sin funcionar y ahora no sé cómo hacer para que al abrir el formulario padre, el subformulario me muestre los registros que tienen el mismo Contrato que muestra el padre. Yo al formulario padre llego desde otro formulario: DoCmd.OpenForm "frmCG", , , "Contrato = " & Me.Contrato Y me muestra el primer registro que tiene ese Contrato y también quiero que el subformulario muestre todos del mismo Contrato. Además de eso, mientras me desplazo por el subform, quiero que el registro activo se muestre en el padre, no sé si me estoy explicando,,, Gracias, Saludos, |
|
![]() |
|
paloma
Habitual
Unido: 24/Junio/2010 Estado: Sin conexión Puntos: 139 |
Enviado: 18/Noviembre/2022 a las 00:50 |
|
Pues lo he conseguido pero no sé ni cómo En el segundo mensaje que puse estaba además mezclando algunos nombres de formularios, para mayor lío.Me gustaría entender el código un poco mejor, xavi, ¿qué te parece? Me he valido de esta página: Detallo. Yo tengo un formulario primario, frmBase que tiene un subformulario hj datos: frmDetalle. Dando doble click en el control "Contrato", me abre el formulario frmContratos con la condición where del Contrato seleccionado: DoCmd.OpenForm "frmContratos", , , "Contrato = " & Me.Contrato Bien. Este formulario, también tiene el subformulario anterior, frmDetalle. En el evento "Al activar registro" de frmDetalle tengo este código, que según la web, sincroniza el subformulario con el formulario padre: If Me.Parent.Name = "frmContratos" Then With Me.Parent.RecordsetClone .FindFirst "IdCG = " & IdCG If Not .NoMatch Then Me.Parent.Bookmark = .Bookmark Else 'Aquí el Else realmente me sobra porque siempre tendré registros en el subform, aunque sea uno Me.Parent.SetFocus 'DoCmd.GoToRecord acForm, Me.Parent.Name End If End With End If Y en el evento "Al Cargar" del formulario padre: frmContratos, pongo este código, que sincroniza el formulario padre con el subformulario: With Me.subCont.Form.RecordsetClone If Not .NoMatch Then Me.subCont.Form.RecordSource = "select * from tblContratos where Contrato = " & Me.Contrato Else Me.subCG.SetFocus End If End With subCont es el nombre del objeto subformulario y tblContratos es la tabla origen de todos los formularios. En la página web en lugar de Recordsource, ponía también un FindFirst pero no me salía. Y señores me sale. Me sale y no doy crédito. Xavi, ¿es correcto todo, quiero decir, no me petará por algún lado, lo tengo bien hilado? Es que a mí el FindFirst me cuesta pillarlo y no digamos el Bookmark, siempre voy a rebufo y me cuesta hacerme Gracias por tu tiempo y saludos!
|
|
![]() |
|
paloma
Habitual
Unido: 24/Junio/2010 Estado: Sin conexión Puntos: 139 |
Enviado: 23/Febrero/2023 a las 10:10 |
|
Se puede cerrar el hilo saludos,
|
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |