Как отобразить индикатор выполнения или текст в строке состояния Microsoft Access 2003?

Если Вы хотите в программе, реализованной в Access 2003 наблюдать за ходом выполнения определённой задачи в строке состояния, то сегодня в материале я покажу, как это можно делать, т.е. отображать индикатор выполнения или произвольный текст в строке состояния.

Для начала давайте определим, в каких случаях может возникнуть необходимость следить за выполнением кода. Например, тогда когда Вы делаете выгрузку из базы данных и затем обрабатываете каждую строку данных, как мы это делали в материале «Экспорт данных в CSV из SQL Server» или наоборот когда Вы импортируете данные в базу, как мы это делали в материале «Импорт данных из текстового файла на VBA Access в SQL Server». Другими словами мы могли бы создать индикатор и видеть, сколько примерно времени осталось до завершения операции.

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

Все это можно сделать с помощью метода SysCmd, который позволяет отображать индикатор выполнения и текст в строке состояния Access 2003, ниже я покажу пример реализации этой возможности.

Отображаем индикатор выполнения в строке состояния Access 2003

Итак, давайте откроем форму на редактирование или создадим новую тестовую форму и добавим на нее кнопку TestInitMeter и в обработку события этой кнопки (в редакторе Microsoft Visual Basic) вставляем ниже представленный код. Он подразумевает создание индикатора и обновление его значения. Для того чтобы проверить работу индикатора мы запустим цикл For на 100 итераций, в котором мы будем делать паузу на 5 миллисекунд в каждой итерации, для того чтобы увидеть изменение индикатора. Паузу мы будем делать с помощью функции Sleep, поэтому в секции Option Compare Database подключаем необходимую библиотеку.

В итоге в строке состояния у нас получится своего рода прогресс бар.

 Option Compare Database
 'Подключаем библиотеку для Sleep
 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 Private Sub TestInitMeter_Click()
 Dim i As Integer
 'Очистим строку состояния
 SysCmd acSysCmdClearStatus
 'Создаем тестовый индикатор, максимальное значение индикатора 100
 SysCmd acSysCmdInitMeter, "Тестовый индикатор", 100
 'Цикл для проверки работы индикатора
 For i = 0 To 100
    Sleep (5) 'Пауза на 5 миллисекунд
    SysCmd acSysCmdUpdateMeter, i 'Обновляем значение индикатора
 Next
 'Еще раз очищаем строку состояния
 SysCmd acSysCmdClearStatus
 End Sub

Скриншот 1

Сохраняем и пробуем нажать на кнопку

Скриншот 2

Видим, что в строке состояния отображается наш индикатор.

Отображаем текст в строке состояния Access 2003

Теперь давайте попробуем просто отобразить текст в строке состояния, для этого добавим еще одну кнопку на нашу форму, допустим с названием TestSetStatus и в обработку события вставляем следующий код:

 Private Sub TestSetStatus_Click()
 'Очистим строку состояния
 SysCmd acSysCmdClearStatus
 'Задаем текст в строке состояния
 SysCmd acSysCmdSetStatus, "Мой текст в строке состояния"
 End Sub

Весь код будет выглядеть следующим образом

Скриншот 3

Проверяем работу

Скриншот 4

Работает.

На этом все, пока!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.