微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MS Access - “此记录自您开始编辑以来已被其他用户更改”

如何解决MS Access - “此记录自您开始编辑以来已被其他用户更改”

我知道这已经被问过很多次了,我已经尝试了许多对其他人有用的建议和解决方案,但我无法消除这个错误(请参阅附件)。

Write Conflict Screenshot

这是一个 Access 应用程序,它实际上只是 sql Server 数据库的 UI,并使用所有链接表到 sql Server 数据库用户打开访问权限,然后转到打开“搜索”的表单,用户在其中选择一组条件并单击“应用过滤器”。出现符合条件的记录列表。他们单击所需的记录,然后会打开一个显示有关此记录详细信息的表单。然后他们单击“编辑”按钮,打开另一个表单,允许他们编辑某些字段。当他们进行更改并点击保存时,就会出现此错误。对我来说奇怪的是,只有当用户选择搜索列表中的第一条记录时才会发生这种情况,但列表中的其他记录似乎不会发生这种情况。

我尝试过的如下:

  1. 在“BeforeUpdate”和“Update Button Click”事件上添加代码以检查“If Me.IsDirty = True Then Me.IsDirty = false”End If。
  2. sql 数据库添加一个日期时间列,该列通过触发器 ON UPDATE 进行更新
  3. 已验证数据库没有位列
  4. 将表单上的“记录锁定”属性更改为“编辑记录”

这些项目都没有区别。

对于可能导致这种情况的任何帮助,我们表示赞赏。

解决方法

2.向 SQL 数据库添加了一个日期时间列,该列通过触发器 ON UPDATE 进行更新

这实际上可能是您的问题的原因 - Access 和 Sql Server 同时修改同一行会导致您看到的写入冲突。
恐怕你误解了你找到的有效建议。

您想要的是 Sql Server 表中的 ROWVERSION 又名 TIMESTAMP 列。这有助于 Access 确定行是否已更改并解决写入冲突。它是全自动的,不需要触发。

更多细节(阿尔伯特总是提供很多的细节:p)在这里:
MS Access Write Conflict - SQL Server - Me = Dirty

如果这没有帮助:检查您是否还有其他触发器,并发布您的 VBA 代码以进行过滤/编辑/保存。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。