パラメータクエリやパラメータを持つストアドプロシージャを実行する
Sub パラメータクエリを実行()
Dim myCon As New ADODB.Connection, myCmd As New ADODB.Command
Dim myPmt As ADODB.Parameter, mySrc As String
'対象となるデータベース
mySrc = ThisWorkbook.Path & "\mdb\4-sampleDB.mdb"
'接続
With myCon
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.Open mySrc
End With
With myCmd
.ActiveConnection = myCon
.CommandText = "PQ_手当更新"
'新規パラメーターオブジェクトを作成
Set myPmt = .CreateParameter("手当金額", adInteger, adParamInput)
'パラメータとして渡す値を指定
myPmt.Value = 10000
'設定したParameterオブジェクトを追加
.Parameters.Append myPmt
'パラメータクエリを実行
.Execute
End With
Set myPmt = Nothing
Set myCmd = Nothing
myCon.Close: Set myCon = Nothing
End Sub
CreateParameterメソッドで新規パラメータを作成
Set parameter = Commandオブジェクト.CreateParameter (Name, Type, Direction, Size, Value)
Appendメソッドを使ってParameteオブジェクトをParametersコレクションに追加
Commandオブジェクト.Parametersコレクション.Append Parameteオブジェクト
Parameteオブジェクトはそのままでは Command オブジェクト実行時に反映されないので、 Append メソッドを使って Paramete オブジェクトを Parameters コレクションに追加する。
複数のパラメータを指定する場合は、必要なだけパラメータを追加する。
| 引数 | 説明 |
|---|---|
| Name | 任意の名前を指定 |
| Type | パラメータのデータ型をDataTypeEnum列挙型で指定 |
| Direction | パラメータの種類ををParameterDirectionEnum列挙型で指定 |
| Size | パラメータ値の最大長を指定 |
| Value | パラメータとして渡す値を指定 |
| 定数 | 値 | 説明 |
|---|---|---|
| adParamInput | 1 | 入力パラメータ、既定値 |
| adParamInputOutput | 3 | 入出力パラメータ |
| adParamOutput | 2 | 出力パラメータ |
| adParamReturnValue | 4 | 戻り値 |
| adParamUnknown | 0 | 使用方法が不明な状態 |
実行するパラメータクエリ
実行前の「アルバイト」テーブル
実行結果

