我想通过 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/