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 If 
Se 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 If 
L'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.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.