我编写了一个简单的 VBA 代码来运行多个 SQL 查询。结果应该转到excel表。问题是该过程需要很长时间才能完成!事实上,一个一个地运行这些查询会快得多。谁能告诉我如何让它更快地工作?
这是我的代码:
Const strCon As String = "Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=(DESCRIPTION=" & _
"(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=xxxx)(PORT=xxx))" & _
"(CONNECT_DATA=(SID=RTD))); uid=xxxx; pwd=xxxx;"
Sub RunScripts()
Dim r As Integer
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim q1 As String
Dim q2 As String
Dim q3 As String
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
q1 = Worksheets("Data").Range("i28").Value
Set rs = con.Execute(q1)
Worksheets("ACCV Query").Range("A2").CopyFromRecordset rs
Set rs = Nothing
r = Worksheets("ACCV Query").Range("A65536").End(xlUp).Row
'Next SQL Query
q2 = Worksheets("Data").Range("j28").Value
Set rs = con.Execute(q2)
Worksheets("ACCV Query").Range("A" & r).CopyFromRecordset rs
Set rs = Nothing
r = Worksheets("ACCV Query").Range("A65536").End(xlUp).Row
'Next SQL Query
q3 = Worksheets("Data").Range("k28").Value
Set rs = con.Execute(q3)
Worksheets("ACCV Query").Range("A" & r).CopyFromRecordset rs
con.Close
Set con = Nothing
Set rs = Nothing
End Sub
SQL 查询存储在单元格中并命名为 q1、q2 等(它们都有效)。
当我运行两个这样的查询时,它运行良好,但是一旦我启动 15... 宏就永远无法完成工作。每个 SQL 脚本都需要几秒钟才能运行,因此它应该可以快速运行。
我怎样才能让它更快地工作?请帮忙!
非常感谢!M。