powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
14 сообщений из 14, страница 1 из 1
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507626
Slava A. Odievich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
......фенечку, в виде шкалы показывающей процесс исполнения некой довольно длительной транзакции. Для уяснения что она наконец - то выполнена.

Типа того, что высвечивается в Word в тот момент когда идет сохранение файла

Или по крайней мере идею как это делать.

Спасибо
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507631
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогресс бар, значение которого менять в процессе выполнения некой довольно длительной транзакции
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507640
Slava A. Odievich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно это.....

Но плавное изменение состояния этого БАРА мне реализовать не удается

только начальное состояние (пустой) и конечное (заполнен), когда процесс закончился
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507651
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... ты код приведи. Мож получиться че-нить придумать
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507656
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужно показать прогресс циклической процедуры:

/topic/90036

если прогресс выполнения одного длинного запроса - никак (?)
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507659
Slava A. Odievich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пробовал менять длину БОКСА, в зависимости от номера записи обрабатываемой в тот или иной момент времени.

то есть типа Name.Width = CurrentCount (в пикселях)

но динамика не получается.
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507664
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю что у тебя,
но на ADP+MSSQL делается так:

Довольно длинная транзакция запускается асинхронно

Если примерно известно сколько она выполняется
то прогресбар прогрессирует от таймера с коррекцией
последней итерации на завершение транзакции.

или

Транзакция разбивается на несколько
завершение каждого этапа сопрякать с итерацией прогресбара

или

Если медленно возвращается некий рекордсет
то запускаем его асинхронно и WithEvent
Заполнение прогресбара сопрягаем с событием заполнения рекордсета
(у Гетца кажется есть пример)
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507665
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Чтобы получалась динамика, надо после каждой обработанной записи делать DoEvents.
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507666
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем бокс? Чем стандартный-то прогресс бар не подходит?
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507676
Slava A. Odievich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Скорее всего и в самом деле DoEvent будет решением.....

А что есть контрол в виде прогрес бара?
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507682
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Чтобы получалась динамика, надо после каждой обработанной записи делать DoEvents


у Гетца написано, что делать DoEvents после обработки каждой записи нехорошо, он советует после через какое-либо кол-во, например через 10 ;)
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507697
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА что есть контрол в виде прогрес бара?
Есть. Называется Microsoft Progress Bar Control.
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507700
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант
Можно отображать индикатор в строке состояния с помощью функции SysCmd.
Тогда DoEvents не нужна
...
Рейтинг: 0 / 0
Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
    #32507728
DoEvents чревата неприятностями. Если вы не привыкли к программированию с несколькими возможными исполняемыми потоками, то придется как-то ограничить возможность пользователя нажимать на кнопочки, до которых очередь еще не дошла (по логике работы в одном потоке). Например вывести модальную форму прерывания транзакции. Иначе пользователь может (даже случайно) запустить действие, конфликтующее с запущенной транзакцией. SysCmd. самый "дешевый" по затратам способ отображения, не требующий отдачи управления от исполняемого потока.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в VBA сделать........ (процесс исполнения некой довольно длительной транзакции)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]