クエリにパラメータを設定すると実行時に値を受け取って実行してくれるようになる。
パラメータ指定のクエリSQL例)
PARAMETERS [パラメータ名] Text;
SELECT * FROM テーブル名 WHERE フィールド名 = [パラメータ名];
手動でクエリを開くとポップアップがでてきて、パラメータを入力できる。
VBAでパラメータ指定して実行する場合以下のようになる
Sub RunParameterizedQuery()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
' データベースオブジェクトを取得
Set db = CurrentDb
' クエリ定義オブジェクトを取得("クエリ名"は事前に作成したクエリの名前)
Set qdf = db.QueryDefs("クエリ名")
' パラメータの値を設定
qdf.Parameters("パラメータ名").Value = "指定したい値"
' クエリを実行
qdf.Execute
' オブジェクトのクリーンアップ
Set qdf = Nothing
Set db = Nothing
End Sub
もしフォームを使う場合は、フォームとクエリのパラメータをリンクできるのでVBでの上記のような記述が不要になる。
↓
ACCESSでクエリのSQLパラメータにフォームで入力した値をつかいたい(VB無しで動的なクエリ)