vba - MS Access -“自从您开始编辑此记录以来,该记录已被其他用户更改”
问题描述
我知道这已经被问过很多次了,我已经尝试了许多对其他人有用的建议和解决方案,但我无法让这个错误消失(请参阅附件)。
这是一个 Access 应用程序,它实际上只是 SQL Server 数据库的 UI,并使用 SQL Server 数据库的所有链接表。用户打开访问权限并转到一个打开“搜索”的表单,用户在其中选择一堆标准并单击“应用过滤器”。出现符合其条件的记录列表。他们单击所需的记录,然后打开一个显示有关该记录的详细信息的表单。然后,他们单击“编辑”按钮,打开另一个表单,允许他们编辑某些字段。当他们进行更改并点击保存时,就会出现此错误。对我来说奇怪的是,这仅在用户选择搜索列表中的第一条记录时才会发生,但列表中的其他记录似乎不会发生。
我尝试过的是以下内容:
- 在“BeforeUpdate”和“Update Button Click”事件中添加了代码以检查“If Me.IsDirty = True Then Me.IsDirty = false” End If。
- 向 SQL 数据库中添加了一个 datetime 列,该列通过触发器 ON UPDATE 进行更新
- 验证数据库没有位列
- 将表单上的“记录锁”属性更改为“编辑记录”
这些项目都没有任何区别。
感谢您对可能导致此问题的任何帮助。
解决方案
2. 在 SQL 数据库中添加了一个 datetime 列,该列通过触发器 ON UPDATE 进行更新
这实际上可能是您的问题的原因 - Access 和 Sql Server 同时修改同一行会导致您看到的写入冲突。
恐怕您误解了您找到的有效建议。
您想要的是Sql Server 表中的ROWVERSION
又名列。TIMESTAMP
这有助于 Access 确定行是否已更改并解决写入冲突。它是全自动的,不需要触发器。
更多细节(Albert 总是提供很多细节:p)在这里:
MS Access Write Conflict - SQL Server - Me = Dirty
如果这没有帮助:检查您是否有任何其他触发器,并发布您的 VBA 代码以进行过滤/编辑/保存。
推荐阅读
- javascript - 是否有一个用于网络抓取的 node.js 包,可以捕获页面源代码之外的内容?
- python - 将单色 png 读入 numpy 数组
- c# - C# Xamarin.Forms HttpClient 偶发连接场景
- swift - 在 MacOS 全屏模式下,对话框会在另一个工作区中打开
- node.js - 如何为启用 2FA 的 github 帐户配置 Jenkins?
- c - 二维数组是否需要在 C 中事先知道它的大小?
- flink-streaming - 带有 Predicate 类型逻辑的 Flink DataStream API
- javascript - 过滤嵌套数组并返回具有过滤值的整个数组
- karate - 在实际的GET调用中使用(null)仍然会省略key,需要想办法发送一个空值
- bash - 有没有办法查看出站符号链接?