Manejo de apertura y cierre de formularios ligado a eventos

Lo que planteo es simple pero no se como llevarlo a cabo

Ejemplo

Tengo un formulario principal llamado dashboard el cual abre los siguientes formularios:

Como verán cada formulario tiene un evento al cerrar, pero el dasboard no lo tengo implementado este evento ahora verán el porque.

Tengo los siguientes eventos al abrir :

Porque ciertamente si abro el formulario y tengo presente el evento al cerrar en el dashboard me cerraría la aplicación y justamente es aquí donde esta lo interesante de como lograr que al abrir uno de estos formularios cierre el dashboard y abra el formulario que se llama pero que no se sierre la aplicación (por el evento al cerrar en el dashboard)

2 Respuestas

Respuesta
2

En mi opinión, no deberías tener programados los eventos "al cerrar", sino un botón en cada formulario que te haga las acciones correspondientes, a saber;

a) En Dashboard: que cierre la aplicación

b) En lo demás formularios: cerrar el formulario actual y abrir Dashboard

Lo mismo se podría decir de los eventos "al abrir". En el mismo código que abres un formulario, puedes añadir una linea para cerrar el Dashboard.

Eso ya lo había considerado, pero solo mejor seria implementar el botón salir de la BD en el dasboard y quito el evento al cerrar ... el lo más simple y funcional pero solo quería saber si se puede hacer de la forma en que lo planteaba en mi pregunta

Si no te vale mi sugerencia, lo único que se me ocurre es que le metas alguna condición para salir o no de la aplicación, como podría ser que si está alguno de los formularios abiertos no salga... pero es enredar el código sin necesidad (de nuevo en mi opinión)

Respuesta
2

Otra forma. ¿Por qué tienes que cerrar el Dashboard? ¿Por qué no ponerlo como no visible?

Por ejemplo, supongo que en ese formulario tendrás algo como

Docmd.openform"formulario1"...

Pues en el evento Al cargar del formulario 1 puedes poner

Private Sub Form_Load()
If CurrentProject.AllForms("dashboard").IsLoaded Then
Forms!dashboard.Visible = False
End If
End Sub

Y en el evento Al cerrar

Private Sub Form_Load()
If CurrentProject.AllForms("dashboard").IsLoaded Then
Forms!dashboard.Visible = True
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas