MySQL & MsAccess 2007 - ошибка 3197 при попытке обновления - PullRequest
0 голосов
/ 22 февраля 2012

Я перевожу базу данных доступа в MySQL.Большая часть программы работает хорошо, но у меня все еще есть проблема с запросом SQL.

Я получаю ошибку времени выполнения 3197:

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.

Что я уже сделал:

  • Сконфигурируйте мой драйвер ODBC для разрешения динамических курсоров
  • Сконфигурируйте мой драйвер ODBC для возврата совпадающих строк вместо затронутых строк

Код, вызывающий ошибку:

Dim rsMain As Recordset
Dim rs As Recordset

Dim db As Database
Set db = CurrentDb

Dim sqlQuery As String

sqlQuery = "Select * from Table1 where field1 like '" & Me.field10 & "*' and field2=" & Me.field11 & " and field3=True"
Set rsMain = db.OpenRecordset(sqlQuery)

rsMain.MoveFirst
Do Until rsMain.EOF
    sqlQuery = "select sum(field4) as Est, sum(field5) as Cons, sum(field6) as Prod from Table1 where field1 like '" & rsMain("field1") & "*' and field3=False and field5=" & Me.modifiedDate
    Set rs = db.OpenRecordset(sqlQuery)

    rsMain.Edit
    rsMain.Fields("field4") = rs.Fields("Est")
    Set rs = Nothing

    rsMain.Update
    rsMain.MoveNext
Loop
Set rsMain = Nothing

Команда rsMain.Update завершается неудачно, она является источником ошибки.У меня есть похожий код, который не вызывает ошибок.Я единственный пользователь в то время.

Заранее спасибо за ваши идеи

1 Ответ

0 голосов
/ 27 февраля 2012

Вместо rsMain.Edit/Update я непосредственно использовал обновление SQL, используя DoCmd.RunSQL SQLQuery, где SQLQuery - мой обновленный запрос SQL.

...