我正在使用ms Access 2010和oracle的应用程序上工作。现在,我正在使用SQL 5.7代替oracle。
但是ms访问中的代码包含recordset.edit,然后是2个set语句,然后是recordset.update。recordset.editrecordset.Fields(22).value=1recordset.update
这将导致运行时错误3197。您和另一个用户试图同时更改相同的数据。
我试图匹配所有数据类型。但是似乎没有任何作用。还是我得到同样的错误。
感谢您的帮助。提前致谢
最佳答案
该“其他”用户消息通常会误导您,并且实际上另一个用户尚未更新该记录。
要检查的两件事:
如果某些sql更新或记录集代码“可能”更新了您正在处理的当前记录,则强制进行磁盘写入,因此不存在任何暂挂更新:
例如:
If me.Dirty = True then me.Dirty = false.
YOUR code here such as above is now called/run
第二个常见问题是空位列。这些通常会混淆访问,因此您需要在SERVER级别上确保为此类列设置了默认设置(sql server的值为0 – MySQL的不确定)。因此,这是必须检查的问题。
接下来:
确保所讨论的表具有PK,并且应该添加行版本(时间戳)。此类列不要与日期时间或保存当前时间的列混淆,它是行版本的列。因此,添加一个timestamp列,确保PK列存在,并确保表中的任何位(true / false)列都具有默认值。如果现有位列具有空值,则运行更新查询以将它们全部设置为false(0)。
更改表后(如果需要),然后重新链接所有访问表。
当您确定该“其他”用户消息实际上不是另一位用户时,以上内容应涵盖99%的情况。
关于mysql - mysql的MS Access 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51126083/