Access2003でコンボボックスからデータを抽出する方法とは?

このQ&Aのポイント
  • Access2003を使用してコンボボックスから名前を選択し、住所データを抽出しリストボックスに表示したいが、うまくいかない。
  • 指定したテーブルとクエリを作成し、フォームにコンボボックスとリストボックスを配置。コンボボックスの値を検索条件にして住所データを抽出するが、正しく表示されない。
  • 作成したフォームにコンボボックスがあり、氏名を選択するとクエリの氏名抽出条件が反映されず、リストボックスには全レコードが表示されている。
回答を見る
  • ベストアンサー

Access2003でコンボボックスからデータを抽出したい

自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

質問者が選んだベストアンサー

  • ベストアンサー
  • may0430
  • ベストアンサー率54% (57/104)
回答No.3

#2です、再び。補足です。 >とりあえずサブフォームを使う【方法3】でやってみました。 >しかしながら、フォーム「印刷」を開くといきなり、 >『パラメータの入力画面(forms!印刷!検索)』がでてしまいまいます。 フォーム<印刷>の方は、<クエリ1>と関連付けしてはダメですよ。 あと、私の説明書がはしょってしまっていたので補足します(_ _) フォーム<sub_F住所録>をフォーム<印刷>のサブフォームとして埋め込んだときの、 コントロールとしての名前はフォーム名とは別設定になります。 がんばってください!^^

tuyo1980
質問者

お礼

ありがとうございました。 解決しました。

その他の回答 (2)

  • may0430
  • ベストアンサー率54% (57/104)
回答No.2

こんにちは。 私も、このへんはこんがらがったところです^^ヾ 抽出条件の記述は、クエリの抽出条件欄、アクションの引数、 どちらかひとつになります。 抽出結果を表示するコントロールとして、「リストボックス」よりは 「テキストボックス」がいいと思いますよ。 抽出結果を一覧表示させたいのであれば、 フォームのプロパティ→「書式」→「規定のビュー」:「帳票フォーム」 でよいのではないでしょうか。 (※ご存知↓でしたらスルーしてくださいね。) フォームのプロパティの出し方のうちのひとつ:フォーム(デザインビュー)の左上角 (垂直ルーラーと水平ルーラーの角のすきまの正方形)で、右クリック。 以下、私が知っているかぎりの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住所録>はフォーム名としての一例。 ーーーーーーーーーーーーーーーーーーー うまくまとめれたかどうか、ちょっと自身がないのですが…^^;(ごめんなさい) ご参考まで。

tuyo1980
質問者

補足

ご丁寧にありがとうございました。 とりあえずサブフォームを使う【方法3】でやってみました。 しかしながら、フォーム「印刷」を開くといきなり、『パラメータの入力画面(forms!印刷!検索)』がでてしまいまいます。 もう少しがんばってみます…。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

抽出したものを表示させるにはリストボックスなんかより 別フォームかサブフォームのほうが一般的ですね (4)まではOKですが(5)以降はめちゃくちゃですよ (5)の全レコードの表示って何に対する表示なんですか? リストボックス?だとするとフィルタというのが変ですね それに何のためにクエリを作ったのですか? フィルタを使うのならクエリは要らないのでは 方針が一定していませんね

関連するQ&A

  • access クエリコンボボックスについて

    フォームのメニュー画面でレポート印刷ボタンを作りました。 印刷ボタンを押すと[抽出する都道府県は?] とパラメーター入力が表示されるようにしてあるのですが、 それを入力式ではなく、コンボボックスにして選択式にしたいのですが、 どのようにすれば良いのでしょうか? コンボボックスにマクロをつけて クエリの抽出条件のところに[forms]![フォーム名]![コンボ名] を入力しても、実行したときになにも抽出されません。 なにがどのように違っているのでしょうか? 説明が分かりにくくて申し訳ないのですが、 わかる方いらっしゃいましたらぜひ教えていただきたいです。 よろしくお願いいたします。

  • accessでコンボボックスとサブフォームでデータ表示したい。

    accessのフォームでデータ検索表示したいのですが? データ表示の検索フォームを作成しようとしています。 まず検索したいテーブルの検索KEYにしたいフィールドを クエリを使い集計し、その結果をコンボボックスで表示して コンボボックスで指定すると、同一フォーム内にサブフォーム もしくはリストボックスで検索結果を表示したいのですが パラメータのわたしかた等が、よくわかりません。 方法を教えていただけないでしょうか? 参考になるサンプル等があれば助かります。 よろしくお願いします。

  • Accessのテキストボックスとコンボボックスの違い

    フォームにテキストボックスを3ケ用意し、テキストボックス名をtxt1,txt2,txt3としました。これにコマンドスイッチを作成し、機能を再クエリと設定しました。 フォームのサブフォームに再クエリの結果を表示するようにしました。 クエリのテキストボックス1の抽出条件は 条件  [Forms]![フォーム名]![txt1] または [Forms]![フォーム名]![txt1] Is Null    [Forms]![フォーム名]![txt1] Is Null テキストボックス2の抽出条件は 条件  [Forms]![フォーム名]![txt2] Is Null または [Forms]![フォーム名]![txt2]  [Forms]![フォーム名]![txt2] Is Null テキストボックス3の抽出条件は 条件  [Forms]![フォーム名]![txt3] Is Null または [Forms]![フォーム名]![txt3] Is Null [Forms]![フォーム名]![txt3] と設定し、テキストボックスにデータを入力し実行すると 正しい結果が得られるのですが、テキストボックスをコンボボックスに変更し、コンボボックス名をtxt1,txt2,txt3 とすると、抽出されません。 コンボボックスをテキストボックスのように扱うのには どうするのでしょうか。教えてください。

  • Access 商品マスタフォームの検索コンボBOX

    商品マスタフォームのヘッダーに非連結のコンボボックスを設けて、 商品検索キーを使ってフォームにデータを表示させるようにしています。 フォーム「商品マスタ」 選択クエリ「商品検索」(フィールド:「商品ID」「検索キー(カナ2文字)」「商品名」) コンボボックス「cb検索」 更新後処理に「再クエリマクロ」 うまく動作していますが、検索コンボボックスをもう一つ設けて、 仕入先からも検索できるようにしたいと思いました。 同じようにフォーム上に非連結のコンボボックスを作成して 選択クエリ「商品検索仕入先」(フィールド:「商品ID」「仕入先」「商品名」) コンボボックス「cb検索仕入先」 更新後処理に「再クエリマクロ」 フォームのコントロールソースのクエリ「商品ID」の条件を Like [Forms]![商品マスタ]![cb検索] & "*" Or Like [Forms]![商品マスタ]![cb検索仕入先] & "*" としました。 何度か交互に検索してみましたが、選択した商品が表示されるときとされないときがあります。 表示されないときは、検索に使っていないほうのコンボボックスの値が反映されているようです。 また、続けて検索キーのみで検索を試みてみると、うまく表示されるときと、そのときの 仕入先検索が選択している商品が表示されるときとがあります。 法則性がまったくわかりません。 一番最新のコンボボックスの選択が表示に反映されるようにするには どのようにすればよいのか教えていただけないでしょうか。 他に提示する情報があれば重ねてご教示ください。 よろしくお願いします。

  • ACCESSのクエリの抽出

    ACCESS2003を使っています。フォームのコンボボックスに入っているデータを見てクエリで抽出したいと思っています。 フォームのコンボボックスにデータが入っているときは、そのデータで抽出を行い、nullのときは抽出をやめてすべてのデータを表示させたいです。 抽出項目には、null値はありません。 クエリの抽出欄に下記の式を入れましたがうまくいきません。 IIf(IsNull([Forms]![フォーム名]![コンボボックス名])=true , Is Not Null , [Forms]![フォーム名]![コンボボックス名]) コンボボックスにデータが入っている場合は、抽出はうまくいくのですが、nullのときは、何も表示されません。 どこか式が違っているのでしょうか? よろしくお願いします。

  • Accessのコンボボックスについて・・・

    こんにちは、Accessのフォームにコンボボックスを設置して、以下のような事ができないかと悩んでおります。よろしくお願い致します。 フォーム内には、部署名・氏名・住所・商品名など、クエリの列名をテキストボックスにて設置してあります。 フォーム内に別の(客先名専用)クエリでコンボボックスを設置し、コントロールソースには会社名を選択しています。 フォームビューでそのコンボボックスからひとつの会社名を選択すると、別の(客先名専用)クエリからでも、フォーム内にあるテキストボックス名と同じ列名であればテキストボックスに表示が可能ではないかと思っています。が、現在の状態だとコントロールソースで選択した会社名のみの表示だけです。どこかで設定する機能があるのか難しいVBでの設定しかないのか、それもわかりません。是非、この方法がおわかりになられる方ご教示下さいます様お願い致します。わかりずらい説明で申し訳ございませんが、よろしくお願い致します。

  • ACCESS97のコンボボックスについて

    入社して、名刺を貰う機会が多い為、名刺を管理するものを初歩的な参考書を見てACCESS97で作りたいと思います。テーブルで数名の氏名・会社名・部署名・役職・住所を作りました。良く分からなかったので、この1つのテーブルを基にパラメータを使って検索する「検索用画面」と新しいレコードが表示される「新規入力画面」をクエリーとフォームを別々に作りました。検索用画面は、これで良しとします。しかし、新規入力画面は、同会社名が多いので、コンボボックスを作り今まで登録したものからも選べる様にもしたいです。新しいレコードでは、表示されませんが、▼で前のレコード(既に入力してあるデータ)に戻ると、エラーメッセージで「このフィールドに入力した値が不正です。例えば、数値型のフィールドに文字列を入力しました。」と出てきてしまいます。コンボボックスいうのは、コンボボックスウィザードで「テーブルまたはクエリーを表示する」を選び、表示させたいものを選ぶだけでは、いけないのでしょうか・・。くだらない質問で申し訳ありませんが、回答の方宜しくお願いします。

  • ACCESSでコンボボックスが作れません

    ACCESS2000のフォーム内に抽出クエリを元にしたコンボボックスを作成しようとしているのですが、「1つ以上の必要なパラメータの値が設定されていません」と表示され作成できません。元になる抽出クエリを開くと、コンボボックスに表示したいデータが表示されているのですが、上記エラーがでてコンボボックスが作成できない状態です。どなたか解消方法がおわかりの方教えてください。宜しくお願いします。

  • Accessのコンボボックスの値が消える

    お伺いいたします Accessのフォーム(フォーム請求実績)上に置いたコンボボックスで ユーザーリスト(テーブル)から目的のデータを 選択出来るように設定していますが、 目的のデータをクリックすると、コンボボックスに一瞬、表示された後、消えて空欄になります。 目的のデータ(販売先名)で販売実績表(クエリ)の中の販売先別のデータを抽出(Filter)させていますが目的のデータの抽出はできるのですが、 コンボボックスの表示が消えるので困っています。 因みに、請求実績データ(選択クエリ)の販売店フィールドの抽出条件欄には [forms]![フォーム請求実績]![コンボボックス1]で 抽出するようにしています。 ぐだぐだと長い説明で解りにくいと思いますが要は コンボボックスのデータを選択してもコンボボックスに表示されないのです。 こんな経験された方よろしくアドバイスお願いいたします。

  • ACCESSのコンボボックスデータについて

    Microsoft Office Accessのフォームに作成したコンボボックスで選択できるデータは一つしかダメなんでしょうか? コンボボックスには3項目のデータがあり2番目及び3番目のデータもクエリーの抽出条件として使いたいのですが可能でしょうか? 良い方法があれば教えて頂けないでしょうか。

専門家に質問してみよう