Südsturm - die bessere Beispieldatenbank

Werbung
Abfragetechnik und SQL
Datenzugriff per VBA vereinfachen
Datenzugriff per VBA vereinfachen
André Minhorst, Duisburg
Der Datenzugriff etwa per Datensatzgruppe erfordert immer wieder die gleichen Handgriffe: Database-Objekt deklarieren und instanzieren, Recordset-Objekt deklarieren und instanzieren und
dann ran an die Daten. Gleiches gilt für das Absetzen von SQL-Anweisungen mit der ExecuteMethode oder für das Ausführen von Parameterabfragen. Wir zeigen, wie Sie sich dies merklich
vereinfachen können und noch dazu Code einsparen.
CurrentDB ersetzen
Public m_dbs As DAO.Database
Wenn Sie einmal eine typische Datenbank durchsuchen, werden Sie vermutlich zahllose Aufrufe
der CurrentDB-Funktion und noch mehr Einsätze der OpenRecordset-Methode des DatabaseObjekts finden. Dies ist – wenn auch meist nicht
dramatisch – eine Performance-Bremse. Ein Database-Objekt mit einem Verweis auf die aktuelle
Datenbank erzeugt man am besten nur einmal,
und dann erst wieder, wenn der Verweis aus irgendeinem Grund verloren geht.
Zweitens benötigen Sie eine Funktion, die den
Wert dieser Variablen ausliest und zurückgibt und
die Variable gegebenenfalls erst noch füllt:
Die folgenden beiden Zeilen zur Deklaration der
Variablen und zum Zuweisen des Database-Objekts sparen Sie künftig ein:
Diese beiden Elemente bringen Sie in einem Standardmodul namens mdlEasyDataAccess unter.
Und drittens setzen Sie diese Funktion nun überall
ein, wo Sie sonst auf die Variable verwiesen hätten,
die einen Verweis auf das Database-Objekt enthält – üblicherweise db genannt. Dies sieht dann
für das Öffnen einer Datensatzgruppe so aus:
Dim db As DAO.Database
Set db = CurrentDb
Stattdessen verwenden Sie erstens eine öffentliche Variable, die den Verweis auf die aktuelle
Datenbank nach seiner Erzeugung speichert:
Function dbs() As DAO.Database
If m_dbs Is Nothing Then
Set m_dbs = CurrentDB
End If
Set dbs = m_dbs
End Function
Dim rst As DAO.Recordset
Set rst = dbs.OpenRecordset("tblArtikel",
dbOpenDynaset)
Zusammenfassung
Verwenden Sie praktische VBA-Funktionen, um den Datenzugriff zu vereinfachen.
Techniken
DAO, SQL, Abfragen
Voraussetzungen
Access 97 und höher
Beispieldateien
DAOVereinfachen.mdb
Shortlink
574
www.access-im-unternehmen.de
Eine Deklaration und Zuweisung einer DatabaseVariablen – wie oben db – ist nun nicht mehr erforderlich, Sie benötigen nur noch die im oben
beschriebenen Standardmodul mdlEasyDataAccess erläuterten Elemente.
OpenRecordset ersetzen
Als Nächstes räumen wir mit der altehrwürdigen
OpenRecordset-Methode auf. Auch wenn das
eingefleischten Accesslern längst nicht mehr auffällt, nämlich dass dort IntelliSense nicht richtig
Access im Unternehmen
2/2008
39
Herunterladen