【发布时间】:2018-04-27 01:09:27
【问题描述】:
我在使用 VBA 循环 SQL 查询时遇到问题,它需要很长时间才能运行。 15 分钟内循环播放 115 次。有什么办法可以减少查询时间? 这是我的代码:
Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset
x = 1
DBPath = ThisWorkbook.FullName
sconnect = "Provider=SQLOLEDB;SERVER=DWSQL\BCAPP;Database=TEST;Uid=admin;Pwd=admin;"
Conn.Open sconnect
Do
If Sheets("Foil (+)").Cells(12, 12) <> "" And Sheets("Data").Cells(x, 3).Value Like "E*" Then
sSqlSting = "SELECT *FROM [TEST].[dbo].[process_details] where pos_no = '" & Sheets("Data").Cells(x, 3) & "' and scan_type = 'Anode Foil' and status = 'OK' and returned = 'N'"
Else
Sheets("Data").Cells(x, 3).Value = "E" & Sheets("Data").Cells(x, 3).Value
sSqlSting = "SELECT *FROM [TEST].[dbo].[process_details] where pos_no = '" & Sheets("Data").Cells(x, 3) & "' and scan_type = 'Anode Foil' and status = 'OK' and returned = 'N'"
End If
mrs.Open sSqlSting, Conn, adOpenForwardOnly
If Sheets("Data").Cells(1, 18) = "" Then
Sheets("Data").Cells(1, 18).CopyFromRecordset mrs
Else
Sheets("Data").Cells(Rows.Count, 18).End(xlUp).Offset(1, 0).CopyFromRecordset mrs
End If
mrs.Close
x = x + 1
Loop Until Sheets("Data").Cells(x, 3) = ""
Conn.Close
【问题讨论】:
-
如果代码有效,您应该发布到CodeReview.SE。 StackOverflow 适用于不起作用的代码。
标签: sql sql-server vba excel