パラメータクエリやパラメータを持つストアドプロシージャを実行する
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 | 使用方法が不明な状態 |
実行するパラメータクエリ
実行前の「アルバイト」テーブル
実行結果