Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 6/2013.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

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:

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.