Freigeben über


PROCEDURE-Klausel (Microsoft Access SQL)

Gilt für: Access 2013, Office 2013

Definiert einen Namen und optionale Parameter für eine Abfrage.

Hinweis

Die PROCEDURE-Klausel wurde durch die PROCEDURE-Anweisung abgelöst. Zwar wird die PROCEDURE-Klausel noch unterstützt, doch die PROCEDURE-Anweisung stellt eine Übermenge der Funktionen der PROCEDURE-Klausel bereit und wird als Syntax empfohlen.

Syntax

PROCEDURE Name [Param1 Datentyp[, Param2 Datentyp[, …]]

Die PROCEDURE-Klausel enthält die folgenden Bestandteile:

Teil Beschreibung
name Der Name der Prozedur. Bei der Namensgebung müssen die Standardbenennungsregeln beachtet werden.
Parameter1, Parameter2 Ein oder mehrere Feldnamen oder Parameter. Zum Beispiel:

PROCEDURE Sales_By_Country [Beginning Date] DateTime, [Ending Date] DateTime;

Weitere Informationen zu Parametern finden Sie unter Parameter.
Datentyp Einer der wichtigsten Microsoft Access SQL-Datentypen oder eines der Synonyme.

Hinweise

Eine SQL-Prozedur besteht aus einer PROCEDURE-Klausel (die den Namen der Prozedur angibt), einer optionalen Liste mit Parameterdefinitionen und einer einzelnen SQL-Anweisung. Beispielsweise könnte die Prozedur Get_Part_Number eine Abfrage ausführen, die eine bestimmte Artikelnummer abruft.

Hinweis

  • Wenn die Klausel mehrere Felddefinitionen (Param-Datentyp-Paare) enthält, müssen diese durch Kommas getrennt werden.
  • Auf die PROCEDURE-Klausel muss eine SQL-Anweisung folgen (z. B. eine SELECT- oder eine UPDATE-Anweisung).

Beispiel

In diesem Beispiel wird die CategoryList-Abfrage benannt und die EnumFields-Prozedur aufgerufen, die im Beispiel für die SELECT-Anweisung enthalten ist.

    Sub ProcedureX() 
     
        Dim dbs As Database, rst As Recordset 
        Dim qdf As QueryDef, strSql As String 
         
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        strSql = "PROCEDURE CategoryList; " _ 
            & "SELECT DISTINCTROW CategoryName, " _ 
            & "CategoryID FROM Categories " _ 
            & "ORDER BY CategoryName;" 
         
        ' Create a named QueryDef based on the SQL 
        ' statement. 
        Set qdf = dbs.CreateQueryDef("NewQry", strSql) 
     
        ' 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, 15 
         
        ' Delete the QueryDef because this is a 
        ' demonstration. 
        dbs.QueryDefs.Delete "NewQry" 
         
        dbs.Close 
     
    End Sub