Access - zti.polsl.pl

Transkrypt

Access - zti.polsl.pl
Materiały do laboratorium
MS ACCESS BASIC
Opracowała:
Katarzyna Harężlak
Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji
w jeden spójny system.
PROCEDURY I MODUŁY
W języku Access Basic kod pisze się w tak zwanych blokach. Wyróżniane są dwa rodzaje bloków:
– funkcje – globalne (publiczne) lub dedykowane jednemu z obiektów (prywatne),
– procedury – globalne, dedykowane jednemu z obiektów lub procedury zdarzeń (dołączane do formularza
lub raportu) uruchamiane w momencie wystąpienia zdarzenia.
Procedury przechowywane są w modułach globalnych lub modułach formularzy i raportów.
Moduły globalne stanowią oddzielne obiekty bazy danych i procedury w nich występujące mogą być
wywoływane z innych modułów. Natomiast pozostałe moduły tworzone są automatycznie z formularzami
lub raportami i ich bloki są blokami prywatnymi niewidzianymi poza obiektami, do których należą.
Postać procedury:
Postać funkcji:
Sub nazwa ( parametry )
Function nazwa ( parametry) [as typ]
instrukcja 1
instrukcja 1
....
...
instrukcja n
instrukcja n
End Sub
End Function
Przekazywanie parametrów do funkcji
[ ByVal ] nazwazmiennej [As typ]
ByVal – zmienna jest przekazywana przez wartość tzn. zmiany dokonywane na niej w procedurze lub
funkcji nie będą widoczne poza nią,
As typ – można podać typ zmiennej przekazywanej jako parametr.
W wywołaniu funkcji parametry muszą być przekazywane w nawiasach. W przypadku procedury parametry
przekazuje się bez nawiasów.
Przykład
procedura1 par1, par2
funkcja1 (par1, par2)
2
Deklaracje zmiennych
Dim nazwazmiennej [ As typ ] – przeciętna deklaracja zmiennej
Static nazwazmiennej [ As typ ] – ten sposób deklaracji zmiennej gwarantuje, że zmienna zachowuje
wartość nawet po zakończeniu działania funkcji
Global nazwazmiennej [ As typ ] – zmienne globalne widziane z każdego modułu. Deklaracje takie można
wykonywać tylko w modułach globalnych w sekcji deklaracji.
STEROWANIE PRZEPŁYWEM PROGRAMU
Struktury decyzyjne
Są to struktury pozwalające na warunkowe wykonywanie fragmentu kodu. Należy m.in. do nich:
If warunek_1 Then
blok_1
Else
blok_else
End if
Pętle
Instrukcje te pozwalają na kilkukrotne wykonywanie tego samego bloku instrukcji.
1. DO ... LOOP – liczba powtórzeń pętli uzależniona jest od spełnienia warunku.
a) Do Until warunek
blok
Loop
c) Do While warunek
blok
Loop
b) Do
blok
Loop Until warunek
d) Do
blok
Loop While warunek
OBIEKTY I KOLEKCJE
W systemie MS Access istnieje hierarchia obiektów, ponadto każdy rodzaj obiektu zgrupowany jest
w tak zwane kolekcje.
3
Przykład
–
elementy sterujące formularza należą do obiektu Formularz
–
pola tabeli należą do obiektu Tabela
–
kolekcja Forms stanowi zbiór wszystkich otwartych formularzy
Odwołując się do elementu kolekcji identyfikuje się go jako jej element:
–
identyfikator![nazwa_obiektu]
–
identyfikator("nazwa_obiektu")
–
identyfikator(wskaźnik)
gdzie:
identyfikator
stanowi
nazwę
kolekcji,
do
której
należy
obiekt
o
nazwie
nazwa_obiektu
identyfikator(wskaźnik) – wykorzystywany jest w przypadku, kiedy operujemy na wszystkich elementach
kolekcji np. nadając im w pętli pewną własność.
Przykład – jeśli posiadamy formularz Pracownik, to odwołanie do niego może wyglądać w następujący sposób:
Forms![Pracownik],
Forms("Pracownik"),
For i = 0 To Forms.Count –1
Forms(i).Caption = Tytul
Next
Każda kolekcja ma własność "Liczba" (Count), której przypisywana jest liczba obiektów należących do
kolekcji. Własność ta wykorzystana została w przykładzie powyżej.
Zmienne obiektowe
W języku Access Basic poza normalnymi zmiennymi można deklarować tak zwane zmienne
obiektowe, które odpowiadają typom obiektów składających się na bazą danych. Deklaracja odbywa się
również za pomocą instrukcji Dim i Global. Kojarzenie tych zmiennych z obiektami odbywa się za pomocą
instrukcji
SET nazwazmiennej = wyrazenie_obiektowe
Przykład
Dim Formularz As Form
4
Set Formularz = Forms![Pracownik]
METODY ZWIĄZANE Z OBIEKTAMI
Typy metod
Zwracające wartość
Wykonujące działanie
Obiekt.metoda [ [ ( ] lista argumentów [ ) ] ]
( ) - odnoszą się do metod zwracających wartość
PRACA Z ZESTAWAMI REKORDÓW
Do manipulowania danymi w bazie danych wykorzystuje się typ RECORDSET – zestaw rekordów. Istnieją
m.in. dwa typy zestawu rekordów:
Recordset (typu tabela) — jest to reprezentacja tabeli bazowej stosowana do dodawania, zmiany lub
usuwania rekordów z pojedynczej tabeli bazy danych
Recordset (typu dynamicznego) — jest to zestaw zawierający wynik zapytania opartego na jednej lub
kilku tabelach bazowych. W zestawie tym można dodawać, zmieniać lub usuwać rekordy. Ponadto,
rekordy w tabelach bazowych dodawane, usuwane lub poddawane edycji przez innych użytkowników
również pojawiają się w danym obiekcie Recordset.
Do tworzenia nowych obiektów typu Recordset wykorzystywana jest metoda OpenRecordset.
Set zestaw_rekordów = obiekt.OpenRecordset (źródło, typ, opcje, blokada)
Zestaw_rekordów – jest to zmienna obiektowa reprezentująca tworzony obiekt Recordset,
Obiekt – jest to zmienna obiektowa reprezentująca istniejący obiekt, z którego ma zostać utworzony
nowy obiekt Recordset,
Źródło – jest to wartość typu String określająca źródło rekordów dla nowego zestawu Recordset. Źródło
to może być nazwą tabeli, nazwą kwerendy lub instrukcji SQL, która zwraca rekordy.
Typ – element nieobowiązkowy. Stała wskazująca typ otwieranego obiektu Recordset
Opcje – kombinacja stałych charakteryzujących nowy obiekt Recordset
Blokada – element nieobowiązkowy. Stała określająca sposób blokowania obiektu Recordset.
Przykład – utwórz zbiór rekordów oparty na zapytaniu SELECT * FROM pracownik
5
Dim mzb as RecordSet
Dim zapytanie as String
Zapytanie = "SELECT * FROM Pracownik"
Set mzb = CurrentDb.OpenRecordSet(Zapytanie) ‘CurrentDB – bieżąca baza danych
Tworzenie rekordów na podstawie formularza
Nowy obiekt typu RecordSet może powstać również jako działanie metody RecordSetClone. Metodę tę
stosuje się do otwartego formularza, zawierającego rekordy. Efektem jej działania jest umieszczenie tych
rekordów w zmiennej typu RecordSet.
Set zestaw_rekordów = formularz.RecordSetClone
Set mzb = Forms![Pracownik].RecordSetClone
PĘTLE W ZESTAWACH REKORDOW
MOVE – metoda pozwalająca na sekwencyjne poruszanie się po wszystkich rekordach. Początek lub
koniec zbioru wykrywa się badając własności zbioru BOF i EOF. Metoda ta ma następujące wystąpienia:
MoveFirst, MoveLast, MoveNext, MovePrevious, Move row, [start]
Przykład – wyświetl zawartość pola nrz każdego rekordu zbioru mzb
Deklaracje jak powyżej
Mzb.MoveFirst
Do Until mzb.EOF
Debug.Print mzb!nrz
Mzb.MoveNext
Loop
FIND – metoda, poruszania się po rekordach, związana z wyszukiwaniem. O sukcesie poszukiwań
informuje własność zbioru NoMatch. Jeżeli rekord spełniający odpowiednie kryterium nie zostanie
znaleziony, własność ta ustawiana jest na True. Metodę wykorzystuje się w postaci:
FindFirst, FindLast, FindNext, FindPrevious
6
Przykład – zliczyć liczbę rekordów, które w polu nazwisko mają wartość ‘Kowalski’
Deklaracje jak powyżej
Dim kryterium as string, Licznik as integer
Kryterium = "Nazwisko = 'Kowalski'"
Mzb.FindFirst Kryterium
Do Until mzb.noMatch
Licznik = Licznik +1
Mzb.FindNext Kryterium
Loop
ZAKŁADKA (Bookmark) – ciąg znaków jednoznacznie identyfikujący bieżący rekord
Przykład – znajdź pierwszy rekord spełniający warunek nrz = 3. Jeżeli nie ma takiego rekordu, wróć do rekordu,
który był rekordem bieżącym w momencie rozpoczęcia poszukiwań
Deklaracje jak powyżej
Dim zakładka as string
Zakładka = mzb.bookmark
Mzb.FindFirst "nrz = 3”
If mzb.nomatch then
Mzb.bookmark = zakładka
End if
Mzb.close
7

Podobne dokumenty