問題
複数アイテムのサブフォームに新しいレコードを挿入すると、親フォームから必要な外部キーが含まれていないため、エラーがスローされます。外部キーをnullにすることは許可されておらず、null値を挿入しようとしています。
もう少し情報
このプロセスは以前は正常に機能していましたが、その後、バックエンドをACEからSQLServer2005にアップグレードしました。次のエラーがスローされます。
Run-time error '3146':
ODBC--call failed.
[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert the value NULL into
column 'EngagementLetterID_FK', table 'ClientDatabase.dbo.Services'; column does
not allow nulls. INSERT fails. (#515) [Microsoft][ODBC SQL Server Driver][SQL
Server]The statement has been terminated. (#3621)
簡単なコメントとして、サブフォームはサービスレコード用であり、親フォームはEngagementLetterレコード用です。1つのELには多くのサービスがあります。
テーブルの設定を確認しましたが、問題はないようですが、テーブルは正常に動作していると思います。null値を許可するべきではありません。また、SQLServerが正しいFKの識別に責任を持つべきではないと思います。フロントエンドがこれを行う必要があります。ただし、以前はACEバックエンドでフロントエンドは正常に機能していました。そのため、原因を特定するのに問題があり、より高度なAccessデバッグを実行する方法を理解できません(たとえば、beforeUpdate、SQL INSERTクエリがどうなるかを教えてください)。
他の親サブフォームのいくつかを確認しましたが、正常に動作しています。
何か案は?