Moduły w DBMS MS Access. Wprowadzenie do języka Visual Basic dla aplikacji

Moduły w SZBD MS Access służą do rozszerzenia możliwości systemu zarządzania bazami danych MS Access o procedury i funkcje (procedury funkcyjne) zdefiniowane przez projektanta bazy danych, których nie przewidzieli projektanci SZBD.

Pisanie modułów wymaga znajomości języka VBA (Visual Basic for Applications). Jest to język komputerowy, który pozwala na pisanie programów będących rozszerzeniem aplikacji pakietu biurowego MS Office, w szczególności edytora tekstu Word, arkusza kalkulacyjnego Excel, SZBD Access. Język VBA jest podzbiorem języka Visual Basic posiadającym następujące cechy:

  • służy do powiązania obiektów bazy danych w jedną, spójną aplikację
  • zawiera standardowe konstrukcje programistyczne, jak IF..THEN..ELSEFORCASE, procedury, zmienne

Stosuje się dwa typy procedur:

  1. funkcje (procedury funkcyjne (function)) - zwraca wartość, może być używana w wyrażeniach, np. year(date) zwraca rok pobrany z daty
  2. procedury (podprogramy (sub)) - mogą występować jako procedury zdarzeń (zdarzeniem może być np. kliknięcie na przycisku) w formularzach i zdarzeniach

Moduł jest zbiorem deklaracji i definicji procedur i funkcji języka VBA przechowywanych razem jako całość. W SZBD MS Access występują dwa rodzaje modułów:

  • Moduły (zwane modułami standardardowymi)
  • Moduły klas

Kod VBA, czyli procedury i funkcje umieszczone w module standardowym są dostępne z każdego poziomu bazy danych Access. Moduły klasy natomiast zawierają procedury lub funkcje związane z określonym obiektem, np. formularzem, raportem, kwerendą, dla którego zostały zaprojektowane.

Funkcjonalność modułu klasy opiera się najczęściej na wykonaniu zawartego w nim kodu w odpowiedzi na dane zdarzenie. W środowisku VBA można wyróżnić także procedury typu public (publiczne), które mogą być wywoływane w dowolnym miejscu aplikacji (jest to opcja domyślna). Procedury prywatne (private) zaś są elementem danego modułu i nie mogą być wywołane poza nim. Wszystkie procedury zdarzeń są prywatne.

Podobnie jak w innych językach programowania, w VBA można definiować typy zmiennych i stałych. Można tu wyróżnić następujące typy zmiennych:

  • typy lokalne dla procedury, deklarowane w procedurze po słowie Dim
  • typy lokalne dla modułu, dostępne we wszystkich procedurach i funkcjach, deklarowane po słowie kluczowym Private
  • typy globalne, deklarowane po słowie kluczowym Public, dostępne we wszystkich modułach aplikacji

W języku VBA wykorzystuje się zdeklarowane typy danych, m.in.:

Access VBA Domyślnie
Text String ""
Number Bool, Integer, Long, Double, Single 0
Currency Currency 0
Yes/No Boolean False
Date/Time Date 1899-12-30

* Specjalny tryb danych VBA - Variant - oznacza dowolny typ wartości.

W języku VBA wykorzystujemy najczęściej procedury zdarzeniowe, które są wykorzystywane po zaistnieniu jakiegoś zdarzenia w interfejsie użytkownika, np. naciśnięcie przycisku na formularzu, zmiana wartości w polu tekstowym formularza, otwarcie/zamknięcie formularza, drukowanie raportu, początkowe otwarcie bazy danych itp.

Każda powtarzająca się rutynowa czynność, w szczególności każda, którą można wykonać za pomocą opcji znajdujących się we wbudowanym menu, nadaje się do zautomatyzowania za pomocą procedury. Na przykład w formularzu można umieścić zbiór przycisków, po których naciśnięciu użytkownik zyskuje wyświetlenie tekstu pomocy, wyświetlenie innego formularza, zamknięcie danego formularza.

W Accessie dostępny jest edytor kody Visual Basic Editor, zawierający środowisko uruchomienia kody VBA. Podczas pisania kodu wygodnie jest uruchomić okno analizy programu (Immediate Window) przez wciśnięcie kombinacji klawiszy CTRL+G lub z górnego menu edytora VBA wybieramy View/Intermediate Window - daje to możliwość wykonania kodu, czyli sprawdzenia funkcjonowania redagowanych procedur lub funkcji.

Podczas pisania długich procedur/funkcji istnieje możliwość przerwania działania funkcji bądź procedury przez ustawienie w kodzie punktu przerwania: Debug/Toggle breakpoint (F9).

Podczas redagowania kodu VBA wygodnie jest uruchomić:

  • nawigator po klasach bieżącego projektu (View/Project Explorer)
  • nawigator po zarejestrowanych bibliotekach (View/Object Browser)
Function SquareRoot (X As Double) As Double
	Dim Msg As String
	Select Case Sgn(X) 'Oblicz znak argumentu
		Case 1
			SquareRoot = Sqr(X)
			Exit Function
		Case 0
			Msg = "Przekazana wartość to 0."
		Case -1
			Msg = "Niedozwolona liczba."
	End Select
	MsgBox Msg
End Function
Function Otwarty(ByVal NazwaFormularza As String) As Integer
	Dim I As Integer
	Otwarty = False
	For I=0 to Forms.Count-1
		If Forms(I).Name = NazwaFormularza Then
			Otwarty=True
			Exit For
		End If
	Next I
End Function

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.