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