Newsgroup: it.comp.appl.access
Titolo: Maschere aperte o chiuse

Salve,
da due maschera A e B  apro un maschera C.
Dato che ho necessità di aggiornare una combo contenente i dati che 
inserisco dalla maschera C,
ho creato questa riga sulla chiusura di C:
Forms![Maschera_A]![Controllo_A].Requery
e qui nessun problema.
Il problema nasce quando eseguo l'apertura dalla maschera B,
mi restituisce l'errore proprio  sulla riga sopra inserita ovviamente.
Quesito:
posso chiedere di controllare quale delle due maschere è aperta?
per spiegare meglio faccio un esempio ovviamente non corretto:
If isopen maschera A then Forms![Maschera_A]![Controllo_A].Requery else 
Forms![Maschera_B]![Controllo_B].Requery
Grazie x l'eventuale risposta.
Ciao, JeanLoup 

JeanLoup ha scritto:

http://www.donkarl.com/it/
FAQ 4.19 Verificare se una maschera è aperta
--
rgrds
SC
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 FAQ 4.19 Verificare se una maschera è aperta
Non devo verificare se una maschera è aperta, ma quale delle due è aperta.
Ciao,JeanLoup. 

"JeanLoup" <v722...@NOSPAMhotmail.it> wrote in message
news:439d6125$0$328$
5fc...@news.tiscali.it

Se tu aprissi la Form_C in modalità Dialog(senza pulsanti
di chiusura) sarebbe gestibile
sfruttando la proprietà VISIBLE della Form_C tramite pulsante
dedicato, quindi il ritorno al codice della Form chiamante 
e la gestione del recupero valore con successiva chiusura di Form_C.
Se invece vuoi gestirlo dalla Form_C sfrutta il parametro OpenArgs
per passare alla Form_C il nome della Form chiamante e del
controllo da aggiornare, quindi puoi fare così:
Come OpenArgs passi:
me.Name & "," & NomeControllo
Nella Form_C:
Private NomeFormChiamante as string
Private NomeControllo as string
Su Load della Form_C recuperi il valore
Dim varArgs as variant
varArgs=Split(Me.OpenArgs,",")
NomeFormChiamante =varargs(0)
NomeControllo = varArgs(1)
Quindi su Unload o chiusura:
Forms(NomeFormChiamante).Controls(NomeControllo).Requery 
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Forms(NomeFormChiamante).Controls(NomeControllo).Requery
ok, ho fatto come hai scritto,ma mi restituisce l'errore 2465 su form_close
Forms(NomeFormChiamante).Controls(NomeControllo).Requery
impossibile trovare il campo a cui si fa riferimento.
dove sbaglio? 

JeanLoup ha scritto:

Perchè non utilizzi OpenArgs per testare qual'è la maschera chiamante e
con un semplice if esegui il requery solo in caso sia quella che vuoi?
L'OpenArgs è ovviamente il nome della mschera chiamante che avrai passato
con l'istruzione DoCmnd.OpenForm come ultimo argomento (Me.Name).
-- 
TANNHAUSER
"I've seen things you people wouldn't believe..."


JeanLoup ha scritto:


Ciao JeanLoup
ti volevo fare notare che la proprietà IsLoaded restituisce un valore di
tipo booleano "True" "False".



il problema è che non so come fare.
openform ......
me.name
 sull'evento clic che apre la maschera_C
poi nella maschera C che devo fare? Non riesco a venirme a capo.
Ciao, JeanLoup 


Supponiamo il caso più semplice in cui il Requery lo fai solo se la
maschera da cui apri la Maschera_C sia la Maschera_A.
1- Sull'evento "Su Click" del pulsante nella Maschera_A (ma anche su
quello che la apre dalla Maschera_B) che apre la Maschera_C (per altro
ottenibile con il wizard di Access non appena disegni il pulsante sulla
maschera) scriverai:
Private Sub PulsanteA_Click()
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Maschera_C"
    DoCmd.OpenForm stDocName, , , stLinkCriteria, , , Me.Name
End Sub
2- Sulla chiusura della Maschera_C inserirai questo codice:
Private Sub Form_Close()
    If Me.OpenArgs = "Maschera_A" Then
    Forms![Maschera_A]![Controllo_A].Requery
    End If
    DoCmd.Close
End Sub
3- Se devi aggiornare anche un controllo sulla Maschera_B, sarà
sufficiente aggiungere i riferimenti al controllo nella IF di chiusura
della Maschera_C.
Ciao.


 dove sbaglio?
Prova a verificare con Debug.Print la chiamata agli oggetti.
Fai qualche test con un minimo di debug è la strada giusta.


 @Alex
grazie, ho risolto in una maniera molto banale ma semplice.
Ho semplicemente messo sull'evento su attivato del miocontrollo un 
miocontrollo.requery.
Funge bene.
grazie cmq, a volte basta la soluzione č piů semplice di quanto si possa 
immaginare.
Ciao, JeanLoup