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.

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. (

    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).

    Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

    Workplace

    Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar