- ベストアンサー
Accessのコンボボックスの使い方について
初心者です。 コンボボックスの使い方について教えて下さい。 商品テーブルA 商品名|コードA|コードB|コードC| マスターテーブル A|B|商品名|コードA|コードB|コードC|D|E のような2つのテーブルを作成し、マスターテーブルの「商品名」に コンボボックスで商品テーブルAの商品名を表示させるとします。 そこでコンボボックスで商品名を選択すると同時に 商品テーブルAからほかの「コードA」「コードB」「コードC」の値を マスターテーブルの「コードA」「コードB」「コードC」に入れる方法は ありますでしょうか? また、他の方法はありますでしょうか? 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
商品テーブルA 商品名|コードA|コードB|コードC| ↑_ |マスターテーブル A|B|商品名|D|E| コードA|コードB|コードC| コードA~Cは商品テーブルから このようなクエリを作成すれば マスターテーブルに、コードA~Cのフィールドを作らなくて済みます。 極力ダブったデータはテーブルに持たないのが基本原則ですがいかがでしょう? [ACC] データベースの正規化の基礎 http://support.microsoft.com/default.aspx?scid=kb;ja;100139 http://www.mahoutsukaino.com/ac/ac2002/ac2002/hajime/rdb.htm コンボボックスに関しては マスターテーブルの商品名のルックアップテーブルの値集合ソースに商品テーブルAを指定し 連結列 1 列数 4 列幅 2cm;2cm;2cm;2cm とかにすれば一覧が出てきますが、商品数が多くなった場合の事も考えると テーブルやクエリでの設定ではなく フォーム上で何がしかの設定を行うようにした方が後々メンテがしやすいように思えます。 この辺は個人的な好みの問題かもしれません・・ あと、主キーとして 商品テーブルA・マスターテーブルとも 商品ID 長整数型・マスターID 長整数型 などというものを設けたほうが良いように思えます。
その他の回答 (1)
RDBでは、(パフォーマンス上そのようなことをする場合もありますが)一般的に重複する項目を別テーブルに保存する必要はありません。 商品テーブルに 商品コード|商品名|商品データ1|商品データ2|.... と商品に関するデータをすべて作っておいてあれば マスターテーブルには商品コードさえ入れておけば、必要時にその商品コードに対応するデータは取り出せます。 それを行うのが、アクセスではクエリと呼ばれています。 クエリ上に両方のテーブルを表示させ、商品コードをリレーションシップで結び、表示させたい項目を選べばクエリが出来上がります。 このクエリを、コンボボックスのレコードソースとすれば、完成です。 上記クエリはを選択クエリとして作れば、商品を絞り込むこともできます。
お礼
回答して頂きましてありがとうございます。 「クエリ」を利用するんですね。 今までエクセルで色々やっていたもので、アクセスにまだなれて いなくとまどっています。 参考になりました。 ありがとうございます。
お礼
回答して頂きましてありがとうございます。 まだ、始めたばかりでどのようにデータベースを作成しようかと 悩んでいました。 大変参考になりました。 ありがとうございます。