Reputation: 83
In Excel, I'm using ADODB connection to build a recordset, fetching data from the worksheet in its own workbook as following:
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
However, an error occurs while I run the code:
Run-time error '-2147217911 (80040e09)':
Cannot update. Database or object is read-only.
I have checked about permission of my opened workbook and it is ok (Full Control access for everyone).
What did I do wrong here?
Upvotes: 2
Views: 7193
Reputation: 9
rst.Open strSQL, cnn, adOpenStatic, adLockOptimistic
replace to
rst.Open strSQL, cnn, 1, 3
Upvotes: -1