通过SQL UPDATE更新Excel数据

时间:2014-02-18 12:46:26

标签: sql excel vba excel-vba

我想通过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 个答案:

答案 0 :(得分:5)

没想到会让它发挥作用......

<强>答案
默认情况下,Excel文件的连接设置为ReadOnly 您必须将ReadOnly=False添加到连接字符串。

可在Microsoft Support

找到更多信息