• Gdzie jest edytor kodu VBA?
Uruchamiamy MS Access, tworzymy nową bazę, lub otwieramy istniejącą, a następnie wciskamy kombinację klawiszy
lewy Alt+F11
. Oczom naszym ukazuje się edytor VBA.

Klikamy prawym przyciskiem myszy nad okienkiem „Project” zazwyczaj zadokowanym po lewej stronie okna edytora. Pojawia się „Menu podręczne” w którym najeżdżamy myszką na pozycję „Insert”, a następnie pozycję podmenu „Module” i klikamy lewym przyciskiem myszy.

Po prawej stronie, w oknie edytora VBA, oczom naszym ukazuje się okno, w którym możemy napisać sławny
program (funkcję) „Hello world”
.

Aż ręce świerzbią, by uruchomić ten program (funkcję). Wciskamy więc kombinację klawiszy Ctrl+G, lub wybieramy polecenie „View/Immediate Window” w edytorze kodu VBA. W nowo otwartym oknie „Immediate” wpisujemy następującą instrukcję:
?MojaFunkcja
(znak ? na początku jest niezbędny) i naciskamy Enter:

Wszystko zadziałało prawidłowo. Poniżej pojawił się napis „Hello world”.
Jest super. Jesteśmy WIELCY. Takie to proste.
No dobrze, to zmieńmy funkcję tak, by obliczała sumę trzech zmiennych, którym przypiszemy jakieś wartości.
Po napisaniu funkcji otwieramy okno „Immediate” (Ctrl+G) i ponownie wpisujemy tekst:
?MojaFunkcja

MojaFunkcja () powinna zwrócić jako wynik liczbę 1110, a zwraca tylko 10. Gdzie się podziało 1100.
Gdzie się podziało brakujące 1100?
Spróbujmy znaleźć brakujące 1100, korzystając z dyrektywy Option Explicit. W tym celu wybierzmy polecenie „Tools/Options” w edytorze kodu VBA. Pojawi się okno „Options”:

Na zakładce „Editor” zaznaczmy (niektórzy mówią - zaptaszkujmy)
pole wyboru Require Variable Declaration
. Spowoduje to automatyczne wstawianie dyrektywy
Option Explicit we wszystkich nowo tworzonych modułach VBA aplikacji Accessa i wymusi
jawne deklarowanie zmiennych. We wcześniej utworzonych modułach, aby wymusić jawne deklarowanie zmiennych, dyrektywę
Option Explicit należy ręcznie wpisać w sekcji deklaracji modułu.
Brak dyrektywy Option Explicit w sekcji deklaracji modułu powoduje, że każde wystąpienie
nowego identyfikatora, powoduje utworzenie nowej zmiennej o takiej nazwie. Kod pisany bez tej dyrektywy jest bardzo podatny na trudne
do wykrycia błędy spowodowane tzw. literówkami.
Po dopisaniu w sekcji deklaracji modułu dyrektywy Option Explicit i po uruchomieniu polecenia
„Debug/Compile” w edytorze kodu VBA, kompilator wyświetla komunikat:

że zmienna nie jest zadeklarowana i podświetla w oknie modułu zmienną liczba1. Po jawnym zadeklarowaniu trzech zmiennych liczba1, liczba2, liczba3 za pomocą instrukcji deklaracji z użyciem słowa kluczowego Dim i ponownym skompilowaniu kodu, kompilator ponownie nas się czepia wyświetlając komunikat

informując o braku deklaracji zmiennej i podświetla „liczbę” l00, która w wyniku tzw. „literówki” nie jest liczbą, gdyż pierwszy znak to litera "l". Po zamianie litery „l” na cyfrę „1” i ponownym skompilowaniu kodu, kompilator ponownie wyświetla komunikat

informując o braku deklaracji zmiennej i podświetla zmienną „liczbal”. I rzeczywiście, nie jest to wcześniej zadeklarowana zmienna „liczba1”. Ponowna literówka, ostatnim znakiem w nazwie tej nowej zmiennej jest litera „l”. Poprawiamy nazwę zmiennej i ponownie uruchamiamy funkcję.

Pełny sukces. Znaleźliśmy brakujące 1100. Czy jest już SUPER i wszystko OK. Potestujmy dalej i przypiszmy do pierwszej zmiennej „liczba1” liczbę 1000 ujętą w cudzysłów.

Jest dobrze. Próbujmy dalej. Do drugiej zmiennej „liczba2” także przypiszmy liczbę wziętą w cudzysłów.

No i ZONK! No to weźmy wszystkie liczby w cudzysłów.

No i jeszcze większy ZONK! No to ... przestańmy cokolwiek robić, bo nic nam nie wychodzi.
Może najlepiej będzie uruchomić Windowsowego Painta i policzyć wszystko w słupku.

Teraz wszystko jest w jak najlepszym porządku ! Miało być 1110 i jest 1110.
Żarty, żartami, ale poniżej zamieszczam listing funkcji MojaFunkcja () obliczająca sumę trzech liczb.
Option Compare Database Option Explicit Public Function MojaFunkcja() As Long Dim lngLiczba1 As Long Dim lngLiczba2 As Long Dim lngLiczba3 As Long lngLiczba1 = 1000 lngLiczba2 = 100 lngLiczba3 = 10 MojaFunkcja = lngLiczba1 + lngLiczba2 + lngLiczba3 End Function
Dlaczego ma taką postać i czy funkcja taka ma sens, będzie (a raczej, chyba będzie) na następnych stronach.
A może poniższa funkcja jest lepsza ?

Mechanizm
IntelliSense
- podpowiadanie właściwości, metod i słów kluczowych.
Korzyści wynikające z zastosowania dyrektywy Option Explicit
-
Po zadeklarowaniu zmiennych możemy korzystać z mechanizmu
IntelliSense
- podpowiadanie właściwości, metod i słów kluczowych, przez co łatwiej można pisać kod. - Unikniemy tzw. literówek (błędnie wpisanych nazw zmiennych)
- Ułatwimy sobie wychwytywanie błędów wynikających np. z niezgodność typu zmiennych.
- Poprawiamy czytelność kodu, przez co łatwiej będzie można dokonać analizy kodu.
- Po jawnym zadeklarowaniu zmiennych i ich typów, wykonywanie kodu jest szybsze i wykorzystanie pamięci jest efektywniejsze. Domyślny typ Variant powoduje, że VBA wielokrotnie wykonuje sprawdzenie typu danych i zużywa więcej pamięci i czasu, niż jest to konieczne. Jeżeli jawnie zadeklarujemy typ danych, VBA nie musi określać typu danych i może od razu zarezerwować taką ilość pamięci, która będzie optymalna do przechowywania zmiennej danego typu.