| 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. |