• ベストアンサー

ACCESS2003 でクエリの抽出条件に変数を代入したい。

ACCESSVBAのLoopを使用して、Aテーブルのb列入っている値を1行ごとに取得し変数に入れます。その変数をクエリの条件に入れたいのですが、どのようにすればよいでしょうか? 1行目の値取得→変数に代入→クエリを実行→2行目に移動...最終行まできたら処理を終える という流れでお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 9013yagi
  • ベストアンサー率39% (15/38)
回答No.2

 私が想定していたのは、変数の置場として、フォームの テキストボックス等のコントロールを利用してみたらどう かということでした。  まず、変数xを  Me.TextBox1.Text= x 等でデータを格納させ、その後 クエリの条件式の中に [Forms]![Form1]![TextBox1] を入れておくことで、変数を流用しようと考えていました。  実際には見検証なので実際に動くかは不明でしたが。。。。(^_^;

7_11shop
質問者

お礼

それならたしかにできますね。 機会があれば試してみたいと思います。 ご解答ありがとうございました。

その他の回答 (1)

  • 9013yagi
  • ベストアンサー率39% (15/38)
回答No.1

 どこからが判らないんでしょうか?具体的に示した方が宜しいかと。 全てわからないと仮定して、とりあえず私がやるとしたら 以下の方法ですかね? 1)Recordsetを利用して、データを1件取得します。 2)フォームのコントロールにそのデータを代入します。 3)フォームの値をクエリの条件式に代入します。これは   フォームを開いていれば、クエリのデザイン内で選択   することが可能です。 4)マクロの「オブジェクトの削除」で、クエリを削除し   ます。 以上が最も簡単な方法になると思います。 他にも、フォームやクエリを使用せずに、データ取得後、 パブリックの変数にデータを代入し、SQLの条件式に 変数を代入することで実現できますが、上記の方が見た目 的に判り易いかと思いますので。

7_11shop
質問者

補足

ご回答ありがとうございます。 3の部分をクエリではなく、SQLで行い うまく行きました。 もし、よろしければ、3の部分をおしえていただけないでしょうか? 入れる値が'x'という変数に格納されていた場合、 クエリの条件部分にに普通に'x'と入れてはうまくいきませんよね?

関連するQ&A