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 プロシージャの名前。 名前付け規則に従った名前を指定します。
param1、param2 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