Использование mdb файла в качестве библиотеки функций

Источник: codingclub

Можно из одного проекта(далее А) установить ссылку на другой проект(далее Б) и использовать универсальные процедуры и функции из него(Б). Это удобно при разработке нового проекта и, особенно, если в комплексе используется основной и вспомогательные проекты. Например, "Учет товара" и "Взаиморасчеты с поставщиками".

Достоинства: Функции хранятся и редактируются в одном месте.

Создав в проекте Б функцию, выполняющую откытие формы(отчета),можно из А открыть любую форму(отчет) - как родную, так и из проекта Б.

Недостатки: Проект А загружается немного дольше.

Контроль и восстановление корректности ссылки необходимо выполнять на старте. Впрочем, это относится и к библиотеке DAO, да и ко всем отвалившимся ссылкам вообще.

Проект Б нельзя открывать в монопольном режиме - А не запустится.

Ограничения для библиотечных функций:
Чтобы при работе с объектами DAO не возникало ошибок, необходимо корректно использовать функции CurrentDB и CodeDB. CurrentDB возвращает ссылку на проект А и используется для обращения к его объектам(таблицам, запросам, проч.).

CodeDB возвращает ссылку на проект Б и используется для обращения к специфическим для него объектам. Для локального проекта функции CurrentDB и CodeDB эквивалентны.

Методы DoCmd (например, RunSQL) и функции по подмножеству, ссылающиеся на специфические для Б объекты, генерируют ошибку. Вместо них нужно использовать методы DAO с функцией CodeDB.

СОВЕТ: Если в заголовке модуля указано Option Private - процедуры из него недоступны из других проектов. Эту опцию желательно указать в модулях, где сгруппированы процедуры, специфические только для проекта Б.

Возможно это не полный список ограничений, но всё, описанное здесь, проверено и работает (или, соответственно, не работает).


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=16347