Обновление формы

Программирование на Visual Basic for Applications
Wasup!
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 21.06.2005 (Вт) 11:09

Обновление формы

Сообщение Wasup! » 03.04.2006 (Пн) 16:56

Есть VBA макрос (Excel), который выполняет запрос к базе данных. Поскольку запрос выполняется достаточно долго, хотелось бы информировать пользователя о том, что выполняется запрос к базе данных. Пробовал сделать так, при старте макроса делать application.interactive = false, application.visible = false и выводить форму, где написано "Выполняется запрос к базе данных. Пожалуйста, подождите."

Все нормально пока, во время работы запроса, не перекрыть эту форму другим окном. После этого форма не обновляется и остается пустое, белое окно, с заголовком MyProgram (Не отвечает). Хотя по завершению запроса, форма обновиться и программа завершится нормально.

Попробовал из первой немодальной формы вызывать, вторую немодальную. Но все равно обе становятся белыми.

Как можно сделать так, чтобы форма отображалась нормально?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.04.2006 (Пн) 17:25

Сделать запрос асинхронным.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Wasup!
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 21.06.2005 (Вт) 11:09

Сообщение Wasup! » 04.04.2006 (Вт) 9:04

Это единственный вариант?
А насколько стабильно работает ADO с асинхронными запросами, могут быть с этим какие-то сложности?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.04.2006 (Вт) 9:07

Это таки да, единственный вариант, потому что управление в твой код не вернётся, пока не будет выполнен синхронный запрос.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 6

    TopList