Kapitel 6: DAO-Programmierung
Die Annahme, dass das Löschen von Datensätzen diese vollständig aus der Tabelle bzw. der Datei entfernt,
ist zwar weit verbreitet, aber falsch! Falls Sie es nicht glauben: Speichern Sie 1.000 Datensätze in einer
Datenbank und löschen Sie diese anschließend wieder. Sie werden feststellen, dass die Datenbank nach dem
Löschen der Datensätze noch (fast) genauso groß ist wie vorher. Die Ursache: Datensätze werden nicht
gänzlich aus der Tabelle entfernt. Die dBASE-Programmierer unter den Lesern werden sicher noch den
Befehl Pack kennen. Erst damit wurden die gekennzeichneten Datensätze endgültig aus der Datenbank ver-
bannt. Einen ähnlichen Befehl stellt auch Access zur Verfügung:
CompactDatabase quelle, ziel
Die Ausführung der obigen Anweisung setzt in einer Mehrnutzerumgebung den exklusiven Zugriff auf die
Datenbank voraus, andere Nutzer können also während der Zeit der Bearbeitung nicht mit der Datenbank
arbeiten.
Datensätze sortieren
Beim Sortieren von Recordsets müssen wir wieder zwischen den drei verschiedenen Typen unterscheiden:
Während sich Dynasets und Snapshots über die Filter-Eigenschaft bzw. den SQL-Aufrufstring sortieren
lassen, müssen Tabellen über die Index-Eigenschaft sortiert werden. Daraus folgt, dass Sie die betreffenden
Tabellenfelder vorher indiziert haben müssen.
Typ Anweisung
Recordset
(Dynaset, Snapshot)
Zum Sortieren eines Dynasets gibt es zwei Möglichkeiten:
Dim dy As Recordset
Dim db As Database
Set db = CurrentDB()
Set dy = db.OpenRecordset("SELECT * FROM Artikel")
dy.Sort = "[name] Asc"
Set dy = dy.OpenRecordset()
Günstiger ist jedoch die folgende Variante:
Dim dy As Recordset
Dim db As Database
Set db = CurrentDB()
Set dy = db.OpenRecordset("SELECT * FROM Artikel ORDER BY name")
Recordset
(Table)
Ein Table-Objekt können Sie nur über die Index-Eigenschaft sortieren:
Dim db As Database
Dim tb As Recordset
Set db = CurrentDB()
Set tb = db.OpenRecordset("Artikel", dbOpenTable)
tb.index = "name"
Voraussetzung ist die Existenz eines entsprechenden Index. Die Sortierreihenfolge legen Sie mit der Definition
des Index fest.
Tabelle 6.17 Sortierfunktionen
322

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.