Я использую Access VBA для вызова R-скрипта, который строит некоторые диаграммы.Этот сценарий R извлекает некоторые данные из базы данных Access через запрос ODBC.Я использую library(RODBC)
, чтобы установить соединение с R.
Если я перезапущу Access или запустлю Compact / Repair, запрос всегда будет выполняться.Однако, если я внесу другие изменения в базу данных, иногда получаю следующее предупреждение:
Предупреждающие сообщения: 1: В odbcDriverConnect (sprintf ("Driver = {Microsoft Access Driver (* .mdb), * .accdb)}; DBQ =% s ",: [RODBC] ОШИБКА: состояние HY000, код -3810, сообщение [Microsoft] [Драйвер ODBC Microsoft Access] База данных была переведена в состояние неизвестным пользователем, что не позволяетего нельзя открыть или заблокировать. '
И сценарий не запускается, поскольку соединение не может быть установлено.
Каков наилучший способ управления / установки состояниябаза данных, поэтому запрос будет всегда выполняться? Проблема не связана напрямую с тем, открыта ли таблица или нет - я могу открыть таблицу и закрыть таблицу, и у меня не будет проблемы, и даже запустить ее с открытой таблицей,иногда.
Редактировать: Ошибка вызвана каким-либо изменением в модуле VBA (это не связано с фактическим вызовом сценария VBA, я могу запустить тот же rscript
вызвать в командной строке и повторитьОшибка).Теперь, когда я понимаю, что это причина, я не думаю, что это большая проблема.Иногда кажется, что сохранение модуля VBA исправляет ошибку, но не в 100% случаев.