Actualizar subformulario abierto al cerrar otro formulario.

Para todos:

Tengo un formulario (1) con subformulario (2) en esté (2) tengo un botón que abre un formulario (3), lo que quiero hacer es que al cerrar el formulario (3) se actualice el subformulario (2), el formulario con el subformulario siguen abiertos cuando abro el formulario (3).

No se si me explique bien.

1 respuesta

Respuesta
2

Daniel, no dices cual es la instrucción que usas para abrir el formulario, por si hay algún critrerio, ni si el subformulario y el formulario a abrir tienen alguna relación, ni si el formulario nuevo "afecta" en algún campo de la tabla origen del subformulario, etc. Hay muchas formas de hacerlo. Por ejemplo, si tengo

Al pulsar el botón, donde tengo puesto en el evento Al hacer clic

DoCmd.OpenForm "formulario2", , , "iddetalle=" & Me.IdDetalle & "", , acDialog

Cuando lo pulso

En Producto escribo algo nuevo y al cerrar el formulario2(mira en el subformulario el nombre del producto)

En este caso, en el evento Al cerrar del formulario 2 le he puesto

Private Sub Form_Close()
If CurrentProject.AllForms("detalleventa").IsLoaded Then
Forms!DetalleVenta.Requery
End If
End Sub

Es decir, primero comprueba que el formulario DetalleVenta(aunque actúe de subformulario, no deja de ser un formulario) está cargado, que sí lo está pues lo has abierto desde él, y si lo está, le dice que "reconsulte" su origen de registros.

Saludos:

Este es el formulario FormImpuestosNuevo con subformulario FormEntregasCuenta

CLic boton rojo

abre Formulario Pagado en, lo que quisiera es que al cerrar Pagado en se actualizara el subformulario.

Probe lo que mandaste pero por algun motivo no me funciona.

Gracias.

Supongo, en este caso, ya que el botón está en el formulario, no en el subformulario, que será algo como

Docmd. Openform"formPagadoEn",,,, acformadd, acdialog

Pero, por la imagen da la impresión de que en el formulario FormPagadoEn, tienes anulado el botón de cerrar y has puesto uno. Pues la instrucción tienes que ponerla en ese botón, que en la imagen pone Cerrar. Por ejemplo

Private Sub Comando6_Click()
If CurrentProject.AllForms("formentregascuenta").IsLoaded Then
Forms!impuestosnuevo!formentregascuenta.Form.Requery
End If
DoCmd.Close
End Sub

Es lo normal que se quede como se ve en la imagen

Ya te dije que no sé como están construidos los formularios. En Access, si no le dices nada en contra, en sus propiedades-datos-Expansión automática viene predeterminado Sí. Esto lo que hace es que si, por ejemplo, escribes una S, busca el primer registro que cumpla esa condición, de forma que te muestra, por ejemplo, Sabadell, y si desplegaras el combinado verías

Sabadell

Santander

Soria

Etc

Si después de la S pones una O te aparecería marcada en negro

So ria

Supermán

De forma, que siempre te va acercando al primer registro que cumple esa condición.

Me explico, lo que me refiero es que cuando cierro el formulario Pagado En abriendo eliminado algún registro en el supformulario EntregasACuenta aparece #Eliminado y no desaparece asta que cierro el formulario. ¿Es normal?

Gracias.

No, pero no sé como eliminas el registro y si luego le dices que reconsulte su origen,

Mira, si tengo el formulario Compras con el subformulario DetalleCompra

Le he puesto que muestre Iddetalle, pero no sería necesario, sólo habría que saber que criterio usas para eliminar el registro que dices. Fíjate en el 3. Al pulsar el botón se abre el formulario 2 donde escribo en el cuadro de texto llamado Eliminar un 3

Cuando pulso el botón de cerrar

El 3 ha desaparecido y no aparece por ningún lado lo de eliminado. El código del botón Cerrar es

Private Sub Comando7_Click()
DoCmd.SetWarnings False
If CurrentProject.AllForms("COMPRAS").IsLoaded Then
DoCmd.RunSQL "delete * from detallecompra where iddetalle=" & Me.Eliminar & ""
Forms!compras!DetalleCompra.Form.Requery
End If
DoCmd.Close
End Sub

Ya te digo que no sé que criterio usas para eliminar el registro, podría ser el producto, la fecha, etc.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas