Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Обновление окна MS Access


Автор: LeRatO 7.9.2007, 20:49
Доброе время суток

Ситуация следующая: в проекте запускается некий процесс (загрузка данных), в нем организован прогресс-индикатор - в нескольких контролах меняются значения по мере продвижения по файлу-источнику. Суть процесса не существена.

Если в момент работы процесса перенести фокус на любое другое приложение системы, а потом вернуть фокус на окно Access'а, то обновление экрана не происходит до момента завершения этого самого длительного процесса. Разумеется в диспетчере задач пишется что Access не отвечает.

Так вот... Можно ли как-то (и как?!) заставить Access ответить системе, чтобы Windows "прорисовал" картинку? А то получается чушь - прогресс-индикатор перестает показывать состояние работы после первого перехода фокуса. Хотя нет, не правильно, он показывает, но как бы в пустоту, экран-то не обновляется!


Да, про версии Access'а... 2003, но насколько я знаю, та же чушь и в XP.

Автор: Akina 7.9.2007, 22:29
В цикле обработки должно присутствовать 
Код

DoEvents

Если циклы короткие, то не на каждом проходе:
Код

For i = 1 To 1000000
' ...
If i Mod 100 = 0 Then DoEvents
' ...
Next i

Автор: LeRatO 8.9.2007, 11:14
Спасибо. smile Процесс пошел!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)