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