PROCEDURE 句 (Microsoft Access SQL)
適用先: Access 2013、Office 2013
クエリの名前と省略可能なパラメーターを定義します。
注:
[!メモ] PROCEDURE 句は PROCEDURE ステートメントに換わりました。 現在も PROCEDURE 句はサポートされていますが、PROCEDURE ステートメントは PROCEDURE 句の機能も備えているため、こちらを使用することを推奨します。
構文
PROCEDURE name [param1 datatype[, param2 datatype[, ...]]
PROCEDURE 句には、次の指定項目があります。
パーツ | 説明 |
---|---|
name | プロシージャの名前。 名前付け規則に従った名前を指定します。 |
param1、param2 | 1 つ以上のフィールド名またはパラメーター。 例:PROCEDURE Sales_By_Country [Beginning Date] DateTime, [Ending Date] DateTime; パラメーターの詳細については、「 パラメーター」を参照してください。 |
datatype | Microsoft Access SQL データ型の 1 つ、またはその別名のうちの 1 つを指定します。 |
解説
SQL のプロシージャは、プロシージャ名を指定する PROCEDURE 句、パラメーター定義のリスト (省略可能)、および 1 つの SQL ステートメントで構成されます。 たとえば、Get_Part_Number というプロシージャを作成して、特定の部品番号を取得するクエリを実行できます。
注:
例
この例では、クエリを 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