[英]Why is my subform not including the Foreign Key from the parent form in the INSERT operation in MS Access 2007?
问题
当我在多项目子表单中插入新记录时,由于未包含父表单所需的外键,因此会引发错误。 外键不允许为空,它试图插入一个空值。
多一点信息
此过程以前工作正常,但此后我已将后端从ACE升级到SQL Server2005。现在会引发以下错误:
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调试(例如,在Update之前,请告诉我SQL INSERT查询将是什么)。
我检查了一些其他的父子表单,它们表现良好。
有任何想法吗?
我忘记提及的另一个细节-我同时进行了一些戏剧性的前端重建。 对于子窗体,我没有正确地将父窗体的EngagementLetterID_FK与EngagementLetterID链接。 结果是新的服务记录未指定EngagementLetterID_FK。
因此,既然我已经纠正了链接,它就可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.