Я попытался выполнения этого кода:VBA Execute ошибка Access Query: База данных или объект только для чтения
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim strConn As String
Dim strAcc As String
'Connecting to the DB
cn.ConnectionTimeout = 7200
cn.CommandTimeout = 7200
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\Documents\proof.accdb;Mode=Share Deny None; Persist Security Info=False"
cn.Open strConn
'Creating the query string
strAcc = "SELECT * " _
& " INTO Table1 " _
& " FROM [Excel 8.0;HDR=YES;DATABASE=D:\Documents\database.xlsm].[Sheet1$];"
'Executing the query
rs.Open strAcc, cn, adOpenDynamic
При выполнении он получает сообщение об ошибке: «Не удается обновить базы данных или объект только для чтения» на линия:
rs.Open strAcc, cn, adOpenDynamic
Я не знаю, как исправить эту проблему. Любопытно, что при выполнении другого запроса (выбор из существующей таблицы) он отлично работает. Вот почему, я думаю, проблема связана с тем, что создается новая таблица с помощью команды SELECT INTO
. Я также попытался написать «Режим = Share Deny None» (как вы можете видеть) в соединении, но не решил проблему.