クリックイベントでフォームを開くようにしています。
開くときにあらかじめ抽出結果をセットしたレコードを
フォームのレコードソースにしたいです。
以下のとおりのコードで抽出は問題なくできています。
Set QRY = db.CreateQueryDef("")
QRY.sql = Sample_SQL() '抽出SQL
Set rs = QRY.OpenRecordset
行き詰ってしまいました。
ご教授お願い致します。
ご提示のコードはVBAでテーフルデータを取得したり更新したりするときのもです。
フォームでデータを操作する場合は、関係ないです。
フォームを開く時に、引数で抽出条件を設定できます。
DoCmd.OpenForm メソッド (Access) | Microsoft Docs
コード例
DoCmd.OpenForm "フォーム名", , , "抽出条件"
または、
DoCmd.OpenForm "フォーム名", , "抽出条件を設定したクエリ名"
フォームのレコードソースにはテーブル名が、抽出条件を設定していないクエリ名を設定しておきます。
ご連絡ありがとうございます。
フォームに設定する方法は存じております。
今行っている作業は、単純ではなく、たくさんの「フォームを開く」コマンドボタンから発生するイベントが、ほとんど同じ内容なのでそれらのコードを短縮するために標準モジュールにSQLを作成したのですが、その抽出したレコードをなんとかフォームのレコードセットに入れることができないかという問題です。
もしかしたらDo~Until でフォームのオブジェクトに代入していかないといけないやつでしょうか?
「標準モジュールにSQLを作成した」のなら、
フォームの RecordSourceプロパティにそれを設定すればいいでしょう。
どのタイミングで設定したいのか不明ですが、フォームの開く時イベントでするなら、