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

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

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

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

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

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

/topic/90036

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

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

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

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

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

или

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

или

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

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


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


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