複数の SQL クエリを実行するための簡単な VBA コードを作成しました。結果はExcelシートに送られるはずです。問題は、手順が完了するまでに時間がかかることです。実際、これらのクエリを 1 つずつ実行する方がはるかに高速です。どなたか高速化する方法を教えてください。
これが私のコードです:
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 などの名前が付けられます (すべて機能します)。
そのようなクエリを 2 つ実行したときは問題なく動作しましたが、15 を起動すると... マクロは動作を終了しませんでした。各 SQL スクリプトの実行には数秒かかるため、すばやく動作するはずです。
より速く動作させるにはどうすればよいですか? 助けてください!
どうもありがとう!M.