Microsoft Access VBA中的SQL Select语句-需要帮助以块而不是循环的形式插入Access表吗

Microsoft Access VBA中的SQL Select语句-需要帮助以块而不是循环的形式插入Access表吗,sql,ms-access,select,vba,adodb,Sql,Ms Access,Select,Vba,Adodb,我正在尝试使用Microsoft Access VBA中的ADODB连接从SQL server执行Select语句。select语句的计算非常复杂,最好保持该语句,以便尝试和DB建立连接 我可以一行一行地追加数据,但我想知道如何才能尽可能简单地追加一块数据来节省时间/vba工作。(大量数据!) 为了简化这个例子,我放了一个基本的SQL语句,但是如果你能回顾一下,让我知道是否有一种方法可以附加为记录集块,或者什么是更好的选择。。。下面的代码可以作为一个块粘贴到excel中,我想我只需要将注释掉的行

我正在尝试使用Microsoft Access VBA中的ADODB连接从SQL server执行Select语句。select语句的计算非常复杂,最好保持该语句,以便尝试和DB建立连接

我可以一行一行地追加数据,但我想知道如何才能尽可能简单地追加一块数据来节省时间/vba工作。(大量数据!)

为了简化这个例子,我放了一个基本的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
谢谢你的帮助


-Robert

粘贴到Access数据库是什么意思?创建一个表?附加到表中?查看传递查询。我想将记录附加到已创建的访问表中。然后对传递查询运行附加:
INSERT into myFinalTable(Col1,Col2,Col3)从传递查询中选择Col1,Col2,Col3