sql - 通过 SQL UPDATE 更新 Excel 数据

标签 sql vba excel

我想通过 SQL 查询更新我的 Excel 工作表的数据。我知道您可以通过 ADODB.Connection“连接”到工作表并在 ADODB.Recordset 中从中检索 (SELECT) 数据。但是,对 UPDATE 查询使用相同的过程会产生“Operation must use an updateable query”错误。还有其他方法可以实现吗?

产生错误的示例代码:

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 的表格。

最佳答案

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

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

更多信息可以在 Microsoft Support 找到

关于sql - 通过 SQL UPDATE 更新 Excel 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854312/

相关文章:

c# - 如何存储数十亿个 JSON 文件并进行查询

vba - Microsoft Word 全局模板中丢失的宏

Python Pandas 插入带有列值的新行

excel - 在 Excel 中使用 IF() 和 TIMEVALUE()

excel - 从工作表代码中引用添加全局变量

php - Mysql 如果有问题

php - 优化网站sql查询

C# sql wcf 参数异常

excel - 下标超出范围 IF ISERROR 问题

excel - 如果两张表的值匹配,则添加新表