Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск макроса в определённое время. / 13 сообщений из 13, страница 1 из 1
04.11.2019, 14:50
    #39884964
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
Я знаю, что при старте можно запустить скрытую форму. Включить на ней таймер и опрашивать текущее время с определённым интервалом.

Но вот в Excel есть такая вещь как
Код: vbnet
1.
    Application.OnTime TimeToRun, "MyMacro"

Запуск макроса в определённое время.
Заинтересовало. Попробовал сделать так
Код: vbnet
1.
2.
3.
4.
5.
   Dim TimeToRun As Date
   Set appExcel = CreateObject("Excel.Application")

    TimeToRun = Now + TimeValue("00:00:10")     'прибавляем к текущему времени 10 сек
    appExcel.OnTime TimeToRun, "MacrosTest1"     'назначаем следующий запуск

Выдало следующее сообщение. А можно это как-то обойти. Или глухо?


-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
...
Рейтинг: 0 / 0
04.11.2019, 15:59
    #39884992
Запуск макроса в определённое время.
Joss, где находится процедура MacrosTest1? ИМХО, этот метод ищет процедуру в общем модуле активной книги или в файле Personal.XLSB. У меня это получилось только при запуске в VBA Excel-я. В VBA Акса ошибка не появляется но и в процедуру из Personal.XLSB не попадает (а активной книги в вашем экземпляре Excel-я нет)
...
Рейтинг: 0 / 0
04.11.2019, 16:07
    #39884993
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
Макрос находится в самом Аксе. Открытой книги Excel у меня нет.
...
Рейтинг: 0 / 0
05.11.2019, 00:03
    #39885105
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
YouTube Video
...
Рейтинг: 0 / 0
05.11.2019, 02:06
    #39885120
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
Joss,
Буквально на прошлой неделе ковырял данную возможность. В Экселе.
Есть один нюанс, нужно выполнять запуск той процедуры на которую ссылается application.ontime из общего модуля.
Выполняемую процедуру сделайте Sub типа Public. Должно стартануть. Почему разрабы сделали именно так, фиг знает. Но в хелпе майкрософта рекомендуется.
Если не полетит, вставьте вызов application.ontime тоже в общий модуль и тоже public sub.

Должно полететь.
...
Рейтинг: 0 / 0
05.11.2019, 02:43
    #39885123
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
А нет, не полетит, погорячился. Без создания дополнительного модуля ,причем программно, при запуске Excel.Application ничего не выйдет.

Зато есть апишные функции, которые не привязаны к приложению:

Код: vbnet
1.
2.
3.
Private Declare Function timeGetTime Lib "winmm.dll" () As Long '32

Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long' 64



С ними можно учудить все что угодно. Отсчет начинается с запуска этой функции.

И еще кучу интересных и нужных функций можно посмотреть тут: ТУТ
...
Рейтинг: 0 / 0
05.11.2019, 09:56
    #39885164
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
timeGetTime - это не совсем то что мне нужно. Даже совсем не то.

Поясняю задачу. В определённое время, например, в 15:30 проводятся на сервере некоторые операции. Копирование, архивирование, обновление данных и т.п. Лучше бы, что бы в это время клиент был отключен от таблиц. Вот и хотелось бы для предупреждения использовать эту функцию - Application.OnTime .
Знаю, что при запуске можно открыть скрытую форму и запустить в ней таймер, но хотелось сделать красивее.
...
Рейтинг: 0 / 0
05.11.2019, 10:14
    #39885171
bubucha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
Joss
но хотелось сделать красивее.

"красивее" - это когда сервер сообщает клиенту..я так думаю
...
Рейтинг: 0 / 0
05.11.2019, 10:47
    #39885182
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
Joss,

В windows Schedule помести эту свою задачу. Он для такого и предназначен
И, собственно, можно задачу в шедулере создавать/удалять программно , если сильно хочется :)

Ну и что бы совсем по сабжу было, запуск акс базы с ключем "/x макрос" выполняет заданный макрос .
Т.е. в шедулере будет что-то типа : "C:\Program Files\...\MSACCESS.EXE" "{путь и имя БД}" /x MacrosTest1
...
Рейтинг: 0 / 0
05.11.2019, 11:13
    #39885199
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
bubucha
Joss
но хотелось сделать красивее.

"красивее" - это когда сервер сообщает клиенту..я так думаю
Это только одна из задач, которую хотел подвязать к данному методу. Есть и другие.

А сервер... За него отвечает человек, не относящийся к нашему отделу. Мы тут вообще, как бедные родственники. "Сидите и не выёживайтесь" Короче, это внутренняя кухня организации на которую я повлиять не могу.
...
Рейтинг: 0 / 0
05.11.2019, 11:18
    #39885201
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
court, Это не подходит.

Настроить Schedule я не могу. Закрыто политикой безопасности. Я могу править только программу. Всё.
...
Рейтинг: 0 / 0
05.11.2019, 11:22
    #39885202
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
Joss, посмотри вот эту тему - https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1313566&msg=21906414]Класс таймера [VB6/VBA].
Думаю хватит одного из двух вариантов.
...
Рейтинг: 0 / 0
05.11.2019, 11:43
    #39885210
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в определённое время.
Панург
Joss, посмотри вот эту тему - https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1313566&msg=21906414]Класс таймера [VB6/VBA].
Думаю хватит одного из двух вариантов.

Спасибо. Попробую.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск макроса в определённое время. / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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