Оператор выбора SQL в Microsoft Access VBA - нужна помощь при вставке в таблицу Access в виде блока, а не цикла - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь выполнить оператор Select на сервере SQL, используя соединение ADODB, в Microsoft Access VBA. Оператор select очень сложен с вычислениями и лучше его сохранить, чтобы попытаться установить соединение с БД.

Я могу добавлять данные построчно, но мне интересно, как я могу добавить максимально простой блок данных, чтобы сэкономить время и усилия. (Много данных!)

Чтобы упростить пример, я поместил базовый оператор SQL, но если бы вы могли просмотреть его и сообщить мне, есть ли способ добавить блок записей или какой вариант лучше ... Приведенный ниже код работает для вставки в качестве блока в Excel, и я думаю, что мне нужно только изменить метод этой закомментированной строки, чтобы добавить в Access ...

Option Private Module
Private Const DataServer = "GLSSQLMADPS2"
Private Const sqlconstring = "Driver={SQL Server};Server=" & DataServer & "; Database=PERF_MGMT_BWRSRV_PROD; Trusted_Connection=yes; Connect Timeout = 600"

Sub M2DSQLPull()

    Dim cn As ADODB.Connection
    Dim rs  As ADODB.Recordset
    Dim sql As String

    Dim sql As String

    sql = "SELECT " & _
          "Employee_Token_NR, " & _
          "Null as 'Sum_Month', " & _
          "1000 AS 'Data_ID', " & _
          "DATEADD(m, DATEDIFF(m, 0, MIN(CALL_TS)), 0) AS 'Metric_1' " & _
          "FROM PMBSED_PhoneEvaluations " & _
          "GROUP BY Employee_Token_NR "

    Set cn = New ADODB.Connection
    cn.CommandTimeout = 120
    cn.Open sqlconstring

    Set rs = New ADODB.Recordset

    rs.Open SqlString(i), cn, adOpenStatic, adLockReadOnly

        'How I would paste in an excel spreadsheet, how do I block paste in an access database?
        'ThisWorkbook.Worksheets("RawData").Cells(RowNumber, 1).CopyFromRecordset rs

    RowNumber = RowNumber + rs.RecordCount

    rs.Close

    cn.Close

End Sub

Спасибо за любую помощь!

1010 * -Роберт *

...