みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Access2002での複数項目検索について

教えてください。

Access2002でデータベースを作っています。

ふたつのテーブルから選択クエリを作成、そのクエリ内で部分一致のパラメータを設定し、
複数項目(5つ)の検索を行っていましたが、検索のたびに毎回5つのダイアログボックスを
クリア(必要項目を入力、入力しないパラメータは「OK」でとばす)するのがめんどくさいと
使用者にいわれ、検索フォームからの検索に変えたいと思っています。

その場合、
 (1)選択クエリを基としたフォームを新規作成し、
 (2)非連結のテキストボックスを5つ作り、それぞれ適当な名前を付け、
 (3)クエリの抽出条件の欄の現在パラメータ設定をしているところを、
      [Forms]![フォーム名]![テキストボックス名]に変える
だけではできないのでしょうか。。

いろいろWeb上で調べたり、本を読んで見よう見まねでつくってみましたが、出来上がった
フォームから検索ボタン(「クエリの実行」ボタン)を押しても、全件が表示されてしまうの
です。

パラメータではできているのに・・・。

どなたか、ご教示くださるとうれしいです。

よろしくお願いいたします。

投稿日時 - 2010-12-16 15:35:34

QNo.6388327

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

>複数項目(5つ)の検索

5つの条件をそれぞれ5つの項目にLIKE文で割り当てているかと思います。

この5つ、
OR条件になっていますか、AND条件になっていますか?。
空回りして条件が意味ないものになっているがために全件抽出されているのでは?。

クエリのSQL文の「WHERE」以降を見なおす。

投稿日時 - 2010-12-16 20:40:26

ANo.3

クエリの抽出条件にそれぞれ、何でもいいですから、
たとえば、以下のように設定して、

[A1]
[A2]
[A3]
[A4]
[A5]

のように設定して、

qdf.Parameters("A1").Value = [Forms]![フォーム名]![テキストボックス1名]
qdf.Parameters("A2").Value = [Forms]![フォーム名]![テキストボックス2名]



のように設定します。

実際の方法は以下の回答No2が参考になると思いますが、
わからなければ補足してください。

http://oshiete1.watch.impress.co.jp/qa6352474.html

投稿日時 - 2010-12-16 16:39:23

ANo.2

ふたつのテーブル間で 1:N のリレーションシップになっていることが前提です。

投稿日時 - 2010-12-16 16:27:03

ANo.1

部分一致なら以下のとおりLikeで*挟んで指定すればOKです。

Like "*" & [Forms]![フォーム名]![テキストボックス名] & "*"

全件が表示される?というのが分かりませんね。
特に問題ないように見えます。
クエリ分以外に原因があるのではないでしょうか?

投稿日時 - 2010-12-16 16:23:25

あなたにオススメの質問