我的问题。
我编写了一个存储过程来计算通过 Ms Access 前端(到 MSSQL2000 数据库)上的表单呈现的多个字段。
我一打电话表格重新查询获取更改后的值。我可以看到我引起了写冲突的恼人消息。
自您开始编辑以来,该记录已被其他用户更改。如果您保存记录,您将覆盖其他用户所做的更改。
将更改复制到剪贴板将使您可以查看其他用户输入的值,
如果您决定进行更改,则将更改粘贴回原处。
我知道是我更改了数据,因此我想抑制该消息或防止该消息发生。
(我想我应该把我的评论放在帖子中,因为我实际上是在回答这个问题)
您收到写入冲突消息的原因是因为您通过表单和存储过程编辑记录而创建了写入冲突。为了避免该错误,只需在执行存储过程之前将记录保存在表单中即可。从上面发布的代码片段来看,它应该是:
Me.Dirty = False
cmd.Execute , , adCmdStoredProc
这是一个常见的 Access 错误,是由于尝试通过绑定表单和直接 SQL 更新来编辑数据而导致的。在通过 SQL 更新同一记录之前,您需要保存表单的编辑缓冲区。
换句话说,您应该庆幸错误消息的出现,否则您将丢失其中一项或另一项更改。
不过,我对设计提出质疑。如果您以绑定表单打开记录,则对表单中加载的数据进行编辑,而不是运行 SQL 来更新它。我不知道为什么你需要一个存储过程来更改你已经在表单中编辑的记录——这对我来说听起来像是一个设计错误(即使解决方案非常简单)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)