2010-11-12 17 views
10

Byłem odpowiedzialny za dostęp do baz danych 50+ Access (.mdb i .accdb o różnych wersjach) rozmieszczonych w intranecie, i muszę dodać kilka funkcji VBA (dokładnie ten sam kod) do prawie wszystkich z nich. Mam nadzieję, że uda się to osiągnąć, tworząc odniesienie z każdej bazy danych do scentralizowanego modułu VBA, ponieważ bardzo chciałbym wprowadzić zmiany w dół drogi, które są automatycznie replikowane w każdej bazie danych. Byłoby to również dodatkowym atutem, gdyby wszelkie dodatkowe odniesienia w centralnej bazie danych mogły pozostać nienaruszone, więc nie musiałbym zarządzać nimi indywidualnie.Używanie scentralizowanego modułu VBA w wielu bazach danych dostępu

Jestem całkiem nowy w programowaniu VBA (chociaż od lat jestem junakiem PHP) i mam trudności z wymyśleniem odpowiednich słów, aby znaleźć ten konkretny problem. Myślę, że (z tego, co przeczytałem do tej pory), że potrzebuję Visual Studio, aby skompilować bibliotekę DLL do odniesienia, ale chciałbym, aby wszystko było proste i zawarte w Access, jeśli to możliwe, zwłaszcza, że ​​nie mamy VS licencja.

Dzięki, wszelkie wskazówki byłyby mile widziane!

Odpowiedz

12

Nie martw się, to całkiem proste.

  1. Utwórz bazę danych "pomocnika". Umieść tam kilka procedur.
  2. W bazach danych "klienta" otwórz Edytor VBA
  3. Przejdź do Narzędzia-> Referencje. Przeglądaj i wybierz swoją bazę pomocniczą.
  4. Gotowe! Teraz możesz korzystać ze wszystkich funkcji bazy danych pomocników w bazach danych klientów.

Więc ... nie .dll martwić się o pliki. Nie jest potrzebne żadne Visual Studio.

+0

Dzięki, wygląda na to, że może doskonale działać! Proste rzeczywiście. – spudsy

+0

Wydaje się, że to świetny pomysł, ale może być uciążliwy. – Fionnuala

+0

Chciałem zapytać, jakie kłopoty, ale potem zauważyłem kontynuację Tony'ego. Doceniam ostrzeżenie Remou :) – spudsy

7

Wyszukiwane hasło jest dodatkiem. (Ahh, widzę, że Google poprawił jakość wyszukiwania słów ze słowami kluczującymi od czasu, kiedy ostatni raz próbowałem.) Podejście wspomniane przez PowerUser będzie działać, ale jest wiele problemów.

  • Będziemy chcieli distrubte dodatek w wraz z FE na komputerach użytkowników.

  • MDE/ACCDE nie może odnosić się do MDB/ACCDB . Ale jeśli zmienisz dodatek MDE/ACCDE , musisz ponownie rozprowadzić FE FEE/ACCDE jako . Mimo że nie wprowadzono żadnych zmian parametrów ani nazw podprogramów/funkcji, .

  • Podczas debugowania kodu w ten Dodatek lub do czynienia z błędem wiadomości VBA otworzy dodatek w VBA kod edytora. NIE wprowadzaj tam zmian . Zostaną utracone, gdy zamkniesz okno kodu dodatkowego.

Zobacz moją stronę Add-in Tips, Hints and Gotchas, aby uzyskać więcej informacji.

+0

Tak. Gotcha # 3 to _real_ em, uciążliwość :) – Fionnuala

+0

Dzięki za informację Tony, bardzo dobrze wiedzieć! – spudsy

5

Można również zrobić krok dalej. Napisałem artykuł na ten temat dla vb123.com:

Using Database Library Files in your Access Application

Można użyć formularze, raporty, kwerendy, moduły, klasy ... bardzo dużo wszystko oprócz podformularze. A wszystko w zwykłym starym pliku mdb lub accdb (lub mde, o to chodzi).

+0

Wielki artykuł, dzięki za dodany zasób! – spudsy

+0

Dobry artykuł. (Ahhh, teraz widzę, dlaczego nie mogłem opublikować mojego komentarza wczoraj, było za krótkie.) Grrrr –

Powiązane problemy