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/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

Zusammenfassung

Erfahren Sie, welche Informationen die Tabelle MSysObjects bereithält und wie Sie diese auslesen.

Techniken

Abfragen, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

MSysObjects.mdb

Shortlink

www.access-im-unternehmen.de/874

Die Tabelle MSysObjects

André Minhorst, Duisburg

In der Tabelle MSysObjects verwaltet Access Informationen zu den in der Datenbank enthaltenen Objekten. Diese Tabelle kann sich als echte Hilfe erweisen: Sie liefert, mit der richtigen Abfrage angesprochen, beispielsweise alle Tabellen der Datenbank oder auch alle Objekte der anderen Objekttypen wie Abfrage, Formulare, Berichte et cetera. Dieser Beitrag zeigt, was Sie alles mit der Tabelle MSysObjects anfangen können.

Um den vorliegenden Beitrag nachvollziehen zu können, müssen Sie sich erst einmal Zugriff auf die Tabelle MSysObjects verschaffen. Diese zeigt Access nämlich standardmäßig gar nicht im Datenbankfenster beziehungsweise im Navigationsbereich an.

Unter Access 2007 und neuer aktivieren Sie die Anzeige der Systemtabellen wie folgt:

  • Klicken Sie mit der rechten Maustaste auf die Titelleiste des Navigationsbereichs.
  • Wählen Sie dort den Eintrag Navigationsoptionen aus.
  • Aktivieren Sie im nun erscheinenden Dialog die Option Systemobjekte anzeigen (s. Abb. 1).
pic001.png

Abb. 1: Dialog zum Aktivieren der Anzeige der Systemtabellen von Access

Anschließend erscheinen die Systemtabellen bereits im Navigationsbereich (s. Abb. 2). Wenn Sie im vorherigen Dialog noch die Option Ausgeblendete Objekte anzeigen aktivieren, erscheinen noch weitere Tabellen - für die Anzeige der Tabelle MSysObjects reicht jedoch das Aktivieren von Systemobjekte anzeigen.

pic002.png

Abb. 2: Systemtabellen im Navigationsbereich

Wenn die Systemobjekte derzeit ausgeblendet sind und Sie keine Lust haben, diese für einen kurzen Blick in die Tabelle MSysObjects über die Navigationsoptionen einzublenden, öffnen Sie die Tabelle einfach per VBA.

Dazu setzen Sie einfach die folgende Anweisung im Direktbereich des VBA-Editors (Strg + G) ab:

DoCmd.OpenTable "MSysObjects"

Die Tabelle erscheint daraufhin in der Datenblattansicht - hier mit einigen ausgeblendeten Feldern (s. Abb. 3). Insgesamt enthält die Tabelle folgende Felder, einige davon nehmen wir später unter die Lupe:

pic003.png

Abb. 3: Einige Einträge der Systemtabelle MSysObjects

  • Connect (Memo)
  • Database (Memo)
  • DateCreate (Datum)
  • DateUpdate (Datum)
  • Flags (Long)
  • ForeignName (Text)
  • Id (Long)
  • Lv (OLE-Objekt)
  • LvExtra (OLE-Objekt)
  • LvModule (OLE-Objekt)
  • LvProp (OLE-Objekt)
  • Name (Text)
  • Owner (Binary)
  • ParentId (Long)
  • RmtInfoLong (OLE-Objekt)
  • RmtInfoShort (Binary)
  • Type (Integer)

In den folgenden Abschnitten beschreiben wir die nützlichsten Felder dieser Tabelle.

Felder, die hier nicht aufgeführt werden, sind in der Regel schlecht dokumentiert und werden daher hier nicht beschrieben.

Connect

Das Feld Connect enthält die Verbindungszeichenfolge, wenn das Objekt eine per ODBC verknüpfte Tabelle ist - also beispielsweise eine Tabelle, die auf einem SQL Server oder einem MySQL-Server liegt. Die Verbindungszeichenfolge wird hier im Klartext gespeichert, Sie sollten also tunlichst keine Benutzernamen oder Kennwörter angeben. Beispiel:

DRIVER={SQL Server};SERVER=MeinServer;

DATABASE=MeineDatenbank;UID=MeinBenutzername;

PWD=MeinKennwort;

Database

Wird eine Tabelle aus einer anderen Datenbank oder auch aus einer Textdatei oder einer Exceltabelle eingebunden, handelt es sich um eine Jet-Verknüpfung.

Eine solche speichert den Dateinamen der Quelldatei, also etwa einer Access-Datenbankdatei, einer Textdatei oder einer Excel-Datei, im Feld Database. Beispiel:

c:\Datenbanken\Beispiel.mdb

DateCreate und DateUpdate

Diese beiden Felder speichern das Datum der Erstellung des Objekts sowie der letzten Aktualisierung.

Flags

Das Feld Flags enthält einen Zahlenwert, der weitere Informationen über den Typ des Objekts liefert. Weitere Informationen zu den Werten dieses Feldes finden Sie weiter unten in Zusammenhang mit den verschiedenen Objekttypen.

ForeignName

Das Feld ForeignName findet für verknüpfte Tabellen Verwendung. Wenn Sie beispielsweise eine Tabelle namens tblTest einer anderen Datenbank mit der aktuellen Datenbank verknüpfen und es ist bereits eine Tabelle gleichen Namens vorhanden, erhält die Verknüpfung in der aktuellen Tabelle einen anderen Namen im Feld Name. Das Feld ForeignName hingegen behält den Namen der Originaltabelle bei.

Id

Das Feld Id dient schlicht und einfach als eindeutiger Bezeichner und Primärschlüsselfeld für ein Objekt. Es ist jedoch nicht als Autowertfeld definiert.

Name

Das Feld Name enthält den Namen des Objekts, wie er auch im Datenbankfenster beziehungsweise Navigationsbereich erscheint.

ParentId

Das Feld ParentId enthält einen Long-Wert, der über das Feld Id auf einen übergeordneten Datensatz der Tabelle MSysObjects verweist. So enthalten dort beispielsweise alle Objekte des Typs Formular den gleichen Wert, den der Datensatz mit dem Wert Forms im Feld Name im Feld Id enthält.

Type

Dieses Feld speichert einen Zahlenwert, der dem Objekttyp entspricht. Auf diese Weise lassen sich beispielsweise Tabellen, Abfragen oder Formulare identifizieren. Mehr dazu weiter unten unter Objekte nach Objekttyp filtern.

Abfragen auf Basis der Tabelle MSysObjects

In den folgenden Abschnitten schauen wir uns einige Abfragen an, mit denen Sie wichtige Informationen aus der Tabelle MSysObjects ziehen können.

Interessant ist hier eigentlich nur der Weg, diese Tabelle verfügbar zu machen, wenn sie nicht im Datenbankfenster beziehungsweise Navigationsbereich angezeigt wird - sie erscheint dann nämlich auch nicht im Auswahldialog der Tabellen und Abfragen.

Dazu öffnen Sie eine neue Abfrage, schließen den Dialog Tabelle anzeigen und wechseln in die SQL-Ansicht. Dort tragen Sie einfach die folgende Abfrage ein (s. Abb. 4):

pic004.png

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.