Forms |
3.104 Chiudi tutte le maschere aperte o tutte le maschere aperte meno una |
Alessandro Baraldi |
Public Function CloseAllForms(Optional strForm As String = vbNullString) As Boolean '***************************************************************** 'Name : CloseAllForms() 'Purpose : Close all Forms eccept Form.Name passed 'Author : Alessandro Baraldi 'E.Mail : ik2zok@libero.it 'Date : 23 gennaio 2002 'Called by : 'Calls : 'Inputs : Form che non deve essere chiusa 'Output : True if is OK '***************************************************************** On Error GoTo Err_Close Dim n, x As Integer n = Forms.count For x = n - 1 To 0 Step -1 If Forms(x).Name <> strForm Then DoCmd.Close acForm, Forms(x).Name Next CloseAllForms = True Exit_here: Exit Function Err_Close: CloseAllForms = False Resume Exit_here End Function Se si vuole chiudere tutte le maschere aperte compresa quella attiva, richiamare la funzione in questo modo: If CloseAllForms() = True Then MsgBox "Sono state chiuse tutte le maschere aperte" Else MsgBox "Non è stato possibile chiudere tutte le maschere aperte" End IfSe invece si vuole chiudere tutte le maschere aperte tranne quella attiva richiamare la funzione nel seguente modo: If CloseAllForms(Form.Name) = True Then MsgBox "Sono state chiuse tutte le maschere aperte tranne quella attiva" Else MsgBox "Non è stato possibile chiudere tutte le maschere aperte" End IfL'unico argomento della funzione è opzionale e può contenere l'eventuale nome della maschera che non deve essere chiusa. La funzione restituisce il valore True nel caso che la chiusura delle maschere sia stata effettuata. La funzione potrebbe essere migliorata passando alla Function un Variant con l'elenco delle FORMS da non chiudere, e sfruttando la Funzione Split per convertire il Variant in Array per permettere un For ...Each all'interno del ciclo attuale. |