Accessのコンボボックスで業態を選ぶと業種が選べない問題について

このQ&Aのポイント
  • Accessのコンボボックスで業態を選ぶと業種が選べない問題が発生しています。
  • 選択肢を変えても<T企業>のコードナンバーが変わらず、手動でナンバーを変えてもA社、B社、C社のコンボボックスの内容が変化しません。
  • Access2000を使用しており、環境面からのサポートが難しい状況です。データベースを作成するために最近Accessの勉強を始めたばかりで、深く理解していません。ご教示いただけると助かります。
回答を見る
  • ベストアンサー

(アクセス)コンボボックスの選択結果をレコードに

MSオフィスのAccessについて質問です。 二つのテーブルがあるとします -------- <T業種> 業態    業種  コード(オートナンバー) A業態   a業   1 A業態   b業   2 A業態   c業   3 B業態   d業   4 B業態   e業   5 -------- <T企業> 社名 コード A社  1 B社  1 C社  2 -------- (目的) フォーム上に<T企業>を参照するコンボボックスを二つ作り、 業態を選ぶと業種が選べるようにする。 そして、選んだ組み合わせのコードを<T企業>に入れ、 レコード移動したらコンボボックス内の業態業種も変わるようにしていく。 (質問内容) 現在、コンボボックスで業態を選ぶと業種が選べるようにはなっています。 しかしながら、コンボボックスで選んだコードが<T企業>に反映されません。 選択肢を変えても<T企業>のコードナンバーが変わらず、 手動でナンバーを変えてもA社、B社、C社のコンボボックスの内容が変化しません。 (環境) Access2000 ソフトが古く環境面からお答えしにくいかもしれません。急遽データベースを作ることになり、とりあえず社内で眠っていたソフトを活用し、今後活用できそうならアップグレードするという予定になっております。 私自身も最近Accessの勉強を始めたばかりで深くは理解しておりません。 どうかご教示よろしくお願いします

noname#255190
noname#255190

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

途中から失礼します。 MDBの状態が質問開始時の状態だとして。 業態を選ぶコンボボックスを、コンボ1 業種を選ぶコンボボックスを、コンボ2 とした場合です。 コンボ1の 値集合ソースに、 SELECT DISTINCT 業態 FROM T業態; 値集合タイプに テーブル/クエリ 連結列は 1 コンボ2の 値集合ソースには、 SELECT [コード], 業種 FROM T業態 WHERE 業態=[コンボ1]; 値集合タイプに テーブル/クエリ 連結列は 1 次にイベントタブに移って コンボ1の 更新後処理に Private Sub コンボ1_AfterUpdate() Me!コンボ2.Requery End Sub コンボ2には Private Sub コンボ2_AfterUpdate() Me!コード = Me!コンボ2 End Sub とします。 コンボ1・2 とも入力用に非連結コントロールになりますので 全てのレコードで同一ですが、T企業のコードの値は保持されます。 要はコンボボックスは入力用と割り切るのが肝心。 企業の業態と業種もフォーム上に表示したいなら クエリを一個作成して、SQLビューでは↓ SELECT T企業.ID, T企業.社名, T企業.[コード], T業態.業態, T業態.業種 FROM T企業 INNER JOIN T業態 ON T企業.[コード] = T業態.[コード]; このクエリをフォームのレコードソースとすれば宜しいかと。

noname#255190
質問者

補足

nicotinismさん ありがとうございます。 実は回答頂いた時間前後に目的とするものが出来上がりました。^^ (表示切り替え、業種絞り込み) しかしながら、まだまだ解らないことが多々ありますので、今後もよろしくお願い致します ありがとうございした

その他の回答 (3)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

お早うございます。 リレーションシップの設定は出来ましたか T_業種の業態IDのルックアップ設定です T_業種をデザインビューで開き [業態ID]→[ルックアップ]→[コンボボックス] と進み次のように添付のようにプロパティーを変更します ・値集合ソース 右端クリックして「T_業態」選ぶ ・連結列 1…T_業態のIDが一番目のフィールド ・列数  2…「ID」と「業態名」の2つ ・列幅  0…各フィールドの表示幅(Cm)        IDは非表示、最後のフィールド幅は省略 ・リスト行数 …任意ですが参照項目数がこれを超えると        スクロールバーが表示されます 同じ要領でT_企業の業種IDにもT_業種へのルックアップ設定します >>コンボボックスで選んだコードが<T企業>に反映されません。 もうお分かりですね ご質問の「T企業」の中に「業種ID」または「業種名」を追加する意味 以上設定するとテーブルを開くと「業種ID」は数値形式なのに 社名で検索、表示できます。

noname#255190
質問者

補足

お答えいただきありがとうございます。 ご説明頂いた通りにやってみましたが上手くいきません・・。 下記の事でつまづいています。 1)リレーションのT業種が1対多になりません。 ”主テーブルで参照されているフィールド用の固有インデックスがみつかりません”と出てきます。 2)T業態のルックアップ設定ができません。T業種のIDはルックアップ設定のみできました。 3)とりあえず、フォームに二つのコンボボックスを作りリスト表示できることは確認出来ましたが、会社名のレコード移動をしてもコンボボックスの中身が変わりません。 なにか見落としているのでしょうか? それから、この方法についてもう1点伺いたいのですが、 質問前に作成していたT業種はグループ化して業態名の中から業種名を絞りこめれるようになっているのですが、今回ご説明頂いたテーブルの作成方法で、同じように絞り込むことが可能でしょうか? よろしくお願いいたします

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

accessはリレーショナルデーターベースの一つです この特徴を利用します。 T業種をT_業種とT_業態とに分解しT_業種にT_業態に リレーションシップを設定するためT_業態の主キーに 対応するフィールドを追加します。 結果次の3つのテーブル設計になります。 T_業態 ・ID オートナンバー 主キー ・業態名 T_業種 ・ID オートナンバー 主キー ・業種名 ・業態ID 数値 長整数型 T_企業 ・ID オートナンバー 主キー ・社名 ・コード A社 B社が同値ですがよいのですか ・業種ID 数値 長整数型 このテーブルに添付のようなリレーションシップを定義することで 企業には業種IDを登録すると業態はついてきます コンボボックスですがテーブル設計でルックアップ設定します ルックアップ設定の説明は1日程度時間下さい

  • jacob-wk9
  • ベストアンサー率36% (85/231)
回答No.1

<T企業>のコンボボックスのリスティング内容が変われば良いだけであれば <T企業>の値集合ソースに「SQL文」を入れます。 SELECT 社名,コード FROM T企業 WHERE コード=[T業種] のような感じで。

関連するQ&A

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

    初心者です。 コンボボックスの使い方について教えて下さい。 商品テーブルA 商品名|コードA|コードB|コードC| マスターテーブル A|B|商品名|コードA|コードB|コードC|D|E のような2つのテーブルを作成し、マスターテーブルの「商品名」に コンボボックスで商品テーブルAの商品名を表示させるとします。 そこでコンボボックスで商品名を選択すると同時に 商品テーブルAからほかの「コードA」「コードB」「コードC」の値を マスターテーブルの「コードA」「コードB」「コードC」に入れる方法は ありますでしょうか? また、他の方法はありますでしょうか? 宜しくお願い致します。

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

    Access2003の勉強を始めたばかりの初心者です。 コンボボックスについて初歩的な事かもしれませんが、お教え下さい。 他のコンボボックスと連動するコンボボックスを作りたいと思っております。 具体的には、A・B・Cと3つのコンボボックスを作り、Aがブランクの状態ならB・Cブランク、Aに値が入ったらそれに伴った絞り込み結果をB・Cへ。 Bに値が入った場合は、その結果をCへ。 と言う様な処理を考えています。 用途はAに都道府県Bに市区町村Cに個人名を表示する予定です。 AからB・Cの連動は出来たのですが、あの値を反映したBからCへの連動処理ができません。 どなたかご存知方いらっしゃいましたら、ご教授お願い致します。

  • ACCESS2007 コンボボックス使い方

     いつも皆様には、お世話になります。以下のようにコンボボックスを用いて絞り込みシステムを考えております。しかし、汎用例が乏しくまた、私自身初心者なので、どこをどうすればよいか分からず作業がストップしています。 ------------------------------------------------- | 絞り込みシステム |------------------------------------------------ | 勘定項目:[コンボボックスA〕 ←3項目表示    A、B、Cなど | 勘定科目コード:〔コンボボックスB〕←2項目表示 10,20 など | 分類項目:〔コンボボックスC〕←12項目      赤、青、黄,緑など | 分類コード:〔コンボボックスC〕←上記の項目、コードにより 50~1までデータ数がある。 | |                            [絞り込みボタン〕 ------------------------------------------------- 段階をおって絞り込まれた、これらのフォームから該当するデータを表示させます。 このようなことは可能でしょうか。皆様のお知恵をお借りしたいと思います。何卒よろしくお願いいたします。

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

    ACCESSでコンボボックスを使っているときに たまに入力できなくなってしまう時があり困っています。 例えばA,B,Cという3つのデータを選択できるコンボボックスがあり、 現在、Aが選択されていてBに変更しようとした時に コンボボックスの表示部分が突然空欄(または選択されているのに表示されていない)になってしまいます。 その後、どれを選択してもコンボボックスには何も表示されなくなってしまいます。 この現象が起こるとなぜか同じフォーム内のボタンなどにも不都合が起こるようになってしまいます。 (テキストボックスのデータを削除するボタンがあるのですがおしてもなにも起こらなくなってしまいました) いろいろ試しているのですが全く原因がわかりません。 どのようなところに原因がありそうかなどあれば教えてください。 宜しくお願いします。

  • コンボボックス

    コンボボックスから選択した内容によってそれに関するコンボボックスの内容を変えたいと思っています。 例えば コンボボックスA 書類1  分類a 書類2  分類a 書類3  分類b 書類4  分類c コンボボックスB 提出先1  分類a 提出先2  分類b 提出先3  分類b 提出先4  分類c と言う風になっているのですが、 コンボボックスAの書類1を選択したらコンボボックスB と共通の分類の提出先名がコンボボックスに表示したいのです。 書類3を選択すると、コンボボックスBには提出先2、提出先3が表示されるといった感じです。 ACCESS2000を使用しています。 よろしくお願いします。

  • Access コンボボックスのリンク?

    初心者です。 宜しくお願いします。 Accessのフォームでコンボボックスを2つ配置し、 コンボボックスAで選んだアイテムによって、 コンボボックスBに表示されるアイテムを変えることは出来ますか?

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

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

  • Accessで、コンボボックスから2つの値を返す方法

    Accessで、コンボボックスから2つの値を返すことはできるでしょうか。 たとえば、 名称|CODE1|CODE2 ------------------ いち|11111|AAAAA にい|22222|BBBBB さん|33333|CCCCC というクエリを値集合ソースにしたコンボボックスで、 「いち」の行を選択したら、 CODE1の「11111」をテキストボックスAへ、 CODE2の「AAAAA」をテキストボックスBへ 入れたいのです。 このようなことは可能か不可能か、 もし可能ならどのようにすればいいのか、 教えて頂けないでしょうか。

  • [Access2003]コンボボックスとリストボックスの違い

    今、Access2003のフォームのコントロールの作成について勉強しています。『コンボボックス』と『リストボックス』を見て、コンボボックスは、「ドロップダウン形式でスペースを節約できる点」、リストボックスは、「一覧がすべて表示される」という意味がよく分かりませんでした。 インターネットでいろいろ調べて見たのですが…. 例えば・・・・ 店名ID 店名 A A店 B B店 C C店 と『コンボボックス』と『リストボックス』が表示され、ボックスの上の選択の矢印があるかないかの違いしか分かりませんでした。 (1)Access初心者なので『コンボボックス』と『リストボックス』について簡潔に教えてくださったら助かります。もしホームページで『コンボボックス』と『リストボックス』について一目で見たら違いが分かるというものが掲載されていたら教えてください。 (2)コンボボックスの「ドロップダウン形式」がよく分からないです。

  • アクセス コンボボックス値をレポートに反映

    アクセス初心者の為、やりたい事を検索しコードコピー等真似ることで どうにか作っている状態です。 現在あと一歩のところでつまずいてしまったのでお力添え頂けると助かります。 環境:アクセス2003 ------------------------------------------------------------------------------ フォームのコンボボックスで表示された値と一致するレコードを下にあるテキストボックスで表示  ⇒レポートにその値を反映させたい ------------------------------------------------------------------------------ フォーム上: 送付先:「A社」 (コンボボックスで選択) 担当者:「Aさん」 (コンボボックスで選択するとテキストボックスで表示) 現在の状況: フォーム上ではコンボボックスの値、その値と一致するレコードを該当テーブル(T_送付先)から テキストボックスに表示されている。 レポート上でだけ何故か送付先の部分が元テーブル(T_送付先) の送付先ではなく(フォームでは表示されてるのに) 数字が代わりに表示されてます。 担当者のテキストボックスにはフォームと同様に表示されてます。 ------------------------------------------------------------------------------ フォーム上にある送付先のコンボボックスには↓ Private Sub コンボ8_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[ID] = " & Str(Nz(Me![コンボ8], 0)) If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub ------------------------------------------------------------------------------ フォームの送付先を表示するテキストボックスには↓ =[Forms]![F_送付先]![コンボ8] ------------------------------------------------------------------------------ フォーム上のコンボボックス、コンボ8のプロパティ 値集合ソース: SELECT T_送付先.ID, T_送付先.送付先 FROM T_送付先; 連結列: 1 ------------------------------------------------------------------------------ テーブル(T_送付先)の一列目にID項目がありオートナンバー設定してあります。 その値が表示されてる気がします・・・ 他にもコンボボックスを使用してますが、全部レポートには表示されています。 コントロールの値と一致するレコードを検索するこのコンボボックスだけが 表示されない為コードが影響しているのかな・・と考えられますが お手上げ状態です・・・ どなたかアドバイス頂けると助かります。 よろしくお願いします。

専門家に質問してみよう