Actualizar datos de un formulario mediante otro

Tengo un formulario principal "Presupuesto" en donde cargo los datos de un cliente mediante un cuadro combinado.

Si el cliente no existe, presiono un botón que me abre el formulario "Clientes" el cual tiene el siguiente evento:

Private Sub Form_Close()

[Forms]![presupuesto].Refresh

End Sub

Para que al volver a "Presupuesto" ya figure actualizada la lista del combinado y funciona perfecto.

El problema esta cuando quiero cargar un cliente sin hacer un presupuesto y abro el formulario "Clientes" sin tener "Presupuesto" abierto. Lógico, el evento no encuentra el formulario para actualizarlo.

De que manera modifico el código como para que solo ejecute el refresh si esta el formulario "Presupuesto" abierto, de lo contrario, ¿pase por alto dicha orden?

1 respuesta

Respuesta
2

Yo acostumbro a usar esta función en mis BDs:

'--------------------------------------------------------------------------------------------
'Función que indica si un formulario está cargado o no
'--------------------------------------------------------------------------------------------
Public Function fncFormCargado(elFormulario As String) As Boolean
    Dim Frm As AccessObject
    fncFormCargado = False 'Inicializamos la función en "Falso"
    For Each Frm In CurrentProject.AllForms
        If Frm.Name = elFormulario Then
            If Frm.IsLoaded = True Then
                fncFormCargado = True 'Si está cargado, la función devuelve "Verdadero"
                Exit Function
            End If
        End If
    Next Frm
End Function

y tu código quedaría así:

Private Sub Form_Close()
If fncFormCargado("presupuesto") Then [Forms]![presupuesto].Refresh
End Sub

Aunque también lo puedes hacer directamente:

Private Sub Form_Close()
For Each Form in CurrentProject.AllForms
   If Form.Name="presupuesto" Then [Forms]![presupuesto].Refresh
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas