Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

14.5.2 Punkt oder Ausrufezeichen

14.5.3 Datenzugriff optimieren

Access bietet verschiedene Techniken für den Zugriff auf die in der Datenbank gespeicherten Daten - DAO und ADO. Im Folgenden finden Sie einige Tipps rund um den Einsatz dieser beiden Bibliotheken.

Datenzugriff möglichst per gespeicherter Abfrage statt mit ADO oder DAO

Wenn Sie per Code auf Daten zugreifen, sollten Sie nach Möglichkeit mit gespeicherten Abfragen arbeiten. Sie können damit nicht nur Daten abfragen, sondern diese durch die Verwendung von Aktionsabfragen auch ändern.

Letzteres lässt sich leicht durch ein Beispiel belegen. Die nachfolgenden Prozeduren ändern beide den Inhalt des Feldes Vorname für alle Datensätze der Tabelle tblKontakte.

Die erste Variante verwendet dafür DAO und durchläuft per Code alle Datensätze einer zuvor geöffneten Datensatzgruppe auf Basis der Tabelle tblKontakte.

Public Function Aktionsabfrage1()
    Dim db As DAO.Database
    Dim rst As Recordset
    Set db = CurrentDb
    Set rst = db.OpenRecordset("SELECT Vorname FROM tblKontakte", _
        dbOpenDynaset)    
    Do While Not rst.EOF
        rst.Edit

        rst!Vorname = "André"
        rst.Update
        rst.MoveNext
    Loop
    Set db = Nothing
End Function

Listing 14.24: Aktualisieren von Daten mittels DAO ...

Die zweite Variante setzt auf eine gespeicherte Abfrage namens qryUpdateKontakte, deren SQL-Code wie folgt aussieht:

UPDATE tblKontakte SET tblKontakte.Vorname = "André";

Die gespeicherte Aktionsabfrage führt die Aufgabe wesentlich schneller aus als die DAO-Variante.

Das ist auch nicht verwunderlich, da hier die ACE-Engine direkt mit der Änderung der Daten beauftragt wird - und auf solche Fälle ist sie ja nun spezialisiert.

Public Function Aktionsabfrage2()
    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Set db = CurrentDb
    Set qdf = db.QueryDefs("qryUpdateKontakte")
    qdf.Execute
    Set qdf = Nothing
    Set db = Nothing
End Function

Listing 14.25: ... und per gespeicherter Abfrage

Wenn Sie nichts anderes mehr mit den Objektvariablen anfangen und nur die Abfrage ausführen möchten, können Sie natürlich auch auf die Variablen verzichten und mit einer einzigen Abfrage auskommen:

CurrentDb.QueryDefs("qryUpdateKontakte").Execute

Tipp: Noch schneller ist die Variante mit DBEngine(0)(0) statt CurrentDB. Diese hat allerdings auch Nachteile, wie in Kapitel 9, Abschnitt 9.5, »Aktuelle Datenbank referenzieren«, beschrieben ist.

Nächster Abschnitt:

14.6 Sonstige Performance-Tipps

© 2006-2008 André Minhorst Alle Rechte vorbehalten.