• ベストアンサー

フォームから複数条件を指定してクエリを開く

m3_makiの回答

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.7

クエリの抽出条件では無理だと思います。 > 条件テキストを、直接デザインビューに入力すると上手くいきます。 クエリをSQLビューで見れば分かると思いますが、 Access が 条件を編集しています。 Where フィールド1 = "日本 太郎" Or フィールド1 = "東京 花子" のような感じに。 テキストボックスを条件にすると 「"日本 太郎" Or "東京 花子"」という人を検索することになりますね。 どうしてもクエリが必要ということなら VBA でクエリのSQL を書き換える、くらいしか思いつきません。 フォームやレポートに結果を表示したり、レコードセットを取得するとかなら、方法はあります。 例はこちら。 複数選択リストボックスで選択したレコードの印刷 https://hatenachips.blog.fc2.com/blog-entry-452.html スペース区切りの複数ワードからWHERE句を組み立てるサンプル https://tsware.jp/tips/tips_623.htm あとは応用です。 以上、1つのテキストボックスに複数の検索条件を入力する場合の回答です。 解釈が間違っていたら後免。 No.1 さんの質問にきっちり答えていれば、もっと早く適切な回答が付いたでしょう。

kanade0216
質問者

お礼

ありがとうございました。 深いです。ちょっと簡単には理解できませんが、勉強します。 ありがとうございました。

関連するQ&A

  • access クエリ 検索フォームの作り方

    よろしくお願いします。 やりたいこと: フォーム上で、テキストボックスに入力した値を検索して表示したい。 本やウェブで調べて、なんとか一度はやっと出来たのですが、 誤って何かを変更してしまい、使えなくなってしまいました。 今となってはどの資料を見て作れたのかわからなくなりました。 やったこと: クエリ :クエリA   条件にforms!フォームA!txt0を入力 フォーム:フォームA ヘッダーに非連結のテキストボックスtxt0を作成 txt0の更新後処理:docmd.requeryを入力 しかし、txt0に入力しても検索されません。 フォームのプロパティのレコードソース欄にクエリAを選択するようですが、 選択するクエリ名が表示されないので、クエリ名を入力しましたがダメでした。 どこか間違っているのでしょうか。VBAまでは勉強できないので上記範囲内でお願いします!

  • フォームからクエリの抽出条件を入力する方法

    既存のデータベースより複数のテーブルを結合し、必要なカラムだけを表示させるようなクエリを作成しました。 他の人でも操作ができるように、フォームを作成し、テキストボックスにて抽出条件を指定し、クエリやレポートを出力するような形にしたいと思っています。 このクエリの抽出条件をフォームより指定する方法で悩んでいます。 現在、作成したクエリの抽出条件の中に [Forms]![フォーム名]![テキストボックス名] と入力し、フォームのテキストボックスで抽出条件を記入してクエリを実行させているのですが、これでは複雑な条件 (Between~ や 条件1 or 条件2 等の指定) を入れると「直前の操作はキャンセルされました」とポップアップが出てしまい、思うとおりにうごきません。 フォーム内でこのような抽出条件範囲の指定ができるようにするにはどうしたらよろしいでしょうか? よろしくおねがいします。

  • 選択クエリでの複数抽出条件の記述について

    フォーム上に「テキストボックス」、「コンボボックス」、「チェックボックス」の項目があって、それぞれの条件に合致した、データを抽出する選択クエリを書いてるのですが、うまく抽出してくれません。 「テキストボックス」、「コンボボックス」には、[Forms]![テーブル名]![入力するボックスの名前] or 、[Forms]![テーブル名]![入力するボックスの名前] is nullと記述しています。 「チェックボックス」には、、[Forms]![テーブル名]![チェックボックスの名前] = True or [Forms]![テーブル名]![チェックボックスの名前] = Falseと記述しています。 しかしながら、任意のコンボボックスからテキストを選択し、チェックボックスにレのついたデータを抽出したくても正しいデータを表示してくれません。 どなたか、クエリに詳しい方よろしくお願いいたします。

  • フォームからクエリの抽出期間を指定するにあたって

    フォームのテキストボックス(開始日付,終了日付)に入力された期間内の レコードをクエリで抽出するために、以下のような抽出条件を設定しています。 Between [Forms]![フォーム1]![from date] And [Forms]![フォーム1]![終了日付] ここまでは問題なく出来ています。 ですが、例えばテキストボックスに何も入力していないときに、 全ての期間から全件表示させるような方法はありませんでしょうか? IIf(IsNull([Forms]![フォーム1]![開始日付]),True,~ というような形で、IIfとIsNullの組み合わせも考えたのですが、 日付は直接フィールドでは無く抽出条件のため、 Trueより後が設定できずに悩んでおります。 出来ればVBAは使いたくないのですが、 何か良い方法はありませんでしょうか?

  • サブフォームを利用したクエリーの抽出条件について

    環境:ACCESS2003&XP Pro メインフォーム&サブフォームのフォームを作成しています。 このサブフォームにテキストボックスをつけ、このテキストボックスの値を抽出条件にしたクエリーを作成しましたが、抽出条件がうまくいかないようで クエリー実行時にパラメータを聞いてきます。 クエリーの抽出条件は forms![メインフォーム名].[サブフォーム名].[テキストボックス名] です。 上記の書き方がおかしいのだと思います。 よろしくお願いします。

  • ACCESS クエリの抽出条件

    毎度お世話になります。 クエリをレコードソースとするフォームから、コマンドボタンでアクションクエリを実行するときの抽出条件の書き方を教えて頂けないでしょうか? 二つのテーブル(別のACCESSファイルからリンク)を基にパラメータクエリを作っています。 そのクエリを基にフォームを作っています。 さらに、そのフォームに追加クエリを実行するボタンを置いています。 フォームに表示してあるレコードだけ(パラメータで抽出されたレコードだけ)、他のテーブルに追加しようと思っているのですが、実行ボタンを押すともう一度パラメータが出てきてしまいます。 多分テキストボックスの値を読み取る際にレコードソースがテーブルでないのが問題じゃないかと思うのですが。。。 テーブル:Container / Items クエリ:From_Con(パラメータは[Container]フィールド) フォーム:From_Con(テキストボックス名は[txtContainer]) 追加クエリ:From_Con_App(抽出条件は[Forms]![From_Con]![txtContainer]としてみたがうまく動きません。) デザインビューの抽出条件を使う方法? SQLを使う方法? QueryDefを使う方法? いろいろありそうですが、ネットで検索してもヒットしません。 分かりにくい説明で申し訳ありませんがご教授願います。

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • Accessクエリの抽出条件にフォームから挿入する方法

    Accessフォームのテキストボックスに入力されたデータを、クエリの抽出条件に挿入したいのですが、その際部分一致で検索したいため、抽出条件にLike "*[Forms]![フォーム名]![テキストボックス名]*"と記述したのですがうまく行きません。 どのように記述すれば部分一致で検索できるのかお教えください。

  • アクセス2000 複数の条件でクエリ作成

    アクセス2000を使用しています フォームを作成して テキストボックスを3つ、ボタンを1つ配置しています テキストボックスには番号、名前、名前ヨミをそれぞれ入力します 名前とヨミはあいまい検索をしたいのですが クエリの条件をどのように書けばいいでしょうか? 番号の条件 Forms!MAIN!番号 名前の条件 like "*" & Forms!MAIN!名前 & "*" ヨミの条件 like "*" & Forms!MAIN!名前ヨミ & "*" をそれぞれ または で記入したのですがうまく抽出されません たとえば、番号のところに何か入力しても残りの2つが空白であるためにあいまい検索なので全てという認識で抽出をかけているのだと思います どのように条件を書けばうまく抽出されるでしょうか

  • ACCESS VBA フォーム複数条件

    ACCESSフォーム内のテキストボックスが空欄かどうかで条件分岐させる方法を教えてください。 フォーム内に複数テキストボックスがあります。 テキスト1 テキスト2 テキスト3 このテキストボックスの入力があるかどうかで、 エクスポートするクエリを変更したいです。 それぞれのテキストボックスの入力値は、 対応するクエリの抽出条件になっています。 少なくとも、テキスト1には入力があるという条件で、 ・テキスト2が空白なら、クエリ2を出力する ・テキスト3が空白なら、クエリ3を出力する という処理を行いたいのです。 マクロビルダーで、IFを使った処理は作ることができたのですが、 VBAを使って、同じ処理ができるようにしたいです。 どうかご教授のほど、よろしくお願いします。