Access - Llamada a formularios

 
Vista:

Llamada a formularios

Publicado por Pablo (26 intervenciones) el 12/05/2006 20:44:25
Hola, mi consulta es la siguiente:
En un formulario (llamemos principal) llamo a otro formulario con un OpenForm. Los parametros que uso son el nombre del formulario (digamos secundario), acNormal, ,,acFormPropertySettings, addialog.
El acdialog lo uso para que el formulario secundatrio sea modal y emergente. de todas maneras entre los datos de "secundario" dice modal y emergente.
Cuando lo llamo desde el principal, el principal sigue funcionando, es decir, ejecuta el open, y sigue con la instruccion siguiente. Como puedo hacer para que se quede parado hasta que termine el otro?????
Me parecia que con modal y emergente bastaba pero parece que no.
Gracias desde ya.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Llamada a formularios

Publicado por Chea (1015 intervenciones) el 12/05/2006 22:27:52
Si estás abriendo un formulario usando acdialog, el código del formulario que lo llama se va a parar justo en esa línea y, si no lo hace, será porque no lo estás abriendo con acdialog: repásalo, que a menudo nos empeñamos en que dos y dos son cinco.

Un formulario abierto con acdialog es modal y emergente pero no es lo mismo al revés, es decir, un fomulario modal y emergente no tiene porqué ser diálogo, es decir, no tiene porqué parar la ejecución del código.

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Llamada a formularios

Publicado por Pablo (26 intervenciones) el 13/05/2006 11:38:43
José, mira, lo que pasa es los siguiente. Ahora me doy cuenta. Al cargar el formulrio principal hago una llamada al formulario secundario con hidden pa tenerlo en memoria y cuando lo llamo la segunda vez primero le pongo algunos datos y luego lo llamo. De esta manera el parametro acDialog no tiene resultados.
Como puedo hacer entonces para, al formulario que llamo acDialog, pasarle datos y que me devuelva datos. Es solo con OpenArgs???? Porque es incomodo. aunque si es la unica lo hare.
Muchisimas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Llamada a formularios

Publicado por Pablo (26 intervenciones) el 13/05/2006 12:03:17
Y una pregunta mas. Si lo llamo asi (y probe y funciona) y le paso los argumentos con openargs, como recibo los resultados del otro?? Escribiendo directamente en el formulario principal desde el secundario?
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Llamada a formularios

Publicado por Chea (1 intervención) el 13/05/2006 16:31:34
En el promulario llamador puedes declarar como públicas las variables a las que necesites pasar datos desde el formulario diálogo.

Al ser públicas, las variables se comportan como propiedades, es decir, te puedes referir a ellas como si fuera una propiedad del formulario, lo mismo para leer que para escribir. Por ejemplo (escribo sobre la marcha)

En el formulario que llama:

Public miVariable as Long
...
miVariable = 0
DoCmd.OpenForm stDocName, , , , , acDialog
If miVAriable....

En el formulario de diálogo:

If CurrentProject.AllForms(MiFormularioquellama).IsLoaded Then
Forms!MiFormularioquellama.MiVariable = X
End If

Para sustituir el OpenArgs, puedes comunicarte con las variables públicas, aunque OpenArgs sigue siendo útil. Por ejemplo, en el OpenArgs, puedes pasarle el nombre del formulario que llama y así puedes saber qué formulario lo ha llamado y, por tanto, qué variable púlbica debes actualizar:

stNombreFormquellama = nz(me.OpenArgs)
...
....
Forms(stNombreFormquellama).MiVariable = X

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Llamada a formularios

Publicado por Pablo (26 intervenciones) el 13/05/2006 16:42:50
Gracias José. Eres un campeón.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar