Использование централизованного модуля VBA в нескольких базах данных Access - PullRequest
10 голосов
/ 12 ноября 2010

Я был назначен ответственным за 50+ баз данных Access (.mdb и .accdb различных версий), распределенных по внутренней сети, и мне нужно добавить несколько функций VBA (точно такой же код) почти во все из них,Я надеюсь, что это может быть достигнуто путем создания ссылки из каждой базы данных на централизованный модуль VBA, поскольку мне бы очень хотелось иметь возможность вносить изменения в будущем, которые автоматически реплицируются в каждой базе данных.Также было бы неплохо, если бы какие-либо дополнительные ссылки в центральном БД могли быть сохранены, поэтому мне не пришлось бы управлять ими по отдельности.

Я довольно новичок в программировании на VBA (хотя ябыл PHP-старым в течение многих лет), и ему было трудно найти правильные слова для поиска этой конкретной проблемы.Я думаю (из того, что я читал до сих пор), что мне может понадобиться Visual Studio для компиляции DLL для ссылок, но я бы хотел, чтобы все было просто и содержалось в Access, если это возможно, тем более что у нас нет VSЛицензия.

Спасибо, любые указатели будут высоко оценены!

Ответы [ 4 ]

13 голосов
/ 12 ноября 2010

Не волнуйтесь, все довольно просто.

  1. Создайте свою «вспомогательную» базу данных. Поместите несколько процедур туда.
  2. В ваших клиентских базах данных откройте VBA Editor
  3. Перейдите в Инструменты-> Ссылки. Найдите и выберите свою базу данных помощников.
  4. Готово! Теперь вы можете использовать все функции в вашей вспомогательной базе данных во всех клиентских базах данных.

Итак ... нет файлов .dll для беспокойства. Visual Studio не требуется.

8 голосов
/ 13 ноября 2010

Поисковый термин - надстройки. (Ааа, я вижу, что Google улучшил возможности поиска по словам со встроенными гифами со времени последней попытки.) Подход, упомянутый PowerUser, будет работать, но есть ряд проблем.

  • Вам захочется испортить надстройку вместе с вашим ИП на ПК пользователей.

  • MDE / ACCDE не может ссылаться на MDB / ACCDB. Но если вы измените надстройка MDE / ACCDE вы должны перераспределить FE MDE / ACCDE как Что ж. Даже если вы не сделали любые изменения параметров или имена подпрограмм / функций.

  • Пока вы отлаживаете код в надстройка или имеет дело с ошибкой сообщение VBA откроет надстройку VBA редактор кода. НЕ вносить изменения там. Они будут потеряны, как только Вы закрываете окно кода надстройки.

Подробнее см. На странице Советы, советы и подсказки для надстроек .

5 голосов
/ 13 ноября 2010

Вы также можете сделать еще один шаг вперед.Я написал статью об этом для vb123.com:

Использование файлов библиотеки баз данных в вашем приложении доступа

Вы можете использовать формы, отчеты, запросы, модули, классы... Практически все, кроме субформ.И все это в простом старом файле mdb или accdb (или mde, если на то пошло).

0 голосов
/ 21 декабря 2018

Восемь лет спустя, вот несколько последующих ответов на приведенные выше ответы в новом ответе: Как добавить надстройки в Access 2007?

...