CopyFromRecordset занимает слишком много времени - PullRequest
0 голосов
/ 17 октября 2018

Я работаю ниже одного кода VBA и при этом CopyFromRecordset вызывается несколько раз и занимает слишком много времени для выполнения.

Есть ли способ сократить время выполнения?

DBPath = ThisWorkbook.FullName
Sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
con.Open Sconnect
SQLQuery = "Select * from [ALM_Scenario_Dump$] where Scenario_Name='" & Scenario_Na & "'"
mrs.Open SQLQuery, con
               ThisWorkbook.Sheets("ALM_Scenario_Detailed_Temp").Range("A2").CopyFromRecordset mrs
mrs.Close
con.Close

1 Ответ

0 голосов
/ 17 октября 2018

Если у вас его еще нет, вы можете добавить их перед копированием набора записей:

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlManual

Затем вернуть их в нормальное состояние после копирования данных.

Единственный другой способ, которым я могу придумать для копирования данных набора записей, состоит в том, чтобы перебрать все поля в наборе записей, но я не могу представить, что это происходит быстрее.

Пожалуйста, также посмотрите ответ SwiftJr на: VBA: запрос доступа с помощью Excel.Почему так медленно?

Может быть, вы можете установить местоположение курсора с помощью CursorLocation = adUseClient на вашем соединении в качестве ответа на заметку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...