• ベストアンサー

【Access97】コンボボックスの限定リストアップについて

フォームから入力して伝票(レポート)を発行するという単純なAccessを作成しました。 コンボボックス用として[営業所]と[内容]というテーブルを別々に作成し、フォームでそれぞれのテーブルをコンボボックスとして設定しました。 <Accessテーブル> [営業所] 東京/大阪/名古屋 [内容] ガス料金(東京)/水道料金(名古屋)/電気料金(大阪) ・・・等 15件程 [一覧] 入力用のフォームからここにデータを追加 ※[営業所][内容]の他に日付などのフィールドが多数あり <Access入力用フォーム> ※他フィールドあり [発行日]・・・テーブル[一覧]で既定値「=Date()」設定済 [営業所]・・・コンボボックス [内容]・・・コンボボックス [金額]・・・直接入力 現状は当然ながら両方とも全件表示されますが、理想としては[営業所]を選択したら[内容]はその営業所の分のみが表示されるという形にしたいのです。 例えば、Excelでしたら以下のように設定するかと思います。 ・A1=[営業所] ・B1=[内容] ・C1:C3=東京/大阪/名古屋 ・D列=ガス料金(東京)/水道料金(東京)/電気料金(東京)/電話料金(東京) ・・・等 5件以内 ・E列=ガス料金(東京)/電気料金(大阪)/電話料金(大阪) ・・・等 5件以内 ・F列=水道料金(名古屋)/電気料金(名古屋)/保険料(名古屋) ・・・等 5件以内 (1)D列に"東京"、E列に"大阪"、E列に"名古屋"と名前定義 (2)A1に入力規制でC1:C3のリスト設定 (3)B1に入力規制で「=INDIRECT($A1)」設定 <結果> A1で"東京"を選択したらB1にはD列のみ表示 このB1のようなリスト表示をAccessのフォーム上で再現するには、どのように設定すればよろしいのでしょうか? とりあえずはコンボボックス用のテーブルを1つにまとめる必要があるとは思います。 過去にも同じような質問が多々あり、いくつか拝見しましたがさっぱり分かりませんでした。  例えばこれ→ http://personal.okwave.jp/qa1413361.html 当方はこれが理解できないくらいのド素人です。

  • KO1014
  • お礼率97% (534/549)

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

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

>[営業所]を選択したら[内容]はその営業所の分のみが表示されるという形にしたいのです。 営業所によって扱う内容が異なるのであれば その組み合わせを定義したテーブルが必要です [営業内容](営業所ID、内容ID) 内容コンボボックスのソースにはこのテーブルから作ったクエリを使用します クエリでは営業所IDの抽出条件欄に、フォームの営業所コンボボックスの値を指定し =Forms!フォーム名!営業所コンボ名 営業所コンボの更新後イベントで内容コンボを再クエリしてやります

KO1014
質問者

お礼

ご回答ありがとうございました。 http://personal.okwave.jp/qa1413361.htmlを再度熟読し、CHRONOS_0様に教えていただいたことを参考に入力用フォームを改造してみました。 <結果>"営業所"を選ぶと"内容"はその営業所の分のみ表示。"営業所"を選び直してもちゃんと"内容"もその営業所の分が表示されました!! 大変助かりました。これで選択を間違えることは無くなりました。

KO1014
質問者

補足

実は、今まで使用していたAccessは"営業所"をオプション値、"内容"はコンボボックスにしておりました。しかし、たまたまhttp://personal.okwave.jp/qa1413361.htmlを発見して、とりあえずコンボボックス同士でのやり方をお聞きしたくて今回のような質問をしてみました。 これの応用として"営業所"をコンボボックスではなくオプションボタンにして同様のことが出来ますでしょうか?これ以上にややこしいのであれば当方が理解できるのはこれで精一杯でしたのであきらめます。

その他の回答 (2)

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

>"営業所"をコンボボックスではなくオプションボタンにして同様のことが出来ますでしょうか? オプショングループが返すのは数値だけです その点以外は同じですね オプショングループが返す数値を営業所IDになるようにしてやればいいだけです だけどオプショングループはスペースをとりますよ

KO1014
質問者

お礼

再度のご回答ありがとうございました。 再改造してみました結果、きちんとできました。 営業所は今のところ3ヶ所しかありませんので、スペースは余裕です。お気遣いありがとうございます。 同じようなAccessが他にもたくさんありますので、暇を見つけて改造していきたいと思っております。 本当にありがとうございました。

noname#140971
noname#140971
回答No.1

営業所一覧: [ID]_[営業所名] __1___東京 __2___大阪 __3___名古屋 料金一覧: [ID]_[営業所一覧_ID]_[科目] __1_______________1___ガス料金 __2_______________2___水道料金 __3_______________3___電気料金 さて、これじゃー[営業所一覧_ID]が入力しにくいのでコンボボックスに。 そのためには、[料金一覧:テーブル]のデザインで[営業所一覧_ID]の[ルックアップ]を設定します。 値集合ソース=SELECT 営業所一覧.ID, 営業所一覧.営業所名, * FROM 営業所一覧 ORDER BY 営業所一覧.ID; 列数=2 列幅=0cm;3cm 料金一覧: [ID]_[営業所一覧_ID]_[科目] __1___東京____________ガス料金 __2___大阪____________水道料金 __3___名古屋_________電気料金 で、このように[営業所一覧_ID]は'東京;大阪;名古屋'をリスト項目とするコンボボックスになります。 伝票一覧: [ID]_[営業所一覧_ID]_[料金一覧_ID]_[一覧]_[金額] __1_______________1_____________1___AAA______\0 __2_______________2_____________2___BBB______\0 __3_______________3_____________3___CCC______\0 で、[伝票一覧]では[営業所名]等ではなく索引である[営業所一覧_ID]と[料金一覧_ID]とのみ記録。 エクセルのリスト入力を索引方式にしたような考え方です。 伝票一覧: [ID]_[営業所一覧_ID]_[料金一覧_ID]_[一覧]_[金額] __1___東京______________________1___AAA______\0 __2___大阪______________________2___BBB______\0 __3___名古屋___________________3___CCC______\0 さて、[伝票一覧]の[[営業所一覧_ID]もこのように[営業所一覧]を参照するようにします。 ここまで来れば、フォームをウィザードで生成し、[料金一覧_ID]のコンボボックスを最適化するだけです。 **** ここまで **** さて、ここまでが一致していないと<[料金一覧_ID]のコンボボックスの最適化手法>を示しても無駄でしょう。 で、こんなアプローチで宜しいのでしょうか? 返事を!

KO1014
質問者

お礼

ご回答ありがとうございました。 とてもご丁寧に回答していただきましたが、当方の脳みそでは理解することができませんでした。 大変申し訳ありませんでした。

関連するQ&A

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

    やり方がわからないので教えてください。 Access2003を使っているのですが、フォーム上に設定したコンボボックスから、あるテーブルの3列目を抽出したいのですが、どのように設定するのか分かりません… 自動的に1列目が抽出されてしまいます。 コンボボックスのプロパティの中に何列目かを指定する部分が内容に思うのですが…

  • ACCESS コンボボックスの絞込みについて

    タイトルの件ですが、 テーブルに作成したデータを使って、 フォームのコンボボックス2つに絞込み入力ができるようにしました。          (例1)   (例2)    コンボボックス1: 北海道   東京     コンボボックス2: 札幌市   中野区 本来、そのテーブルにあるデータを取ってくるのかと思いますが、 新データが発生した場合、コンボボックスに直接入力をしたいのです。           (例3) コンボボックス1: アメリカ コンボボックス2: カリフォルニア州 それは可能でしょうか? ちなみにコンボボックス1,2ともプロパティイで「入力チェック」を「いいえ」にすることができませんでした。 どうしたらいいのでしょうか。 教えてください!

  • accessのコンボボックスのことで質問です。

    accessを勉強しているのですが、ちょっとしたことで分からなくなってしまいました・・。 質問の内容なのですが、まずフォーム上にコンボボックスAとコンボボックスBを配置するとします。 レコードソースには仮に[情報テーブル]というテーブルが選択されているとします。 コンボボックスAには[情報テーブル]のフィールド名が、 例えば[顧客NO]、[商品]、[値段]というフィールド名が入っているとし、フィールドにはそれぞれ10件ずつデータが入力されています。 そしてコンボボックスAで[顧客NO]を選択するとコンボボックスBに[顧客NO]の10件のデータが挿入され、選択できるようにしたいのです。 他のフィールド名を選んだときにも同じようにコンボボックスBにフィールドのデータが入るようにしたいと思っています。 コンボボックスAにテーブル名を入れることはできたのですが、 コンボボックスAで選択されたフィールドのデータを、コンボボックスBで選択できるようにするというやり方がわからないのです・・。 accessは2002を使っています。 よろしくお願いします。

  • ACCESSのチェックボックスとコンボボックスの作り方

    1. テーブルを作って、そのテーブルからフォームを作るところまでいきました。フォームから入力する時に、いちいちタイプしなくていいようにチェックできるもの(例えば、男女からどちらか選ぶ)をつくりたいのですが、テーブルビューのルックアップから2つチェックボックスを作ることができません。やり方を教えてください。 2. コンボボックスを使って複数から選ぶようにすることはできたのですが、毎回マウスを使わないとできません。マウスを使わないでコンボボックスのアイテムを選ぶようにすることはできますか?

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

    Access初心者で、勉強がてらデータ登録フォームを作成しています。 フォーム上にコンボボックスを設置し、 テーブルに保存されているデータを検索できるようにしたのち、 テキストボックスのコントロールソースには簡単に 「=[コンボボックス].[column](2)」としています。(それぞれの名前は仮称です) 後から、テキストボックスひとつで 「コンボボックスからの検索結果を表示させる」と 「テキスト入力も可能とする」 を共存させたいと思い始めたのですが、可能になりますでしょうか。 ただし「コンボボックスからの検索結果表示」をしたテキストボックスに対し、 その情報をフォーム上で書き換えたとしても、テーブル側のデータ書き換えは行いたくありません。 よろしくお願いいたします。

  • オフィスアクセスのコンボボックスについて

     オフィスアクセスのコンボボックスについて質問いたします。  課テーブルと係テーブルがあり、それぞれで課番号が共通しています。 フォームでそれぞれをコントロールソースにして、コンボボックスを配置しています。  課テーブルのコンボボックスでCを選んだ時、係テーブルのコンボボックスに表示されるのをC_1だけにしたいと考えています。  このようにするには、どのような設定を行えばよろしいのでしょうか? ご教示のほど、よろしくお願いいたします。

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

    フォーム1の中にコンボボックス1、 検索結果用のサブフォームを作りました。 コンボボックス1は日付抽出用で、 プロパティは 値集合タイプ・・・テーブル/クエリ にしてあり、 2005-01  ・  ・  ・ 2005-12 となります。 「すべて」検索したいときには、どのように設定したら 良いのかを教えていただけないでしょうか? よろしくお願いします

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

    今 Access2000で作っているのですが、 フォームにサブフォームを帳票フォームの中に 二つコンボボックスがあります。 そしてコンボボックス1を選ぶと 2のボックスに抽出されたリストが表示されて その中から選ぶ形になっているのですが、 サブフォームに2件目を入力すると1件目の ボックス2の中の表示が消えてしまいます。 そして1件目のボックス2にカーソルを置くと表示 されるのですが、次は2件目のボックス2が消えてしまいます。データ的には問題ないようなのですが、 なぜ、消えてしまうのでしょうか? 1、2とは別にコンボボックスが3つあります。 表示するものが多すぎるのでしょうか? よろしくお願いします。

  • ACCESS2013 コンボボックスの警告について

    (1)コンボボックスに一度値を入力及び選択をして確定する。 (2)再度(1)のコンボボックスの内容を削除して空欄の状態に戻す。 (3)他のフィールド等にカーソル等を移すと、(2)のコンボボックスに対して警告メッセージが出でしまう。 'xxxxトランザクション.xxxxカラム'フィールドに値を入力してください。 上記(3)の警告メッセージが出ないようにしたいのですが どのように対応すればよろしいでしょうか? ※フォームはxxxxトランザクションがデータソース(ダイナセット)になっています。 ※コンボボックスはxxxxマスタテーブルが値集合(テーブル/クエリ)となっています。

  • アクセスでコンボボックスに表示されるリストの順番が狂ってしまう!

    アクセスでコンボボックスに表示されるリストの順番が狂ってしまう! アクセスのフォームでコンボボックスを使用しています。コンボボックスで表示されるデータは他のテーブルの値を表示させているんですが、その値が勝手に昇順?に並べ替えられてしまい困っています。テーブル作成時に入力した順番か、もしくは任意に表示させる方法はないでしょうか? ちなみにアクセス2000です。どうぞよろしくお願いいたします。

専門家に質問してみよう