【问题标题】:Update Excel data via SQL UPDATE通过 SQL UPDATE 更新 Excel 数据
【发布时间】:2014-03-18 05:43:19
【问题描述】:

我想通过 SQL 查询更新我的 Excel 工作表数据。我知道您可以通过 ADODB.Connection“连接”到工作表并在 ADODB.Recordset 中从中检索(SELECT)数据。但是,对 UPDATE 查询使用相同的过程会产生“操作必须使用可更新查询”错误。有没有其他方法可以做到这一点?

产生错误的示例代码:

Sub SQLUpdateExample()
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set con = New ADODB.Connection
    con.Open "Driver={Microsoft Excel Driver (*.xls)};" & _
           "DriverId=790;" & _
           "Dbq=" & ThisWorkbook.FullName & ";" & _
           "DefaultDir=" & ThisWorkbook.FullName
    Set rs = New ADODB.Recordset
    Set rs = con.Execute("UPDATE [Sheet1$] SET a = 10 WHERE b > 2")

    Set rs = Nothing
    Set con = Nothing
End Sub

代码应位于已保存的 .xls 工作表中,其中 Sheet1 包含一个带有(至少)a 和 b 列标题的表。

【问题讨论】:

  • afaik Excel 文件以只读方式打开。您必须将ReadOnly=False; 添加到您的连接字符串中。也许您会使用this link 找到一些有价值的东西
  • @marcw - 谢谢伙计,这很简单,但我在网上找不到。如果您发表评论作为答案,我会接受。

标签: sql vba excel


【解决方案1】:

没想到这一切都可以让它发挥作用......

回答
默认情况下,与 Excel 文件的连接设置为只读。
您必须将ReadOnly=False 添加到您的连接字符串中。

更多信息请访问Microsoft Support

【讨论】:

  • 我一直在寻找这个。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多