在MS Access 2010中插入INTO有时会出现错误:3073操作必须使用可更新的查询

时间:2011-03-05 02:15:47

标签: ms-access vba

我在执行ERROR: 3073 Operation must use an updateable query声明的同时获得INSERT 有时

我的Windows 7 PC上没有问题,但我写这篇文章的人有时会收到错误。她还在Windows 7上安装了MS Access 2010。

正如我所说,我从来没有在我的电脑上得到它,而且她有时只能得到它。代码将插入一些行然后通过错误,其他时候不会通过错误。

如果我将代码和数据放在一个.mdb文件或单独的文件中,则会发生错误。 这是一段代码:

OrderHdrInsertStmnt = " INSERT INTO ORDER_HDR " _  
& "(ORDER_ID, SOURCE_CODE, ORDER_DATE, SHIP_FNAME, SHIP_LNAME, SHIP_EMAIL, SHIP_COMP, SHIP_PHONE, SHIP_ADDR, SHIP_CITY, SHIP_STATE, SHIP_ZIP, SHIP_CNTRY, " _  
& " BILL_FNAME, BILL_LNAME, BILL_EMAIL, BILL_COMP, BILL_PHONE, BILL_ADDR, BILL_CITY, BILL_STATE, BILL_ZIP, BILL_CNTRY, " _  
& " TAX, SHIPPING, TOTAL, MOD_DATE, INSERT_DATE) " _  
& " VALUES (" _  
& "'" & OrderId & "','" & SourceCode & "','" & Orderdate & "','" & ShipFName & "','" & ShipLName & "','" & ShipEmail & "','" & ShipComp & "','" & ShipPhone & "','" & ShipAddr & "','" & ShipCity & "','" & ShipState & "','" & ShipZip & "','" & ShipCntry _  
& "','" & BillFName & "','" & BillLName & "','" & BillEmail & "','" & BillComp & "','" & BillPhone & "','" & BillAddr & "','" & BillCity & "','" & BillState & "','" & BillZip & "','" & BillCntry _  
& "','" & OrderTax & "','" & OrderShipping & "','" & OrderTotal & "','" & ImportDate & "','" & ImportDate & "');"

然后我用

dbsCurrent.Execute OrderHdrInsertStmnt, dbFailOnError

任何帮助都会很棒!

4 个答案:

答案 0 :(得分:0)

当您针对查询运行更新语句时,通常会发生错误,因此不清楚应更新哪些记录。你显然没有这样做。

是否有可能将您连接到insert语句的某些数据有时是错误的值,例如数字中的字符串或NULL等。那将是最可能的解释。最可能的错误原因是某种非标准输入被连接到语句中。

答案 1 :(得分:0)

表是否共享,您是否同时更新/插入?

我在同一记录上运行多用户更新测试 该表是:一个id和一个文本字段,
查询是:update text = randomString WHERE id = 800(id 800存在...)
执行方法:CurrentDb.Execute(qry)

每台计算机上超过200次10次我有错误3073.因此,我认为这意味着“桌子被其他人锁定”

有关信息,在另一个测试(同一个表)但在插入模式下使用记录集addNew和Update我有错误3343(数据库格式无法识别)

明确的消息:P

答案 2 :(得分:0)

我在两年多前为朋友开发了一个使用MS Access DB的独立Visual Basic程序。最近,他抱怨在会话中添加第二条记录时遇到“操作必须使用可更新的查询”错误。即:每次使用该程序时,只添加/更新第一条记录。

在搜索网络,各种论坛后,我找不到可能的答案。

最终,我的案例的解决方案/解决方案:似乎我朋友在后台运行的新安装的备份软件(Memeo Backup)以某种方式导致问题。禁用备份程序,程序可以再次运行。

因此,请尝试禁用后台程序,看看是否有任何问题导致问题。

答案 3 :(得分:0)

我在插入时遇到了同样的错误。我使用VALUES子句插入到链接表中,该子句是从VBA运行的。当我将插入目标表移动到本地mdb时,它解决了问题。然后我能够将本地表中的所有行插入到链接表中。