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?

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, należy używać makr, gdy jest to możliwe, i używać programowania VBA tylko w przypadku operacji, których nie można wykonać za pomocą akcji makr. Ponadto w celu uruchomienia tej bazy danych należy spróbować użyć tylko akcji makr, które nie wymagają udzielenia bazy danych stanu zaufanego. Ograniczenie korzystania z akcji makr w ten sposób pozwala użytkownikom mieć pewność, że baza danych nie ma żadnego programowania, który mógłby uszkodzić dane lub inne pliki na ich komputerach.

Zagadnienia dotyczące makr

Począwszy od wersji programu Access 2010, program Access zawiera wiele nowych akcji makr, które umożliwiają tworzenie bardziej zaawansowanych makr niż można tworzyć przy użyciu wcześniejszych wersji programu Access. Teraz można na przykład tworzyć globalne zmienne tymczasowe i używać ich za pomocą akcji makr, a do obsługi błędów można bezpieczniej używać nowych akcji makr do obsługi błędów. We wcześniejszych wersjach programu Access tego rodzaju funkcje są dostępne tylko przy użyciu VBA. Ponadto makro można osadzić 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ą w przypadku jego przesuwania lub kopiowania.

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

      Program 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 makr, zobacz sekcję Opis makr). Po zakończeniu na karcie Projektowanie w grupie Zamykanie kliknij przycisk Zamknij, aby zamknąć Konstruktora makr. Jeśli program Access wyświetli monit o zapisanie zmian i zaktualizowanie właściwości, kliknij przycisk Tak, aby zapisać zmiany, lub przycisk Nie, aby odrzucić zmiany.

  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 sobie pomylić z uproszczonym językiem programowania, w którym można tworzyć 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.

Konstruktor makr programu Access 2010

Aby wyświetlić Konstruktora makr:

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

Początek strony

Opis kodu języka VBA

Podobnie jak makra, VBA umożliwia dodanie automatyzacji i innych funkcji do aplikacji programu Access. Język VBA można rozszerzyć za pomocą kontrolek innych firm, a także napisać 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: Do bazy danych sieci Web można dodać kod języka Visual Basic for Applications (VBA). Nie można jednak uruchomić tego kodu, gdy baza danych działa w przeglądarce sieci Web. Jeśli baza danych sieci Web zawiera kod VBA, przed uruchomieniem kodu należy otworzyć bazę danych sieci Web 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

Ten proces konwertuje na kod VBA wszystkie makra, do których odnosi się formularz lub raport (albo które są osadzone w formularzu lub raporcie) oraz dodaje kod VBA do modułu klasy formularza lub raportu. Moduł klasy staje się częścią formularza lub raportu i jest przenoszony wraz z formularzem lub raportem, jeśli został przeniesiony lub skopiowany.

  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 dowolne pole właściwości, w którym jest wyświetlany tekst [Procedura zdarzenia],a następnie kliknij przycisk 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 VBA jest umieszczany w module standardowym. W przeciwieństwie do modułu klasy moduł standardowy nie jest częścią formularza ani raportu. Najprawdopodobniej trzeba będzie skojarzyć funkcję z właściwością zdarzenia w formularzu, raporcie lub kontrolce, tak aby kod był uruchamiany dokładnie w każdym miejscu i czasie. W tym celu możesz skopiować kod VBA do modułu klasy, a następnie skojarzyć go z właściwością zdarzenia lub wykonać specjalne wywołanie z właściwości zdarzenia do standardowego modułu, korzystając z 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, które należy wykonać, aby dodać kod 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 pomogą Ci tworzyć umiejętności programowania.

Początek strony

Potrzebna dalsza pomoc?

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

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×