こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Accessのリレーションシップ

Access初心者です。
Access2010でデータベースを作っていて、行き詰ってしまいました。

テーブル1にフィールドABCDEFがあって、Aに主キーが付いています。(Aはテキスト型でフィールドサイズ10です。)
テーブル2にはフィールドAGHがあり、Aに主キーが付いてます。(Aはテーブル1と同じです。)
テーブル3にも同じくフィールドAIJがあり、Aに主キーが付いています。(Aはテーブル1と同じです。)

テーブル1のフィールドAを主テーブルとし、テーブル2・3のフィールドAにリレーションを組んでいます。
この時のリレーションシップで参照整合性と連鎖更新と連鎖削除にチェックを入れ、種類が一対一になりました。

その後、テーブル1でレコードを追加しようとすると、「テーブル'2'にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことができません。」と出ます。

これを解決する方法はどうするのか、お教えお願いします。
分かりにくい説明ですいません。

投稿日時 - 2011-02-22 11:21:28

QNo.6541708

困ってます

質問者が選んだベストアンサー

No3 の回答者さんが言われてるように主従関係が逆になっていると思います。

リレーションシップ画面で結合線をダブルクリックしてリレーションシップの設定画面を確認ください。左側に表示されてるテーブルが主になりますが、左側にテーブル2が表示されてませんか。

もし、そうなっていたら、結合線を削除して、フィールドAをテーブル1の方からテーブル2の方へドラッグして設定画面を表示させてください。テーブル1の方が左に表示されてると思います。

こうしてから、連鎖更新、連鎖削除を設定してください。

投稿日時 - 2011-02-23 14:22:47

お礼

回答ありがとうございました。
これが原因でした。
内容も詳しく書いてくださりとても役立ちました。
ありがとうございました。

投稿日時 - 2011-02-28 10:32:43

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

これ・・
テーブル1とテーブル2の主従が逆になっていませんか?
正しく設定してあればテーブル2に新たなレコードを追加しようとした場合に
テーブル1に該当するレコードが無ければ
テーブル1に・・・となるはずですよ。

投稿日時 - 2011-02-22 21:45:53

お礼

回答ありがとうございました。
原因はこれっぽいです;
主従関係確認したら、判明いたしました。
究明ありがとうございました。

投稿日時 - 2011-02-28 10:31:08

リレーションの連鎖更新と連鎖削除を外したら出来るようになるはずです。

投稿日時 - 2011-02-22 21:08:18

お礼

回答ありがとうございました。
これが原因ではなかったみたいです。

投稿日時 - 2011-02-28 10:33:30

ANo.1

「ACCESS使って覚えようリレーションシップの考え方」

というサイトを参照。

リレーションシップは関連付けするもの、クエリと違うので使い方の説明を見直しても良い。

ACCESSCLUBのサイトにも事例、説明あるので確認。


この事例は間違いやすいのでー、機能理解が先かと思われますから再認識してみる。

投稿日時 - 2011-02-22 14:02:26

お礼

回答ありがとうございました。
初心者には間違いやすい事例なのでしょうか・・・

参考にさせていただきます。

投稿日時 - 2011-02-28 10:35:42

あなたにオススメの質問