Wykorzystanie scentralizowanego modułu VBA w wielu dostępowych bazach danych

Byłem odpowiedzialny za ponad 50 baz danych Access (.mdb i .accdb różnych wersji) rozeszły się po intranecie i muszę dodać kilka funkcji VBA (dokładnie ten sam kod) do prawie wszystkich. Mam nadzieję, że można to osiągnąć poprzez stworzenie odniesienia z każdej bazy danych do scentralizowanego modułu VBA, ponieważ naprawdę chciałbym możliwość wprowadzania zmian w dół drogi, które są automatycznie replikowane w każdej bazie danych. Byłoby to również bonus, jeśli jakiekolwiek dodatkowe odniesienia w centralnym db może być nienaruszone, więc nie musiałbym zarządzać nimi indywidualnie, jak również.

Jestem całkiem nowy w programowaniu VBA (chociaż od lat jestem ćpunem PHP) i mam trudności z wymyśleniem odpowiednich słów, aby wyszukać ten konkretny problem. Myślę (z tego, co czytałem do tej pory), że mogę potrzebować Visual Studio skompilować DLL do odniesienia, ale chciałbym zachować wszystko proste i zawarte w Access, jeśli to możliwe, zwłaszcza, że nie mamy VS prawo jazdy.

Dzięki, wszelkie wskazówki będą mile widziane!

Author: Fionnuala, 2010-11-12

3 answers

Nie martw się, to dość proste.

  1. Stwórz bazę danych "helper". Umieść tam kilka zabiegów.
  2. w bazach danych' Klienta ' otwórz edytor VBA
  3. Przejdź do Narzędzia- > Referencje. Przeglądaj i wybierz swoją bazę helperów.
  4. Zrobione! Możesz teraz korzystać ze wszystkich funkcji w bazie helperów w bazach klientów.

Więc... nie .pliki dll, o które należy się martwić. Visual Studio nie jest potrzebne.

 12
Author: PowerUser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-12 20:19:27

Szukanym terminem jest add-ins. (Ahh, widzę, że Google poprawiło doświadczenie wyszukiwania ze słowami z osadzonymi myślnikami od ostatniego razu, gdy próbowałem.) podejście wymienione przez PowerUser będzie działać, ale istnieje wiele problemów.

  • Będziesz chciał rozdzielić dodatek wraz z Twoim FE do użytkowników komputerów.

  • MDE / ACCDE nie może odwoływać się do MDB / ACCDB. Ale jeśli zmienisz add-in MDE / ACCDE musisz redystrybucja Fe MDE / ACCDE jako cóż. Chociaż nie udało Ci się wszelkie zmiany parametrów lub nazwy podprogramów / funkcji.

  • Podczas debugowania kodu w dodatek lub radzenie sobie z błędem wiadomość VBA otworzy dodatek VBA edytor kodu. Nie wprowadzaj zmian tam. Zostaną utracone, jak tylko zamykasz okno kodu dodatku.

Zobacz moją stronę Add-in Tips, Hints and Gotchas Po Więcej Szczegółów.

 7
Author: Tony Toews,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-12 21:29:13

Możesz też pójść o krok dalej. Napisałem artykuł na ten temat dla vb123.com:

Korzystanie z plików biblioteki baz danych w aplikacji Access

Możesz używać formularzy, raportów, zapytań, modułów, klas... Prawie wszystko poza subformami. A wszystko w zwykłym starym pliku mdb lub accdb (lub mde, o to chodzi).

 5
Author: awrigley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-12 22:28:15