当前位置: 首页 > 面试题库 >

操作必须使用可更新查询/ SQL-VBA

李甫
2023-03-14
问题内容

我试图创建一个非常动态的宏,该宏将根据用户的选择更新数据库中的不同表。每个表当然都有不同的标题和信息。我在更新时遇到问题(当用户将新记录添加到旧表时)。这是代码的一部分,问题是当它到达“
.update”时,出现“操作必须使用可更新查询”错误。

Dim DBCnn As ADODB.Connection
Dim RecSet As ADODB.Recordset
Dim sQRY As String
Dim FilePath, Titulo, Tabla As String
Dim LastRow, LastColumn, TotalRecords, Id As Long

Set DBCnn = New ADODB.Connection
Set RecSet = New ADODB.Recordset
DBCnn.Mode = adModeReadWrite
DBCnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & FilePath & ";"

sQRY = "SELECT * FROM Customers" & Tabla ' & " WHERE PopID = " & lngid

RecSet.CursorLocation = adUseClient
RecSet.Open _
    Source:=sQRY, _
    ActiveConnection:=DBCnn, _
    CursorType:=adOpenDynaset, _
    LockType:=adLockOptimistic


Do While Range("A" & LastRow).Value <> ""
' repeat until first empty cell in column A
With RecSet
    .AddNew
    .Fields("Id") = Range("A" & LastRow).Value
    .Fields("Name") = Range("B" & LastRow).Text
    .Fields("Age") = Range("C" & LastRow).Value
    .Update '(Here's my error)
End With
LastRow = LastRow + 1
Loop

问题答案:

舍弃此行:

RecSet.CursorLocation = adUseClient

或者像这样尝试:

RecSet.CursorLocation = adUseServer

请参阅MSDN上的CursorLocation属性(ADO)的“备注”部分:

“如果 CursorLocation 属性设置为 adUseClient ,则记录集将以只读方式访问,并且无法更新记录集到主机。”



 类似资料:
  • 问题内容: 对于jdbc程序,我需要将连接建立为excel数据库。该连接已成功建立,但在其中输入了值,则给出了“操作必须使用可更新查询”的异常。 这是代码: 问题答案: 您是否特别指出连接已在您的连接字符串中被读写? 我不熟悉JDBC,但ODBC将是: 默认情况下,Excel是只读的:http : //support.microsoft.com/kb/257819

  • 问题内容: 我有一个包含三列的表: 还有另一个表,其中包含2列。的列与的相同。 我需要一个查询,它将更新带有的列。 我可以通过检查ID并执行更新语句来通过循环来实现。如何才能通过查询完成? 问题答案: 怎么样

  • 问题内容: 我必须更新一个值,该值由3个表的联接返回。 例子: 我想用其他在上述条件下加入的值来更新表的字段值。 如何在MS SQL Server中执行此操作? 问题答案: 为了清楚起见…该子句可以引用该子句中指定的表别名。所以在这种情况下是有效的 通用示例

  • 本文向大家介绍必须会的SQL语句(六) 数据查询,包括了必须会的SQL语句(六) 数据查询的使用技巧和注意事项,需要的朋友参考一下 1.基础的查询     1)重命名列     select name as '姓名' from 表名       2)定义常量列     select 是否 ='是' from 表名       3)top用法 percent      --这种写法可以获取前20%条

  • 问题内容: 我目前正在尝试将基于Solr的应用程序迁移到Elasticsearch。 我有这个lucene查询 据我了解,这是MUST子句与布尔OR的组合: “获取所有包含(名称中包含foo AND条)或(信息中包含foo AND条)的所有文档。在此之后,按条件state = 1过滤结果,并增强具有图像的文档。” 我一直在尝试将布尔查询与MUST一起使用,但是我无法将布尔OR放入must子句中。这

  • 我正在尝试让这个查询在JPA中工作: 它与postgresql一起完美地工作,但是当我将它与JPA集成时,我得到了以下错误: 像这样打电话