MSAccess.exe und Co.

Access besteht nicht nur aus einer einzigen Anwendungsdatei, sondern auch noch aus einer Reihe weiterer wichtiger Dateien wie etwa den Bibliotheken VBA, DAO oder ADODB oder Add-In-Datenbanken, die Funktionen zu Access hinzufügen. In diesem Beitrag sehen wir uns diese Dateien an und schauen, welche Informationen sich aus diesen gewinnen lassen. Außerdem gibt es eine Reihe VBA-Funktionen, mit denen Sie beispielsweise die Speicherorte dieser Dateien ermitteln können.

MSAccess.exe

Die Datei MSAccess.exe wird aufgerufen, wenn der Benutzer Access startet – sei es über einen Eintrag im Startmenü, über einen zur Taskleiste hinzugefügten Eintrag oder auch durch das Starten einer Datei mit einer entsprechenden Dateiendung wie beispielsweise .mdb, .accdb et cetera.

Sie liegt in der Version Access 2010, 32bit unter Windows 7 im Verzeichnis C:\Program Files (x86)\Microsoft Office\Office14, in anderen Versionen von Access unterscheidet sich der Name des letzten Verzeichnisses (unter Access 2013 etwa Office15).

Wenn Sie die 64bit-Variante installieren, was nicht empfehlenswert ist (hier werden beispielsweise keine der ActiveX-Steuerelemente der Bibliothek MSCOMCTL.ocx unterstützt), landet diese im Verzeichnis C:\Program Files\Microsoft Office\Office14.

MSAccess.exe suchen

Wenn Sie die Datei MSAccess.exe nicht finden, können Sie diese mit einem VBA-Befehl ermitteln, den Sie beispielsweise im Direktbereich des VBA-Editors absetzen:

Debug.Print SysCmd(acSysCmdAccessDir)
C:\Program Files (x86)\Microsoft Office\Office14\

Access-Version ermitteln

Wenn Sie schon die Funktion SysCmd nutzen, können Sie auch gleich die Version der geöffneten Access-Anwendung ausgeben lassen:

Debug.Print SysCmd(acSysCmdAccessVer)
14.0

Benutzer und Gruppen

In früheren Access-Versionen (bis Access 2003) konnten Sie noch eine Access-interne Benutzer- und Gruppenverwaltung verwenden. Daher nur der Vollständigkeit halber hier die Funktion zum Ermitteln des Standortes der aktuell verwendeten Arbeitsgruppeninformationsdatei, die solche Informationen speicherte:

Debug.Print SysCmd( acSysCmdGetWorkgroupFile)
C:\Users\Andre\AppData\Roaming\Microsoft\Access\System.mdw

Wie man sieht, gibt es diese Datei immer noch – Sie kann allerdings nicht mehr zur Sicherung der Access-Objekte und Daten genutzt werden (sicher war diese ohnehin schon längst nicht mehr). Wer seine Daten wirklich sichern will, verwendet ein System wie den Microsoft SQL Server oder MySQL.

Runtime oder Vollversion

Für eine Anwendung kann es wichtig sein, neben der Version einer Access-Anwendung auch noch zu erkennen, ob es sich um die Vollversion oder um die Runtime-Version handelt. Wenn Sie beispielsweise zur Laufzeit dynamisch Formulare oder Berichte anpassen, benötigen Sie unbedingt die Vollversion – unter der Runtime-Version können Sie keine änderungen am Entwurf der Datenbankobjekte vornehmen. Daher kommt uns die folgende Funktion sehr gelegen:

Debug.Print SysCmd(acSysCmdRuntime)
Falsch

Access als Runtime starten

Apropos Runtime: Sie müssen nicht die Runtime-Version von Access installieren, um den Großteil der Runtime-Einschränkungen zu testen. Dazu reicht je nach Access-Version auch eine der folgenden Aktionen aus:

  • Bis Access 2003 rufen Sie Access per Befehlszeile mit dem Parameter /runtime auf.
  • Ab Access 2007 ändern Sie die Dateiendung der Datenbankdatei von .accdb in .accdr um.

Für den Aufruf des Runtime-Modus über die Befehlszeile geben Sie erst den Pfad zur MSAccess.exe, dann den Pfad zu der zu öffnenden Datenbankdatei und schließlich den Befehlszeilenparameter an:

"C:\Program Files (x86)\Microsoft Office\Office14\MSAccess.exe" 
"c:\Daten\Fachmagazine\AccessImUnternehmen\2013\06\
Accessfunktionen\Accessfunktionen.mdb" /Runtime

Dafür müssen Sie übrigens nicht umständlich eine Windows-Verknüpfung anlegen. Eine Datei mit der Dateiendung .bat (etwa Start.bat) reicht völlig aus.

Access erscheint dann in der für die Runtime üblichen spartanischen Ausstattung, die nach benutzerdefinierten Menüleisten/Ribbons oder einem übersichtsformular zum Aufruf der Formulare und Funktionen verlangt (s. Bild 1).

Start der Runtime-Version von Access

Bild 1: Start der Runtime-Version von Access

Access als Administrator starten

Wenn Sie Access mit Administratorrechten starten müssen, obwohl Sie aktuell nicht als Administrator angemeldet sind, können Sie dies über eine entsprechende Verknüpfung oder über die Datei MSAccess.exe selbst erledigen.

Klicken Sie einfach bei gedrückter Umschalttaste mit der rechten Maustaste auf die Datei und wählen Sie dann den Eintrag Als Administrator ausführen aus dem Kontextmenü aus. Access startet nun mit Administratorrechten (s. Bild 2).

Access mit Administratorrechten starten

Bild 2: Access mit Administratorrechten starten

Access als anderer Benutzer starten

Gelegentlich wollen Sie vielleicht testen, wie Ihre Anwendung arbeitet, wenn Sie sich unter einem anderen Windows-Konto anmelden. Dann heißt es, den aktuellen Benutzer abmelden, sich unter dem Konto des neuen Benutzers anmelden, die Tests ausführen, wieder abmelden und unter dem zunächst verwendeten Konto wieder anmelden.

Das machen Sie allerdings nur so, wenn Sie zu viel Zeit haben. Wenn Ihnen die Prozedur zu aufwendig ist, können Sie sich nämlich über einen weiteren Kontextmenü-Eintrag namens Als anderer Benutzer ausführen unter dem anderen Benutzerkonto anmelden und Access in diesem Kontext ausführen.

Aber wo steckt dieser Kontextmenü-Eintrag – im Screenshot des vorherigen Beispiels ist dieser doch nicht zu finden

Nun: Dieser Eintrag erscheint nur, wenn Sie das Kontextmenü der Datei MSAccess.exe selbst bei gedrückter Umschalttaste aufrufen.

Das gelingt beispielsweise über das Startmenü, wenn Sie im Suchen-Feld den Begriff MSAccess.exe eingeben (s. Bild 3).

MSAccess.exe über die Suche im Startmenü auffinden

Bild 3: MSAccess.exe über die Suche im Startmenü auffinden

Alternativ navigieren Sie im Windows Explorer zu der entsprechenden Datei (s. Bild 4).

Starten von Access als anderer Benutzer über das Kontextmenü von MSAccess.exe im Windows Explorer

Bild 4: Starten von Access als anderer Benutzer über das Kontextmenü von MSAccess.exe im Windows Explorer

Anschließend erscheint dann ein Anmeldedialog, mit dem Sie Benutzername und Kennwort des betroffenen Benutzers eingeben (s. Bild 5). Anschließend wird Access im Kontext dieses Benutzers gestartet.

Benutzer und Kennwort zum Starten von Access eingeben

Bild 5: Benutzer und Kennwort zum Starten von Access eingeben

Aktuelle Datenbankdatei

Auch zur aktuellen Datenbankdatei können Sie per VBA eine ganze Reihe Informationen herauskitzeln.

Die Access-Bibliothek bietet einige Informationen, aber auch die DAO-Bibliothek bietet Möglichkeiten für den Zugriff etwa auf den Pfad zur aktuell geöffneten Access-Datenbank.

Bis mit Access 2002 das CurrentProject-Objekt eingeführt wurde, lieferte allein das CurrentDb-Objekt Informationen über die Herkunft der Datenbankdatei. Die Eigenschaft Name lieferte nämlich den kompletten Pfad der mit CurrentDb referenzierten, also der aktuell geöffneten Datenbankdatei:

Debug.Print CurrentDb.Name
C:\Daten\Fachmagazine\AccessImUnternehmen\2013\06\Accessfunktionen\Accessfunktionen.mdb

Wer bis Access 2002 nur den Namen oder den Pfad ermitteln wollte, musste sich mit einer Hilfsfunktion begnügen.

Den Namen einer Datei auf Basis des kompletten Pfades liefert bekanntlich die Dir-Funktion:

  Dir(CurrentDb.Name)
Accessfunktionen.mdb

Wenn man von der mit CurrentDb.Name ermittelten Zeichenkette hinten eine Zeichenkette abschneidet, deren Länge der Länge des Dateinamens entspricht, erhält man das Verzeichnis inklusive abschließendem Backslash:

  Left(CurrentDb.Name,Len(CurrentDb.Name)-Len(Dir(CurrentDb.Name)))
C:\Daten\Fachmagazine\AccessImUnternehmen\2013\06\Accessfunktionen\

Seit Access 2002 erledigen Sie solche Aufgaben mit verschiedenen Eigenschaften des Objekts CurrentProject. Das Verzeichnis liefert die Eigenschaft Path:

  CurrentProject.Path
C:\Daten\Fachmagazine\AccessImUnternehmen\2013\06\Accessfunktionen

Mit Name ermitteln Sie allein den Dateinamen:

  CurrentProject.Name
Accessfunktionen.mdb

Sie können den kompletten Pfad aus beiden Eigenschaften zusammensetzen, aber auch einfach FullName nutzen:

  CurrentProject.FullName
C:\Daten\Fachmagazine\AccessImUnternehmen\2013\06\Accessfunktionen\Accessfunktionen.mdb

Wenn Sie den Pfad aus dem Verzeichnis und dem Dateinamen zusammensetzen möchten, vergessen Sie nicht, einen Backslash zwischen beiden Ausdrücken einzufügen. Gleiches gilt auch, wenn Sie CurrentProject.Path nutzen, um auf andere Dateien im gleichen Verzeichnis zuzugreifen – also etwa so:

  CurrentProject.Path & "\" & CurrentProject.Name

Bibliotheken

Wenn Sie mit VBA arbeiten, setzen Sie vermutlich nicht nur Befehle aus der VBA-Bibliothek ein, sondern auch solche etwa aus den Bibliotheken Microsoft DAO 3.6 Object Library et cetera (s. Bild 6). Gelegentlich muss man wissen, wo sich die zugrunde liegenden Dateien befinden – beispielsweise um die Version abzufragen und zu prüfen, ob man die aktuellste Version verwendet (dies war zuletzt in Zusammenhang mit der Bibliothek MSCOMCTL.OCX interessant).

Das Verweise-Fenster

Bild 6: Das Verweise-Fenster

Informationen dazu, wie Sie die Pfade der per Verweis referenzierten Dateien erhalten, finden Sie im Beitrag Bibliotheken und Verweise untersuchen (www.access-im-unternehmen.de/913).

Weitere Informationen dank Wizhook

Es gibt unter Access eine nicht dokumentierte Klasse namens WizHook. Man muss diese Klasse nicht instanzieren und kann sie lediglich nutzen, wenn man vorher die Eigenschaft Key der Klasse auf einen bestimmten Wert einstellt, und zwar wie folgt:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar