Я пытаюсь загрузить диапазон данных из Excel в БД.
У меня следующий код:
Sub InsertARange()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stCon As String, stSQL As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
stCon = "Provider=SQLOLEDB.1;Password=xxx;Persist Security Info=True;User ID=xxx;Initial Catalog=SSCReporting;Data Source=cra-uk-infra-sql;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=xxx;Use Encryption for Data=False;Tag with column collation when possible=False"
cnt.ConnectionString = stCon
stSQL = "INSERT INTO _sqlTest select * from [MacroSQL$A1:D10]"
cnt.Open
rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText
If CBool(rst.State And adStateOpen) = True Then rst.Close
Set rst = Nothing
If CBool(cnt.State And adStateOpen) = True Then cnt.Close
Set cnt = Nothing
End Sub
С этим кодом я получаю сообщение об ошибке«Неверное имя объекта MacroSQL $ A1: D10»
Я также попытался выбрать имя вкладки в строке stSQL как
stSQL = "INSERT INTO _sqlTest select * from [DB_RangeUpload$]
Я использовал примеры кода, которые появляются здесь , но, возможно, это только для запросов на выборку и не работает с запросами на вставку.
Есть идеи, как заставить его работать?