繁体   English   中英

在具有MS Access前端的SQL Server中动态更新记录的问题

[英]Issues dynamically updating records in SQL Server with MS Access front end

我管理和开发具有SQL Server 2014后端和Access 2010前端的数据库。 它们使用ODBC连接进行连接。

在过去的几天中,更新具有一对多关系的一组特定表(例如表A和B,其中1 A具有多个B)的问题。 在Access前端上插入数据时,焦点从表A移到表Bs上,所有与表A相关的字段都用#DELETE填充。 表B是表A形式的子形式的记录源。

这是结果

我尝试直接编辑表中的数据。 我第一次这样做失败,用#DELETE填充字段并显示以下消息。 但是,有时我可以直接在表中进行编辑和追加。 有时,当我返回刚刚创建的记录并尝试对其进行更新时,这些字段将填充为#DELETE。 似乎很断断续续。 而且我知道它说另一个用户已经编辑了该行,但是此代码在我们只能访问的开发数据库上产生了相同的错误。

在此处输入图片说明

我确实尝试通过“ edit top 200”选项从SSMS添加数据。 但是,我得到了类似的结果:

在此处输入图片说明

在之前的所有示例中,数据均已添加到表中。 但是,所用的任何UI都需要关闭并重新打开才能查看结果。 可以使用SQL附加和更新表。 但是,我希望将表单连接到Access中的表所带来的灵活性,而不是在VBA中运行SQL。 数据库中没有其他表会像这样,而且我似乎无法在网上找到任何与我有相同问题的人。

有谁知道为什么会这样,或者我应该从哪里开始寻找答案?

编辑:

我还应指定两个表都具有主键,并且所有位字段的默认值均为0,不允许为空,并且不包含任何为空的行。

所有必需的表上都有键,您是否有任何允许空值的位? Access不喜欢后者。

我解决了这个问题。 Albert的建议添加时间戳字段确实可以改善这种情况,但并不能在所有情况下解决总体问题。 但是,我确实发现,当新条目的任何字段中都包含null而不管数据类型如何,或者是否允许null时,都会发生此问题。 离开时,我为所有字段和问题设置了默认值。

我仍然觉得这不是一个完美的答案。 我仍然不知道为什么会这样。 如果有人可以解释为什么这会突然发生,那将是很棒的。

这里是对确切问题的描述和一些对我不起作用的解决方案的链接。 但是,它可能会对其他人有所帮助: https : //support.microsoft.com/en-us/kb/128809

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM