我想通过SQL查询更新我的Excel工作表数据。我知道你可以通过ADODB.Connection连接到工作表并从ADODB.Recordset中检索(SELECT)数据。但是,对UPDATE查询使用相同的进程会产生'操作必须使用可更新查询'错误。有没有其他方法可以实现这一点?通过SQL更新更新Excel数据
产生该错误的示例代码:
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工作表,其中表Sheet 1包括与列标题(至少)a和b的表。
找到AFAIK只读Excel文件被打开。您必须将'ReadOnly = False;'添加到您的连接字符串中。也许你会发现有价值的使用[此链接](http://support.microsoft.com/kb/257819/en#RetrieveExcel) – marcw
@marcw - 感谢队友,这很简单,但我无法找到它网络。如果您发表评论作为答案,我会接受它。 – xificurC