- ベストアンサー
Accessのリレーションのことについて
すいません、お世話になります。 次のようなテーブルがあります。 テーブル 【営業所データ】 フィールド 営業所ID(キー) 営業所名 住所 デーブル 【社員データ】 フィールド 社員ID(キー) 営業所ID 社員名 デーブル 【社員写真】 フィールド 社員写真ID 社員ID 店舗ID 社員写真 【営業所データ】の営業所IDと【社員データ】の営業所IDがリレーションで、同じく 【社員データ】の社員IDと【社員写真】の社員IDがリレーションで結んであります。 【社員データ】を基にしたクエリがあり 社員ID 営業所ID 営業所名 社員名 となっているので、営業所名は営業所IDを入力することによって、フォームにおいては自動表示されます。 さて、次が質問になるのですが、 【社員写真】を基にしたクエリがあります。 社員写真ID 社員ID 社員名 営業所ID 営業所名 社員写真 社員IDを入力することで、フォームにおいては社員名・営業所IDが自動表示されるのですが、営業所名を表示することができないで困っています。 基本的な事項だとは思いますが、わからなくなってしまいました。よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
どの社員写真も社員番号により特定の社員に結び付けられていて 全ての社員は、かならずどこか一箇所の営業所に結びついているので 全ての写真はどこか一箇所の営業所に結びつくはずですが、 写真→社員→営業所 多:1 多:1 のような状態なのですが 後は結合プロパティが上記のような矢印の方向になっていれば良いはずなんですが、、、 (写真の全レコードと社員の同じ結合フィールドのレコードだけを含める)と (社員の全レコードと営業所の同じ結合フィールドのレコードだけを含める)ですね。 後はテーブルのインデックス関係のデータ型の不整合ぐらいしか思いつきません。 あまりお助けできなくて申し訳ないです。 クエリを言葉で説明するのは難しいですね。 クエリの表示部分でSQLビューに変更すると SELECT... FROM... WHERE... と出てくると思うのですが、そのFROM句の部分を見せていただければもう少しお手伝いできるかも知れません。
その他の回答 (3)
- akipapa
- ベストアンサー率38% (34/89)
フォームで表示できない、とのことですが、クエリー単独でに条件を指定してまず動作を確認することをお勧めします。 すでにあるクエリーでうまくいかないなら、確実にうごくクエリーを作ってから、それに付け足しをして目的の機能へ拡張していくのが、早道です。
お礼
アドバイスありがとうございました!!
社員写真に営業所IDというものがあるのですか? (店舗IDがそれに当たるのかな?) 前の質問を詳しく覚えていなくて申し訳ないのですが、1人の社員は必ず、一つの営業所のみに所属していて、複数の写真があるという条件でしたら、社員写真のテーブルに営業所のIDはいらないと思います。 クエリを作成する際の手順として 3つのテーブルを表示させる リレーションシップができていることを確認する 表示させるデータを選ぶ(営業所のテーブルから営業署名を引っ張ってくる) とすれば表示されるはずです。 表示される営業所IDというのはどのテーブルから参照しているものかが問題なのですが、営業所テーブルから参照しているのであれば、営業署名が表示されないはずはないと思います。 たぶん店舗IDを参照させているのではないかと思いますが、どうでしょうか?
補足
すいませんでした。最初の質問の【社員写真】からつくられたクエリにある「店舗ID」というのは「営業所ID」の誤りでした。 さて、【社員写真】に営業所IDはいらない、とのこと。 【社員写真】は【社員データ】の社員ID同士でしかリレーションはできていませんが。仮に【社員写真】からつくられたクエリに営業所名(テーブルは【営業所データ】から)があったとしても、(現に、そのように作っています)どうやって関連づけされているんでしょうか。。 ご指摘のように、 3つのテーブルを表示させる リレーションシップができていることを確認する 表示させるデータを選ぶ(営業所のテーブルから営業署名を引っ張ってくる) については、何ら問題はないようです。
はっきりと原因が特定できませんので、リレーションシップの状態を知りたいのですが、 クエリ上のリレーションは 社員ID 社員写真:社員データ が 多:1 営業所ID 営業所データ:社員データ が 1:多 になっていますでしょうか?
補足
そのようになっております。 クエリ社員写真においては、当然「営業所名」は営業所データから引っぱってくるんですよね? 社員写真の営業所IDはどれとも関連付けされていませんが、関連づけするとデータ入力ができなくなりますよね??
お礼
いろいろとありがとうございました。 おっしゃるように、文章でクエリの内容をやりとりするのは難儀なことですよね。 もう少し自分なりに整理してみたいと思います。 ありがとうございました。