Newsgroup: it.comp.appl.access
Titolo: memorizzare il nome di una form da aprire dopo averne aperta prima  un'altra

Buongiorno a tutti.
Ho un db multiditta.
Per evitare per ogni nuova fattura di selezionare la ditta, ho creato
una maschera di selezione ditta da aprire prima della form frmfatture.
Su chiusura della maschera di selezione ditta memorizzo con una query
di creazione tabella l'id della ditta selezionata. Su ogni nuova
fattura l'idazienda devequindi essere uguale all'idazienda della
tabella creata dalla query.
Il problema è questo: dal mio menu su click del pulsante faccio aprire
la maschera di selezione ditta. Dopo aver selezionato la ditta, su
chiusura mi deve aprire la form frmfatture.
Siccome intendo utilizzare la maschera di selezione ditta anche prima
di altre form che non sia solo frmfatture e cmq per altre tabelle e
record, come faccio a memorizzare il nome della form che deve aprire
la maschera di selezione ditte alla sua chiusura?
Grazie e buona domenica a tutti i frequentatori dell'NG.
Giuseppe.


Beh,
la cosa piu' semplice e' creare una variabile pubblica
in un modulo dove ci memorizzi il nome della maschera
da aprire.


Infatti avevo previsto questa soluzione anche perchè la utilizzo per
memorizzare il campo su cui avere il focus su chiusura di alcune
maschere.
Ho messo in un modulo
Public frm As Form
poi ho messo su click del pulsante che apre la prima maschera
set frm = frmfatture
docmd.openform "frmselezioneditta"
Poi sulla form frmselezioneditta su pulsante conferma evento click ho
messo
docmd.openform frm
docmd.closeform acform, "frmselezioneditta"
ma quando apro la form frmselezioneditta  mi dice errore di
compilazione evidenziandomi in Vba la stringa frm AS frmfatture
Cosa dovrei cambiare?
Grazie.

Scusa non considerare il post precedente.
Infatti avevo previsto questa soluzione anche perchè la utilizzo per
memorizzare il campo su cui avere il focus su chiusura di alcune
maschere.
Ho messo in un modulo
Public frm As Form
poi ho messo su click del pulsante che apre la prima maschera
set frm = frmfatture
docmd.openform "frmselezioneditta"
Poi sulla form frmselezioneditta su pulsante conferma evento click ho
messo
docmd.openform frm
docmd.closeform acform, "frmselezioneditta"
ma quando apro la form frmselezioneditta  mi dice "errore di run time
'2498' - Tipo di dati dell'espressione errato per uno degli argomenti.
clicco su debug e mi evidenzia il codice
DoCmd.OpenForm frm
su evento click del pulsante conferma della form frmselezioneditta.
Cosa dovrei cambiare?
Grazie.
Giuseppe.


Non capisco bene quello che hai fatto.
Dovrei avere l' applicazione sotto mano ...

 Dovrei avere l' applicazione sotto mano ...
Solo ora sono riuscito a memorizzarlo su MegaUpload
Eccolo:
http://www.megaupload.com/?d=G61YZY3G
Ciao
Giuseppe

 Giuseppe.
provato con openargs del metodo  docmd.openform?
Ad es.:
docmd.openform "frmditte",,,,,, 
me.name
nella form "frmditte" su chiusura scriverai:
docmd.openform me.openargs
-- 
Ciao
Geppo


Ciao Geppo. Grazie innanzitutto.
Il metodo OpenArgs, lo utilizzo in quasi tutte le form, per poter
tornare sulla form da cui era stata aperta quella attiva.
In questo caso, io ho un menu con circa 10 pulsanti, ognuno ha il
comando docmd.openform "frmfatture" o "frmMandati" ecc.... . Quindi su
click mi apriva la form di inserimento realtiva e per ogni inserimento
dovevo scegliere la ditta su cui lavorare.
Con la form di selezione ditta che apro su click di ognuno dei
pulsanti del menu, scelgo la ditta e su chiusura mi deve aprire la
form associata al pulsante del menu con cui aprivo la form di
inserimento desiderata.
Ho cmq provato la tua soluzione, in questo modo.
Su pulsante option1 del mio menù ho messo:
docmd.openform "frmselezioneditta",,,,,,
frmfatture.name
 o
docmd.openform "frmSelezioneDitta",,,,,,me!
frmfatture.name
.
Il messaggio di errore è : errore di runtime '424' - necessario
oggetto.
Evidentemente il metodo openargs memorizza solo il nome della form
attiva, ma non consente di memorizzare il nome della form che deve
aprire successivamente.
Purtroppo non ho ancora imparato a scrivere e utilizzare le variabile,
ma ritengo che quella indicata da radicale.002 sia il giusto metodo.
Magari una dritta sulla variabile che maldestramente ho messo nel db
caricato al link del post precedente.
Chiedo scusa a tutti, se le mie richieste sono troppo dettagliate, ma
cerco di spiegare in uno solo la situazione del db e quello che
intendo ottenere.
Ciao.
Giuseppe.

 Giuseppe.
-- 
Ciao
Geppo 

....dimenticavo, dalla maschera "frmselezioneditta" apri la form il cui nome 
hai passato con openargs in questo modo:



Grazie Geppo così funziona. Grazie
Un'ultima cosa.
Se ho bisogno oltre che di indicare la form da aprire, anche quella in
cui tornare indietro posso utilizzare la funzione
Dim strFoo As String
strFoo = Me.Name & "/" & "frmfattura
    DoCmd.OpenForm "frmselezioneditta", , , , , , strFoo
e poi sulla form frmselezioneditta fare:
docmd.openform me.Forms(Split(Me.OpenArgs, "/")(0))  per tornare alla
form precedente su pulsante esci
e
docmd.openform me.Forms(Split(Me.OpenArgs, "/")(1))  per aprire la
form frmfatture per inserire una nuova fattura.
E' giusto come procedimento?
Ciao.
Giuseppe.

 E' giusto come procedimento?
Si.


Grazie della correzione.
Ciao.
Giuseppe.