|
▼mai さん:
こんばんは。
まず、テーブルの紐付け方から覚えた方が良いです。
データベース正規化で調べると良いと思います。
例えば:
テーブルA
−−−−−−−−−−
商品分類|アイテム名
−−−−−−−−−−
01 |照明
02 |家具
03 |電化製品
テーブルB
−−−−−−−−−−−−
商品分類|製品名
−−−−−−−−−−−−
01 |スタンド
01 |間接照明
01 |スポットライト
テーブルC
−−−−−−−−−−−−
商品分類|製品名
−−−−−−−−−−−−
02 |ベッド
02 |テーブル
02 |デスク
テーブルD
−−−−−−−−−−−−
商品分類|製品名
−−−−−−−−−−−−
03 |レンジ
03 |冷蔵庫
03 |洗濯機
ようなテーブルを用意します。
見てわかるかと思いますが、紐付けるフィールド
つまり商品分類が必要になります。
但し、コンボボックスと紐付ける場合に
フィールドが複数になるのでちょっと
VBAを覚えないと厳しいと思います。
ただ、もっとわかりやすいのは以下のような構成が
望ましいかも知れません。
分類マスタテーブル
−−−−−−−−−−
商品分類|アイテム名
−−−−−−−−−−
01 |照明
02 |家具
03 |電化製品
商品テーブル
−−−−−−−−−−−−−−−−
商品分類|商品CD|製品名
−−−−−−−−−−−−−−−−
01 |1−1|スタンド
01 |1−2|間接照明
01 |1−3|スポットライト
02 |2−1|ベッド
02 |2−2|テーブル
02 |2−3|デスク
03 |3−1|レンジ
03 |3−2|冷蔵庫
03 |3−3|洗濯機
のような感じのテーブルにすると、コンボボックスの
値集合ソースに以下の内容を入れるだけで切り替えられます。
SELECT [商品テーブル].[製品名] FROM 分類マスタ INNER JOIN 商品テーブル ON [分類マスタ].[商品分類]=[商品テーブル].[商品分類] WHERE ([分類マスタ].[アイテム名])=[Forms]![フォーム名]![コンボ名]);
但し分類のコンボボックス切り替えタイミングで
DoCmd.Requery [Forms]![フォーム名]![分類コンボ名]
が必要になります。
|
|