Можно ли глобально добавить ссылку на проект ко всему, что открывается в Microsoft Office 2016?
У меня есть приложение Microsoft Access (.mdb
), который является старым и закрытым и должен быть запущен в Windows 10 в Microsoft Office 2016.
Интерфейс (.mde
) для этого нужен какой-то старый .ocx
управления, и я сузил его до необходимости библиотеки ( link1, link2), но я не могу использовать Tools->References
добавить что-нибудь к этому;
Пароль администратора для базы данных не то, что у меня есть. Поэтому мне было интересно, есть ли способ добавить элементы управления ocx в MS Access глобально, чтобы они добавлялись во все продукты.
При попытке открыть его я получаю сообщение об ошибке:
Выражение "При открытии", введенное вами в качестве параметра свойства события, выдает следующую ошибку: Действие "Открыть форму" было отменено.
* Выражение может не приводить к имени макроса, имени пользовательской функции или [Процедура обработки события]. * Возможно, произошла ошибка при оценке функции, события или макроса.
Эта ошибка возникает, когда событие не удалось запустить, поскольку невозможно определить местоположение логики для события. Например, если для свойства On Open формы установлено значение
=[Field]
эта ошибка возникает из-за того, что макрос или имя события должны запускаться при возникновении события.
1 ответ
Access MDE - это скомпилированная версия MDB. Проекты VBA в файлах MDE компилируются с определенной разрядностью и не могут быть изменены, поэтому MDE/ACCDE, созданный в 32-разрядном Office, не будет работать в 64-разрядном Office, так же как MDE/ACCDE, созданный в 64-разрядном Office, будет не работает в 32-битном офисе.
Аналогичным образом, ссылки на элементы управления и некоторые библиотеки типов могут потребовать повторного создания MDE после изменения версии Windows, независимо от того, перешли ли вы с 32-разрядного Office на 64-разрядный Office.
Например, Office 2016 использует версию VBA, отличную от более ранних версий Office, поэтому проект VBA не сможет работать в Office 2016, если он был скомпилирован в более ранней версии VBA. Хотя эта статья относится к Office 2010, она по-прежнему информативна:
Эта проблема возникает, потому что Access 2010 с пакетом обновления 1 (SP1) использует более новую версию файла VBE7.dll (версия 7.00.1619)
Если вы используете 64-битный Office, возможно, ваш MDE указывал на Common Control Library (которая недоступна для 64-битного Office), но ваш MDE может также связываться с библиотеками типов, которые подходят только для 32- использование битов (например, библиотеки типов, созданные с использованием VB6)
Чтобы полностью диагностировать эту проблему, вам действительно нужно работать с исходным MDB, который использовался для создания MDE. Если вам нужно воссоздать MDE из исходного MDB, но вам необходимо спасти данные из проблемного MDE, вы все равно сможете импортировать данные из него с помощью инструментов в Access.
Если у вас нет доступа к исходному MDB, вам может потребоваться найти компьютер с правильной версией Windows и Office, а также любые элементы управления и библиотеки, чтобы продолжить использование файла. Вы можете спасти некоторый код, заплатив за стороннюю услугу, такую как http://www.everythingaccess.com/mdeconversion.asp (без присоединения)