Wprowadzenie do programowania w programie Access

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

Tworząc nową bazę danych, zwykle zaczynasz od utworzenia obiektów bazy danych, takich jak tabele, formularze i raporty. W pewnym momencie może być konieczne dodanie kodowania, aby zautomatyzować procesy i połączyć te obiekty. Ten artykuł zawiera wprowadzenie do narzędzi programistycznych dostępnych w programie Access.

W tym artykule

Co to jest programowanie?

Programowanie w programie Access oznacza dodawanie funkcji do bazy danych za pomocą makr programu Access lub kodu języka Visual Basic for ApplicationsVBA. Można na przykład utworzyć formularz i raport, a następnie dodać do formularza przycisk polecenia, który po zaznaczeniu będzie otwierał raport. W takim przypadku należy utworzyć makro lub VBA procedurę, a następnie ustawić właściwość zdarzenia przycisku OnClick polecenia, aby przycisk polecenia uruchamiał makro lub procedurę. W przypadku prostej operacji, takiej jak otwieranie raportu, można wykonać pracę za pomocą Kreatora przycisków poleceń lub można wyłączyć kreatora i zaprogramować go samodzielnie.

Uwaga

W wielu programach pakietu Microsoft Office termin "makro" oznacza VBA kod. Może to wprowadzać w błąd użytkowników programu Access, ponieważ w tym programie termin "makro" oznacza nazwaną kolekcję akcji makr utworzoną za pomocą Konstruktora makr. Akcje makr programu Access to tylko podzestaw poleceń dostępnych w VBAprogramie . Konstruktor makr udostępnia bardziej ustrukturalizowany interfejs niż Edytor Visual Basic, dzięki czemu można dodawać kod do kontrolek i obiektów bez konieczności uczenia się kodu VBA . W artykułach Pomocy programu Access makra programu Access są nazywane makrami. VBA Kod nazywa się VBA kodem, funkcją lub procedurą. VBA Kod jest przechowywany w modułach klas, które są częścią pojedynczych formularzy lub raportów i zazwyczaj zawierają kod tylko dla tych obiektów, oraz 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ą też być wyzwalane przez czynniki spoza programu 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 wielu właściwości zdarzeń dla wielu obiektów. Jednak w większości przypadków można uzyskać właściwe wyniki przy użyciu 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, VBAczy obu metod zależy głównie od planowanego sposobu wdrażania lub rozpowszechniania bazy danych. Jeśli na przykład baza danych jest przechowywana na Twoim komputerze, jesteś jedynym użytkownikiem i swobodnie posługujesz VBA się kodem, możesz używać go do VBA większości zadań programistycznych. Jeśli jednak chcesz udostępnić bazę danych innym osobom z serwera plików, możesz unikać jej używania VBA ze względu na bezpieczeństwo.

Decyzję o użyciu makr lub VBA kodu należy podjąć na podstawie dwóch czynników: potrzebnych zabezpieczeń i funkcji. Bezpieczeństwo ma znaczenie, ponieważ VBA może służyć do tworzenia kodu, który może naruszać dane lub uszkadzać pliki na komputerze. W przypadku korzystania z bazy danych utworzonej przez inną osobę włączaj VBA kod tylko wtedy, gdy wiesz, że baza danych pochodzi z zaufanego źródła. Gdy tworzysz bazę danych, z której będą korzystać inne osoby, unikaj dołączania narzędzi programistycznych wymagających od użytkownika jawnego zaufania tej bazy danych. Ogólne techniki pozwalające uniknąć tego wymogu znajdują się w dalszej części tej sekcji.

Aby lepiej zabezpieczyć bazę danych, spróbuj używać makr, gdy to możliwe, i VBA tylko do operacji, których nie można wykonać za pomocą akcji makr. Ponadto przed uruchomieniem należy używać tylko tych akcji makr, które przed uruchomieniem nie wymagają, aby baza danych była zaufana. Takie ograniczenie akcji makr pozwala użytkownikom mieć pewność, że baza danych nie zawiera żadnego kodu, który może uszkodzić dane lub inne pliki na komputerze.

Zagadnienia dotyczące makr

Program Access zawiera wiele akcji makr, które umożliwiają tworzenie makr o bardziej zaawansowanych możliwościach niż były dozwolone we wcześniejszych wersjach programu Access. Na przykład teraz można tworzyć globalne zmienne tymczasowe i używać ich za pomocą akcji makr, a także działać sprawniej dzięki nowym akcjom makr obsługi błędów. We wcześniejszych wersjach programu Access te funkcje były dostępne tylko w rozszerzeniu .VBA Można także bezpośrednio osadzić makro we właściwości zdarzenia obiektu lub kontrolki. Makro osadzone staje się częścią obiektu lub kontrolki i pozostaje z nimi podczas przenoszenia lub kopiowania tego obiektu lub kontrolki.

Makra umożliwiają łatwą obsługę wielu zadań programistycznych, takich jak otwieranie i zamykanie formularzy oraz uruchamianie raportów. Można szybko powiązać utworzone obiekty bazy danych, takie jak formularze i raporty, ponieważ składnia jest zbyt mało wymagana 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

    Uruchamianie AutoExec makra przed innymi makrami lub VBA kodem, nawet jeśli w oknie dialogowym Opcje programu Access został wyznaczony formularz startowy i do zdarzenia tego formularza OnOpen lub OnLoad kodu dołączono makro lub VBA kod.

Aby uzyskać więcej informacji na temat konstruowania 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:

  • Używaj funkcji wbudowanych lub utwórz własne. Program Access zawiera wiele funkcji wbudowanych, takich jak IPmt, która oblicza wysokość spłaty odsetek. Za pomocą tych funkcji można wykonywać obliczenia bez tworzenia skomplikowanych wyrażeń. Za pomocą VBAprogramu można również tworzyć własne funkcje do wykonywania obliczeń, które wykraczają poza możliwości wyrażenia lub zastępują złożone wyrażenia. Ponadto za pomocą funkcji można tworzyć wyrażenia w celu wykonania jednej operacji na wielu obiektach.
  • Tworzenie lub modyfikowanie obiektów. Zazwyczaj najłatwiej jest tworzyć i modyfikować obiekt w jego widoku projektu. Jednak w niektórych sytuacjach może być konieczna zmiana definicji obiektu w kodzie. Za pomocą VBAprogramu można manipulować wszystkimi obiektami w bazie danych, a także nią samą.
  • Wykonywanie działań na poziomie systemu. Można wykonać akcję RunApp makra 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ą programu VBAmożna sprawdzić, czy plik istnieje na komputerze, użyć automatyzacji lub dynamicznej wymiany danych (DDE) do komunikowania się z innymi programami systemu Microsoft Windows, takimi jak program Excel, oraz wywołać funkcje znajdujące się w bibliotekach dołączanych dynamicznie systemu Windows (DLLs).
  • Manipulowanie pojedynczymi rekordami. Tej funkcji można VBA używać do przechodzenia przez zestaw rekordów pojedynczo i wykonywania operacji na każdym z nich. 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 OnClick właściwości przycisku polecenia. .mdb W pliku OR .adp kreator tworzy VBA kod, ponieważ makra osadzone nie są dostępne w tych formatach plików. W obu przypadkach można następnie zmodyfikować lub udoskonalić makro lub VBA kod, 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 Projekt formularza kliknij strzałkę w dół, aby wyświetlić galerię kontrolek , a następnie upewnij się, że jest zaznaczona opcja Użyj kreatorów kontrolek .

  3. Na karcie Projekt formularza w galerii kontrolek 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. Ten krok jest opcjonalny 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, na przykład podczas ustawiania kolejności tabulacji dla kontrolek w formularzu. Jeśli na przykład kliknięcie przycisku polecenia powoduje zamknięcie formularza, możesz nadać mu cmdClose nazwę lub CommandClose.

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

  9. Aby zobaczyć, co zostało zaprogramowane przez kreatora, 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 .

      W programie Access zostanie uruchomiony Konstruktor makr i wyświetlone makro utworzone przez kreatora. W razie potrzeby możesz edytować to makro. Aby uzyskać więcej informacji, zobacz Opis makr. Po zakończeniu na karcie Projekt makra 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 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. Na przykład po dodaniu przycisku polecenia do formularza właściwość zdarzenia przycisku OnClick można skojarzyć z makrem zawierającym polecenia, które ma wykonywać przycisk, gdy jest zaznaczony.

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ą dodawanie funkcji do formularzy, raportów i kontrolek bez konieczności pisania kodu w VBA module. Makra stanowią podzestaw poleceń dostępnych w VBAprogramie i dla większości osób konstruowanie makr 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 umożliwia dodanie automatyzacji i innych funkcji do aplikacji programu Access. Rozszerzenie funkcji można wykonać VBA za pomocą kontrolek innych producentów, a także można pisać własne funkcje i procedury dostosowane do określonych potrzeb.

Szybkim sposobem na rozpoczęcie VBA pracy jest skonstruowanie w pierwszej kolejności makra programu Access, a następnie przekonwertowanie go na VBA kod. Instrukcje dotyczące wykonywania tej czynności znajdują się w sekcji Konwertowanie makr na kod języka VBA. Ta funkcja tworzy nowy VBA moduł wykonujący 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 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 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 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 VBA dowolne makra, do których odwołuje się formularz lub raport albo dowolna kontrolka 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 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 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 Konwertowanie makr raportu zdecyduj, czy program Access ma dodać kod obsługi błędów do generowanych przez siebie funkcji. Jeśli makra zawierają komentarze, określ również, czy te komentarze mają być uwzględniane 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 VBA procedury zamiast makr.

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

    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 wyświetlonym polu właściwości, a [Event Procedure]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 makra 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 dwukrotnie moduł Converted Macro-<macro name> . 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 VBA, VBA kod jest umieszczany w standardowym module. W przeciwieństwie do modułu klasy moduł standardowy nie jest częścią formularza ani raportu. Prawdopodobnie zechcesz skojarzyć funkcję z właściwością zdarzenia w formularzu, raporcie lub kontrolce, aby kod był uruchamiany dokładnie wtedy, gdy chcesz i gdzie chcesz. W tym celu możesz skopiować VBA kod 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 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 następująca MyMacro(): .
  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 =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.

Znasz już podstawowe czynności związane z dodawaniem VBA kodu do bazy danych. W tym artykule opisano tylko podstawowe informacje potrzebne do rozpoczęcia pracy. Wiele doskonałych książek referencyjnych i zasobów online może pomóc w rozwijaniu 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