Рейтинг:
1
Richard Deeming
Строка 13, символ 35-это:
Set oDB = oAC.OpenCurrentDataBase strDBFullName
----------------------------------^
Вам почти наверняка нужно заключить этот параметр в круглые скобки:
Set oDB = oAC.OpenCurrentDataBase(strDBFullName)
Member 13485326
Если я это сделаю, то он действительно загрузит базу данных, но получит еще одну строку ошибки 13 Chr 1, требуется объект; 'oAC.opencurrentdatabase(...)'
Dave Kreskowiak
Удалите часть "Set oDB =". Функция "OpenCurrentDatabase" ничего не возвращает.
Member 13485326
Спасибо, что решили проблему на линии 13. Однако теперь я получаю ошибку для строки 20, chr 1, object required: oDB
Richard Deeming
Потому что это не то, как работает объектная модель доступа. OpenCurrentDatabase
не возвращает объект, так что oDB
не устанавливается на объект.
Вам нужно проверить, как работает Access, и исправить свой сценарий:
Открыть справочник по VBA [^]
Member 13485326
Я думаю, что теперь у меня есть сценарий, работающий (он работает вручную нормально), поэтому я настрою расписание, чтобы запустить его сегодня вечером и проверить результат завтра. Код показан ниже:
"" Определите полное имя файла.
strDBFullName = "C:\Users\Charles\Documents\Weather\Weather.accdb"
"Проверьте, существует ли файл.
Если Нет CreateObject("Scripting.FileSystemObject").Затем FileExists(strDBFullName)
Функцию MsgBox "файл """ &амп; strDBFullName &ампер; """ не существует или не доступен"., vbCritical, "файл не найден"
Объект WScript.Бросить
Конец, Если
"" Создайте новый экземпляр Access-instance, отобразите его и откройте файл.
Set oAC = CreateObject("доступ.Приложение")
ОАЦ.Видимое = Истинное
oDB = oAC.OpenCurrentDataBase(strDBFullName)
ОАЦ.Элемент Управления UserControl = Истина
"" Открывает и запускает макрос обновления
oDB = oAC.DoCmd.RunMacro("обновление", , "")
"Сохраните книгу и очистите ее.
CloseDB = oAC.CloseCurrentDatabase
CloseAP = oAC.Приложение.Выйти
Установить oAC = ничего
Member 13485326
Скрипт отлично работает, когда я запускаю его вручную, но время ожидания истекает при вызове планировщиком задач.
Я инициирую новый вопрос, чтобы охватить этот и другой вопрос планировщика