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 2/2011.

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

Zusammenfassung

Erfahren Sie, welche Informationen Sie mit der SysCmd-Funktion erhalten und wie Sie damit Statusleiste und Fortschrittsbalken steuern.

Techniken

VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

SysCmd.mdb

Shortlink

www.access-im-unternehmen.de/769

Die SysCmd-Wundertüte

André Minhorst, Duisburg

Access hütet so manche Quelle interessanter Funktionen. Darunter befindet sich etwa die wenig beachtete SysCmd-Anweisung, die eine Reihe cooler Features bereithält. Damit fragen Sie beispielsweise mal eben ab, ob gerade die Vollversion oder die Runtime-Version läuft, oder ermitteln die Access-Version. Dieser Beitrag stellt alle Möglichkeiten dieser Methode vor.

Die SysCmd-Methode gehört zum Application-Objekt. Genau genommen ist SysCmd gleichzeitig Methode und Funktion: Je nachdem, welche Parameter Sie angeben, liefert es Informationen zurück oder führt Aktionen aus. SysCmd kann einen bis drei Parameter verarbeiten, wobei die Anzahl der weiteren Parameter vom Wert des ersten Parameters abhängt. In den folgenden Abschnitten schauen wir uns an, welche Möglichkeiten SysCmd bietet.

Access-Verzeichnis ermitteln

Mit dem Wert acSysCmdAccessDir für den ersten Parameter verwenden Sie SysCmd als Funktion. Sie erhalten dann den Namen des Verzeichnisses zurück, in dem sich die aktuell verwendete Access-Instanz befindet (also die Datei MSAccess.exe). Das Formular aus Abb. 1 zeigt Beispiele für die Anwendung der SysCmd-Funktionen. Das obere Textfeld txtAccessDir wird beispielsweise beim Öffnen des Formulars mit der folgenden Anweisung gefüllt:

pic001.png

Abb. 1: Formular mit Beispielen für die Nutzung von SysCmd

Me!txtAccessDir = SysCmd(acSysCmdAccessDir)

Access-Version ermitteln

Auf ähnliche Weise arbeitet SysCmd mit dem Wert acSysCmdAccessVer. Die Funktion liefert dann die Access-Version der laufenden Instanz, also beispielsweise 11.0 für Access 2003, 12.0 für Access 2007 oder 14.0 für Access 2010. Im Beispielformular funktioniert dies so:

Me!txtAccessVer = SysCmd(acSysCmdAccessVer)

Arbeitsgruppendatei ermitteln

Mit dem Wert acSysCmdGetWorkgroupFile ermittelt SysCmd den Namen der Arbeitsgruppen-Informationsdatei, die das System aktuell verwendet:

Me!txtWorkgroupfile = SysCmd(acSysCmdGetWorkgroupFile)

Runtime oder Vollversion?

Die vierte Information, an die Sie mit nur einem Parameter herankommen, erhalten Sie mit dem Wert acSysCmdRuntime. SysCmd liefert damit eine Information darüber zurück, ob die aktuelle Access-Version die Runtime-Version ist oder nicht - das Ergebnis ist entweder True oder False:

Me!txtRuntime = SysCmd(acSysCmdRuntime)

Zustand von Objekten ermitteln

Etwas aufwendiger ist die Ermittlung des Zustands eines bestimmten Objekts.

Allein der Aufruf erfordert die Angabe aller drei möglichen Parameter, in diesem Fall die folgenden:

  • Aufrufart: acSysCmdGetObjectState
  • Objektart (acTable, acQuery, acForm, acReport, acMacro, acModule)
  • Objektname (also beispielsweise frmSysCmd)

Die Funktion liefert eine Kombination der folgenden Werte zurück:

  • acObjStateOpen (1): Objekt geöffnet
  • acObjStateDirty (2): Objekt geändert, aber nicht gespeichert
  • acObjStateNew (4): Neu angelegtes Objekt

Im Beispielformular frmSysCmd wählen Sie mit einem Kombinationsfeld einen der Einträge der Systemtabelle MSysObjekts aus. Der Kombinationsfeldeintrag enthält den Namen sowie den in MSysObjects gespeicherten Typ des Objekts (etwa -32768 für Formulare). Die Prozedur aus Listing 1 ermittelt zunächst die Access-Konstante für den Objekttyp und ruft dann den Status des Objekts mit SysCmd ab.

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.