|
Проверка с определенным временным интервалом.
|
|||
---|---|---|---|
#18+
Здравствуйте. Не знаю, правильно в этой ветке данну тему разместить или VBA. На SQL сервере каждый день формируются данные. В 00:05 стартует Джоб. Он выполняется 3 часа. Далее в 04:00 стартует Access, который обрабатывает полученные данные и формирует ряд отчетов. Отчеты формируются до 08:00. До начала рабочего дня. При старте Access проверяется вымотались данные сервера или нет. При выполнении джоба идет логирование запросов. После завершения джоба последняя строка в логе. Finish. Access как раз запускается с проверки, есть ли в определенной таблице строка с этим текстом за сегодня. Если да, то стартуют остальные макросы. Если нет – макросы останавливаются с сообщением «Какие-то данные не выгрузились» Раньше такая ошибка возникала если на сервере случалась какая-либо критическая ошибка. Сейчас наняли нового админа следить за базами, и время выполнения Джоба стало скакать от 3 до 7 часов. Соответственно при запуске Access в 4 часа, если джоб не выполнен, то происходит полная остановка всех запросов. А теперь собственно вопрос: Как сделать что бы происходила не полная остановка, а периодическая проверка таблицы на наличие в ней строки с текстом «Finish», и если ее нет, то проверка происходит через 10 минут и так далее до тех пор пока не появится. И далее запускаются остальные запросы. Сейчас Access стартует с выполнения такого запроса: Код: sql 1. 2. 3.
Далее запускается следующий модуль: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Как я думаю, мне нужно подредактировать код после Else, что бы шла проверка с определенным интервалом. VBA не знаю. За мелкими вопросами, обращался на этот форум. Буду благодарен за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 08:33 |
|
Проверка с определенным временным интервалом.
|
|||
---|---|---|---|
#18+
Проверка по таймеру. В Access можно использовать контрол на (скрытой) форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 08:43 |
|
Проверка с определенным временным интервалом.
|
|||
---|---|---|---|
#18+
VBA не знаю - ключевое Я бы крутил Акс круглосуточно, а не запускал-останавливал. Но на пальцах это не объяснить :( Скелетик-то простой: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
или же, покультурнее, то же самое, но через события класса таймера. Таймер, в первом приближении, можно реализовать как класс на базе встроенного таймера специально выделяемой для этого формы. Готовый пример в сети есть. ' http://hiprog.com/index.php?option=com_content&task=view&id=251661564&Itemid=35 'Serge Gavrilov (c) SGSoft 2006 . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 09:02 |
|
Проверка с определенным временным интервалом.
|
|||
---|---|---|---|
#18+
Im_Max, VBA не знаю - ключевое Я бы начал с Do...Loop Когда все заработает - портировал бы под таймер. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 09:22 |
|
Проверка с определенным временным интервалом.
|
|||
---|---|---|---|
#18+
Как уже заметили: "VBA не знаю - ключевое" Просмотрел примеры с таймером и Do Loop. В итоге нагородил следующее. Вроде работает, но точно проверить смогу только завтра. Когда с сервера поступит очередная партия данных. Может кро просмотреть хотя бы бегло? Может что-то совсем кривое написал: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2016, 07:11 |
|
Проверка с определенным временным интервалом.
|
|||
---|---|---|---|
#18+
Im_Max, я только не поняла, зачем каждую секунду создавать таблицу, почему не работаете с обычным запросом на выборку и сомнение вызвало Like без * или иного знака(можете пролететь, если в строке есть еще что то типа пробел,точка....) Код: vbnet 1. 2. 3. 4. 5. 6.
и не мешало бы вставить счетчик повторов цикла --как лекарство от зацикливания стоит подумать и о принудительной остановке цикла ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2016, 08:17 |
|
Проверка с определенным временным интервалом.
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАIm_Max, я только не поняла, зачем каждую секунду создавать таблицу Разве каждую секунду? Хотел настроить на раз в 10 минут. ПЕНСИОНЕРКАпочему не работаете с обычным запросом на выборку Сделаю запрос. Таблица нужна была для тестов. ПЕНСИОНЕРКАи сомнение вызвало Like без * или иного знака(можете пролететь, если в строке есть еще что то типа пробел,точка....) Да, там уже несколько лет одни и теже названия. Если и изменят, то на что-то кардинальное. И там * * уже не помогут. Но в любом случае отработку баз контролирую каждый день. ПЕНСИОНЕРКАи не мешало бы вставить счетчик повторов цикла --как лекарство от зацикливания стоит подумать и о принудительной остановке цикла По тестирую текущий алгоритм, и тоже думал добавить. Я VBA я чайник (и это еще для меня будет комплимент) Так что полный код, со всеми нюансами сразу не напишу точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2016, 08:28 |
|
|
start [/forum/topic.php?fid=45&msg=39251635&tid=1613499]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 141ms |
0 / 0 |