Opcje modułu VBA

Na początku każdego modułu w edytorze VBA zawsze pierwsze linijki kodu  związane są z jego opcjami. Standardowo pierwsza linia to:

    • Option Compare
      opcja porównania ciągów

        • Option Compare Binary
          cyfrowe porównanie znaków tekstowych, gdzie:
          np. “A” < “a” , “12” > “112”
        • Option Compare Text
          tekstowe porównanie znaków tekstowych, gdzie:
          np. “A” = “a”
        • Option Compare Database
          (opcja domyślna)

          porównanie znaków tekstowych uzależnione od strony kodowej i ustawień regionalnych komputera. Najczęściej jest to zgodne z właściwościami Option Compare Text, czyli
          np. “A” = “a”

    • Option Explicit
      opcja wymuszająca deklarację zmiennych w funkcjach i procedurach zapisanych w module czyli każda ze zmiennych musi być zapisana w bloku np.
      Dim Zmienna1 as Integer
      Dim Zmienna2 as Date
      Domyślnie nie jest wpisana do modułu, ale warto dopisać tę linijką. W ten sposób jeżeli gdzieś  w kodzie pojawi się literówka – od razy wyskoczy to przy kompilacji kodu, gdyż niezadeklarowana zmienna nie zostanie zaakceptowana.
      Opcję tę można włączyć na stałe jako domyślne ustawienie modułu, zaznaczając checkbox w edytorze VBA Tool–> Options…
    • Option Private Module
      ukrywanie funkcji i procedur zapisanych w module.
      Po wpisaniu tej linijki na początku modułu zapisane w nim publiczne funkcje/procedury są widziane w innych modułach kodu, ale nie są dostępne w kreatorze wyrażeń Accessa.

 

Kurs Access - programowanie w VBA

 

Funkcja NZ

Funkcja NZ jest moją ulubioną funkcją Accessa, często ją wykorzystuję – zarówno w wyrażeniach jak i w kodzie VBA. Funkcję można opisać jako wartość jeśli null.
Argumenty funkcji to:

    • wartość pola – wartość pobrana z tabeli, kwerendy lub wyrażenia.
      Typ danych – variant.
    • wartość jeśli null – czyli co wstawić, jeżeli wartość pola będzie nullem.
      Typ danych – variant, uzależniony od typu pola.

W praktyce najczęściej stosuje się formuły:

    • =nz(wartosc_pola;O) – dla wartości liczbowych
    • =nz(wartosc_pola;””) – dla wartości tekstowych

Odpowiednikiem funkcji nz w VBA jest funkcja o tej samej nazwie.


 

Kurs Access 2010 esencja

 

Null to nie zero

Projektując bazę danych Access (choć nie tylko, tak jest praktycznie we wszystkich systemach bazodanowych) trzeba pamiętać o tym, że puste pole tabeli ma wartość null czyli brak wartości. Nie jest to odpowiednik pustej komórki w Excelu, gdzie  w zależności od typu danych taka wartość jest uznawana za zero czy pusty ciąg tekstowy i w ten sposób może być argumentem funkcji. W Accessie jeśli w polu jest null, wstawiając pole do formuły trzeba zastosować funkcję IsNull lub nz i w ten sposób zabezpieczyć się przed błędem.
Dotyczy to zarówno wyrażeń jak i kodu VBA.