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 4/2001.

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

Verborgene Feldeigenschaften entdecken

Autor: Manfred Hoffbauer, Düsseldorf

Wer den Einstieg in die Programmierung mit VBA und das Objektmodell von Access erst mal geschafft hat, profitiert gleich mehrfach davon: Die grundsätzliche Vorgehensweise zur Programmierung von Tabellen, Abfragen, Formularen und Berichten ist fast immer die gleiche. Doch auch hier steckt der Teufel im Detail: Bei den verborgenen Feldeigenschaften gibt es die eine oder andere Ausnahme, die es zu kennen gilt.

Hinweis

Die Beispiele in diesem Beitrag basieren auf der Verwendung der Data Access Objects (DAO). Um die Beispiele auch mit Microsoft Access 2000 nachvollziehen zu können, müssen Sie diesen Verweis aktivieren. Öffnen Sie dazu irgendein Modul in der Entwurfsansicht, und wählen Sie den Befehl Extras ( Verweise. Kreuzen Sie dann den Eintrag Microsoft DAO 3.6 Object Library in der Liste an, und klicken Sie auf OK (s. Abb. 1). Wenn Sie die Beispieldatenbank zu diesem Beitrag öffnen, ist der Verweis automatisch markiert. (

Tabelleneigenschaften mit VBA abfragen

Eine Tabelle hat bei Microsoft Access zwei Ansichten:

In der Datenansicht können Sie Datensätze hinzufügen, löschen und bearbeiten. In der Entwurfsansicht definieren Sie die Felder, Datentypen und weitere Feldeigenschaften der Tabelle.

Beide Ansichten stehen Ihnen auch in der Programmiersprache von Access zur Verfügung. Mit Recordsets greift ein Programm auf die Daten einer Tabelle zu, während die TableDef-Objekte die Entwurfseigenschaft einer Tabelle zugänglich machen.

Die TableDef-Objekte enthalten sozusagen alle Eigenschaften, die Sie in der Entwurfsansicht einer Tabelle zuweisen können. Um beispielsweise die Eigenschaft Gültigkeitsregel zu verändern, gehen Sie wie folgt vor:

  • Öffnen Sie die Tabelle tblAufgaben aus der Beispieldatenbank dieses Beitrags in der Entwurfsansicht.
  • Wählen Sie den Befehl Ansicht ( Eigenschaften, um das Eigenschaftsfenster der Tabelle zu öffnen (s. Abb. 2).
  • Geben Sie für die Eigenschaft Gültigkeitsregel den folgenden Wert ein: [Wiedervorlage]>Datum()
  • Speichern Sie die Tabelle.
  • Access prüft nun beim Speichern eines Datensatzes automatisch, ob das Wiedervorlagedatum größer als das aktuelle Tagesdatum ist. Falls dies einmal nicht zutreffen sollte, kann der Datensatz nicht gespeichert werden.

    Die gleiche Eigenschaft können Sie auch mit VBA abfragen. Durch das Betätigen der Tastenkombination Strg + G öffnen Sie den Direktbereich von Access (s. Abb.3). Geben Sie nun die folgende Anweisung ein.

    ? currentdb.TableDefs
    ("tblAufgaben").
    ValidationRule

    Mit dem Betätigen der Ein-gabetaste führt Access den Befehl aus und zeigt das folgende Ergebnis an:

    [Wiedervorlage]>Date()

    Die eingegebene Zeile besteht aus dem Aufruf des ?-Befehls und einem Ausdruck. Der ?-Befehl veranlasst Access, den Wert des darauf folgenden Ausdrucks im Direktbereich (früher: Debug-Fenster) anzuzeigen.

    Der Ausdruck besteht aus der Aneinanderreihung von zwei Objekten und einer Eigenschaft. Das erste Objekt CurrentDB stellt die aktuelle Datenbank dar. Das Objekt TableDefs("tblAufgaben") ist quasi die Entwurfsansicht der Tabelle tblAufgaben. Die Eigenschaft ValidationRule enthält die Gültigkeitsregel.

    Mit der gleichen Technik können Sie die Gültigkeitsregel ändern:

    currentdb.TableDefs
    ("tblAufgaben").ValidationRule = 
    "[Wiedervorlage]>=Date()"

    Hinweis

    Beachten Sie bitte, dass die per VBA durchgeführten Änderungen am Tabellenentwurf erst nach dem Schließen und erneuten Öffnen der Tabelle sichtbar werden. (

    Abfrage der Feldeigenschaften

    Der größte Teil des Tabellenentwurfs ist für die Definition der Datenfelder und ihrer Eigenschaften bedingt. Hier legen Sie zunächst den Feldnamen, den Datentyp und eine Beschreibung fest. Im unteren Teil des Entwurfsfensters befindet sich außerdem ein Bereich, der die Eigenschaften des jeweils aktuellen Datenfeldes anzeigt. Hierzu zählen die Gültigkeitsregel, die Feldgröße und das Format.

    Um ohne Programmierung die Gültigkeitsregel eines Feldes zu verändern, gehen Sie wie folgt vor:

  • Klicken Sie im Tabellenentwurf auf das Feld Erledigt (s. Abb. 4).
  • Geben Sie den folgenden Ausdruck in die Eigenschaft Gültigkeitsregel ein: >=Datum().
  • Nach dem Speichern der Tabelle akzeptiert Access nur noch solche Werte für das Feld Erledigt, die größer als das Tagesdatum oder gleich dem Tagesdatum sind. Um die gleiche Eigenschaft per VBA abzufragen, geben Sie folgende Anweisung in den Direktbereich ein:

    ? currentdb
    .TableDefs("tblAufgaben")
    .fields("Erledigt")
    .ValidationRule

    Mit dem Betätigen der Eingabetaste führt Access die Anweisung aus und zeigt als Ergebnis den Ausdruck >=Date() an.

    Auch diese Anweisung fragt zunächst mit dem CurrentDB-Objekt die aktuelle Datenbank und mit TableDefs("tblAufgaben") die Tabelle tblAufgaben ab. Darauf folgt - wiederum durch einen Punkt aneinandergereiht - der Zugriff auf die Fields-Auflistung des TableDef-Objekts. Durch die Angabe des Feldnamens Erledigt wird wiederum ein bestimmtes Objekt der Fields-Auflistung spezifiziert. Mit ValidationRule geben Sie schließlich die abzufragende Eigenschaft an.

    Durch die Angabe eines anderen Tabellen- oder Feldnamens können Sie jederzeit auch die ValidationRule-Eigenschaft anderer Objekte abfragen. Sie müssen allerdings darauf achten, dass Sie nur die Feldnamen verwenden, die in der jeweiligen Tabelle auch vorkommen. Andernfalls meldet Access einen Fehler bei der Ausführung des Befehls.

    Weitere Eigenschaften

    Mit der Eingabe des Punktes in den Direktbereich öffnet Access eine Liste der Eigenschaften und Methoden des jeweiligen Objektes. Wenn Sie also den Punkt hinter TableDefs("tblAufgaben") eingegeben haben, öffnet Access automatisch eine Liste der Eigenschaften und Methoden für TableDef-Objekte (s. Abb. 5).

    Bei der Eingabe des Punktes hinter Fields("Erledigt") öffnet Access automatisch eine Liste der Eigenschaften und Methoden von Fields-Objekten. Hier finden Sie beispielsweise die Name-, die ValidationRule- und die ValidationText-Eigenschaft.

    Einige Eigenschaften aus dem Tabellenentwurf suchen Sie hier jedoch vergeblich. So fehlen beispielsweise die Feldbeschreibung, das Format und das Eingabeformat. Diese Eigenschaften können Sie nur über die Properties-Auflistung des Fields-Objektes abfragen.

    Eigenschaften der Properties-Auflistung

    Einige Feldeigenschaften können Sie über das Fields-Objekt leider nicht direkt abfragen. So führt die Anweisung

    ? currentdb.TableDefs("tblAufgaben").
    Fields("Erledigt").Description

    zu einer Fehlermeldung von Access. Die richtige Syntax zur Abfrage der Feldbeschreibung lautet wie folgt:

    ? CurrentDB.TableDefs("tblAufgaben").
    Fields("Erledigt").
    Properties("Description")

    Abb. 6: Diesen Fehler meldet Access beim Zugriff auf Properties, die noch nicht angelegt wurden.

    Aber Vorsicht! Auch diese Anweisung kann zu einer Fehlermeldung führen (s. Abb. 6). Die obige Anweisung greift auf das Feld Erledigt der Tabelle tblAufgaben zu. Access kann das Description-Property nur dann finden, wenn Sie im Tabellenentwurf eine Beschreibung für das Feld eingegeben haben.

    Abfrage der ValidationRule als
    Property

    Über die Properties-Auflistung können Sie prinzipiell alle Eigenschaften eines Datenfeldes abfragen. Dazu gehören auch die integrierten Eigenschaften wie beispielsweise die ValidationRule. Statt direkt auf die gleichnamige Eigenschaft des Fields-Objektes zuzugreifen, können Sie alternativ auch die Properties-Auflistung verwenden:

    ? currentdb.TableDefs("tblAufgaben").
    fields("Erledigt").
    Properties("ValidationRule")

    Alle Properties eines Feldes
    abfragen

    Die Properties-Auflistung eines Feldes enthält die fest integrierten und von den Benutzereingaben abhängige Properties. Je nachdem, ob der Anwender eine Beschreibung eingegeben hat oder nicht, ist die Description-Property vorhanden. Die Abfrage aller Properties eines Datenfeldes erfolgt am besten in einer Schleife mit dem Aufbau wie in der Prozedur aus Quellcode 1.

    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:

    Verwandte Beiträge:

    DAO: Tabellen, Felder und Co. bearbeiten

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.