• ベストアンサー

ACCESSの抽出条件更新方法について

いつもお世話になります。 複数のクエリで抽出条件を設定しているのですが、この条件設定をまとめて変更することはできないでしょうか? 例えば、抽出条件を"2007/1/1"を複数のクエリに設定したいとします。 この値を変更しようとすると更新が設定した分だけ大変になります。 できれば、一箇所で条件を設定すればすべてのクエリの抽出条件に反映できれば良いのですが... 文章が拙くて申し訳ありません。 お返事お待ちしております。

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

  • ベストアンサー
  • guruguru2
  • ベストアンサー率29% (39/132)
回答No.2

こんばんわ。 モジュールで関数を作ってみてはいかがでしょうか? クエリの方では条件に、 =GetWhere() とでもしておいて、 モジュールのほうで、 Public Function GetWhere() As String Dim strWhere As String strWhere = "#2007/1/1#" '日付型だと#で囲むんだったような…? GetWhere = strWhere End Function としておけば関数の条件だけ変更すればすべてのクエリに反映されます。

higenonorimaki
質問者

お礼

お返事ありがとうございます。 独自の関数を作ってやるやり方があるんですね。 ちょうどVBAは勉強をしてるのでトライしてみます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

もう既にクエリを作成後で、それをそのままにして、質問の趣旨を実現するのは難しいともいます。 そういう仕組みを組み込んだ、ものにあらかじめ作っておくか、改造するか。 次ぎに近いのは (1)パラメータクエリにする しかしクエリごとに聞いてくるわずらしさはある。 (2)仕組みそのものをVBAなどで組む。 多分SQLを問題にすると思うが、SQL文は文字列で、そののWHERE句の 部分を変数化して、可変化することになるのでしょう。 このことそのものは、プロなどでは、多用されることだと思う。 条件をパブリック変数化などはできないかと思うが、自信なし。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

全体像が分からないので回答しにくいですが たとえば抽出条件入力用の非連結フォームを用意し そこに置いたテキストボックスに条件を入力し 各クエリの抽出条件欄には Forms!条件入力フォーム!条件テキストボックス のように書きます この方法はクエリを開くときに必ずフォームが開いていないとだめですよ どこかに条件を保存しておいて異なるタイミングでクエリを開きたいときには 1行1列の条件入力用のテーブルを用意するという手もありますね この場合の抽出条件は DLookup("条件フィールド","条件テーブル") となります

higenonorimaki
質問者

お礼

お返事ありがとうございます。 テーブルにデータを置いてやる方法は想像できたのですが(やり方は分かりませんでしたが...)、フォームに入力する方法もあるんですね。

関連するQ&A

  • ACCESS 選択クエリーの抽出条件について

    既出でしたら、大変申し訳ありません。 選択クエリーの抽出条件をフォーム上テキストボックスに入力した 値で行いたいと思います。 対象の項目は商品コードであり、テキスト型です。 フォーム上のテキストボックスに、1111 と入力し、 クエリーの実行をしたところ、正常に抽出。 しかし、フォーム上のテキストボックスに、"1111" or "2222"と 複数の商品を抽出したいので入力した場合、結果が出ませんでした。 おそらく、"1111" or "2222"の記述に問題があるのだと思い、 何パタンか挑戦しましたが、結果バツ。 どなたかお分かりになる方いらっしゃいますか? つたない文章で申し訳ありません。

  • ACCESSの抽出条件更新方法について

    アクセス素人です。 お世話になります。 質問番号:2664266で 複数のクエリーの条件を一括で変更する場合 モジュールで関数を作ることで下記のように解答されています。 >クエリーの条件に >=GetWhere() >とでもしておいて、 >モジュールのほうで、 >Public Function GetWhere() As String >Dim strWhere As String >strWhere = "#2007/1/1#" >GetWhere = strWhere >End Function 上記は日付についてでありますが クエリーの条件が数値型で、たとえば事業所コードを 複数選択したいときは"#2007/1/1#"の所は どのように記述すればいいのでしょうか。 クエリーに直に条件を入れるときのように strWhere = "1010" or "2010" or "3010" と記述してみましたがうまくいきません。 ご教授お願いします。

  • Accessで任意のテーブルのフィールド値をクエリの抽出条件にできますか?

    Accessで任意のテーブルのフィールド値をクエリの抽出条件にできますか? 工程管理のAccessDBがあり、毎日更新される工程を管理するため、数種類の選択クエリを作成しています。 そのクエリからExcelのデータベースクエリを使ってExcelシートにクエリ毎に各シートに取り込んでいます。 Accessクエリは不定期で抽出条件を変更しています。 抽出条件はどのクエリでも同時に同じものを使うところが多いため、任意に入力した値を抽出条件に指定できれば、一度で全クエリの抽出条件を変更できるのではないかと考えています。 色々調べてもフォームを使った方法は紹介されていますが、上記の条件下でいい方法はないでしょうか? 抽出条件は『Is Null Or >#2008/06/30#』のような感じです。

  • ACCESSクエリ抽出条件について

    フォーム画面のリストボックスで複数選択が出来るよう設定し、その結果をクエリの抽出条件で forms![フォーム名].[リストボックス名] としたのですが全く反映されません。 複数選択が出来ないようにしたら問題なく表示されるのですが、上記の記述以外に入力しないといけないのでしょうか?

  • Accessのクエリ 抽出条件について

    Accessのクエリ 抽出条件について Accessクエリのフィールドに納品日、検収日、納期検収変更日があり、これらで抽出条件を設定したいのですが、どうしていいか判りません。 抽出条件等の例を画像添付しますので、どうように設定すれば良いか? 具体的に教えて頂けると助かります。 フォームにも同じ項目を作成しています。

  • Accessの抽出条件

    お世話になります。 選択クエリの抽出条件の書き方がわかりません、どなかたお教えください。 質問:基本データ、の数値定義の、登録番号の、4225403~4246003の間の抽出条件で選択クエリの抽出条件セル内にどのように書けばよいでしょうか? ちなみに私は、&[Forms]![F_抽出条件]![抽出条件]のForms、F_抽出条件、抽出条件、!、[] 等の意味がまったくわからないレベルです。 そのままセルにコピペでOKの形で教えてください。

  • ACCESSクエリーの抽出条件について

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • Access2003 抽出条件について

    お世話になります。 フォームビューにて、日付での検索をしたいのですが 『日付A』~『日付B』までの期間を任意で入力して抽出したいのです。 その場合、クエリではどういう抽出条件を設定すれば良いのでしょうか? Accessの教則本を何冊も買っていますが、的を得てないのばかりで困っています。 宜しくお願い致します。

  • Access 複数の抽出条件

    Access2002 windows2000 (例)次のようなテーブルとします。 フィールド名:名前 年齢 性別 レコード1 :山本 30 男 レコード2 :鈴木 40 女 レコード3 :田中 45 男 レコード4 :森本 26 女 クエリを利用して抽出する時、年齢が40以上で男を条件とすれば (1)年齢フィールドの抽出条件:>=40 (2)性別フィールドの抽出条件:男 として、田中が抽出されます。 では年齢が40以上で男、そして女は全て抽出したい時は(1)(2)の条件はどの様にすればいいでしょう? 抽出結果が 田中、鈴木、森本となりたいのです。 複数のクエリを作れば出来ますが、1つのクエリでは無理なのでしょうか。

  • Access 選択クエリーの抽出条件

    Access2000を使っています。 選択クエリーの抽出条件にテーブルの値を設定することは可能でしょうか? たとえば、テーブルAに対して、抽出条件をテーブルBのデータでコード番号 ”B*”(コード番号にBのつくもの)を抽出したいのですが・・・。 よろしくお願いします。

専門家に質問してみよう