- 締切済み
Accessでデータベースを作っています。
Accessでデータベースを作っています。 先日、こちらで質問をさせていただいて、クエリで複数のフィールドを対象にデータを検索する ことはクリアできました。 ありがとうございました。 ご指導に基づき、4つのフィールド(仮にA,B,C,D)について、クエリの抽出条件に Like "*" & [Aを入力] & "*" Like "*" & [Bを入力] & "*" ・・・ とそれぞれ設定してパラメータ入力を求め、4つの条件すべて、または一部のみ設定して検索し、 正しい検索結果が得られました。 今度は、検索用のフォームを作成し、フォームで入力した条件をクエリに送って、同じ結果を 得たいと思うのですが、以下の方法では正しい検索結果が出てきません。 ・フォームに検索用のボックスをA~Dまで4つ作成(ひとつはコンボボックス、あとはテキスト) ・クエリの抽出条件に、それぞれ以下を入力 Like "*" & [Forms]![Q_form(作成したフォームの名前)]! [A(それぞれの検索ボックスの名前)] & "*" ・フォームに「クエリの実行」のコマンドボタンを配置 パラメータで入力する代わりにフォームを使いたい、というものなのですが(パラメータ入力 よりも、コンボボックスを使って値を選ぶ方が検索する人には使いやすいかと思って)、どうしたら うまいこといきますでしょうか。。 教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- layy
- ベストアンサー率23% (292/1222)
更新後処理?、 4つの検索条件を入力したら、検索ボタン押します。そこではクエリの実行でなくて再クエリの実行にするマクロ。フォームの値をクエリの条件にしたらこれよく使います。再クエリとは何かみておく。 1項目に偏るようならほか3項目の記載を真似します。やはりクエリデザインでまず確認。入力促す画面でるので*指定で全件出すところから。
- layy
- ベストアンサー率23% (292/1222)
クエリの結果は抽出条件を無視して全件でてますか?。 フォームに開いたときと検索条件でもう一度表示させたときでは、クエリのSQL文は違うので、検索後はクエリでなく再クエリとします。 これでもダメならクエリデザインで実行してみる。 前の課題で、 コンボボックスの結果を条件に使うのも可能です。集計クエリで重複をなくしたものを値集合ソースにします。 日付の範囲はカレンダーコントロール使えそうです。
補足
lavyさん、ありがとうございます。 全件ではないのです。 そして、検索結果が正しいこともあり、いろいろ試したのですが法則性がいまひとつ 見出せなくて困っていました。 検索条件のA,B,C,Dというのは、以前に質問させていただいた際の項目で言うと、 差出元、保管期間、日付、書類名、であり、差出元については、コンボボックスに直接 リストを書き込んで重複問題をクリアしていました。 検索に失敗するのは、どうもその差出元を条件に選んだときが多いような(そもそも、 差出元だけを条件に選んだ際に起こる気がします<ひとつの差出元を選んでも、ほかの データも出てくる・・・でも、微妙に全件ではない>。 ・・・ごちゃごちゃとすみません。 もう少し、失敗の原因を整理して、またお伺いした方がよいのですよね。。 再クエリとする設定というのは、フォームのそれぞれの検索用ボックスに対して、 プロパティ―イベント―更新後処理に、再クエリのマクロを設定すればよいのでしょうか? それをやってみたらば、マクロのエラーが出てしまって、先に進まなかったのです。 カレンダーコントロール・・・。 こちらの記事を検索などして、トライしてみます!!! 取り急ぎのお礼です。 また相談させてください。