Страницы: 1
RSS
Как сделать проверку завершения запроса Query на VBA?
 
Всем привет!
Необходимо через макрос обновить запросы query в одном файле, потом закрыть файл с сохранением, далее открыть другой файл и сделать тоже самое.
Подскажите какие строки добавить в макрос vba, чтобы он переходил на этап сохранения файла ТОЛЬКО если обновление запроса query завершено.
 
Очень похожая задача: Собрать данные из защищенных паролем файлов - PowerQuery
там я приводил код, как правильно это делать. Основная нужная Вам часть здесь:
Код
For Each oc In ThisWorkbook.Connections        'запоминаем значение обновления в фоне для запроса
        IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
        'выставляем принудительно ждать завершения запроса
        oc.OLEDBConnection.BackgroundQuery = False
        'обновляем запрос
        oc.Refresh
        'возвращаем обновление в фоне в первоначальное состояние
        oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    Next
Т.е. надо принудительно перед обновлением каждого запроса выставлять свойство BackgroundQuery в False, чтобы код ожидал его завершения. Не забыть потом вернуть.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий Щербаков написал:
Т.е. надо принудительно перед обновлением каждого запроса выставлять свойство BackgroundQuery в False, чтобы код ожидал его завершения. Не забыть потом вернуть.
Спасибо. А что значит не забыть потом вернуть? Что именно и когда надо менять после завершения макроса?
 
Про "после завершения макроса" это Вы уже от себя придумали. Я не писал такого. Я написал исключительно про параметр обновления BackgroundQuery. И даже код есть с комментариями: что выставить, когда вернуть
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
del
Изменено: Jack Famous - 25.11.2021 09:28:49
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Читают тему (гостей: 1)
Наверх