Здравствуйте.
Не знаю, правильно в этой ветке данну тему разместить или VBA.
На SQL сервере каждый день формируются данные. В 00:05 стартует Джоб. Он выполняется 3 часа. Далее в 04:00 стартует Access, который обрабатывает полученные данные и формирует ряд отчетов. Отчеты формируются до 08:00. До начала рабочего дня.
При старте Access проверяется вымотались данные сервера или нет. При выполнении джоба идет логирование запросов. После завершения джоба последняя строка в логе. Finish. Access как раз запускается с проверки, есть ли в определенной таблице строка с этим текстом за сегодня. Если да, то стартуют остальные макросы. Если нет – макросы останавливаются с сообщением «Какие-то данные не выгрузились»
Раньше такая ошибка возникала если на сервере случалась какая-либо критическая ошибка. Сейчас наняли нового админа следить за базами, и время выполнения Джоба стало скакать от 3 до 7 часов. Соответственно при запуске Access в 4 часа, если джоб не выполнен, то происходит полная остановка всех запросов.
А теперь собственно вопрос:
Как сделать что бы происходила не полная остановка, а периодическая проверка таблицы на наличие в ней строки с текстом «Finish», и если ее нет, то проверка происходит через 10 минут и так далее до тех пор пока не появится. И далее запускаются остальные запросы.
Сейчас Access стартует с выполнения такого запроса:
SELECT 1/1 AS Проверка INTO [001 проверка]
FROM dbo_updateLog
WHERE (((Format([occured],"dd.mm.yyyy"))=Date()) AND ((dbo_updateLog.step)="UpdateData2 finish"));
Далее запускается следующий модуль:
Function prov()
If DCount("*", "001 проверка") > 0 Then
DoCmd.RunMacro "002 Autozapusk"
Else
MsgBox "Какие-то данные не выгрузились!"
End If
End Function
Как я думаю, мне нужно подредактировать код после Else, что бы шла проверка с определенным интервалом.
VBA не знаю. За мелкими вопросами, обращался на этот форум. Буду благодарен за помощь.
http://www.sql.ru/forum/1217229/proverka-s-opredelennym-vremennym-intervalom