我管理和开发的数据库具有带有Access 2010前端的SQL Server 2014后端。它们使用ODBC连接进行连接。
在过去的几天里,一直存在更新具有一对多关系的特定表格的问题(比如表A和B,其中1 A有很多B)。在Access前端插入数据并且焦点从表As字段移到表B上时,与表A相关的所有字段都填充#DELETE。表B是表A形式的子表单中的记录源。
我尝试直接编辑表格中的数据。我第一次这样做失败了,用#DELETE填充字段并显示以下消息。但是,我有时可以直接在表格中编辑和追加。有时当我回到我刚刚创建的记录并尝试更新它时,字段将填充#DELETE。这似乎很间歇。我知道它说另一个用户编辑了这行,但是这个代码在我只能访问的开发数据库上产生了同样的错误。
我确实尝试通过“编辑前200”选项从SSMS添加数据。但是,我得到了类似的结果:
在之前的所有示例中,数据都已添加到表中。但是,无论使用哪种UI都需要关闭并重新打开才能查看结果。可以使用SQL追加和更新表。但是,我希望在Access中将表单连接到表时具有灵活性,而不是在VBA中运行SQL。数据库中没有其他表像这样和 我似乎无法在网上找到与我完全相同的问题。
有谁知道为什么会这样,或者我应该在哪里开始寻找答案?
编辑:
我还应该指定两个表都有主键,所有位字段的默认值都是0,不允许空值,并且没有任何行为空的行。
答案 0 :(得分:0)
所有必要的表上都有一个键,你是否有任何允许空值的位? Access不喜欢后者。
答案 1 :(得分:0)
我解决了这个问题。 Albert提出的添加时间戳字段的建议确实改善了情况,但并未解决所有情况下的整体问题。但是,我确实发现,当一个新条目在任何字段中包含null而不管数据类型或是否允许空值时,都会发生此问题。我为所有字段设置默认值,并在离开时设置问题。
我仍然觉得这不是一个完美的答案。我还是不知道为什么会这样。如果有人可以解释为什么会发生这种情况,那就太棒了。
以下是对确切问题的说明以及一些对我不起作用的解决方案的链接。但是,也许它会帮助别人: https://support.microsoft.com/en-us/kb/128809