Arbeiten mit Recordsets
Eigenschaften und Methoden von Recordsets
Die Tabellen auf den folgenden Seiten listen alle Eigenschaften und Methoden des Recordset-Objekts auf.
Detailliertere Informationen zur Verwendung der einzelnen Eigenschaften und Methoden finden Sie in den
späteren Abschnitten.
Eigenschaft D S T Beschreibung
AbsolutePosition rw rw Relative Datensatznummer innerhalb eines Recordsets.
BOF rrr Dateianfang (True/False)
Bookmark rw rw rw Lesezeichen (Datensatznummer)
Bookmarkable r r r Besteht die Möglichkeit, Lesezeichen zu verwenden?
CacheSize rw Größe des lokalen Datensatzpuffers.
CacheStart rw Lesezeichen des ersten Datensatzes, der gepuffert wird.
DateCreated r Erstellungsdatum der Tabelle.
EditMode r r r Bearbeitungszustand des aktuellen Datensatzes.
EOF rrr Dateiende (True/False)
Filter rw rw Legt einen Filterausdruck fest.
Index rw Name des aktuellen Index.
LastModified r r Lesezeichen des zuletzt bearbeiteten Datensatzes.
LastUpdated r Datum + Uhrzeit, an dem die Tabelle verändert wurde.
LockEdits rw rw Einstellen des Sperrverhaltens in einer Multiuserumgebung.
Name rrr Name des Objekts
NoMatch r r r Suchaktion erfolgreich ?
PercentPosition rw rw rw Satzzeigerposition in Prozent
RecordCount r r r Anzahl der Datensätze
Restartable r r f Besteht die Möglichkeit, ein Requery auszuführen?
Sort rw rw Legt einen Sortierausdruck fest.
Transactions r f r Unterstützt die Datenbank Transaktionen?
Type r r r Tabelle, Dynaset oder Snapshot
Updatable r f r Können Datensätze geändert werden?
ValidationRule r r r Text der Gültigkeitsprüfung
ValidationText r r r Fehlertext nach einer Gültigkeitsprüfung
Tabelle 6.14 Eigenschaften (Zeichenerklärung: D = Dynaset, T = Table, S = Snapshot, r = Read, w = Write, f = False)
313
Arbeiten mit Recordsets
BEISPIEL
Kapitel 6: DAO-Programmierung
Methode D S T Bemerkung
AddNew x x Neuen Datensatz anhängen.
CancelUpdate x x Update-Operation abbrechen.
Clone x x x Erstellt eine Kopie des Objektes.
Close x x x Schließen des Objektes
CopyQueryDef x x Kopie des QueryDefs-Objekts, auf dem der Recordset beruht.
Delete x x Löscht aktuellen Datensatz
Edit x x Editiert aktuellen Datensatz
FillCache x Lokalen Cache füllen
FindFirst x x Suche ersten Datensatz, der einem Kriterium entspricht.
FindLast x x Suche letzten Datensatz, der einem Kriterium entspricht.
FindNext x x Suche nächsten Datensatz, der einem Kriterium entspricht.
FindPrevious x x Suche vorhergehenden Datensatz, der einem Kriterium entspricht.
GetRows x x x Liefert eine oder mehrere Zeilen aus einem Recordset-Objekt (als Variant-Array).
Move x x x Relative oder absolute Bewegung um n Datensätze.
MoveFirst x x x Gehe zum ersten Datensatz.
MoveLast x x x Gehe zum letzten Datensatz.
MoveNext x x x Gehe zum nächsten Datensatz.
MovePrevious x x x Gehe zum vorhergehenden Datensatz.
OpenRecordset x x x Erstellen eines neuen Recordsets (siehe Filter-, Sort-Eigenschaft).
Requery x x Aktualisiert die Abfrage durch erneutes Ausführen.
Seek x x Suche Datensatz mit Kriterium.
Update x x Übernahme von neuen/geänderten Datensätzen in die Datenbank.
Tabelle 6.15 Methoden des Recordset-Objekts (Zeichenerklärung: D = Dynaset, T = Table, S = Snapshot)
Bevor es so weit ist, um mit obigen Eigenschaften und Methoden zu arbeiten, sollten Sie überprüfen, ob das
Recordset überhaupt Werte enthält, und wenn ja, wie viele.
Der einfachste Weg ist die Abfrage von BOF und EOF, den beiden Eigenschaften, mit denen Beginn und
Ende des Recordsets gekennzeichnet werden.
BOF
und
EOF
:
Dim rs As Recordset
Set rs = db.OpenRecordset("Testtabelle")
If rs.BOF AND rs.EOF Then
' ... keine Datensätze vorhanden
Else
' ... mindestens ein Datensatz vorhanden
End If
314
BEISPIEL
HINWEIS
BEISPIEL
HINWEIS
BOF : EOF
Tabelle gerade geöffnet:
BOF = True, EOF = True
Abbildung 6.3 Satzzeiger nach dem Öffnen
eines leeren Recordsets
Eine weitere Möglichkeit besteht mit der RecordCount-Eigenschaft, die Auskunft darüber gibt, ob mindes-
tens ein Datensatz vorhanden ist.
Verwendung von
RecordCount
:
Dim rs As Recordset
...
Set rs = db.OpenRecordset("Testtabelle")
If rs.RecordCount = 0 then
' ... keine Datensätze vorhanden
...
Für Dynasets und Snapshots wird bei vorhandenen Datensätzen der Wert 1 zurückgegeben. Nur bei Record-
sets vom Typ Table handelt es sich um die Gesamtanzahl der Datensätze.
Die Abfrage der korrekten Datensatzanzahl erfordert einen Sprung an das Ende der Datenmenge, da die
Eigenschaft RecordCount nur die Anzahl der gelesenen Datensätze enthält (auch wenn der Name der Eigenschaft etwas anderes
suggeriert!). Durch den Sprung an das Ende muss die Datenbank-Engine alle Datensätze lesen, die Eigenschaft RecordCount
wird korrekt initialisiert.
RecordCount
-Eigenschaft:
Dim db As Database
Dim dy As Recordset
Dim anzahl As Long
Set db = CurrentDb()
Dynaset erzeugen
Set dy = db.OpenRecordset("SELECT * FROM personen")
dy.MoveLast
anzahl = dy.RecordCount
dy.MoveFirst
Handelt es sich um größere Datenmengen, sollten Sie eine solche Programmierung möglichst vermeiden, da
der Sprung an das Ende einige Zeit in Anspruch nehmen kann (Besonderheit in Client/Server-Umgebungen: Verwenden Sie
eine Count-Abfrage).
315
Arbeiten mit Recordsets

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.