У меня есть следующий код:Периодическая ошибка при попытке контролировать другую базу данных в VBA
Dim obj As New Access.Application
obj.OpenCurrentDatabase (CurrentProject.Path & "\Working.mdb")
obj.Run "Routine"
obj.CloseCurrentDatabase
Set obj = Nothing
Проблема я экспериментировал является всплывающей, что говорит мне доступ не может установить фокус на другом база данных. Как вы можете видеть из кода, я хочу запустить подпрограмму в другом mdb. Любой другой способ достичь этого будет оценен по достоинству.
Я работаю с MS Access 2003.
Это неустойчивая ошибка. Поскольку это производственный код, который будет запускаться только один раз в месяц, его чрезвычайно сложно воспроизвести, и я не могу дать вам точный текст и номер в это время. Это уже второй месяц.
Я подозреваю, что это может произойти, если кто-то работает с этой или другой базой данных.
Информационный поток должен обновлять все «проекты» один раз в месяц в одной базе данных, а затем предоставлять эту информацию в другой базе данных.
Может быть, это из-за первой строки в коде 'ROUTINES': Если vbNo = MsgBox ("Вы хотите обновить?", VbYesNo, "Обновление") Затем Exit Function End If
Я сделаю еще одну подпрограмму без MsgBox.
Я смог воспроизвести это поведение. Это происходит, когда фокус должен перейти к вызываемой базе данных, но пользователь устанавливает фокус ([ALT] + [TAB]) в первой базе данных. «Решение» состояло в том, чтобы обучить пользователя.
Это прерывистая ошибка. Поскольку это производственный код, который будет запускаться только один раз в месяц, его чрезвычайно сложно воспроизвести, и я не могу дать вам точный текст и номер в это время. Это уже второй месяц.
Я подозреваю, что это может произойти, если кто-то работает с этой или другой базой данных.
Информационный поток должен обновлять все «проекты» один раз в месяц в одной базе данных, а затем предоставлять эту информацию в другой базе данных.
Может быть, это из-за первой строки в коде 'ROUTINES': Если vbNo = MsgBox ("Вы хотите обновить?", VbYesNo, "Обновление") Затем Exit Function End If
Я сделаю еще одну подпрограмму без MsgBox.
Я пробовал это в нашей базе данных разработки и работает. Это ничего не значит, поскольку другой код также отлично подходит для разработки.
Я никогда не видел, чтобы Access дал это конкретное сообщение об ошибке. Я видел, что «у вас нет разрешения на открытие базы данных» и «Доступ не может сфокусироваться» на объекте, но не на сообщении об ошибке. Не могли бы вы разместить номер ошибки и точное сообщение об ошибке? Я подозреваю, что, как говорит Реми, ошибка в коде в вашей рутине в другом db, поэтому вам, вероятно, тоже придется опубликовать это сообщение. – 2008-09-16 12:23:24