- ベストアンサー
Access2003でコンボボックスからデータを抽出する方法とは?
- Access2003を使用してコンボボックスから名前を選択し、住所データを抽出しリストボックスに表示したいが、うまくいかない。
- 指定したテーブルとクエリを作成し、フォームにコンボボックスとリストボックスを配置。コンボボックスの値を検索条件にして住所データを抽出するが、正しく表示されない。
- 作成したフォームにコンボボックスがあり、氏名を選択するとクエリの氏名抽出条件が反映されず、リストボックスには全レコードが表示されている。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です、再び。補足です。 >とりあえずサブフォームを使う【方法3】でやってみました。 >しかしながら、フォーム「印刷」を開くといきなり、 >『パラメータの入力画面(forms!印刷!検索)』がでてしまいまいます。 フォーム<印刷>の方は、<クエリ1>と関連付けしてはダメですよ。 あと、私の説明書がはしょってしまっていたので補足します(_ _) フォーム<sub_F住所録>をフォーム<印刷>のサブフォームとして埋め込んだときの、 コントロールとしての名前はフォーム名とは別設定になります。 がんばってください!^^
その他の回答 (2)
- may0430
- ベストアンサー率54% (57/104)
こんにちは。 私も、このへんはこんがらがったところです^^ヾ 抽出条件の記述は、クエリの抽出条件欄、アクションの引数、 どちらかひとつになります。 抽出結果を表示するコントロールとして、「リストボックス」よりは 「テキストボックス」がいいと思いますよ。 抽出結果を一覧表示させたいのであれば、 フォームのプロパティ→「書式」→「規定のビュー」:「帳票フォーム」 でよいのではないでしょうか。 (※ご存知↓でしたらスルーしてくださいね。) フォームのプロパティの出し方のうちのひとつ:フォーム(デザインビュー)の左上角 (垂直ルーラーと水平ルーラーの角のすきまの正方形)で、右クリック。 以下、私が知っているかぎりの3パターンになります。 (※抽出していることにはかわりはないのですが、動作のさせ方?が違ってきます。) (※ウィザードは使わない方向で書いてあります。) ーーーーーーーーーーーーーーーーーーー (3)まではOK。 【方法1】マクロアクション『フィルタの実行』―クエリは選択クエリ (※<クエリ1>の抽出条件欄は不要。) ・フォーム(→プロパティ→)の「レコードソース」は<クエリ1> ・コンボボックスはOK。 ・テキストボックス(→プロパティ→)の「データソース」は<クエリ1>の<住所>。(他同様に) ・マクロアクションは『フィルタの実行』 >⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] ・↑左辺と右辺が逆です。 ※[フィールド]=代入する値 ※「全レコードの表示」はフィルタの実行後に、フィルタを解除する為のアクション。 ーーーーーーーーーーーーーーーーーーー (4)まではOK。フィルタの実行は使わない。 【方法2】マクロアクション『クエリを開く』―(別ウィンドゥで)パラメータクエリを開く。 (<クエリ1>の抽出条件はOK。 …パラメータクエリ) ・コンボボックスはOK。(コンボボックスだけでOK) ・マクロアクションは『クエリを開く』 ・アクションの引数で<クエリ1>を選択。 【方法3】マクロアクション『再クエリ』―サブフォームとしてパラメータクエリを表示。(フォームは2つ必要) (<クエリ1>の抽出条件はOK。 …パラメータクエリ) ・<クエリ1>をもとにフォーム<sub_F住所録>を作る。 ※フォームの「レコードソース」は<クエリ1>ということ。 ・<sub_F住所録>とは別に、フォーム<印刷>を作る。 ・コンボボックスはOK ・コントロール「サブフォーム」を作る。(→プロパティ→)ソースオブジェクトは <sub_F住所録> ・マクロアクションは『再クエリ』 ・アクションの引数に<sub_F住所録>と入力。 ↑コントロールの名前 ※<sub_F住所録>はフォーム名としての一例。 ーーーーーーーーーーーーーーーーーーー うまくまとめれたかどうか、ちょっと自身がないのですが…^^;(ごめんなさい) ご参考まで。
補足
ご丁寧にありがとうございました。 とりあえずサブフォームを使う【方法3】でやってみました。 しかしながら、フォーム「印刷」を開くといきなり、『パラメータの入力画面(forms!印刷!検索)』がでてしまいまいます。 もう少しがんばってみます…。
- CHRONOS_0
- ベストアンサー率54% (457/838)
抽出したものを表示させるにはリストボックスなんかより 別フォームかサブフォームのほうが一般的ですね (4)まではOKですが(5)以降はめちゃくちゃですよ (5)の全レコードの表示って何に対する表示なんですか? リストボックス?だとするとフィルタというのが変ですね それに何のためにクエリを作ったのですか? フィルタを使うのならクエリは要らないのでは 方針が一定していませんね
お礼
ありがとうございました。 解決しました。