Startseite > Tipps & Tricks > COM Add-Ins erstellen > Zugriff von einem VBA Add-In auf Access
Team-Moeller.de - Datenbankentwicklung und mehr ...

Zugriff von einem VBA Add-In auf Access

Zugriff von einem VBA Add-In auf Access

Wenn man ein Add-In für die VB-IDE schreibt dann kommt der unter Umständen der Wunsch auf, auf die geöffnete Instanz von Access, zu der diese VB-IDE gehört, zugreifen zu können.

Die Schaltfläche mit dem Access-Logo oben links in der Symbolleiste lässt die Hoffnung keimen, dass dieser Zugriff nicht all zu schwer zu realisieren ist. Nach ein paar Versuchen bin ich schliesslich zu folgender Lösung gelangt:

Im Ereignis On_Connection des Add-Ins wird ein Verweis auf die Anwendung, in der das Add-In gestartet wurde, bereitgestellt. Der Verweis zielt in diesem Fall auf die aktuelle Instanz der VB-IDE. Dieser Verweis wird in einer globalen Variable gespeichert und steht somit überall im Add-In zur Verfügung.

Option Explicit

Public ThisVBIDE As VBIDE.VBE

Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
       ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
       ByVal AddInInst As Object, custom() As Variant)

  'Objekt sichern
  Set ThisVBIDE = Application

  ...

End Sub
 

Über das aktive VB-Projekt der VB-IDE kann man an dessen Dateinamen gelangen. Diesen kann man verwenden, um mit dem Befehl GetObject einen Verweis auf die zugehörige Instanz von Access zu erhalten:

Private Sub HoleAccessInstanz()

  Dim ThisAccApp As Access.Application

  If Len(ThisVBIDE.ActiveVBProject.FileName) > 0 Then
    Set ThisAccApp = GetObject(ThisVBIDE.ActiveVBProject.FileName)
  End If

  MsgBox ThisAccApp.CurrentDb.Name

  Set ThisAccApp = Nothing

End Sub

Wenn man den Verweis erst einmal hat, kann man damit alles machen, was man mit einem normalen Application-Objekt auch machen kann. In diesem Fall wird der Name der Datenbank ausgegeben. (Es gibt bestimmt sinnvollere Einsatzzwecke.)

Microsoft MVP - Thomas Möller


06.05.2017:
TM-VBALineNumbers
Version 1.29.01 bereitgestellt.


27.03.2016:
TM VBA-Inspector:
Installationsroutine überarbeitet.


23.05.2014:
TM-RebuildDatabase
Version 1.75 bereitgestellt.


07.12.2014:
TM-DatenKlassenGenerator
Version 3.55 bereitgestellt.


Powered by CMSimple - Template by CMSimple-Styles.com - Autor:Thomas Möller