アクセスバックエンドを問題なく使用していたAccess 2003フロントエンドがあります。私は最近Accessバックエンドを代わりにSQL Server 2005を使用するように切り替えましたが、私はまだこの最後の問題を把握することができませんでした。何か助けていただければ幸いです。親子フォームの多対多の関係がデータ入力を制限しています
私は多対多の関係で二つのテーブルがあります。
tblMembership <--> tblLinkPersonMembership <--> tblPerson
プライマリキーフィールドはmembershipIdとPERSONIDで、リンクテーブルは両方と他には何が含まれています。
Accessアプリケーションには、tblMembership
をレコードソースとして使用するフォームがあります。これは、レコードソースが
SELECT *
FROM tblPerson INNER JOIN tblLinkPersonMembership
ON tblPerson.personId=tblLinkPersonMembership.personId;
の子フォームを持ちます。これは、Access(2003)データベースをバックエンドとして使用するとうまくいきます。今、バックエンドのSQL Server 2005であることを、私はサブフォーム上の2つのレコードを入力することができますが、特定の会員のための第三者レコードを保存しようとしたとき、私は次のエラーを取得する:
The Microsoft Jet database engine cannot find a record in the table
'tblPerson' with key matching field(s) 'tblLinkPersonMembership.personId'.
私が閉じている場合フォームを開いてそのメンバーに戻って(現在2人が関連付けられています)、さらに2人(#3人と#4人)を入力できますが、5人目に入ろうとすると同じエラー。私はフォームを閉じて、もう一度開いて、2つ以上の広告の間違いを追加することができます。
私は少し混乱しています。私が行った研究は何も見つかりませんでした。どんな助け?