Querydef als RecordsetManche Anwendung erfordern die Verwendung von Querydefs, zum Beispiel um Abfragen zur Laufzeit mit Parametern zu versehen oder aufeinander aufbauende Abfragen zu verwenden. Diese sollen optimalerweise per VBA wie normale Datensatzgruppen benutzt werden können - was mit nachfolgend beschriebener Vorgehensweise funktioniert.

BeispielkonfigurationDie nachfolgende Vorgehensweise setzt das Vorhandensein einer Tabelle und einer auf dieser Tabelle aufbauenden Abfrage voraus. Die Tabelle heißt tblTestQueryDef und enthält die beiden Felder TestQueryDefID und TestQueryDefWert. Die Abfrage heißt qryTestQueryDef und enthält beide Felder der Tabelle tblTestQueryDef. Vom Querydef zum RecordsetDie folgende Beispielprozedur zeigt, wie Sie eine QueryDef als Grundlage für den Zugriff auf bestimmte Daten verwenden. Dazu legen Sie zunächst das Bezugsobjekt der QueryDef fest. Anschließend weisen Sie der Datensatzgruppe eine auf der Querydef basierende Datensatzgruppe zu:
Public Function Querydef()
Dim db As DAO.database
Dim rst As DAO.Recordset
Dim qdf As DAO.Querydef
Set db = CurrentDb
Set qdf = db.QueryDefs("qryTestQueryDef")
Set rst = qdf.OpenRecordset
Do While Not rst.EOF
Debug.Print rst!TestQueryDefWert
rst.MoveNext
Loop
End Function
Diese Datensatzgruppe kann genau wie jede andere Datensatzgruppe verwendet werden. |