Actualizar subformulario en el formulario principal activo

Necesito resolver el siguiente problema

Tengo un formulario principal forFicha cuyos datos tiene el origen en la tabla tabFicha, con un subformulario subforContacto cuyo origen es la tabla tabContacto. Las dos tablas están relacionadas con una relación 1&1. El subformulario no es visible, salvo que contenga datos. Cuando estoy en un registro, y quiero introducir datos de Contacto Nuevos, activo un botón del formulario y me abre un formulario forDatos donde introduzco los datos del Contacto correspondientes al registro activo.

Me gustaría conseguir que al cerrar forDatos y estando el formulario principal forFicha abierto, el subformulario se hiciera visible (ya que ahora tiene datos). Ahora solo lo consigo hacer, cerrando y abriendo el formulario principal.

Respuesta
1

No sé cual es la instrucción que usas para mantener oculto el subformulario si no tiene datos. Pero supongo que ese formulario que abres, FormDatos, para meter datos, lo abres "quedando" por detrás el formulario FormFicha con el subformulario SubformContacto. Si es así, y, como te decía, sin saber la instrucción que usas, puedes poner, por ejemplo, en el evento Al cerrar del formulario FormDatos

If currentproject.allforms("frmFicha").isloaded then

forms!frmFicha!subformcontacto.form.visible=true

end if

Es decir, si el formulario FormFicha está cargado, que sí lo está, se haga visible el subformulario.

De todas formas, convendría saber dicha instrucción.

En el forFicha en el evento "Al activar registro" escribo el siguiente código:

Dim rs As Recordset
Set rs = Me.subforContacto.Form.RecordsetClone
If rs.RecordCount = 0 Then
Me.subforContacto.Form.Visible = False
Else
Me.subforContacto.Form.Visible = True
End If

Por ello el forFicha no se actualiza al cerrar forDatos

Vamos a ver si me aclaro. Desde el formulario FrmFicha abres el formulario FrmDatos, donde escribes unos valores que, supongo, se van a reflejar de algún modo en la tabla Contactos( y por tanto en el subformulario).

Si he construido el formulario Formficha donde puedes ver que tiene un subformulario SubformContactos

Al abrirlo, como en la tabla TBLContactos, ese idcliente no tiene ningún contacto relacionado, el subformulario no es visible

Pulso el botón y se abre en vista diálogo el formulario FormDatos, donde me coge el Idcliente

relleno los datos que sea y cuando lo cierro

Y el código del evento Al cerrar, del formulario FRMDatos es

Private Sub Form_Close()
If CurrentProject.AllForms("formficha").IsLoaded Then
Forms!formficha!SubFormContactos.Form.Requery
Forms!formficha!SubFormContactos.Form.Visible = True
End If
End Sub

Hola Julián

He añadido el código que me has indicado:

Private Sub Form_Close()
If CurrentProject.AllForms("forFicha").IsLoaded Then
Form!forFicha!subforContacto.Form.Requery
Form!forFicha!subforContacto.Form.Visible = True
End If
End Sub

Y aparece el mensaje de error 2465

Access no encuentra el campo "forFicha" al que haré referencia la expresión

Fíjate en la instrucción que te puse, en ambos casos la primera palabra es Forms, no form

Si le dices Form! Formficha entiende que te refieres a un control del formulario llamado FrmFicha, que no existe y por eso no lo encuentra.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas