Erstellen eines DAO-Recordset-Objekts anhand einer Abfrage

Sie können ein Recordset-Objekt basierend auf einer gespeicherten Auswahlabfrage erstellen. Im folgenden Codebeispiel ist eine vorhandene Auswahlabfrage, Current Product List die in der aktuellen Datenbank gespeichert ist.

Dim dbsNorthwind As DAO.Database 
Dim rstProducts As DAO.Recordset 
 
Set dbsNorthwind = CurrentDb 
Set rstProducts = dbsNorthwind.OpenRecordset("Current Product List") 

Wenn noch keine gespeicherte Auswahlabfrage vorhanden ist, akzeptiert die OpenRecordset-Methode auch eine SQL-Zeichenfolge anstelle des Namens einer Abfrage. Das vorherige Beispiel kann wie folgt geschrieben werden.

Dim dbsNorthwind As DAO.Database 
Dim rstProducts As DAO.Recordset 
Dim strSQL As String 
 
Set dbsNorthwind = CurrentDb 
strSQL = "SELECT * FROM Products WHERE Discontinued = No " & _ 
         "ORDER BY ProductName" 
Set rstProducts = dbsNorthwind.OpenRecordset(strSQL) 

Der Nachteil bei diesem Ansatz liegt darin, dass die Abfragezeichenfolge bei jeder Ausführung kompiliert werden muss. Im Gegensatz dazu wird die gespeicherte Abfrage beim ersten Speichern kompiliert, wodurch in der Regel die Leistung etwas verbessert wird.

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.