Ho creato un database access strutturato in questo modo: Diverse maschera di inserimento record, delle maschere che riprendono i dati dalle tabelle e li restituiscono sotto forma di foglio di calcolo e una maschera principale con tre sottomaschere che di fatto hanno la funzione di visualizzazione rapida degli ultimi dati inseriti. Alla chiusura di una qualunque delle maschere di inserimento record ho bisogno che mi vengano aggiornate tutte le maschere e sottomaschere aperte. Ho trovato questa soluzione http://forum.html.it/forum/showthrea...=1#post9875544 dell'utente @gfantuzzi ma che non sono riuscito ad applicare. Potete aiutarmi? esiste altro sistema, che mi sembra più elegante, che non preveda di stilare un elenco di tutte le maschere aperte?
Riporto qui la soluzione sopra menzionata.
GrazieAggiungi un MODULO al progetto e fai copia/incolla con ciò che segue:
Public Function Aperta(ByVal strMaschera As String) As Boolean
'Restituisce True se la Maschera è aperta
Aperta = False
If SysCmd(acSysCmdGetObjectState, acForm, strMaschera) <> 0 Then
If Forms(strMaschera).CurrentView <> 0 Then
Aperta = True
End If
End If
End Function
La funzione serve per verificare se una determinata maschera è aperta oppure no e si usa così: IF APERTA("Nome_della_tua_maschera) THEN ...
A questo punto quando chiudi la tua maschera di modifica non devi fare altro che eseguire il Requery delle sole maschere che sono aperte.
Indi:
IF APERTA ("MASCHERA1") THEN FORMS!MASCHERA1.REQUERY
IF APERTA ("MASCHERA2") THEN FORMS!MASCHERA2.REQUERY
IF APERTA ("MASCHERA3") THEN FORMS!MASCHERA3.REQUERY
ciao
Aggiungo che penso che il codice sopra scritto non funzioni perché alla chiusura della maschera A devo aggiornare la sottomaschera B contenuta nella maschera C mentre l'esempio non prevede sottomaschere.

Rispondi quotando