formulario emergente

03/03/2014 - 20:27 por joslan2 | Informe spam
Hola,
Tengo un formulario emergente y modal (ha de ser así), y en su form_load
hago unas comprobaciones, las cuales pueden generar otro formulario
emergente y modal; pero en cuanto termina el form_load del primero, el
segundo formulario queda tapado por el primero; ¿hay forma de que prevalezca
el segundo?

Algunos intentos han sido:
-me.popup no se deja modificar en tiempo de ejecución.
-he probado a poner las comprobaciones en el form_open y usar el cancel=true
y funciona (evidentemente, porque el primer formulario muere), pero algunas
solo son avisos, y el primero ha de persistir cuando tales se acepten.

Dicho de otra manera, ¿existe algun evento que se haga una sola vez (como el
susodicho form_load) DESPUÉS de que se pinte la pantalla?
-el me.resize no me vale, pues me hace las comprobaciones dos veces al
existir un docmd.maximize.
-el form_activate ni se entera (no se ejecuta).

Agradecería alguna pista sobre como actuar, o un enlace que explique el
proceso de arranque de los formularios de forma clara (la ayuda de access
2003 no me ha ayudado).
Gracias,
José

Preguntas similare

Leer las respuestas

#1 José Mª Fueyo
04/03/2014 - 10:50 | Informe spam
Hola
Sí pones el primer formulario como emergente, siempre será emergente y estará por encima.
¿Necesitas tenerlo así? quizás podrías jugar con la propiedad de visible, pero dejándolo como modal a false.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#2 joslan2
11/03/2014 - 20:11 | Informe spam
Gracias, Jose Mª:
Probado con .visible, pero como hay otros forms por debajo, no puedo dejarlo
modal a false.
Sí, ha de ser emergente y modal. Era saber en que momento, desde ese primer
form, puedes lanzar otro segundo emergente y modal que sea protagonista de
la pantalla.
Está claro que es después del open, load, resize, etc. Debe ser cuando ya se
puede interactuar con él (cuando se queda en "stand-by"); y esto me alumbro
la neurona y conseguí lo que quería, simplemente con un form_timer de un
segundo, que se ejecuta una sóla vez: lanza si procede el segundo form (que
se queda protagonista) y se desactiva (me.timerinterval=0)
Me quedo sin saber desde donde empieza el milisegundo cero (si desde el open
o el load o el resizeo cuando comienza a estar "stand-by")...
Un saludo.
Respuesta Responder a este mensaje
#3 Jos
12/03/2014 - 09:53 | Informe spam
Hola
Mira en la ayuda "Orden de eventos para objetos de base de datos", ahí podrás ver cuando ocurre un evento al abrir un formulario (Open → Load → Resize → Activate → Current).

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#4 joslan2
12/03/2014 - 21:57 | Informe spam
Huy, hasta lo imprimí hace tiempo pero miente como un cosaco (es un decir
8-), p.ej. el Activate lo hace cuando el form es NO emergente y sí si lo
es, el resize lo hace dos veces si tiene un docmd.maximize dentro, etc. Se
puede comprobar haciendo trazas. Pero bueno, ya salí del paso.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida