Satzverabeitung unter DAO ◦ ?

### Begriff

Damit Sie mit den Objekten, Eigenschaften und Methoden von DAO arbeiten können, müssen Sie mit »Extras/Verweise darauf verweisen. DAO360.DLL verweist zum Beispiel auf die Version 3.6 von DAO. Wir führen im Folgenden in die einfache Satzverarbeitung unter VBA/DAO ein. Das Thema Objektmodell von DAO erwähnt zusätzliche Objekttypen von DAO.

Datenbanken bestehen aus der Sicht des Entwicklers aus Objekten. Zwei wichtige Klassen von DAO-Objekten sind Databases und Recordsets. Jede geöffnete Datenbank ist ein Database-Objekt mit bestimmten vor- oder benutzerdefinierten Eigenschaften und Methoden. Die Version-Eigenschaft hält zum Beispiel fest, mit welcher Softwareversion die Datenbank erstellt wurde, oder die CreateTableDef-Methode definiert eine neue Tabelle und das Recordset-Objekt. Ein Recordset (dt. Datensatzgruppe) stellt die Datensätze einer Basis- oder Ergebnistabelle zur satzorientierten Verarbeitung bereit. Ein Record (dt. Satz) besteht seinerseits aus Feldobjekten (auch Spalten oder Attribute genannt). Jedes dieser Attribute besitzt eine Eigenschaft namens Value, die auf den Attributinhalt zugreift. Eine weitere wichtige Methode ist OpenRecordset. Sie fügt ein neues Recordset-Objekt an die laufende Recordsets-Auflistung.

### Einfache Satzverarbeitung

Die einfache Satzverarbeitung unter DAO läuft in vier Schritten ab:

#### 1. Objektvariablen vereinbaren

Objektvariablen zeigen auf eine geöffnete Datenbank (siehe 2.) oder einen geöffneten Recordset:

>     Dim laufendeDatenbank As Database
>     Dim Datensätze As Recordset

#### 2. Den Objektvariablen Werte zuweisen

Visual Basic behandelt Variablen, die auf Datenbanken und Recordsets verweisen, anders als Nicht-Objektvariablen. Der Zuweisungsoperator = genügt nicht, um ihnen ein Wert zuzuweisen. Erforderlich ist zusätzlich das Befehlswort Set:

>     Set laufendeDatenbank = CurrentDb
>     Set Datensätze = laufendeDatenbank.OpenRecordset(...)

Die Methode OpenRecordset verlangt als Präfix die Datenbank, aus dem der Recordset stammt. Die hier nicht genannten Argumente von OpenRecordset beschreiben die Datenherkunft (insbesondere den Namen einer Basis- oder Ergebnistabelle).

#### 3. Durch einen Recordset navigieren

OpenRecordset positioniert auf dem ersten Satz der Datenherkunft. Manchmal soll nur dieser erste (und vielleicht einzige) Satz bearbeitet werden (Verarbeitung eines einzigen Satzes). In der Regel ist aber eine Navigation durch mehrere Datensätze erforderlich (Satzverarbeitung in einer Schleife).

#### 4. Die Objektvariablen schliessen

Objekte benötigen mehr Ressourcen als gewöhnliche Variablen. Es ist deshalb ratsam, Objekte so bald wie möglich zu schliessen. Um ausserdem zu dokumentieren, dass der Verweis auf eine geschlossene Objektvariable nicht mehr gilt, weist man dem Objektverweis Nothing zu:

>     Datensätze.Close
>     Set Datensätze = Nothing

Verarbeitung eines einzigen Satzes
Verarbeitung mehrerer Sätze in einer Schleife
Abfrageobjekte

Database-Objekt
Recordset-Objekt