通过SQL UPDATE更新Excel数据

3
我希望通过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 的表格。

1
据我所知,Excel 文件以只读方式打开。您需要在连接字符串中添加 ReadOnly=False;。也许您可以通过此链接找到有价值的信息。 - marcw
@marcw - 感谢你啊,老兄。那个问题其实很简单,但是我在网上没找到答案。如果你把你的评论发成回答,我会接受的。 - xificurC
1个回答

5

没想到这就是使它工作的全部...

答案
与Excel文件的连接默认为只读。
您需要在连接字符串中添加ReadOnly=False

更多信息请参见Microsoft支持


我已经寻找这个很长时间了。谢谢! - iDevlop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接