Beitrag aus SmartTools Access Weekly
Zugriff auf eine Access-Datenbank aus anderen Office-Anwendungen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Sie zeigen immer wieder, wie sich Word, Excel und Outlook aus Access heraus steuern lassen. Aber wie sieht es mit dem umgekehrten Weg aus? Kann ich per VBA aus Word (oder aus anderen Office-Programmen) auf eine bereits geöffnete Access-Datenbank zugreifen und dort ein bestimmtes Formular öffnen? Mit "CreateObject" und "GetObject" wird jeweils die bereits geöffnete Access-Datenbank erneut geöffnet.
G. Kraus
ANTWORT Mit "CreateObject" wird generell eine neue Instanz der angegebenen Anwendung - hier "Access.Application" - gestartet. Mit "GetObject" erhalten Sie hingegen eine Referenz auf eine laufende Instanz der betreffenden Anwendung oder "Nothing", falls die Anwendung nicht läuft. Wenn eine Referenz ermittelt werden kann, erfolgt der Zugriff auf die Formulare beispielsweise wie folgt:
Dim ojAcc As Access.Application
Dim db as DAO.Database
Dim X as Variant
Set objAcc = GetObject(, "Access.Application")
If objAccess Is Nothing Then
'Ggf. Meldung anzeigen...
Else
Set db = CurrentDb()
X = db.Forms("Formularname").Controls("Name").Value
'Weitere Verarbeitung...
End If
Diese Anweisungen versuchen zunächst, mit "GetObject" eine Referenz auf eine laufende Access-Instanz zu erhalten. Ist das Ergebnis "Nothing", läuft Access nicht und es kann zum Beispiel eine Meldung angezeigt werden. Andernfalls wird mit "CurrentDb()" eine Referenz auf die aktuelle Datenbank ermittelt und darüber auf ein bestimmtes Steuerelement eines bereits geöffneten Formulars zugegriffen und der eingegebene oder eingestellte Wert in einer Variablen "X" abgelegt.