Wprowadzenie do programowania w programie Access

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. W tym artykule opisano narzędzia programistyczne dostępne w programie Access.

W tym artykule

Co to jest programowanie?

Czy należy używać makr, czy kodu języka VBA?

Wykonywanie typowych zadań programistycznych za pomocą Kreatora przycisków poleceń

Opis makr

Opis kodu języka VBA

Konwertowanie makr na kod języka VBA

Co to jest programowanie?

W programie Access programowanie to proces dodawania funkcji do bazy danych za pomocą makr programu Access lub kodu języka VBA (Visual Basic for Applications). 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 prowadzić do nieporozumień wśród użytkowników programu Access, ponieważ w tym programie termin „makro” oznacza nazwaną kolekcję akcji makr, którą można utworzyć za pomocą Konstruktora makr. Akcje makr programu Access to tylko podzestaw 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 programu Access makra programu Access 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ą też być wyzwalane przez czynniki występujące poza programem Access, na przykład przez zdarzenia systemowe, lub przez makra albo 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.

Początek strony

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, używaj makr, gdy to możliwe. Z kodu języka VBA korzystaj tylko w przypadku operacji, których nie można wykonać za pomocą akcji makr. Ponadto w możliwie największym stopniu używaj tylko tych akcji makr, które w celu uruchomienia nie wymagają oznaczania bazy danych jako zaufanej. Dzięki takiemu ograniczeniu użycia akcji makr użytkownicy mogą mieć pewność, że baza danych nie zawiera żadnego kodu, który może uszkodzić dane lub inne pliki na komputerze.

Zagadnienia dotyczące makr

Od wersji 2010 programu Access program ten zawiera wiele nowych akcji makr umożliwiających konstruowanie bardziej zaawansowanych makr, niż jest to możliwe za pomocą poprzednich wersji programu Access. Na przykład za pomocą akcji makr można teraz tworzyć globalne zmienne tymczasowe i z nich korzystać. Można też lepiej obsługiwać błędy za pomocą nowych akcji makr obsługujących błędy. We wcześniejszych wersjach programu Access tego rodzaju funkcje są dostępne tylko przy użyciu języka VBA. Ponadto można osadzić makro bezpośrednio we właściwości zdarzenia obiektu lub kontrolki. Makro osadzone staje się częścią obiektu lub kontrolki i pozostaje z tym obiektem lub kontrolką, gdy zostanie ona przeniesiona lub skopiowana.

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:

  • Używanie funkcji wbudowanych lub tworzenie własnych funkcji    Program Access zawiera wiele funkcji wbudowanych, takich jak funkcja IPmt, która oblicza wysokość spłaty 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żna wykonać akcję RunApp (Uruchom aplikację) w makrze w celu uruchomienia innego programu (na przykład Microsoft Excel) z poziomu programu Access, ale za pomocą makra nie można wykonać zbyt wielu innych czynności poza programem 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.

Początek strony

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 programu Access (accdb) kreator tworzy makro osadzone we właściwości OnClick (Przy kliknięciu) 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.

  1. W okienku nawigacji kliknij prawym przyciskiem myszy formularz, do którego chcesz dodać przycisk polecenia, a następnie kliknij polecenie Widok projektu.

  2. Na karcie Projektowanie kliknij strzałkę w dół, aby wyświetlić galerię Kontrolki, i upewnij się, że pozycja Użyj kreatorów kontrolek jest zaznaczona.

  3. Na karcie Projektowanie w galerii Kontrolki kliknij pozycję Przycisk.

  4. Na siatce projektu formularza kliknij w miejscu, w którym chcesz wstawić przycisk polecenia.

    Zostanie uruchomiony Kreator przycisków poleceń.

  5. 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.

  6. 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. Aby wybrać inny obraz, zaznacz pole wyboru Pokaż wszystkie obrazy w celu wyświetlenia listy wszystkich obrazów przycisków poleceń dostępnych w programie Access lub kliknij przycisk Przeglądaj w celu wybrania obrazu przechowywanego w innym miejscu.

      Kliknij pozycję Dalej.

  7. 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.

  8. Kliknij pozycję Zakończ.

    Program Access utworzy przycisk polecenia w formularzu.

  9. Aby zobaczyć, co kreator „zaprogramował”, wykonaj poniższe czynności opcjonalne:

    1. Jeśli arkusz właściwości nie jest jeszcze wyświetlony, naciśnij klawisz F4, aby go wyświetlić.

    2. W arkuszu właściwości kliknij kartę Zdarzenie.

    3. W polu właściwości Przy kliknięciu kliknij przycisk Konstruuj Obraz przycisku .

      W programie Access zostanie uruchomiony Konstruktor makr i zostanie wyświetlone makro utworzone przez kreatora. W razie potrzeby można edytować to makro. Aby uzyskać więcej informacji na temat sposobu edytowania makra, zobacz sekcję Opis makr. Po zakończeniu na karcie Projektowanie w grupie Zamykanie kliknij przycisk Zamknij, aby zamknąć Konstruktora makr. Jeśli w programie Access zostanie wyświetlony monit o zapisanie zmian i zaktualizowanie właściwości, kliknij przycisk Tak, aby je zapisać, lub przycisk Nie, aby je odrzucić.

  10. Na karcie Projektowanie 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.

Początek strony

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 programu Access można wyobrazić sobie jako uproszczony język programowania, za pomocą którego tworzy się kod, konstruują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ą dodanie funkcjonalności do formularzy, raportów i kontrolek bez potrzeby pisania kodu w module języka 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.

Konstruktor makr programu Access 2010

Uwaga : Uwaga: Konstruktor makr w programie Access 2007 wyglądał inaczej niż na ilustracji powyżej. W programie Access 2007 Konstruktor makr miał postać serii wierszy i kolumn, w których wymienione były różne akcje makra.

Aby wyświetlić Konstruktora makr:

  • Na karcie Tworzenie w grupie Makra i kod kliknij pozycję Makro.

Początek strony

Opis kodu języka VBA

Kod języka VBA, podobnie jak makra, umożliwia dodanie do programu Access automatyzacji oraz innych funkcji. Możliwości języka VBA można wzbogacić za pomocą kontrolek innych dostawców. Można też pisać własne funkcje i procedury na własne potrzeby.

Szybkim sposobem rozpoczęcia programowania w języku VBA jest skonstruowanie w pierwszej kolejności makra programu Access, a następnie przekonwertowanie go na kod języka 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łowo kluczowe i nacisnąć klawisz F1, aby uruchomić Pomoc dla deweloperów programu Access i dowiedzieć się więcej na temat poszczególnych słów kluczowych. Następnie możesz zapoznać się z Pomocą dla deweloperów programu Access i odkryć nowe polecenia, które pomagają w wykonywaniu odpowiednich zadań programistycznych.

Początek strony

Konwertowanie makr na kod języka VBA

Za pomocą programu Access można automatycznie konwertować makra na moduły języka 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.

Uwaga : Kod języka Visual Basic for Applications (VBA) można dodać do bazy danych sieci Web. Nie można go jednak uruchamiać, gdy baza danych działa w przeglądarce internetowej. Jeśli baza danych sieci Web zawiera kod języka VBA, aby móc go uruchomić, należy ją najpierw otworzyć przy użyciu programu Access. Zamiast tego do wykonywania zadań programistycznych w bazie danych sieci Web używaj makr programu Access.

Konwertowanie makr dołączonych do formularza lub raportu

W tym procesie na kod języka VBA są konwertowane wszelkie makra, do których odwołuje się formularz lub raport albo dowolna kontrolka w formularzu lub raporcie (lub które są w nich osadzone). Wynikowy kod języka VBA jest dodawany do modułu klasy formularza lub raportu. Moduł klasy staje się częścią formularza lub raportu i jest przenoszony z formularzem lub raportem podczas jego przenoszenia lub kopiowania.

  1. W okienku nawigacji kliknij prawym przyciskiem myszy formularz lub raport, a następnie kliknij polecenie Widok projektu.

  2. Na karcie Projektowanie w grupie Narzędzia kliknij przycisk Konwertuj makra formularza na język Visual Basic lub Konwertuj makra raportu na język Visual Basic.

  3. W oknie dialogowym Konwertowanie makr formularza lub Konwertowanie makr raportu zdecyduj, czy program Access ma dodać kod obsługi błędów do generowanych przez siebie 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, program Access utworzy go i doda do niego procedurę dla każdego makra, które było skojarzone z formularzem lub raportem. Program Access zmieni też właściwości zdarzeń formularza lub raportu, aby uruchamiały one nowe procedury języka VBA zamiast makr.

  4. Aby wyświetlić i edytować kod języka VBA:

    1. 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ć.

    2. Na karcie Zdarzenie arkusza właściwości kliknij w dowolnym polu właściwości, w którym jest wyświetlany tekst [Procedura zdarzenia], a następnie kliknij przycisk konstruowania Obraz przycisku . 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.

      Program Access otworzy Edytor Visual Basic i wyświetli 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

  1. W okienku nawigacji kliknij prawym przyciskiem myszy makro, które chcesz przekonwertować, a następnie kliknij polecenie Widok projektu.

  2. Na karcie Projektowanie w grupie Narzędzia kliknij pozycję Konwertuj makra na język Visual Basic.

  3. W oknie dialogowym Konwertowanie makra wybierz odpowiednie opcje, a następnie kliknij przycisk Konwertuj.

    Program Access przekonwertuje makro i otworzy Edytor Visual Basic.

  4. Aby wyświetlić i edytować kod języka VBA:

    1. W Edytorze Visual Basic (jeśli okienko Eksplorator projektu nie jest wyświetlone) w menu Widok kliknij polecenie Eksplorator projektu.

    2. Rozwiń drzewo pod nazwą bazy danych, w której pracujesz.

    3. 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

Podczas konwertowania makra globalnego na kod języka VBA ten kod jest umieszczany w module standardowym. W przeciwieństwie do modułu klasy moduł standardowy nie jest częścią formularza ani raportu. Najprawdopodobniej chcesz skojarzyć funkcję z właściwością zdarzenia w formularzu, raporcie lub kontrolce, aby kod był uruchamiany dokładnie w odpowiednim miejscu i czasie. 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. Ewentualnie możesz utworzyć specjalne wywołanie z właściwości zdarzenia do modułu standardowego za pomocą poniższej procedury.

  1. 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().

  2. Zamknij Edytor Visual Basic.

  3. W okienku nawigacji kliknij prawym przyciskiem myszy formularz lub raport, z którym chcesz skojarzyć funkcję, a następnie kliknij polecenie Widok projektu.

  4. Kliknij kontrolkę lub sekcję, z którą chcesz skojarzyć funkcję.

  5. Jeśli arkusz właściwości nie jest jeszcze wyświetlony, naciśnij klawisz F4, aby go wyświetlić.

  6. Na karcie Zdarzenie arkusza właściwości kliknij pole właściwości zdarzenia, z którą chcesz skojarzyć funkcję.

  7. W polu właściwości wpisz znak równości (=), a po nim nazwę funkcji— na przykład =MojeMakro(). Nie zapomnij o nawiasach.

  8. Zapisz formularz lub raport, klikając przycisk Zapisz na pasku narzędzi Szybki dostęp.

  9. W okienku nawigacji kliknij dwukrotnie formularz lub raport i przetestuj go, aby zobaczyć, czy kod jest uruchamiany zgodnie z oczekiwaniami.

Znasz już podstawowe czynności umożliwiające dodawanie kodu języka VBA do bazy danych. W tym artykule opisano tylko podstawowe informacje potrzebne do rozpoczęcia pracy. Istnieje wiele doskonałych książek i zasobów online, które ułatwiają rozwijanie umiejętności programowania.

Początek strony

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×