実行時に検索条件となる値(パラメータ)を求めるパラメータクエリーをADOを使用したVBAで実行して結果をレコードセットオブジェクトに取得するサンプルプログラムを覚書。
パラメータークエリーを実行してレコードセットを取得するサンプルプログラム
以下に2つのパラメータを持つパラメータクエリーを実行して結果をレコードセットオブジェクトで取得し、イミディエイトウィンドウに各フィールドの値を出力するサンプルプログラムを記載します。
Sub Sample()
Dim con As New ADODB.Connection
Dim com As New ADODB.Command
Dim rec As New ADODB.Recordset, i As Integer
Set con = CurrentProject.Connection
With com
.ActiveConnection = con
.CommandText = "テストクエリ"
.CommandType = adCmdTable
.Parameters.Refresh
.Parameters(0) = "第一営業"
.Parameters(1) = "東京都"
Set rec = .Execute
End With
Do Until rec.EOF
For i = 0 To rec.Fields.Count - 1
Debug.Print rec(i).Value
Next i
rec.MoveNext
Loop
End Sub
サンプルプログラムで使用したデーベースとパラメータークエリー
サンプルとなるクエリーはAccessのサンプルデータベース"Northwind.mdb"の社員テーブルを基にしています。
作成したパラメータクエリー"テストクエリ"は、SQL文で書くと以下のようになります。
PARAMETERS [部署名] Text ( 50 ), [都道府県] Text ( 50 );
SELECT 社員.*
FROM 社員
WHERE (((社員.部署名)=[部署名]) AND ((社員.自宅都道府県)=[都道府県]));
コメント