Как загрузить Range в Excel в MSSQL с помощью VBA - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь загрузить диапазон данных из 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$]

Я использовал примеры кода, которые появляются здесь , но, возможно, это только для запросов на выборку и не работает с запросами на вставку.

Есть идеи, как заставить его работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...