VBA Tipp: Alle Formulare/Berichte schließen

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

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

Lösung

Die folgenden Prozeduren schließen jeweils alle Formulare bzw. Berichte. Wenn der optionale Parameter BesidesThisOne 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 Sub CloseAllForms(Optional BesidesThisOne As String)
 
   'Quelle: http://www.dbwiki.net/
 
   Dim i       As Long
   Dim FrmName As String
 
   For i = Forms.Count - 1 To 0 Step -1
      FrmName = Forms(i).Name
      If FrmName <> BesidesThisOne Then
         DoCmd.Close acForm, FrmName, acSaveNo
      End If
   Next
 
End Sub
 
 
Public Sub CloseAllReports(Optional BesidesThisOne As String)
 
   'Quelle: http://www.dbwiki.net/
 
   Dim i       As Long
   Dim RptName As String
 
   For i = Reports.Count - 1 To 0 Step -1
      RptName = Reports(i).Name
      If RptName <> BesidesThisOne Then
         DoCmd.Close acReport, RptName, acSaveNo
      End If
   Next
 
End Sub

Aufruf

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

Private Sub EineSchaltflaeche_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.