在Excel中,我使用ADODB连接来构建记录集,从工作表中获取数据,如下所示:
Public Sub test()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSQL As String
Dim k As Variant
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _
"Extended Properties=""Excel 12.0;HDR=No;IMEX=1;Readonly=False"";"
strSQL = "SELECT F1 FROM [Workbench$];"
rst.Open strSQL, cnn, adOpenStatic, adLockOptimistic
rst.MoveFirst
While Not rst.EOF
rst("F1") = "NewValue"
rst.Update
rst.MoveNext
Wend
End Sub
但是,运行代码时出错:
运行时错误'-2147217911(80040e09)':
无法更新。数据库或对象是只读的。
我已检查过我打开的工作簿的权限,并且没有问题(每个人都可以完全控制访问权限)。
我在这里做错了什么?
答案 0 :(得分:4)
我通过使用IMEX = 0
解决了我的问题答案 1 :(得分:0)
rst.Open strSQL, cnn, adOpenStatic, adLockOptimistic
替换为
rst.Open strSQL, cnn, 1, 3