ACCESS初心者です。初めて使います。
すでに利用中の画面に担当者コード、担当者名欄を追加したいです。
画面は、グループコードがある場合は、グループの売上、無い場合は得意先コード単体の売上が出る画面です。
テーブル1
グループコード、グループ名、得意先コード、得意先名を登録するマスタがあります。
それをもとに売上を表示する画面があります。グループコードに対しての担当者を登録するテーブルはありません。
何から作っていいのかわかりません。
少しでも進めるよう教えてください。
ACCESS2013を使用しています。
グループコードに対しての担当者を登録するテーブルを作成してみました
テーブル2
グループコード、担当者、氏名
紐づけ方がわかりません。
宜しくお願いします。
それぞれのテーブルの主キーはどれですか。また、テーブル1、テーブル2というのは実際のテーブル名ですか。テーブル名は内容を表すものにすべきです。
あと、それぞれのテーブルのデータ例も提示してもらえませんか。
フィールド名だけではどのようなデータなのか、データ間でどのような関係があるのか分かりません。
あと、担当者とは、何を担当するのですか。顧客毎に担当者が決まっているのか、グループ毎なのか、それによってもテーブル設計が異なってきます。
教えてください。
グループコード担当者マスタというテーブルを作成しました。
フィールドは
ID、グループNo、グループ名、代表営業所CD、得意先CD、得意先名、営業所名、担当者CD、担当者名を作りました。
現在利用中のクエリを見てみると、下記SQL文が記載されています。この意味と、
このSQL文に営業所名、担当者CD、担当者名を追加記述するにはどうやって書いたらいいか教えてください。
T_TOKUというテーブルのフィールドには担当者CD、T_TOKU2というテーブルのフィールドにTANCD、TANM(担当者名)があります。
SELECT
T_TOKU.得意先CD, T_TOKU.得意先名, T_TOKU.担当営業所CD AS 営業所CD,
IIf(IsNull([グループコード担当者マスタ]![グループNo]),[T_TOKU]![得意先CD],[グループコード担当者マスタ]![グループNo]) AS [グループCD/得意先CD],
IIf(IsNull([グループコード担当者マスタ]![グループNo]),[T_TOKU]![得意先名],[グループコード担当者マスタ]![グループ名]) AS [グループ名/得意先名],
T_TOKU.旧得意先CD
FROM
T_TOKU LEFT JOIN [グループコード担当者マスタ] ON T_TOKU.得意先CD = [グループコード担当者マスタ].得意先CD
ORDER BY T_TOKU.得意先CD;
ひょっとして自分で作成したものではなく、前任者が製作したものの改修作業をしているのでしょうか。
前任者に聞くのが一番早いのですが、連絡がとれないとうい状況なんでしょうか。
そのテーブルの主キーフィールドはなんでしょうか。
また、SQLをみると T_TOKU というテーブルがあるようですが、そのテーブル内のフィールド名と主キー設定を教えてください。
何年か前に作成し、現在は修正できる人がいません。
グループコード担当者マスタの主キーはIDです。
T_TOKUの主キーは鍵マークが無いです。
フィールド名は
得意先CD、得意先名、担当者CD、担当者営業所CD、旧得意先CD
です。
2つのテーブルを結合する場合は、結合するフィールドの片方は主キー(あるいは重複なしインデックス)である必要があります。そうしないと更新できないクエリになったり、データに重複が出たりします。
「T_TOKUの主キーは鍵マークが無い」というのはデータベースの設計としては致命的な欠陥です。
テーブル設計から見直す必要があります。
提示されているフィールド名から推測するに少なくとも、
顧客マスター
グループマスター
担当者マスター
に相当するテーブルが必要になります。
あるいはそのように分割する必要があります。
このような掲示板でのやり取りで解決できる案件ではないように思います。
承知しました。
コメント対応していただき、ありがとうございました。