- 締切済み
Accessの使い方で質問です
画面上から指定された条件をどのようにクエリに活かせばいいのかがよくわかりません。どなたかアドバイスをどうかお願いします。 ・対象テーブルの列は以下のような構成です。 会社コード 商品コード 商品番号 購入者名 ・やりたいこと (1)フォーム上のテキストボックス(に限りませんが)に上記の列名のいずれかを指定させます。 (2)そのテキストボックスに入ってきた列のデータ値に合わせた条件をユーザーに入力してもらいます。 (3)その結果を同じフォームの下半分にレコードデータのように表示させます。 ユーザーから見た操作イメージは「どの列に対して((1))条件を指定して((2))レコード検索する((3))」といった感じです。 (2)はクエリ上でその列に対して「like[入力値を入れてください]」と指定すればできると思うのですが、(1)の条件をどのように画面上で指定してもらい、それを(2)のクエリにとりこめばいいのかがわかりません。(3)はサブフォームで(2)のクエリを元に作成すればいいのかも・・・と思うのですが、(1)(2)が出来ないので先に進めず困っています。 どなたかどうかアドバイスをお願いします。質問の内容が足りなかったらすぐ補足します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ipsum11
- ベストアンサー率21% (55/251)
どうも#1です、補足見ました。 見た所、条件は一つの項目(商品コードならそれのみ)しかないのですね? 考えられる方法として、 1.条件分(各列分)のクエリーを用意してやり使い分ける。 2.全ての項目に条件を設定しておく(like [Forms]~)。 条件ウィンドウで不必要な項目は「**」をフォーム上のダミーコントロールにセットする。 どちらかですかね。2がわかりづらいですかね。 クエリの各列の抽出条件に「like [Forms]~」。 フォームに条件用コントロールを4つ作る。 例えば、リストで商品コードを選び、質問ウィンドウで「AA0101」と指定したら、条件用コントロールの2番目に「AA0101」とし、それ以外の1・3・4番目には「**」とします。 こうすれば商品コードが「AA0101」で、他の項目は全て検索対象になるはずです。 また、不明点がありましたら、どうぞ。 遅くなるかもしれませんが...
- ipsum11
- ベストアンサー率21% (55/251)
(1)これについては、どのような条件にしたいのかがわからないので、答えようがありません。 とりあえず、条件に使いたい項目をフォーム上に作ります。あとは、それらを使い、会社コードで検索なのか、会社コードの範囲で検索なのか、商品コードか、商品番号か、購入者か、それらの複合か、で使い分ければいいわけです。 (2)上記(1)で条件が決まればそれを元にクエリーを作りますが、その時の抽出条件にフォームのコントロールを指定しておけばいいのです。 [Forms].[フォーム名].[コントロール名] と言う風に。 (3)そのクエリーを使用するサブフォームのレコードソースに指定しておけばいいはずです。
補足
ipsum11さん、アドバイスありがとうございます。 あと、言葉足らずですみません・・・。言葉で補うのが難しいので、出来る限り画面イメージと一緒に補足してみます。 [画面イメージ] ------------------------------------------------- 項目:リストボックスから選択 (リストは列名リスト) 検索ボタン[ボタン] (これを押すと「項目」で選択した列に対する質問(like[~])がウィンドウ表示されて、指定後、下のサブフォームに該当するレコードが表示される) ----サブフォーム----- 会社コード 商品コード 商品番号 購入者名 00001 AA0101 1001 ヤマダタロウ 00002 AA0101 1002 ヤマダハナコ ------------------------------------------------- 例えば、「項目」部分で「商品コード」をリストから選択し、検索ボタンを押した後に表示される質問ウィンドウ(likeの場合)で「AA0101」と指定したらサブフォームに該当するレコードが表示されるというイメージにしたいのです。 でもクエリで、各列全てにlike指定やForms指定をしてしまうと「ある列に絞ってlikeやForms条件を実行したい」ということができず、全ての列が対象になってしまうので困っています。 ipsum11さん、この説明で補足出来ていますでしょうか・・・?