PARAMETERS-Deklaration (Microsoft Access SQL)

Gilt für: Access 2013, Office 2013

Deklariert den Namen und Datentyp der einzelnen Parameter in einer Parameterabfrage.

Syntax

PARAMETERS Name Datentyp [, Name Datentyp [, …]]

Die PARAMETERS-Deklaration enthält die folgenden Bestandteile:

Argument

Beschreibung

name

Der Name des Parameters. Wird der Name-Eigenschaft des Parameter-Objekts zugewiesen und wird verwendet, um diesen Parameter in der Parameters-Auflistung zu identifizieren. Sie können angeben, dass Name als Zeichenfolge in einem Dialogfeld angezeigt wird, während die Abfrage von der Anwendung ausgeführt wird. Umgeben Sie Text, der Leerzeichen oder Satzzeichen enthält, mit Klammern ([ ]). [Low price] und [Begin report with which month?] sind beispielsweise gültige Argumente für Name.

Datentyp

Einer der wichtigsten Microsoft Access SQL-Datentypen oder eines der Synonyme.

Hinweise

Für regelmäßig ausgeführte Abfragen können Sie zum Erstellen der Parameterabfrage eine PARAMETERS-Deklaration verwenden. Eine Parameterabfrage kann Sie dabei unterstützen, das Ändern der Abfragekriterien zu automatisieren. Bei einer Parameterabfrage müssen die Parameter jedes Mal, wenn die Abfrage ausgeführt wird, im Code angegeben werden.

Die PARAMETERS-Deklaration ist optional, doch wenn sie angegeben wird, wird sie vor allen anderen Anweisungen angegeben, selbst vor einer SELECT-Anweisung.

Wenn die Deklaration mehrere Parameter einschließt, müssen diese durch Kommas getrennt werden. Im folgenden Beispiel sind zwei Parameter eingeschlossen:

PARAMETERS [Low price] Currency, [Beginning date] DateTime;

Sie können Name, jedoch nicht Datentyp in einer WHERE- oder HAVING-Klausel verwenden. In den folgenden Beispielen wird die Angabe von zwei Parametern erwartet, anschließend werden die Kriterien auf die Datensätze in der Orders-Tabelle angewendet:

PARAMETERS [Low price] Currency, 
[Beginning date] DateTime; 
SELECT OrderID, OrderAmount
FROM Orders 
WHERE OrderAmount > [Low price] 
AND OrderDate >= [Beginning date];

Beispiel

In diesem Beispiel muss der Benutzer eine Position angeben, die dann als Kriterium in der Abfrage verwendet wird.

Dabei wird die EnumFields-Prozedur aufgerufen, die im Beispiel für die SELECT-Anweisung enthalten ist.

    Sub ParametersX() 
     
        Dim dbs As Database, qdf As QueryDef 
        Dim rst As Recordset 
        Dim strSql As String, strParm As String 
        Dim strMessage As String 
        Dim intCommand As Integer 
         
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("NorthWind.mdb") 
         
        ' Define the parameters clause. 
        strParm = "PARAMETERS [Employee Title] CHAR; " 
     
        ' Define an SQL statement with the parameters 
        ' clause. 
        strSql = strParm & "SELECT LastName, FirstName, " _ 
            & "EmployeeID " _ 
            & "FROM Employees " _ 
            & "WHERE Title =[Employee Title];" 
         
        ' Create a QueryDef object based on the  
        ' SQL statement. 
        Set qdf = dbs.CreateQueryDef _ 
            ("Find Employees", strSql) 
         
        Do While True 
            strMessage = "Find Employees by Job " _ 
                & "title:" & Chr(13) _ 
                & "  Choose Job Title:" & Chr(13) _ 
                & "   1 - Sales Manager" & Chr(13) _ 
                & "   2 - Sales Representative" & Chr(13) _ 
                & "   3 - Inside Sales Coordinator" 
             
            intCommand = Val(InputBox(strMessage)) 
             
            Select Case intCommand 
                Case 1 
                    qdf("Employee Title") = _ 
                        "Sales Manager" 
                Case 2 
                    qdf("Employee Title") = _ 
                        "Sales Representative" 
                Case 3 
                    qdf("Employee Title") = _ 
                        "Inside Sales Coordinator" 
                Case Else 
                    Exit Do 
            End Select 
             
            ' Create a temporary snapshot-type Recordset. 
            Set rst = qdf.OpenRecordset(dbOpenSnapshot) 
     
            ' Populate the Recordset. 
            rst.MoveLast 
                 
            ' Call EnumFields to print the contents of the  
            ' Recordset. Pass the Recordset object and desired 
            ' field width. 
            EnumFields rst, 12 
     
        Loop 
         
        ' Delete the QueryDef because this is a 
        ' demonstration. 
        dbs.QueryDefs.Delete "Find Employees" 
         
        dbs.Close 
     
    End Sub