[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Alle Datenbankobjekte schließen

Sprache / Programm: Access ab Version 97
Beschreibung

Schließt alle Objekte in einer Datenbank, mit Ausnahme des Objektes, welches gerade den VBA-Code ausführt.

VBA-Quelltext
Public Sub AlleObjektSchließen()
    Dim Nr As Integer, ObjektNr As Long, Objekt As Object, ObjektListe
   
    ' Tabellen und Abfragen schließen
    Set Objekt = DBEngine(0)(0).Containers("Tables").Documents
    For Nr = 0 To Objekt.Count - 1
        DoCmd.Close acTable, Objekt(Nr).NAme
        DoCmd.Close acQuery, Objekt(Nr).NAme
    Next Nr
   
    ' Übrige Objekte schließen
    ObjektListe = Array(Array(acForm, acReport, acMacro, acModule), Array("Forms", "Reports", "Scripts", "Modules"))
    For ObjektNr = LBound(ObjektListe(0)) To UBound(ObjektListe(0))
        Set Objekt = DBEngine(0)(0).Containers(ObjektListe(1)(ObjektNr)).Documents
   
        For Nr = 0 To Objekt.Count - 1
            If (CodeContextObject.NAme <> Objekt(Nr).NAme) Then
                DoCmd.Close ObjektListe(0)(ObjektNr), Objekt(Nr).NAme
            End If
        Next Nr
    Next ObjektNr
End Sub
Anwendungsgebiete, Fehler und Warnungen

Bei Formularen, Berichten, Makros und Modulen werden Module nicht geschlossen, die den gleichen Namen besitzen, wie das VBA-Modul, in dem gerade der Code ausgeführt wird.