我想運行下面的代碼來循環記錄集並在需要時進行更新。訪問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