CREATE PROCEDURE ステートメント (Microsoft Access SQL)

適用先: Access 2013、Office 2013

ストアド プロシージャを作成します。

注:

Microsoft Access データベース エンジンは、Microsoft Jet データベース以外のデータベースでは CREATE PROCEDURE 句や DDL (データ定義言語) ステートメントを使用できません。

構文

CREATE PROCEDURE プロシージャ [param1 datatype[, param2 datatype[, ...]] AS sqlstatement

CREATE PROCEDURE ステートメントでは、次の引数を使用します。

パーツ 説明
procedure プロシージャの名前。 名前付け規則に従った名前を指定します。
param1param2 0 ~ 255 のフィールド名またはパラメーター。 例:

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

パラメーターの詳細については、「PARAMETERS」を参照してください。
datatype Microsoft Access SQL データ型の 1 つ、またはその別名のうちの 1 つを指定します。
sqlstatement SELECT、UPDATE、DELETE、INSERT、CREATE TABLE、DROP TABLE などの SQL ステートメント。

注釈

SQL プロシージャは、プロシージャの名前を指定する PROCEDURE 句、オプションのパラメーター定義リスト、1 つの SQL ステートメントで構成されます。

プロシージャ名は、既存のテーブルの名前と同じにすることができません。

この例では、クエリを CategoryList と名付け、EnumFields プロシージャを呼び出します。EnumFields プロシージャについては、SELECT ステートメントの使用例を参照してください。

    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