【发布时间】: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 - 谢谢伙计,这很简单,但我在网上找不到。如果您发表评论作为答案,我会接受。