Wprowadzenie do programowania w programie Access

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Tworzenie nowej bazy danych zwykle rozpoczyna się od utworzenia obiektów bazy danych, takich jak tabele, formularze i raporty. W pewnym momencie może być konieczne dodanie programowania w celu zautomatyzowania procesów i połączenia tych obiektów. W tym artykule przedstawiono narzędzia programistyczne w programie Access.

W tym artykule

Co to jest programowanie?

W programie Access programowanie oznacza dodanie funkcji do bazy danych przy użyciu makr programu Access lub kodu Visual Basic for Applications (VBA). Można na przykład utworzyć formularz i raport, a następnie dodać do formularza przycisk polecenia, który otwiera raport po jego zaznaczeniu. W takim przypadku tworzysz makro lub VBA procedurę, a następnie ustawiasz OnClick właściwość zdarzenia przycisku polecenia, aby przycisk polecenia uruchamiał makro lub procedurę. W przypadku prostej operacji, takiej jak otwieranie raportu, możesz wykonać pracę za pomocą Kreatora przycisków poleceń lub wyłączyć kreatora i samodzielnie go zaprogramować.

Uwaga

W wielu programach pakietu Microsoft Office do odwoływania się do VBA kodu jest używany termin "makro". Może to pomylić użytkowników programu Access, ponieważ w programie Access termin "makro" odnosi się do nazwanej kolekcji akcji makr, które są zbierane za pomocą Konstruktora makr. Akcje makr programu Access reprezentują tylko podzbiór poleceń dostępnych w VBAsystemie . Konstruktor makr zapewnia bardziej ustrukturyzowany interfejs niż Edytor Visual Basic, dzięki czemu można dodawać programowanie do kontrolek i obiektów bez nauki VBA kodu. W artykułach Pomocy programu Access makra programu Access są nazywane makrami. VBA jest nazywany VBA kodem, funkcją lub procedurą. VBA kod jest przechowywany w modułach klas, które są częścią poszczególnych formularzy lub raportów i zwykle zawierają kod tylko dla tych obiektów, a także w modułach, które nie są powiązane z określonymi obiektami i zwykle zawierają kod globalny, którego można używać w całej bazie danych.

Obiekty, takie jak formularze i raporty, oraz kontrolki, takie jak przyciski poleceń i pola tekstowe, mają 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 zmiana danych w polu tekstowym. Zdarzenia mogą być również wyzwalane przez czynniki spoza programu Access, takie jak zdarzenia systemowe, makra lub procedury dołączone do innych zdarzeń. Baza danych może stać się złożona, jeśli do wielu właściwości zdarzeń wielu obiektów zostanie dodanych wiele makr lub procedur. W większości przypadków jednak możesz uzyskać żądane wyniki, używając bardzo małej liczby programów.

Początek strony

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

Decyzja o używaniu makr lub obu tych typów makr zależy głównie od tego, VBAjak planujesz wdrożyć lub rozpowszechnić bazę danych. Jeśli na przykład baza danych jest przechowywana na komputerze, jesteś jedynym użytkownikem i dobrze znasz VBA kod, możesz zdecydować się na użycie VBA jej do większości zadań programistycznych. Jeśli jednak planujesz udostępnić bazę danych innym osobom z serwera plików, warto unikać korzystania z tej VBA bazy danych z powodu problemów z zabezpieczeniami.

Określ swoją decyzję o używaniu makr lub VBA kodu na podstawie dwóch kwestii: zabezpieczeń i żądanych funkcji. Zabezpieczenia mają znaczenie, ponieważ VBA mogą być używane do tworzenia kodu, który narusza dane lub szkodzi plikom na komputerze. W przypadku korzystania z bazy danych utworzonej przez inną osobę włącz VBA kod tylko wtedy, gdy wiadomo, że baza danych pochodzi z zaufanego źródła. Podczas tworzenia bazy danych, z którą będą korzystać inne osoby, unikaj dołączania narzędzi programistycznych wymagających jawnie zaufanej bazy danych. Ogólne techniki unikania tego wymogu pojawiają się w dalszej części tej sekcji.

Aby zabezpieczyć bazę danych, spróbuj używać makr, gdy to możliwe, i używaj VBA ich tylko do wykonywania operacji, których nie można wykonać za pomocą akcji makr. Ponadto spróbuj użyć tylko akcji makr, które nie wymagają, aby baza danych była zaufana, zanim będą mogły zostać uruchomione. Ograniczenie akcji makr w ten sposób pomaga 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

Program Access zawiera wiele akcji makr, które umożliwiają tworzenie makr o większej mocy, niż były dozwolone we wcześniejszych wersjach programu 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 programu Access te funkcje były dostępne tylko w systemie VBA. Makro można także osadzić bezpośrednio we właściwości zdarzenia obiektu lub kontrolki. Osadzone makro staje się częścią obiektu lub kontrolki i pozostaje z nim, jeśli obiekt lub kontrolka zostanie przeniesiona lub skopiowana.

Makra umożliwiają łatwą obsługę wielu zadań programistycznych, takich jak otwieranie i zamykanie formularzy oraz uruchamianie raportów. Obiekty bazy danych, takie jak formularze i raporty, można szybko powiązać, ponieważ składnia jest mało do zapamiętania. 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 lub VBA kodem, nawet jeśli formularz startowy został wyznaczony w oknie dialogowym Opcje programu Access i dołączono makro lub VBA kod do formularza OnOpen lub OnLoad zdarzenia.

Aby uzyskać więcej informacji na temat tworzenia makr, zobacz Opis makr.

Zagadnienia dotyczące kodu języka VBA

Użyj VBA zamiast makr, jeśli chcesz wykonać dowolną z następujących czynności:

  • Korzystaj z wbudowanych funkcji lub twórz własne. Program Access zawiera wiele wbudowanych funkcji, takich jak IPmt, które obliczają wypłatę odsetek. Za pomocą tych funkcji można wykonywać obliczenia bez tworzenia skomplikowanych wyrażeń. Za pomocą VBAusługi można również tworzyć własne funkcje do wykonywania obliczeń wykraczających poza możliwości wyrażenia lub zamieniania złożonych wyrażeń. Ponadto za pomocą funkcji można tworzyć wyrażenia w celu wykonania jednej operacji na wielu obiektach.
  • Tworzenie obiektów i manipulowanie nimi. W większości przypadków najłatwiej jest utworzyć i zmodyfikować obiekt w widoku projektu tego obiektu. W niektórych sytuacjach jednak może być konieczne manipulowanie definicją obiektu w kodzie. Za pomocą narzędzia VBAmożna manipulować wszystkimi obiektami w bazie danych, a także z samą bazą danych.
  • Wykonywanie akcji na poziomie systemu. Możesz wykonać RunApp akcję w makkra, aby uruchomić inny program, taki jak Microsoft Excel, z poziomu programu Access, ale nie możesz użyć makra, aby wykonać wiele innych czynności poza programem Access. Za pomocą programu VBAmożna sprawdzić, czy plik istnieje na komputerze, za pomocą automatyzacji lub dynamicznej wymiany danych (DDE) komunikować się z innymi programami opartymi na systemie Microsoft Windows, takimi jak program Excel, oraz wywołać funkcje w bibliotekach połączonych dynamicznie systemu Windows (DLLs).
  • Manipulowanie rekordami pojedynczo. Za pomocą tego zestawu VBA można przechodzić między rekordami po jednym rekordzie naraz i wykonywać operacje na każdym rekordzie. Natomiast makra działają jednocześnie z całymi zestawami rekordów.

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 OnClick właściwości przycisku polecenia. W pliku .mdb lub .adp w kreatorze jest tworzony VBA kod, ponieważ osadzone makra nie są dostępne w tych formatach plików. W obu przypadkach możesz zmodyfikować lub ulepszyć makro lub VBA kod, aby lepiej odpowiadało Twoim 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 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 .

  3. Na karcie Projekt formularza w galerii Kontrolkikliknij 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. Ten krok jest opcjonalny i ta nazwa nie jest wyświetlana na przycisku polecenia. Warto jednak wprowadzić zrozumiałą nazwę, aby w razie potrzeby późniejszego odwołania się do przycisku polecenia, na przykład podczas ustawiania kolejności tabulacji kontrolek w formularzu, znacznie łatwiej odróżnić przyciski poleceń. Jeśli na przykład przycisk polecenia zamknie formularz, możesz go cmdClose nazwać lub .CommandClose

  8. Kliknij pozycję Zakończ. Program Access utworzy przycisk polecenia w formularzu.

  9. Jeśli chcesz sprawdzić, co kreator zaprogramował dla Ciebie, wykonaj następujące czynności opcjonalne:

    1. Jeśli arkusz właściwości nie jest jeszcze wyświetlany, 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 .

      Program Access uruchomi Konstruktora makr i wyświetli makro utworzone przez kreatora. Jeśli chcesz, możesz edytować makro. Aby uzyskać więcej informacji, zobacz Opis makr. Po zakończeniu na karcie Projektowanie makr 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 zapisać zmiany, lub przycisk Nie , aby odrzucić zmiany.

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

Początek strony

Opis makr

Makro to narzędzie umożliwiające automatyzowanie zadań i dodawanie funkcji do formularzy, raportów i kontrolek. Jeśli na przykład dodasz przycisk polecenia do formularza, możesz skojarzyć właściwość zdarzenia przycisku OnClick z makrem zawierającym polecenia, które ma wykonywać ten przycisk za każdym razem, gdy jest zaznaczony.

Makra programu Access można uznać za uproszczony język programowania, w którym jest tworzony 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 VBA module. Makra udostępniają podzbiór poleceń dostępnych w VBAsystemie , a większości osób tworzenie makra jest łatwiejsze niż pisanie VBA kodu.

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.

Początek strony

Opis kodu języka VBA

Podobnie jak makra, VBA można dodać automatyzację i inne funkcje do aplikacji programu Access. Możesz rozszerzyć VBA zakres za pomocą kontrolek innych firm i pisać własne funkcje i procedury dla określonych potrzeb.

Szybkim sposobem VBA rozpoczęcia pracy jest utworzenie makra programu Access, a następnie przekonwertowanie go na VBA kod. Instrukcje dotyczące tej czynności znajdują się w temacie Konwertowanie makr na kod VBA. Ta funkcja tworzy nowy VBA moduł wykonujący równoważne operacje w makkrach. 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 uruchomić Pomoc dla deweloperów programu Access i dowiedzieć się więcej o poszczególnych słowach 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 VBA moduły 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 również konwertować makra globalne, które nie są dołączone do określonego formularza lub raportu.

Konwertowanie makr dołączonych do formularza lub raportu

Ten proces jest konwertowany na VBA wszelkie makra, do których odwołuje się formularz lub raport albo którykolwiek z jego kontrolek, albo osadzony w tym formularzu lub raporcie, i dodaje VBA kod 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.

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

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

  3. W oknie dialogowym Konwertowanie makr formularza lub Konwertuj makra raportu określ, czy program Access ma dodać kod obsługi błędów do generowanych przez niego funkcji. Jeśli makra zawierają komentarze, określ również, czy te komentarze mają być zawarte 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 zmienia również właściwości zdarzeń formularza lub raportu, tak aby uruchamiały nowe VBA procedury zamiast makr.

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

    1. Gdy formularz lub raport jest nadal otwarty w widoku projektu, jeśli 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 z wyświetlonym [Event Procedure]przyciskiem , a następnie kliknij przycisk Konstruuj . 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 makr 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ć VBA kod:

    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 Converted Macro-<macro name> dwukrotnie moduł. 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 VBAkod 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 do modułu VBA klasy, a następnie skojarzyć go z właściwością zdarzenia lub wykonać specjalne połączenie z właściwości zdarzenia do modułu standardowego, wykonując poniższą procedurę.

  1. W Edytorze Visual Basic zanotuj nazwę funkcji. Jeśli na przykład zostało przekonwertowane makro o nazwie MyMacro, nazwa funkcji będzie mieć MyMacro()wartość .
  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świetlany, 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 =MyMacro(). 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.

Teraz znasz podstawowe kroki dodawania VBA kodu do bazy danych. W tym artykule opisano tylko podstawowe informacje o tym, jak rozpocząć pracę. Wiele doskonałych książek referencyjnych i zasobów online może 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

Kolejność zdarzeń dla obiektów bazy danych

Początek strony