问题
当我在多项目子表单中插入新记录时,它会引发错误,因为它没有包含父表单中所需的外键。外键不允许为空,它试图插入一个空值。
更多信息
这个过程以前运行良好,但我已经将我的后端从 ACE 升级到 SQL Server 2005。它现在抛出这个错误:
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 记录。一个 EL 有许多服务。
我检查了表的设置,看起来不错,但我会说表运行正常——它不应该允许空值。我也不认为 SQL Server 应该负责识别正确的 FK - 前端应该这样做。但是,我的前端在使用 ACE 后端之前运行良好。所以我很难找出罪魁祸首是什么,而且我不知道如何进行更高级的 Access 调试(例如 beforeUpdate,告诉我 SQL INSERT 查询将是什么)。
我检查了我的其他一些父子表单,它们表现良好。
有任何想法吗?