VBA Tipp: Alle Formulare/Berichte schließen

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich will alle geöffneten Formulare (bzw. Berichte) schließen.

Lösung

Die folgenden Funktionen schließen jeweils alle Formulare oder Berichte. Wenn der optionale Parameter angegeben wird, wird das Formular bzw. der Bericht dieses Namens ausgenommen (zusätzlich kann man ggf. auch noch das Startformular oder unsichtbare Hintergrundformulare ausnehmen):

Public Function CloseAllForms(Optional BesidesThisOne As String)
Dim I As Long, FrmName As String
For I = Forms.Count - 1 To 0 Step -1
  FrmName = Forms(I).Name
  If FrmName <> BesidesThisOne Then
    DoCmd.Close acForm, FrmName, acSaveYes
  End If
Next I
End Function
 
 
Public Function CloseAllReports(Optional BesidesThisOne As String)
Dim I As Long, RptName As String
For I = Reports.Count - 1 To 0 Step -1
  RptName = Reports(I).Name
  If RptName <> BesidesThisOne Then
    DoCmd.Close acReport, RptName, acSaveYes
  End If
Next I
End Function

Aufruf

Hiermit werden alle Formulare außer dem aktuellen Formular geschlossen:

Private Sub MeineSchaltfläche_Click()
  CloseAllForms Me.Name
End Sub


Wiki faq.png FAQ: Dieser Artikel gehört zu den "Häufig gestellten Fragen" (FAQ). Die Seite Access-FAQ bietet eine Übersicht aller FAQ-Artikel.