Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

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.