Poniższe sekcje zawierają przydatne informacje na temat języka VBA. Nazwy obiektów są dostępne, więc można je łatwo sprawdzić w bazie danych Northwind 2.0 Starter Edition.
VBA (Visual Basic for Applications) to język programowania używany we wszystkich produktach platformy Microsoft 365, a nie tylko w programie Access. Dokument jest tu przede wszystkim dokumentowany: Dokumentacja dla deweloperów programu Access.Aby rozpocząć, zobacz Wprowadzenie do programowania w programie Access.
Podczas wyszukiwania informacji poszukaj konkretnych przykładów programu Access i uwzględnij w wyszukiwaniu program Microsoft Access. Często rozwiązania dla innych produktów platformy Microsoft 365 działają, ale mogą wymagać zmian.
Program Microsoft Access to produkt dla dorosłych. Oznacza to, że istnieje wiele przykładów, które są świetne dla Ciebie. Oznacza to również, że starsze książki dotyczące programowania w programie Access są nadal opłacalne. Wiele starszych książek jest nadal dostępnych w używanych witrynach książek za ułamek ich oryginalnych kosztów.
Pliki programu Microsoft Access to pliki platformy Microsoft 365. Pliki platformy Microsoft 365 muszą znajdować się w zaufanej lokalizacji lub mieć włączoną zawartość. Te elementy są uznawane za bezpieczne, ponieważ zostały utworzone przez Ciebie lub pochodzą z zaufanego źródła. To sprawdzanie jest wykonywane za każdym razem, gdy otwierasz dowolny plik platformy Microsoft 365. W tym miejscu będziemy nazywać to zaufanymi/włączonymi. Jeśli nowa wersja aplikacji zostanie wydana i otwarta z lokalizacji niezau zaufanej, proces włączania zawartości powtórzy się. Aby uzyskać więcej informacji, zobacz Zaufane lokalizacje dla plików platformy Microsoft 365, Określanie, czy baza danych ma być zaufana, oraz Dodawanie, usuwanie lub zmienianie zaufanej lokalizacji na platformie Microsoft 365.
Makra, funkcje i procedury podrzędne to sposób wdrażania logiki biznesowej w bazie danych programu Access.
Kontrolki w formularzu (takie jak przyciski, pola tekstowe, etykiety itd.) mogą używać swoich zdarzeń (takich jak kliknięcie kontrolki) do wyzwalania innych procesów, takich jak dodawanie, usuwanie rekordów czy otwieranie formularzy. Te procesy można zaimplementować przy użyciu makr lub języka VBA. Northwind używa głównie makr, a niektóre języka VBA. Aby uzyskać więcej informacji, zobacz Akcja makra RunCode.
Niektóre typy kontrolek mają wbudowanych kreatorów, którzy automatycznie tworzą makro. Na przykład dodanie przycisku polecenia do formularza spowoduje otwarcie kreatora, który zaoferuje kilka opcji dostępnych dla tego przycisku. Dodanie pola kombi spowoduje otwarcie kreatora, który można skonfigurować w celu znalezienia określonego rekordu w formularzu.
Okienko nawigacji to główny sposób wyświetlania i uzyskiwania dostępu do wszystkich obiektów bazy danych, który jest domyślnie wyświetlany po lewej stronie okna programu Access. Okienko nawigacji Northwind 2.0 Starter Edition zostało dostosowane. Utworowaliśmy kategorię niestandardową o nazwie Northwind Starter 2.0. Dzięki temu możemy organizować obiekty według obszaru funkcjonalnego. Aby uzyskać więcej informacji, zobacz Dostosowywanie okienka nawigacji.
Ważne jest, aby dowiedzieć się więcej o zakresie i widoczności w programie Access i platformie Microsoft 365. Zakres odwołuje się do dostępności zmiennej, stałej lub procedury do użycia w innej procedurze. Istnieją trzy poziomy określania zakresu: poziom procedury, poziom modułu prywatnego i moduł publiczny. Podczas deklarowania zmiennej określa się zakres zmiennej. Warto jawnie zadeklarować wszystkie zmienne, aby uniknąć błędów konfliktu nazewnictwa między zmiennymi o różnych zakresach. Wszystkie moduły mają dwie instrukcje dyrektywy: Opcja Porównaj bazę danych i Opcja jawna. Aby uzyskać więcej informacji, zobacz Opis zakresu i widoczności, instrukcja publiczna, instrukcja Private, instrukcja statyczna i Opis okresu istnienia zmiennych.
Czasami potrzebujesz zmiennej, aby istniała po tym, jak obiekt, który ją utworzył, wykracza poza zakres. Istnieją trzy podstawowe sposoby wykonywania tej czynności: zmienne publiczne, zmienne tymczasowe i przechowywanie wartości w tabeli lokalnej. Każdy z nich ma wady i zalety. Wielu deweloperów korzysta z ich kombinacji.
Zmienne publiczne i zmienne tempvars istnieją dla bieżącej sesji i wykraczają poza zakres po zamknięciu aplikacji. Co zrobić, jeśli chcesz zachować zmienne specyficzne dla użytkownika w sesjach? Te typy wartości można przechowywać w tabeli lokalnej. W wersji Northwind 2.0 Starter Edition wartości te są przechowywane w tabeli o nazwie SystemSettings. Na przykład wartością w tabeli jest "ShowWelcome". Ta wartość informuje nas, czy ekran powitalny ma być wyświetlany przy każdym logowaniu.
Jeśli korzystasz z kreatorów kontrolek wbudowanych w program Access, wiesz, że w przypadku utworzenia makra często nie ma obsługi błędów, a jeśli język VBA został utworzony, może ono być ograniczone do funkcji MsgBox o stylu Err.Description.
W programie Northwind 2.0 Starter Edition zaimplementowaliśmy tzw. globalną obsługę błędów. Błędy występujące w dowolnej procedurze wywołują funkcję na poziomie globalnym w celu wyświetlenia błędu. Dużą zaletą jest to, że kod jest spójny, a jeśli komunikat wymaga zmiany, na przykład pokazując numer błędu lub rejestrując błąd do pliku, można to zrobić tylko w jednym miejscu.
clsErrorHandler to moduł klasy, który implementuje kod obsługi błędów. Moduł klasy przechowuje wszystkie główne i pomocne funkcje w jednej jednostce, dzięki czemu kod jest bardziej hermetyzowany. Makro AutoExec w końcu wywołuje funkcję uruchamiania w modStartup, tworzy wystąpienie clsErrorHandler i zapisuje ją jako zmienną globalną, dzięki czemu może być używana w całej aplikacji.
W rzeczywistości kod obsługi błędów w procedurach jest tak spójny, że udało nam się utworzyć to wszystko w czasie krótszym niż pięć minut przy użyciu ozdobnego kodu VBA, który wyposażył każdą procedurę we właściwą procedurę obsługi błędów. Ten kod nie jest dołączony do szablonu.