HINWEIS
BEISPIEL
BEISPIEL
Abbildung 6.9 Das Ergebnis des Beispiels
Damit der Verlauf aufgezeichnet wird, müssen Sie beim Tabellenentwurf die Eigenschaft »Nur anfügen« des
Memo-Felds auf »Ja« setzen.
Weitere Funktionen
In diesem Abschnitt finden Sie weitere Features der Datenbank-Engine, die sich nicht ohne weiteres in die
vorhergehenden Abschnitte einordnen ließen.
Eigenschaften (Properties)
Neben den vordefinierten Eigenschaften bietet die Datenbank-Engine auch die Möglichkeit, eigene Eigen-
schaften zu definieren. Dies betrifft im Wesentlichen alle Datenbankobjekte.
Sie können über ein
Table
-Objekt dessen Beschreibung abfragen. Diese Eigenschaft wird nicht von der
Datenbank-Engine bereitgestellt, sondern durch Access (es handelt sich also um eine selbst definierte Eigen-
schaft!).
Dim db As Database
Dim tb As Recordset
Set db = CurrentDb
Set tb = db.OpenRecordset("Städte und Telefonvorwahl", dbOpenTable)
label1.Caption = tb.Properties!Description
Definieren Sie neue Eigenschaften, müssen Sie diese mit der Append-Methode an die jeweils vorhandenen
Objekte anhängen. Bevor es jedoch soweit ist, müssen Sie mit CreateProperty ein neues Property-Objekt er-
zeugen.
Für die Tabelle »Städte und Telefonvorwahl« wird eine neue Eigenschaft (
Anzahl Zugriffe
) erzeugt, in der alle
Zugriffe auf die Tabelle dokumentiert werden können.
Dim db As Database
Dim td As TableDef
Dim prop As Property
333
Weitere Funktionen
Kapitel 6: DAO-Programmierung
Set db = CurrentDb
Set td = db.TableDefs("Städte und Telefonvorwahl")
Set prop = td.CreateProperty("Anzahl Zugriffe", DB_LONG, 0)
td.Properties.Append prop
Der
CreateProperty
-Methode übergeben Sie neben dem Namen auch den Datentyp und den Wert der neuen
Eigenschaft. Danach können Sie die Eigenschaft entweder über das
TableDef
-Objekt abfragen:
Label1.Caption = td.Properties("Anzahl Zugriffe")
oder Sie öffnen ein Recordset und fragen dort die Eigenschaft ab bzw. setzen diese:
Set tb = db.OpenRecordset("Städte und Telefonvorwahl")
tb.Properties("Anzahl Zugriffe") = tb.Properties("Anzahl Zugriffe") + 1
Beim Abfragen oder Setzen von Eigenschaften müssen Sie grundsätzlich zwischen den selbstdefinierten und
den vorgegebenen Properties unterscheiden. Während Sie Standard-Properties mit einer der drei folgenden
Varianten verwenden können:
Object.Property = xyz
Object.Properties!Propertiename = xyz
Object.Properties("Propertiename") = xyz
sind für selbst definierte Eigenschaften nur die letzten beiden Varianten zulässig.
Eine Auflistung aller Eigenschaften einer Tabelle im Testfenster erhalten Sie, wenn Sie den folgende Quell-
code ausführen:
Dim db As Database
Dim td As TableDef
Set db = CurrentDb
Set td = db.TableDefs("Städte und Telefonvorwahl")
For i = 0 To td.Properties.Count - 1
Debug.Print td.Properties(i).Name
Debug.Print Chr(9) & "Type: " & Choose(td.Properties(i).Type, _
"Boolean", "Byte", "Integer", "Long", "Currency", _
"Single", "Double", "Date", "", "Text", "Binär", _
"Memo", "", "", "")
Debug.Print Chr(9) & "Wert: " & td.Properties(i).Value
Next i
Die
Choose
-Funktion decodiert lediglich die Datentypen.
Abbildung 6.10 Beispielausdruck
334

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.