Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beim Arbeiten mit Datenzugriffsobjekten (Data Access Objects, DAO) oder ActiveX Data Objects (ADO) müssen Sie möglicherweise eine SQL-Anweisung im Code erstellen. Dies wird manchmal auch als "Einbetten" von SQL-Code bezeichnet.
Wenn Sie z. B. ein neues QueryDef-Objekt erstellen, müssen Sie dessen SQL-Eigenschaft auf eine gültige SQL-Zeichenfolge festlegen. Bei Verwendung eines ADO-Recordset-Objekts müssen Sie stattdessen die Source-Eigenschaft auf eine gültige SQL-Zeichenfolge festlegen.
Um eine SQL-Anweisung zu erstellen, erstellen Sie eine Abfrage im Abfrageentwurfsbereich, wechseln zur SQL-Ansicht, kopieren die entsprechende SQL-Anweisung und fügen sie in Ihren Code ein.
Häufig muss eine Abfrage auf Werten basieren, die der Benutzer eingibt, oder auf Werten, die sich je nach Situation ändern. Wenn dies der Fall ist, müssen Sie Variablen oder Steuerelementwerte in Ihre Abfrage einschließen. Das Access-Datenbankmodul verarbeitet alle SQL-Anweisungen, jedoch keine Variablen oder Steuerelemente. Sie müssen daher Ihre SQL-Anweisung so erstellen, dass Access zunächst diese Werte bestimmt und sie dann mit der SQL-Anweisung verkettet, die an das Access-Datenbankmodul übergeben wird.
Erstellen von SQL-Anweisungen mit DAO
Das folgende Beispiel zeigt, wie ein QueryDef-Objekt mit einer einfachen SQL-Anweisung erstellt wird. Diese Abfrage gibt alle Bestellungen aus einer Orders-Tabelle zurück, die nach dem 31. März 2006 aufgegeben wurden.
Public Sub GetOrders()
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Dim strSQL As String
Set dbs = CurrentDb
strSQL = "SELECT * FROM Orders WHERE OrderDate >#3-31-2006#;"
Set qdf = dbs.CreateQueryDef("SecondQuarter", strSQL)
End Sub
Im nächsten Beispiel wird das gleiche QueryDef-Objekt unter Verwendung eines in einer Variablen gespeicherten Werts erstellt. Beachten Sie, dass die Nummernzeichen (#), die die Datumswerte kennzeichnen, in der Zeichenfolge enthalten sein müssen, damit sie mit dem Datumswert verkettet werden.
Dim dbs As Database, qdf As QueryDef, strSQL As String
Dim dteStart As Date
dteStart = #3-31-2006#
Set dbs = CurrentDb
strSQL = "SELECT * FROM Orders WHERE OrderDate" _
& "> #" & dteStart & "#;"
Set qdf = dbs.CreateQueryDef("SecondQuarter", strSQL)
Im folgenden Beispiel wird ein QueryDef-Objekt erstellt, indem ein Wert in einem Steuerelement namens "OrderDate" in einem Formular "Orders" verwendet wird. Beachten Sie, dass der vollständige Verweis auf das Steuerelement bereitgestellt wird und die Nummernzeichen (#) angegeben werden, die das Datum in der Zeichenfolge kennzeichnen.
Dim dbs As Database, qdf As QueryDef, strSQL As String
Set dbs = CurrentDb
strSQL = "SELECT * FROM Orders WHERE OrderDate" _
& "> #" & Forms!Orders!OrderDate & "#;"
Set qdf = dbs.CreateQueryDef("SecondQuarter", strSQL)
Erstellen von SQL-Anweisungen mit ADO
In diesem Abschnitt erstellen Sie die gleichen Anweisungen wie im vorherigen Abschnitt, aber dieses Mal verwenden Sie ADO als Datenzugriffsmethode.
Das folgende Codebeispiel zeigt, wie ein QueryDef-Objekt mit einer einfachen SQL-Anweisung erstellt wird. Diese Abfrage gibt alle Bestellungen aus einer Orders-Tabelle zurück, die nach dem 31. März 2006 aufgegeben wurden.
Dim dbs As Database, qdf As QueryDef, strSQL As String
Set dbs = CurrentDb
strSQL = "SELECT * FROM Orders WHERE OrderDate >#3-31-2006#;"
Set qdf = dbs.CreateQueryDef("SecondQuarter", strSQL)
Im nächsten Beispiel wird das gleiche QueryDef-Objekt unter Verwendung eines in einer Variablen gespeicherten Werts erstellt. Beachten Sie, dass die Nummernzeichen (#), die die Datumswerte kennzeichnen, in der Zeichenfolge enthalten sein müssen, damit sie mit dem Datumswert verkettet werden.
Dim dbs As Database, qdf As QueryDef, strSQL As String
Dim dteStart As Date
dteStart = #3-31-2006#
Set dbs = CurrentDb
strSQL = "SELECT * FROM Orders WHERE OrderDate" _
& "> #" & dteStart & "#;"
Set qdf = dbs.CreateQueryDef("SecondQuarter", strSQL)
Das folgende Codebeispiel erstellt ein QueryDef-Objekt, indem ein Wert in einem Steuerelement namens "OrderDate" in einem Formular "Orders" verwendet wird. Beachten Sie, dass der vollständige Verweis auf das Steuerelement bereitgestellt wird und die Nummernzeichen (#) angegeben werden, die das Datum in der Zeichenfolge kennzeichnen.
Dim dbs As Database, qdf As QueryDef, strSQL As String
Set dbs = CurrentDb
strSQL = "SELECT * FROM Orders WHERE OrderDate" _
& "> #" & Forms!Orders!OrderDate & "#;"
Set qdf = dbs.CreateQueryDef("SecondQuarter", strSQL)
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.