Microsoft Access 掲示板

リレーションシップのつなぎ方について

4 コメント
views
4 フォロー

複数のフィールドを1つのフィールドにまとめる方法

こちらで教えていただいた方法で、リレーションシップを作成していこうと思ったのですが、組み方で悩んでいます。
現在以下のテーブルがあります。

●T案件
案件ID(主キー)
会社ID
担当者ID
商品ID
・・・

●T会社
会社ID(主キー)
・・・

●T担当者
担当者ID(主キー)オートナンバー
会社ID
・・・

●T商品
商品ID(主キー)オートナンバー
・・・

●T取扱商品
商品ID(主キー)
会社ID(主キー)

案件IDを持った案件フォームがある状態(このデータが常にベースとして存在しています)で、フォームから手動で仕入先の会社、商品、担当者を選択していきます。
商品、担当者は会社に紐づいたコンボボックスから選びますが、商品、担当者を登録していないこともあるので、その際は会社フォームから登録して選ぶ形にする予定です。(会社を登録していない可能性もあるので、その際は会社を登録してから商品、担当者も登録していく)

このときのリレーションシップの形を作りたいのですが
下記のようにつないで、T案件とどのように繋げればよいのかがわかりません。
また、一対多の関係も正しいのかよくわからなくなってきました…
ご教示いただけると助かります。宜しくお願いいたします。

T商品(商品ID)【一】 -- 【多】T取扱商品(商品ID)T取扱商品(会社ID)【多】 -- 【一】T会社(会社ID)【一】 -- 【多】T担当者(会社ID)

※商品については、取り扱っている会社が複数存在している。

どんぐり
作成: 2020/08/15 (土) 21:13:57
最終更新: 2020/08/15 (土) 23:25:17
通報 ...
1

T担当者の担当者は、自社の社員でしょうか。それとも相手先の社員でしょうか。

もし、自社の社員がどの取引先の会社の担当するかを格納するものだとしたら、
このテーブル設計だと、一人の社員は一つの会社しか担当できないことになりますが、そういう運用形態なのでしょうか。

取引先の担当者ということなら、取引先の社内に、自社との担当者が複数存在するということでしょうか。

2
どんぐり 2020/08/16 (日) 08:06:41 f1ed8@23a22 >> 1

ご確認ありがとうございます。こちらは仕入先会社の担当者で、自社との担当者が複数存在しています。

3
hatena 2020/08/16 (日) 16:14:27 修正

サンプルファイルを作成しましたので、参考にしてください。

案件管理どんぐり.zip

上記の「F案件登録」が案件登録フォームになります。
会社、担当者、商品 はコンボボックスで選択できるようになってます。

会社、担当者、商品 でリストにないデータを新規追加したい場合は別に新規追加用のフォームをそれぞれ用意して入力するようにします。入力後、それぞれのコンボボックスを再クエリすればリストに追加されます。(新規追加用フォームは作成してませんので、作成してください。)
コンボボックスのとなりに新規追加用コマンドボタンを配置しておくいいかと思います。

リレーションシップの設計は下記のようになってます。

画像1

別件の質問のサンプルフォームを同封してます。

4
どんぐり 2020/08/16 (日) 21:54:46 1d451@23a22

ありがとうございます!いただいたファイルを参考に、データを作り直したところ正常に動くようになりました。
また、リレーションシップの組み方も自信が持てなかったので、お手本をいただいて本当に感謝です。
手元に置いて、今後も参考にさせていただきます。
大変お手数をおかけいたしました。