Nazwy kodowe modułów

Widoczne w edytorze VBA moduły mają swoje własne, unikalne nazwy. Po dodaniu nowego modułu, przy jego zapisaniu od razu pojawia się okienko, gdzie można wpisać jego nazwę. 

Tak zapisaną nazwę modułu można później zmienić. Wystarczy zaznaczyć dany moduł i nacisnąć klawisz funkcyjny F4

W oknie właściwości widoczna jest nazwa pierwotnie zapisana (w tym przykładzie domyślna), ale można ją zmienić na inną.

W ten sposób można zmieniać tylko nazwy modułów ogólnych, nazwy modułów prywatnych poszczególnych obiektów (formularz, raport) mają stałe nazwy i nie można ich zmieniać. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

 

Edytor VBA – prywatne i publiczne

W edytorze  VBA każdy moduły własne obiektów ma charakter prywatny. Oznacza to, że wszystkie zapisane w nim funkcje i procedury są dostępne tylko z poziomu VBA.

Moduły ogólne są domyślnie publicznie. Zdefiniowane w nich procedury i funkcje publiczne są widoczne również z poziomu Accessa (m.in. w kreatorze wyrażeń). Funkcje i procedury prywatne mogą być wykorzystane jedynie z poziomu procedur zapisanych w tym samym module. 

Np. taka funkcje w module ogólnym:

Public Function PierwszyNumer()
   'funkcja publiczna
Pierwszy = DFirst(„NumerKatalogowy”, „TabelaKsiazki”, „DataP is null”)
End Function


Private Function OstatniNumer()
   'funkcja prywatna
OstatniNumer = DLast(„NumerKatalogowy”, „TabelaKsiazki”, „DataP is null”)
End Function

W kreatorze wyrażeń wygląda to tak:

kliknij, aby powiększyć

W bazie Biblioteka, w module ModuleFunction  widoczna jest tylko jedna funkcja – zdeklarowana jako Public. Prywatna funkcja OstatniNumer nie jest tu widoczna, może być wykorzystana tylko w obrębie tego samego modułu. 

Przy bardziej rozbudowanych projektach i  wielu procedurach w kodzie może być więcej modułów ogólnych z różnymi procedurami i funkcjami. Nie wszystkie z nich muszą być widoczne i dostępne również bezpośrednio w Accessie, czasem warto je „utajnić”. Wystarczy na początku modułu ogólnego wstawić Option Private Module

kliknij, aby powiekszyć

Od tej pory – wszystkie funkcje i procedury publiczne w takim module będą dostępne z innych modułów, ale nie w Accessie. 
W praktyce zawsze tak robię, porządkując funkcje i procedury i część z nich umieszczając je modułach prywatnych, a część – publicznych. Zmieniam też nazwy modułów, żeby się nie pogubić i utrzymać porządek w kodzie. 
Np. tak:

kliknij, aby powiększyć

 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Zdarzenia formularza

Zdarzenia formularza  to makra i procedury uruchamiane automatycznie na skutek któregoś z działań tego formularza. 
Procedury VBA znajdują się w module własnym formularza. 
Przypisujemy je w zakładce Zdarzenia  Arkusza właściwości formularza.

Do każdego zdarzenia możemy przypisać po nazwie konkretne makro zzapisane w aplikacji:

kliknij, aby powiększyć

Można też uruchomić konstruktora:

Istnieją tu 3 możliwości:

    • Konstruktor makr
      w nowym oknie definiujemy makro. Po zapisaniu nie jest ono widoczne w grupie makr w oknie nawigacji i nie można go wykorzystać w innych formularzach. W arkuszu właściwości będzie widoczne jako makro osadzone.


      kliknij, aby powiększyć
    • Konstruktor wyrażeń 
      – w nowym oknie możemy wybrać dowolną funkcję lub metodę

    • Konstruktor kodu
      – przejście do edytora VBA, do modułu formularza

A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Moduły VBA

Moduły VBA w aplikacji Access to obiekty VBA, w których są zapisane wszystkie procedury i funkcje stworzone w kodzie VBA.
Dwukrotne kliknięcie w moduł powoduje automatyczne przejście do okna eksploatora projektu. Oczywiście można tam wejść również poprzez przycisk w grupie opcji Makra i kod na karcie Tworzenie czy też naciśnięcie przycisków Alt+F11.

 

Każdy z obiektów Accessa typu formularz czy raport ma swój własny moduł, w którym są zapisywane wszystkie zdarzenia z nim związane. Oprócz tego w projekcie są moduły ogólne, do których trafiają wszystkie przekonwertowane  makra. Moduły ogólne mogą być  też wstawiane poprzez menu edytora VBA:

 

Wykorzystując kod VBA – możliwości jest już naprawdę mnóstwo. Nawet sam Microsoft zaleca konwersję makr na kod VBA. Warto.

 

Obiekty aplikacji Access

Podstawowe obiekty aplikacji Access:

 

  • Tabele
    miejsce, gdzie zapisywane są wszystkie dane.
  • Kwerendy
    obiekty związane z filtrowaniem i sortowaniem danych, realizowane przez wysyłanie zapytań do tabel (kodem SQL). Są też kwerendy funkcjonalne automatycznie modyfikujące/usuwające/dodające dane tabel
  • Formularze
    obiekty prezentujące dane na ekranie w przyjaznej formie graficznej. Oprócz danych można wstawiać różnego rodzaju obiekty typu przyciski, obrazy itp.
  • Raporty
    podobnie jak formularze pozwalają prezentację danych, ale w formie przystosowanej do wydruku
  • Makra
    zdefiniowane procedury automatyzujące pracę
  • Moduły
    moduły kodu VBA,  podobnie jak makra, pozwalające na automatyzację działania poszczególnych elementów aplikacji