【发布时间】:2011-11-01 10:58:11
【问题描述】:
我正在尝试运行以下代码来循环记录集并在必要时进行更新。
我有一个连接到 MySql 后端的 Microsoft Access 数据库。每当我运行此代码时,我都会收到以下错误:
3197 错误:Microsoft Office Access 数据库引擎停止了进程,因为您和其他用户正试图同时更改相同的数据。
代码如下:
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 已更新,然后我收到错误消息。
【问题讨论】: