Как запустить хранимую процедуру в фоновом режиме через VBA - PullRequest
0 голосов
/ 03 июня 2019

Хранимая процедура выполняется в течение 15 минут и останавливает файл Excel.Как мы можем запустить хранимую процедуру в фоновом режиме через VBA, позволить ей работать в фоновом режиме и продолжать работать на том же листе.

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Вы не можете запустить макрос и продолжать работать на том же листе.

Но вы можете использовать приведенный ниже код для ускорения выполнения вашего макроса:

sub my_macro()
   Application.ScreenUpdating = False
   #Your code
   Application.ScreenUpdating = True
end sub
0 голосов
/ 12 июня 2019

По сути, Excel и VBA не являются технологиями параллельной обработки.Вам нужно будет дождаться окончания макроса, прежде чем продолжить работу.Вы могли бы запустить этот процесс как ночную работу, поэтому все будет сделано для вас, когда вы приходите в офис утром.Или вы можете запустить процесс и пойти пообедать, выпить кофе и т. Д.

Найдите «Windows Task Scheduler» и следуйте инструкциям.

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

Наконец, в Excel нажмите Alt + F11, чтобы вызвать редактор VBA.Щелкните правой кнопкой мыши на «ThisWorkbook», нажмите «Вставить», нажмите «Модуль».Дважды щелкните «Модуль 1».Скопируйте код ниже:

Sub Auto_Open()

Application.DisplayAlerts = False
Application.ScreenUpdating = False


Dim con As Connection
Dim rst As Recordset

Set con = New Connection
con.Open "Provider=SQLOLEDB;Data Source=Your_Server_Name_Here;Initial Catalog=Northwind;Integrated Security=SSPI;"

Set rst = con.Execute("Exec dbo.[Ten Most Expensive Products]")

Application.DisplayAlerts = True
Application.ScreenUpdating = True

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