Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

aus Access heraus bestimmte Access-DB-Instanz identifizieren

Begonnen von Doming, Heute um 13:26:55

⏪ vorheriges - nächstes ⏩

Doming

Hallo,

Public Sub DBOeffnen()
 Dim accApp As Object
    Set accApp = CreateObject("Access.Application")
    accApp.OpenCurrentDatabase "C:\TestDB.accdb"
    set accApp as Nothing
End Sub

Wie bekomme ich im Nachhinein die aufgerufene DB per VBA wieder geschlossen?
Ich möchte die aufrufende DB nicht beenden, auch keine andere Db, die evtl. noch offen sein könnte.
Kann man die bestimmte Access-Instanz irgendwie identifizieren um sie später explizit wieder zu schließen?
accApp.CloseCurrentDatabase bezieht sich doch dann auf die aufrufende, weil aktive Instanz, oder?

Gruß
 Doming

Knobbi38

Hallo Doming,

hast du eigentlich schon einmal in der Dokumentation nachgelesen, welche Aktion bei "Application.CloseCurrentDatabase" ausgeführt wird? Ich denke, damit sollte deine Frage beantwortet sein.

Noch ein Hinweis:
Wenn du Automation verwendest, solltest du unbedingt darauf achten, alle verwendeten Ressourcen in der richtigen Reihenfolge wieder freizugeben. Andernfalls kann es zu Problemen kommen. In diesem Zusammenhang vermisse ich beispielsweise ein Application.Quit.

Knobbi38

PhilS

Zitat von: Doming am Heute um 13:26:55Kann man die bestimmte Access-Instanz irgendwie identifizieren um sie später explizit wieder zu schließen?

accApp.CloseCurrentDatabase bezieht sich doch dann auf die aufrufende, weil aktive Instanz, oder?
Am einfachsten wäre es, wenn du deine accApp-Variable nicht in der Prozedur deklarierst, sondern außerhalb, so dass sie erhalten bleibt (auch kein Set accApp = Nothing). Da accApp genau die Access-Instanz meint, die du wieder schließen willst, kannst du dich dann direkt darauf beziehen.

Es könnte/sollte auch funktionieren die gesuchte Instanz zu erhalten, wenn du GetObject mit dem Dateipfad verwendest.
Set accApp = GetObject("C:\TestDB.accdb")

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor