Access 2002

Библиотеки типов


Библиотеки типов, ссылки и «сломанные» приложения

Несмотря на то что уже в течение многих лет мы говорим, пишем об автоматизации и учим ее применять, вновь и вновь возникают некоторые вопросы, касающиеся серверных приложений и ссылок. Вот пример одного из часто встречающихся вопросов: «Если я использую автоматизацию для управления приложением X, должны ли мои пользователи применять приложение X для реализации моего решения?» Ответом, конечно, будет «да». Использование автоматизации не приведет к некоторому магическому подключению (во время компиляции) функциональности серверного приложения к вашей программе. Автоматизация позволяет управлять приложением во время его выполнения. Чтобы ваша программа работала, должно быть инсталлировано серверное приложение.

Вот еще один, постоянно возникающий вопрос: «Что произойдет, если приложение не инсталлировано, а пользователь попытается запустить мою программу?» Ответ будет зависеть от того, указали вы ссылку на библиотеку типов или нет. Если нет, то, как только вы попытаетесь инициировать сеанс автоматизации, VBA выдаст сообщение об ошибке времени выполнения, которое вы можете перехватить и обработать. Однако если вы использовали библиотеку типов, то отладить программу будет несколько сложнее, поскольку VBA пытается разрешить ссылки на библиотеку типов до выполнения кода. В этом случае вы должны выполнить соответствующий код VBA, чтобы сделать ссылки действительными.

Для этого вы должны в своей программе полностью отделить код сервера автоматизации от кода, который проверяет действительность ссылок в различных модулях. Это следует выполнить, поскольку VBA требует загрузки всех используемых модулей. VBA загружает и компилирует модули только по мере необходимости, но он будет выполнять предварительную загрузку модулей, содержащих процедуры, на которые ссылаются уже загруженные модули.

Комментарии закрыты