Tworząc nową bazę danych, zazwyczaj zaczynasz od utworzenia kilku obiektów bazy danych, takich jak tabele, formularze i raporty. W końcu dochodzi do punktu, w którym musisz dodać kod w celu zautomatyzowania określonych procesów i powiązania obiektów bazy danych. Ten artykuł ułatwia zorientowanie się na narzędzia programistyczne w Access.
W tym artykule
Co to jest programowanie?
W Access programowanie to proces dodawania funkcji do bazy danych przy użyciu makr Access lub kodu języka Visual Basic for Applications (VBA). Załóżmy na przykład, że został utworzony formularz oraz raport i chcesz dodać do formularza przycisk polecenia, który po kliknięciu otwiera raport. W tym przypadku programowanie to proces tworzenia makra lub procedury języka VBA, a następnie ustawienia właściwości zdarzenia OnClick (Przy kliknięciu) przycisku polecenia w ten sposób, aby kliknięcie tego przycisku polecenia powodowało uruchomienie makra lub procedury. W przypadku prostej operacji, takiej jak otwieranie raportu, można wykonać całą pracę za pomocą Kreatora przycisków poleceń lub można wyłączyć kreatora i utworzyć kod samodzielnie.
Uwaga: W wielu programach pakietu Microsoft Office termin „makro” oznacza kod języka VBA. Może to być mylące dla Access użytkowników, ponieważ w Access termin "makro" odwołuje się do nazwanej kolekcji akcji makr, które można zebrać za pomocą Konstruktora makr. Access akcje makr reprezentują tylko podzbiór poleceń dostępnych w języku VBA. Konstruktor makr udostępnia bardziej ustrukturalizowany interfejs niż Edytor Visual Basic, umożliwiając dodanie kodu do kontrolek i obiektów bez zaznajamiania się z kodem języka VBA. Należy pamiętać, że w artykułach pomocy AccessAccess makra są nazywane makrami. Natomiast kod języka VBA jest nazywany językiem VBA, kodem, funkcją lub procedurą. Kod języka VBA jest zawarty w modułach klas (stanowiących części pojedynczych formularzy lub raportów i zazwyczaj zawierających kod przeznaczony tylko do tych obiektów) oraz w modułach (niepowiązanych z określonymi obiektami i zazwyczaj zawierających kod „globalny”, który może być używany w całej bazie danych).
Obiekty (takie jak formularze i raporty) oraz kontrolki (takie jak przyciski poleceń i pola tekstowe) mają różne właściwości zdarzeń, do których można dołączać makra lub procedury. Każda właściwość zdarzenia jest skojarzona z określonym zdarzeniem, takim jak kliknięcie myszą, otwarcie formularza lub zmodyfikowanie danych w polu tekstowym. Zdarzenia mogą być również wyzwalane przez czynniki spoza Access, takie jak zdarzenia systemowe, makra lub procedury dołączone do innych zdarzeń. Baza danych może stać się złożona, jeśli dodasz wiele makr lub procedur do kilku właściwości zdarzeń wielu obiektów, ale w większości przypadków możesz uzyskać właściwe wyniki za pomocą niewielkiej ilości kodu.
Czy należy używać makr, czy kodu języka VBA?
Decyzja o tym, czy używać makr, kodu języka VBA, czy obu metod zależy przede wszystkim od planowanego sposobu wdrażania lub rozpowszechniania bazy danych. Jeśli na przykład baza danych jest przechowywana na komputerze, którego jesteś jedynym użytkownikiem, i dobrze znasz kod języka VBA, do wykonywania większości zadań programistycznych możesz używać kodu języka VBA. Jeśli jednak baza danych ma zostać umieszczona na serwerze plików w celu udostępnienia jej innym użytkownikom, ze względów bezpieczeństwa może być konieczne unikanie kodu języka VBA.
Decyzję o użyciu makr bądź kodu języka VBA należy podjąć na podstawie dwóch czynników: potrzebnych zabezpieczeń i funkcji. Zabezpieczenia są problematyczne, ponieważ za pomocą języka VBA można tworzyć kod, który może stanowić zagrożenie dla zabezpieczeń danych lub może uszkodzić pliki na komputerze. Jeśli korzystasz z bazy danych utworzonej przez inną osobę, włączaj kod języka VBA tylko wtedy, gdy wiesz, że baza danych pochodzi z zaufanego źródła. Gdy tworzysz bazę danych, która będzie używana przez inne osoby, unikaj dołączania narzędzi programistycznych wymagających specjalnego oznaczenia bazy danych jako zaufanej. Ogólne techniki pozwalające wyeliminować konieczność oznaczania bazy danych jako zaufanej opisano w dalszej części tej sekcji.
Aby zapewnić bezpieczeństwo bazy danych, należy próbować używać makr, gdy to możliwe, i używać programowania VBA tylko w przypadku operacji, których nie można wykonać za pomocą akcji makr. Ponadto należy spróbować użyć tylko akcji makr, które nie wymagają udzielenia bazy danych stanu zaufanego w celu uruchomienia. Ograniczenie korzystania z akcji makr w ten sposób pozwala użytkownikom mieć pewność, że baza danych nie ma programów, które mogłyby uszkodzić dane lub inne pliki na ich komputerach.
Zagadnienia dotyczące makr
Access zawiera wiele nowych akcji makr, które umożliwiają tworzenie makr o większej mocy, niż można tworzyć przy użyciu wcześniejszych wersji Access. Na przykład można teraz tworzyć i używać globalnych zmiennych tymczasowych przy użyciu akcji makr, a błędy można łatwiej obsługiwać, korzystając z nowych akcji makr do obsługi błędów. We wcześniejszych wersjach Access tego rodzaju funkcje są dostępne tylko za pomocą języka VBA. Ponadto można osadzić makro bezpośrednio we właściwości zdarzenia obiektu lub kontrolki. Osadzone makro staje się częścią obiektu lub kontrolki i pozostaje z obiektem lub kontrolką, jeśli jest przenoszone lub kopiowane.
Makra umożliwiają łatwą obsługę wielu zadań programistycznych, takich jak otwieranie i zamykanie formularzy oraz uruchamianie raportów. Można szybko i łatwo powiązać utworzone obiekty bazy danych (formularze, raporty itp.), ponieważ nie jest wymagane pamiętanie zbyt wielu informacji dotyczących składni. Argumenty dla każdej akcji są wyświetlane w Konstruktorze makr.
Makr można używać ze względu na lepsze zabezpieczenia i łatwość ich użycia. Należy ich używać też w celu wykonania następujących zadań:
-
Przypisywanie akcji lub zestawu akcji do klawisza. Wymaga to utworzenia grupy makr o nazwie AutoKeys.
-
Wykonywanie akcji lub serii akcji po pierwszym otwarciu bazy danych. Wymaga to utworzenia makra o nazwie AutoExec.
Uwaga: Makro AutoExec jest uruchamiane przed innymi makrami i kodem języka VBA, nawet jeśli wskazano formularz startowy w oknie dialogowym Opcje programu Access i dołączono do jego zdarzenia OnOpen (Przy otwarciu) lub OnLoad (Przy załadowaniu) makro lub kod języka VBA.
Aby uzyskać więcej informacji na temat konstruowania makr, zobacz sekcję Opis makr.
Zagadnienia dotyczące kodu języka VBA
Używaj programowania w języku VBA zamiast makr, jeśli chcesz wykonywać następujące zadania:
-
Korzystaj z wbudowanych funkcji lub twórz własne funkcje, Access zawiera wiele wbudowanych funkcji, takich jak funkcja IPmt , która oblicza wypłatę odsetek. Za pomocą tych funkcji wbudowanych można wykonywać obliczenia bez tworzenia skomplikowanych wyrażeń. Za pomocą kodu języka VBA można też tworzyć własne funkcje do wykonywania obliczeń przekraczających możliwości wyrażenia lub w celu zastąpienia złożonych wyrażeń. Ponadto za pomocą funkcji można tworzyć wyrażenia w celu wykonania jednej operacji na wielu obiektach.
-
Tworzenie lub modyfikowanie obiektów W większości przypadków najłatwiej jest tworzyć i modyfikować obiekt w jego widoku projektu. W niektórych sytuacjach może jednak być konieczna zmiana definicji obiektu w kodzie. Używając języka VBA, można manipulować wszystkimi obiektami bazy danych, a także nią samą.
-
Wykonywanie działań na poziomie systemu Możesz wykonać akcję RunApp w makrze, aby uruchomić inny program (na przykład Microsoft Excel) z poziomu Access, ale nie możesz użyć makra, aby zrobić wiele innych poza Access. Za pomocą języka VBA można sprawdzić, czy określony plik znajduje się na komputerze, użyć automatyzacji lub dynamicznej wymiany danych (DDE, Dynamic Data Exchange) w celu komunikowania się z innymi programami systemu Microsoft Windows, takimi jak program Excel, oraz wywołać funkcje znajdujące się w bibliotekach dołączanych dynamicznie (bibliotekach DLL).
-
Manipulowanie pojedynczymi rekordami Używając języka VBA, można przeglądać pojedyncze rekordy z zestawu, wykonując na każdym jakąś operację. Makra natomiast operują na całym zestawie rekordów jednocześnie.
Wykonywanie typowych zadań programistycznych za pomocą Kreatora przycisków poleceń
Kreator przycisków poleceń może pomóc w rozpoczęciu programowania w przypadku dodawania przycisku polecenia do formularza. Kreator pomaga utworzyć przycisk polecenia wykonującego określone zadanie. W pliku Access (accdb) kreator tworzy makro osadzone we właściwości OnClick przycisku polecenia. W pliku mdb lub adp kreator tworzy kod języka VBA, ponieważ makra osadzone nie są dostępne w tych formatach plików. W obu przypadkach można następnie zmodyfikować lub udoskonalić makro bądź kod VBA, aby lepiej odpowiadały określonym potrzebom.
-
W okienku nawigacji kliknij prawym przyciskiem myszy formularz, do którego chcesz dodać przycisk polecenia, a następnie kliknij polecenie Widok projektu.
-
Na karcie Projekt formularza kliknij strzałkę w dół, aby wyświetlić galerię kontrolek , a następnie upewnij się, że jest zaznaczona pozycja Użyj kreatorów kontrolek .
-
Na karcie Projekt formularza w galerii Kontrolkikliknij przycisk.
-
Na siatce projektu formularza kliknij w miejscu, w którym chcesz wstawić przycisk polecenia.
Zostanie uruchomiony Kreator przycisków poleceń.
-
Na pierwszej stronie kreatora klikaj poszczególne kategorie na liście Kategorie, aby zobaczyć, w przypadku których akcji kreator może zaprogramować ich wykonywanie za pomocą przycisku polecenia. Na liście Akcje wybierz akcję, a następnie kliknij przycisk Dalej.
-
Kliknij opcję Tekst lub Obraz — w zależności od tego, co chcesz wyświetlać na przycisku polecenia.
-
Jeśli ma być wyświetlany tekst, możesz edytować tekst w polu obok opcji Tekst.
-
Jeśli ma być wyświetlany obraz, kreator zaproponuje obraz z listy. Jeśli chcesz wybrać inny obraz, zaznacz pole wyboru Pokaż wszystkie obrazy , aby wyświetlić listę wszystkich obrazów przycisków poleceń, które Access udostępnia, lub kliknij przycisk Przeglądaj , aby wybrać obraz przechowywany w innym miejscu.
Kliknij pozycję Dalej.
-
-
Wprowadź nazwę znaczącą dla przycisku polecenia. Jest to czynność opcjonalna i ta nazwa nie będzie wyświetlana na przycisku polecenia. Warto jednak wprowadzić nazwę znaczącą, aby można było znacznie łatwiej odróżnić przyciski poleceń, gdy wystąpi później potrzeba odwołania się do tego przycisku polecenia (aby na przykład określić kolejność tabulacji dla kontrolek w formularzu). Jeśli na przykład kliknięcie przycisku polecenia powoduje zamknięcie formularza, możesz nadać mu nazwę PolecenieZamknij.
-
Kliknij pozycję Zakończ.
Access umieszcza przycisk polecenia w formularzu.
-
Aby zobaczyć, co kreator „zaprogramował”, wykonaj poniższe czynności opcjonalne:
-
Jeśli arkusz właściwości nie jest jeszcze wyświetlony, naciśnij klawisz F4, aby go wyświetlić.
-
W arkuszu właściwości kliknij kartę Zdarzenie.
-
W polu właściwości Przy kliknięciu kliknij przycisk Konstruuj .
Access uruchomi Konstruktora makr i wyświetli makro utworzone przez kreatora. Jeśli chcesz, możesz edytować makro (aby uzyskać więcej informacji na temat edytowania makra, zobacz sekcję Opis makr). Po zakończeniu na karcie Projektowanie makr w grupie Zamykanie kliknij przycisk Zamknij , aby zamknąć Konstruktora makr. Jeśli Access zostanie wyświetlony monit o zapisanie zmian i zaktualizowanie właściwości, kliknij przycisk Tak , aby zapisać zmiany, lub przycisk Nie , aby odrzucić zmiany.
-
-
Na karcie Projekt formularza w grupie Widoki kliknij pozycję Widok, a następnie kliknij pozycję Widok formularza. Kliknij nowy przycisk polecenia, aby się upewnić, że działa zgodnie z oczekiwaniami.
Opis makr
Makro to narzędzie umożliwiające automatyzowanie zadań oraz dodawanie funkcji do formularzy, raportów i kontrolek. Na przykład dodanie przycisku polecenia do formularza jest równoznaczne ze skojarzeniem właściwości zdarzenia OnClick (Przy kliknięciu) przycisku z makrem zawierającym polecenia, które ma wykonywać przycisk, gdy zostanie kliknięty.
Makra Access można uznać za uproszczony język programowania, w którym można utworzyć kod, tworząc listę akcji do wykonania. Konstruowanie makr odbywa się przez wybór akcji z listy rozwijanej, a następnie uzupełnienie informacji wymaganych dla każdej akcji. Makra umożliwiają dodawanie funkcji do formularzy, raportów i kontrolek bez pisania kodu w module VBA. Makra stanowią podzestaw poleceń dostępnych w języku VBA. Dla większości osób konstruowanie makr jest łatwiejsze niż pisanie kodu języka VBA.
Makro można utworzyć za pomocą Konstruktora makr przedstawionego na poniższej ilustracji.
Aby wyświetlić Konstruktora makr:
-
Na karcie Tworzenie w grupie Makra i kod kliknij pozycję Makro.
Opis kodu języka VBA
Podobnie jak makra, język VBA umożliwia dodanie automatyzacji i innych funkcji do aplikacji Access. Język VBA można rozszerzyć przy użyciu kontrolek innych firm, a także pisać własne funkcje i procedury dla własnych potrzeb.
Szybkim sposobem rozpoczęcia programowania w języku VBA jest utworzenie makra Access, a następnie przekonwertowanie go na kod VBA. Instrukcje dotyczące wykonywania tej operacji podano w sekcji Konwertowanie makr na kod języka VBA. Ta funkcja tworzy nowy moduł języka VBA, który wykonuje równoważne operacje w makrze. Otwiera ona również Edytor Visual Basic, umożliwiając rozpoczęcie modyfikowania tej procedury. Podczas pracy w Edytorze Visual Basic możesz kliknąć słowa kluczowe i nacisnąć klawisz F1, aby rozpocząć Access Pomocy dla deweloperów i dowiedzieć się więcej o poszczególnych słowach kluczowych. Następnie możesz zapoznać się z Access Pomoc dla deweloperów i poznać nowe polecenia ułatwiające wykonywanie odpowiednich zadań programistycznych.
Konwertowanie makr na kod języka VBA
Za pomocą Access można automatycznie konwertować makra na moduły VBA lub moduły klas. Makra dołączone do formularza lub raportu można konwertować niezależnie od tego, czy istnieją jako oddzielne obiekty, czy jako makra osadzone. Można też konwertować makra globalne, które nie są dołączone do określonego formularza ani raportu.
Konwertowanie makr dołączonych do formularza lub raportu
Ten proces konwertuje na wszystkie makra języka VBA, do których odwołuje się formularz lub raport (lub którykolwiek z jego kontrolek), i dodaje kod języka VBA do modułu klasy formularza lub raportu. Moduł klasy staje się częścią formularza lub raportu i przenosi się wraz z formularzem lub raportem, jeśli zostanie przeniesiony lub skopiowany.
-
W okienku nawigacji kliknij prawym przyciskiem myszy formularz lub raport, a następnie kliknij polecenie Widok projektu.
-
Na karcie Projekt formularza w grupie Narzędzia kliknij pozycję Konwertuj makra formularza na język Visual Basic lub Konwertuj makra raportu na język Visual Basic.
-
W oknie dialogowym Konwertowanie makr formularza lub Konwertuj makra raportu określ, czy chcesz Access dodać kod obsługi błędów do generowanych przez niego funkcji. Ponadto jeśli makra zawierają komentarze, zdecyduj, czy mają one zostać zawarte jako komentarze w funkcjach. Kliknij przycisk Konwertuj, aby kontynuować.
Jeśli dla formularza lub raportu nie istnieje żaden moduł klasy, Access go utworzy i doda procedurę do modułu dla każdego makra skojarzonego z formularzem lub raportem. Access zmienia również właściwości zdarzeń formularza lub raportu, tak aby uruchamiały nowe procedury języka VBA zamiast makr.
-
Aby wyświetlić i edytować kod języka VBA:
-
Gdy formularz lub raport jest nadal otwarty w widoku projektu, a arkusz właściwości nie jest jeszcze wyświetlany, naciśnij klawisz F4, aby go wyświetlić.
-
Na karcie Zdarzenie arkusza właściwości kliknij dowolne pole właściwości z wyświetlonym tekstem [Procedura zdarzenia], a następnie kliknij przycisk konstruowania . W celu wyświetlenia właściwości zdarzenia dla określonej kontrolki zaznacz tę kontrolkę kliknięciem. Aby wyświetlić właściwości zdarzenia dla całego formularza lub raportu, wybierz z listy rozwijanej u góry arkusza właściwości pozycję Formularz lub Raport.
Access otwiera Edytor Visual Basic i wyświetla procedurę zdarzenia w module klasy. Możesz przewijać w górę lub w dół, aby wyświetlić dowolne inne procedury znajdujące się w tym samym module klasy.
-
Konwertowanie makr globalnych
-
W okienku nawigacji kliknij prawym przyciskiem myszy makro, które chcesz przekonwertować, a następnie kliknij polecenie Widok projektu.
-
Na karcie Projektowanie makr w grupie Narzędzia kliknij pozycję Konwertuj makra na język Visual Basic.
-
W oknie dialogowym Konwertowanie makra wybierz odpowiednie opcje, a następnie kliknij przycisk Konwertuj.
Access przekonwertuje makro i otworzy Edytor Visual Basic.
-
Aby wyświetlić i edytować kod języka VBA:
-
W Edytorze Visual Basic (jeśli okienko Eksplorator projektu nie jest wyświetlone) w menu Widok kliknij polecenie Eksplorator projektu.
-
Rozwiń drzewo pod nazwą bazy danych, w której pracujesz.
-
W obszarze Moduły kliknij dwukrotnie nazwę modułu Przekonwertowane makro-makro.
W Edytorze Visual Basic zostanie otwarty ten moduł.
-
Dołączanie funkcji języka VBA do właściwości zdarzenia
Po przekonwertowaniu makra globalnego na język VBA kod języka VBA jest umieszczany w module standardowym. W przeciwieństwie do modułu klasy moduł standardowy nie jest częścią formularza ani raportu. Najprawdopodobniej zechcesz skojarzyć funkcję z właściwością zdarzenia w formularzu, raporcie lub kontrolce, aby kod był uruchamiany dokładnie wtedy, gdy i gdzie chcesz. W tym celu możesz skopiować kod języka VBA do modułu klasy, a następnie skojarzyć go z właściwością zdarzenia, albo wykonać specjalne połączenie z właściwości zdarzenia do modułu standardowego, wykonując poniższą procedurę.
-
W Edytorze Visual Basic zanotuj nazwę funkcji. Jeśli na przykład zostało przekonwertowane makro o nazwie MojeMakro, nazwa funkcji będzie następująca: MojeMakro().
-
Zamknij Edytor Visual Basic.
-
W okienku nawigacji kliknij prawym przyciskiem myszy formularz lub raport, z którym chcesz skojarzyć funkcję, a następnie kliknij polecenie Widok projektu.
-
Kliknij kontrolkę lub sekcję, z którą chcesz skojarzyć funkcję.
-
Jeśli arkusz właściwości nie jest jeszcze wyświetlony, naciśnij klawisz F4, aby go wyświetlić.
-
Na karcie Zdarzenie arkusza właściwości kliknij pole właściwości zdarzenia, z którą chcesz skojarzyć funkcję.
-
W polu właściwości wpisz znak równości (=), a po nim nazwę funkcji— na przykład =MojeMakro(). Nie zapomnij o nawiasach.
-
Zapisz formularz lub raport, klikając przycisk Zapisz na pasku narzędzi Szybki dostęp.
-
W okienku nawigacji kliknij dwukrotnie formularz lub raport i przetestuj go, aby zobaczyć, czy kod jest uruchamiany zgodnie z oczekiwaniami.
Teraz znasz podstawowe kroki dodawania kodu VBA do bazy danych. W tym artykule opisano tylko podstawowe informacje na temat rozpoczynania pracy. istnieje wiele doskonałych książek referencyjnych i zasobów online, które mogą pomóc w budowaniu umiejętności programowania.
Zobacz też
Tworzenie makra interfejsu użytkownika (UI)
Uruchamianie makra programu Access przy użyciu skrótu klawiaturowego
Automatyzowanie zdarzeń uruchamiania za pomocą makra
Tworzenie makra uruchamianego podczas otwierania bazy danych