다음 코드를 실행하여 레코드 세트를 반복하고 필요한 부분을 업데이트합니다.Access VBA - 런타임 오류 '3197'
Microsoft Access 데이터베이스가 MySql 백엔드에 연결되어 있습니다.
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 데이터베이스가 손상되었을 수 있습니다 생각하지만이 같은 일을하고 있어요 :
이
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.
코드는 다음과 같습니다 :이 코드를 실행 할 때마다 나는 다음과 같은 오류가 발생합니다 그러면 MySql 문제라고 생각하게됩니다.
다른 MySql 테이블에 링크 된이 데이터베이스의 다른 버전에서 동일한 코드를 사용하므로 정상적으로 작동합니다.
또한 쿼리를 열면 레코드 세트가 쿼리의 데이터를 아무런 문제없이 편집 할 수 있습니다.
첫 번째 루프에서 rs! MyFieldInTable을 업데이트하면 오류가 발생합니다.
멋지게 완료되었습니다. + 1 – XIVSolutions
+1 @XIVSolutions과 마찬가지로 새로운 답변이로드되었다는 메시지를 받았을 때 비슷한 답을 쓰고있었습니다. – mwolfe02
또한 내가 틀렸다면 나를 수정 해주세요.하지만 rs.Edit가 루프 안에 들어가야한다고 생각합니다. DAO 도움말 파일에서 : ** Edit Method : ** * 후속 편집을 위해 ** 현재 레코드 **를 업데이트 가능한 Recordset 개체에서 복사 버퍼로 복사합니다. * – mwolfe02