Консультация № 37602
15.03.2006, 19:34
0.00 руб.
0 3 1
Здравствуйте эксперты!
Есть форма в Access вызывающая модуль с процедурами для обновления/добавления данных из сети в бд, расчет в бд, выгрузку/обработку в excel, архивацию и подготовку письма с вложенным архивом нужного отчета. В форме добавлен таймер показывающий время с начала запуска модуля до завершения (00:00:00). После запуска модуля окно формы "замерзает" и значение таймера обновляется только при переходе от процедуры к процедуре. Как сделать чтобы в течение выполнения процедур модуля можно было видеть посекундную динамику обновления таймера в форме?

Обсуждение

давно
Профессионал
848
1596
15.03.2006, 23:45
общий
это ответ
Здравствуйте, Dobrov!
В свойствах формы найдите параметр TimerInterval, по умолчанию он равен нулю, установите численное значение, это время в милисекундах. Через данный промежуток времени будет обрабатываться событие Form_Timer()
т.е.
------------------------------------------------
Private Sub Form_Timer()
‘здесь пишите код для обновления таймера
End Sub
------------------------------------------------
Неизвестный
16.03.2006, 10:08
общий
Уточняю: TimerInterval уже выставлен 1000 и работает(см.ниже), но я не могу видеть его изменение на форме в период работы процедуры модуля. Например во время выполнения запроса или обработки в excel.напимер:Private Sub Form_Timer()Me.Text3 = I_Timer(Timer)End SubPublic Function I_Timer(tcs As Long)Dim tsec As DoubleDim th As CurrencyDim tm As CurrencyDim ts As Currencyth = tcs \ 3600tm = (tcs - th * 3600) \ 60ts = tcs - th * 3600 - tm * 60I_Timer = Format(CStr(th), "0#") + ":" + Format(CStr(tm), "0#") + ":" _+ Format(CStr(ts), "0#")End Function
Неизвестный
18.03.2006, 13:01
общий
Понарасставляйте DoEvents в процедуре таймера - похоже, что идет заморозка обновления тектового окна.
Форма ответа