MySQL & MsAccess 2007 - 尝试更新时出现错误 3197
Posted
技术标签:
【中文标题】MySQL & MsAccess 2007 - 尝试更新时出现错误 3197【英文标题】:MySQL & MsAccess 2007 - Error 3197 When Trying to Update 【发布时间】:2012-02-22 17:00:28 【问题描述】:我正在将 Access 数据库迁移到 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 命令失败,这是错误的来源。 我有类似的代码,不会导致任何错误。我是当时唯一的用户。
提前感谢您的见解
【问题讨论】:
谢谢,这是拼写错误。这就是我的代码中的内容。 requeteSQL 在法语中是 sqlQuery 我已经简化并更改了变量的名称,但我忘了更改一些。 dtAvancement 是更改日期格式的函数的结果。 @Galephico 在使用 db 服务器后端和 Access 前端时,最好避免使用链接表和 currentdb 引用。 Access以其本机DAO格式读取表,您最好打开与MYSQL数据库的ADO连接,因为查询是在服务器端而不是客户端执行的。这并未严格回答问题,但在将后端数据移出 Access 时需要牢记。 @Galephico 至于问题,我认为您可能需要将“set rs = nothing”移动到“rsmain.update”之后,并考虑在 Open Recordset 上添加“dbopendynaset”跨度> 【参考方案1】:我没有使用rsMain.Edit/Update
,而是使用DoCmd.RunSQL SQLQuery
直接使用SQL 更新,其中SQLQuery 是我更新的SQL 查询。
【讨论】:
以上是关于MySQL & MsAccess 2007 - 尝试更新时出现错误 3197的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ms Access 2007 中使用 MySQL 视图,而不会出现字符串列的垃圾?
如何将数据库从 MS access 2007 导出到 MySQL? [关闭]
MS Access 2007 查询不在 SQL Server 2008 上运行