Newsgroup: it.comp.appl.access
Titolo: Condizioni di chiusura maschera

salve a tutti.
il problema è questo:
ho una maschera principale da dove posso aprire tutte le maschere presenti
nel db.
perciò faccio questo:
    DoCmd.OpenForm "maschera1"
    DoCmd.Close acForm, "mPrincipale"
e quindi nella maschera1 avrò:
    DoCmd.Close
    DoCmd.OpenForm "mPrincipale"
ecc.... per tutte le altre maschere.
io vorrei anche aprire la maschera1 da un'altra maschera che non sia quella
principale
tornando poi nella maschera con cui la ho aperta e non quella principale
mi spiego.
    DoCmd.OpenForm "maschera1"
    DoCmd.Close acForm, "maschera2"
apro la maschera2 dalla maschera1
ora devo chiuderla e dovrei fare:
    DoCmd.Close
    DoCmd.OpenForm "maschera1"
ma non posso perchè nella maschera1 trovo ovviamente:
    DoCmd.Close
    DoCmd.OpenForm "mPrincipale"
come posso fare ?
grazie 1000
ciao


Scusa ma se io ho la maschera1 e apro la maschera2 e da questa apro la
maschera3 e gestito come voglio la maschera3 la chiudo non rimane apreta la
maschera2 e alla sua chiusura la maschera1?
ciao MAssimiliano
--------------------------------
Inviato via 
http://usenet.libero.it

 ciao MAssimiliano
il problema è che quando chiudo la maschera2 oltre la maschera1 che è aperta
si apre anche la maschera principale
è questo che non vorrei
spero di essermi spiegato meglio

 wrote in message
pgtua.101855$DT4.3...@twister1.libero.it...

crea una variabile globale in moduli quando apri la maschera dalla
principale la poni ad 1 se invece la apri dall'altra maschera la poni a 0
nell'evento di chiusura fai un sulla variabile globale
Ciao Massimo

 wrote in message
wItua.101449$iy5.3...@twister2.libero.it...

Sorri mi è rimasto un IF nella tastiera..
nell'evento di chiusura fai un IF sulla variabile globale
Ciao Massimo

 ha scritto nel messaggio
news:CYsua.101295$iy5.3...@twister2.libero.it...

Nei metodi OpenForm con cui apri maschera1 inserisci nell'argomento apriarg
(vedi help) il nome della maschera chiamante; quindi se la apri dalla
maschera mPrincipale scriverai:
DoCmd.OpenForm "maschera1", , , , , , "mPrincipale"
Mentre quando la apri ma maschera2 scrivi:
DoCmd.OpenForm "maschera1", , , , , , "maschera2"
Quindi al momento di chiudere maschera1 e riaprire la maschera chiamante
scriverai:
DoCmd.Close
DoCmd.OpenForm Me.OpenArgs
e così verrà riaperta la maschera chiamante il cui nome è memorizzato nella
proprietà OpenArgs di maschera1.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 nella proprietà OpenArgs di maschera1.
sarebbe perfetto se non dovessi chiudere la maschera chiamante
cioè:
DoCmd.OpenForm "maschera1", , , , , , "mPrincipale"
DoCmd.Close    ovviamente quando vado a chiudere la maschera1 mi dice che
l'oggetto è stato chiuso o eliminato.

 che l'oggetto č stato chiuso o eliminato.
come non detto anche se la maschera chiamante č aperta il risultato č il
medesimo.
l'oggetto a cui si fa riferimento nell'espressione č stato chiuso o
eliminato

 ha scritto nel messaggio
news:4Ruua.101666$iy5.
3102214
@twister2.libero.it...

Non capisco la tua osservazione:
DoCmd.OpenForm "maschera1", , , , , , "mPrincipale"
DoCmd.Close
è codice VBA che va generato nella maschera mPrincipale e
DoCmd.Close
serve a chiudere tale maschera e non la maschera1, che verrà invece chiusa
con del codice generato in maschera1; insomma non cambia nulla da quello che
facevi prima, devi solo aggiungere il parametro apriarg quando apri
maschera1 e usare il contenuto della proprietà OpenArgs di maschera1 per
riaprire la maschera chiamante: se non hai introdotto altri errori, dovresti
avere solo le segnalazione di errore che avevi prima: quello che ti ho
suggerito è solo il modo di memorizzare il nome della maschera chiamante per
riaprirla dopo aver chiuso maschera1 e non ti ho suggerito di sconvolgere la
logica del programma.


 programma.
io ho fatto proprio quello che hai detto e cioè ho aggiunto solo il
parametro apriarg, ma
il risultato è quello che ti ho postato
l'oggetto a cui si fa riferimento nell'espressione è stato chiuso o
eliminato

 programma.
ho capito dove sbagliavo
non così
DoCmd.Close
DoCmd.OpenForm Me.OpenArgs
ma
DoCmd.OpenForm Me.OpenArgs
DoCmd.Close acForm,"maschera1"

 ha scritto nel messaggio
news:%Bvua.102285$DT4.3...@twister1.libero.it...

Certo, altrimenti fai riferimento alla proprietà OpenArgs di maschera1 dopo
aver chiuso la maschera.
