Цикл по строкам, чтобы изменить поиск SQL и добавить результат к той же строке в цикле, код замедляется - PullRequest
0 голосов
/ 10 октября 2019

У меня есть некоторый код Excel VBA, который подключается к базе данных ODBDC. Я перебираю каждую строку в столбце A и исправляю сценарий SQL для извлечения данных на основе этого значения. А затем импортируйте результат. Мой код работает, но для прохождения 23 000 строк требуется 15 минут. Просто проверяю, было ли лучшее решение

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Dim conn As New ADODB.Connection
    Dim connMasterConnection As New ADODB.Connection
    Dim rsObj As New ADODB.Recordset
    Dim region As String
    Dim Ws_Comp
    Dim strSQL As String
    Dim aims As String
    Dim iCols As Integer
    Dim varname1 As String
    Dim types As String
    Dim country As String
    Dim x
    Dim lr

    Set Ws_Comp = ActiveWorkbook.Worksheets("Financial Data")
    lr = Ws_Comp.Range("A" & Rows.Count).End(xlUp).Row

    For x = 2 To lr
        fp_code = Ws_Comp.Range("A" & x).Value

        If connMasterConnection.State = 0 Then connMasterConnection.Open ConnString

        varname1 = "SQL Code"
        varname1 = varname1 & "   (((FP.Organisation.ID)=" & fp_code & "));"
        rsObj.Open varname1, connMasterConnection
        Ws_Comp.Range("AI" & x).CopyFromRecordset rsObj
        connMasterConnection.Close
    Next x

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...