我想运行下面的代码来循环记录集并在需要时进行更新。访问VBA - 运行时错误'3197'
我有一个Microsoft Access数据库连接到MySql后端。每当我运行此代码,我得到了以下错误:
The Microsoft Office Access database engine stopped the process because you and another user are attempting to change the same data at the same time.
的代码如下:
Private Sub test()
Dim rs As DAO.Recordset, rsCnt As Long, i As Long
Set rs = CurrentDb.OpenRecordset("qryMyQuery", DB_OPEN_DYNASET)
rs.MoveLast
rsCnt = rs.RecordCount
rs.MoveFirst
For i = 1 To rsCnt
rs.Edit
rs!MyFieldInTable = "test"
rs.Update
Next i
End Sub
我是这么认为的我把以前的备份Access数据库可能已损坏,但它做同样的事情这让我认为这是一个MySql问题。
我们在链接到不同的MySql表的另一个版本的数据库上使用相同的一段代码,它工作正常。
此外,当我打开查询记录集是基于我可以编辑查询中的数据没有任何问题。
只需添加,在第一个循环中,rs!MyFieldInTable被更新,然后我得到错误。
很好地完成! + 1 – XIVSolutions
+1就像@XIVSolutions一样,当我收到消息说已经加载了一个新答案时,我写了一个类似的答案。 – mwolfe02
另外,纠正我,如果我错了,但我相信rs.Edit必须进入循环。从DAO帮助文件中:**编辑方法:** *将可更新记录集对象的**当前记录**复制到复制缓冲区以供后续编辑。* – mwolfe02