Katedra Informatyki Stosowanej Politechniki Świętokrzyskiej
MsAccess – ćwiczenie 6
Strona 1
Opracowanie: mgr Grażyna Gębal, dr Marzena Nowakowska, dr Maria Szczepańska
MsAccess - ćwiczenie nr 6
Obsługa zdarzeń w formularzach przy pomocy makr
1.
Przetestować w formularzu Pracownicy - edycja przycisk Nowy pracownik. Dodać pracownika
o identyfikatorze 100. Sprawdzić, czy dodany został nowy rekord do tabel PRACOWNICY i DANE
OSOBOWE.
2.
Zmodyfikować formularz Pracownicy – edycja podpinając akcję pod przycisk Usunięcie pracownika.
Do realizacji zadania potrzebne będą:
•
kwerenda dołączająca do tabeli ARCHIWUM kolejne rekordy (Do archiwum),
•
kwerenda usuwająca rekordy z tabel PRACOWNICY i DANE OSOBOWE (Zwolnienie pracowni-
ka).
Obie te kwerendy były tworzone na ćwiczeniach wcześniejszych (por. scenariusz ćwiczenia nr 3).
Wykonanie.
•
Utworzyć grupę makr do obsługi formularzy Pracownicy – edycja i Pracownicy – przegląd.
•
Nazwać grupę Pracownicy – obsługa. Wykorzystać poniższe wskazówki:
−
na karcie Tworzenie w grupie Inne wybrać przycisk Makro,
−
w oknie projektowym, w grupie Pokazywanie/ukrywanie uaktywnić pokazywanie nazw makr.
•
W grupie makr Pracownicy-obsługa zdefiniować makro Zwolnienie, modyfikujące dane w bazie
w związku z odejściem pracownika z firmy. W tym celu:
−
w kolumnie Nazwa makra wpisać Zwolnienie
−
wprowadzić dla makra dwie takie same akcje OtwórzKwerendę z parametrami równymi odpo-
wiednio Do archiwum, Zwolnienie pracownika. Każdą z akcji poprzedzić akcją OknoKomunikatu
z komunikatami odpowiednio: Dołączanie danych do ARCHIWUM, Usuwanie danych z tabeli
PRACOWNICY i DANE OSOBOWE.
−
Zamknąć okno projektowe makr podając nazwę nowej grupy.
•
Wprowadzić poprawki do kwerend: Do archiwum, Zwolnienie pracownika. W wierszu Kryteria
każdej kwerendy w miejsce parametru wprowadzić wartość pola pobraną z formularza Pracownicy -
edycja: [Formularze]![Pracownicy - edycja]![Id_prac].
•
Otworzyć w oknie projektowym formularz Pracownicy - edycja. Podpiąć makro pod przycisk Usu-
nięcie pracownika (otworzyć arkusz właściwości przycisku; we właściwościach zdarzeń dla zdarze-
nia Przy kliknięciu wybrać z listy makro Pracownicy - obsługa.Zwolnienie.)
•
Przetestować działanie makra dla przykładowego pracownika (np. o identyfikatorze 100).
Uwaga
Istnieje możliwość rezygnacji z generowanych przez system ostrzeżeń. Żeby to uzyskać należy umieścić
w budowanym makrze, jako pierwszą, akcję UstawOstrzeżenia z argumentem Nie . Akcja ta jest dostęp-
na tylko w zaufanej bazie, po uaktywnieniu przycisku Pokaż wszystkie akcje z grupy Pokazywa-
nie/ukrywanie.
3.
Utworzyć, na bazie tabeli ODDZIAŁY, formularz O oddziałach umożliwiający zmianę kierownika
(odwołanie starego i mianowanie nowego).
Wykonanie.
•
Posługując się kreatorem utworzyć formularz kolumnowy, po czym otworzyć go w oknie projekto-
wym.
Katedra Informatyki Stosowanej Politechniki Świętokrzyskiej
MsAccess – ćwiczenie 6
Strona 2
•
Narysować przycisk Odwołanie kierownika.
•
Za pomocą kreatora utworzyć na bazie tabeli PRACOWNICY niezwiązane pole listy o nazwie Lista
wyboru kierownika (por. rys. 1).
−
włączyć w grupie Formanty przycisk Użyj kreatorów formantów,
−
wprowadzić pole listy wyświetlające wartości z tabeli PRACOWNICY (Id_prac, Nazwisko,
Imię); posortować dane wg nazwiska i imienia, wybrać Id_prac jako pole jednoznacznie identyfi-
kujące wiersz, po czym zapamiętać jego wartość do późniejszego wykorzystania, określić etykietę
pola: Wybierz nowego kierownika:,
−
utworzone pole listy ma wartość równą identyfikatorowi wybranego pracownika – we właściwo-
ś
ciach tego obiektu określić jego nazwę (zakładka Inne): Nazwa
→
Lista wyboru kierownika
−
zmienić właściwości etykiety pola (dobrać czcionkę, kolor).
•
Do konstrukcji makr związanych z formularzem potrzebne będą dwie kwerendy aktualizujące: Od-
wołanie kierownika (rys. 2) oraz Nowy kierownik (rys. 3).
•
Utworzyć grupę makr O oddziałach z dwoma makrami Odwołanie kierownika i Nowy kierownik
(por. rys. 4). Pierwsze makro podpiąć pod przycisk (zdarzenie Przy kliknięciu), a drugie do listy
(zdarzenie Po aktualizacji). Ustawienie parametrów akcji jest pracą samodzielną.(akcja UstawWar-
tość jest dostępna po uaktywnieniu przycisku Pokaż wszystkie akcje z grupy Pokazywanie/ukrywa-
nie)
Rys. 1. Formularz O oddziałach w trybie Widok Formularz.
Rys. 2. Kwerenda aktualizująca Odwołanie kierownika - siatka projektowa.
Katedra Informatyki Stosowanej Politechniki Świętokrzyskiej
MsAccess – ćwiczenie 6
Strona 3
Rys. 3. Kwerenda aktualizująca Nowy kierownik - siatka projektowa.
Nazwa makra
Warunek
Akcja
Komentarz
Odwołanie kierownika
OknoKomunikatu
Stary kierownik nie ma przydziału
OtwórzKwerendę
Wstawienie 0 do Nr_stan poprzed-
niego kierownika
UstawWartość
Null w polu Id_kier w formularzu
O ODDZIAŁACH
Nowy kierownik
[Id_kier] Is Not Null
OknoKomunikatu
Nie odwołano starego kierownika
...
ZatrzymajMakro
DLookUp("[Nr_stan]";"Pracownicy";
"[Id_prac]=[Lista wyboru kierownika]")=3
OknoKomunikatu
Proponowana osoba jest już kie-
rownikiem innego oddziału
...
ZatrzymajMakro
OtwórzKwerendę
Ustawia Nr_stan i Nr_oddz dla
nowego kierownika
UstawWartość
Aktualizacja Id_kier
Rys. 4. Grupa makr O oddziałach.
Uwaga: Rozpoczęcie każdego z powyższych makr akcją UstawOstrzeżenia z argumentem Nie spowoduje
wyłączenie komunikatów Accessa o uruchamianych kwerendach funkcjonalnych.
Ćwiczenie dodatkowe
1.
Zmodyfikować formularz Pracownicy - przegląd. W nagłówku formularza umieścić niezwiązane pole
listy zbudowane na bazie trzech pierwszych kolumn tabeli PRACOWNICY. Jego zadaniem będzie wybór
pracownika, o którym chcemy uzyskać informację. W formularzu wyświetlić dodatkowo nazwisko kie-
rownika wybranego pracownika oraz lokalizację oddziału, w którym pracownik jest zatrudniony.
Wykonanie.
•
Za pomocą kreatora utworzyć na bazie tabeli PRACOWNICY niezwiązane pole listy o nazwie Lista
wyboru pracownika (por. rys. 5). Polem jednoznacznie identyfikującym wiersz jest Id_prac. Zapa-
miętać wartość tego identyfikatora do późniejszego wykorzystania. Pole ma mieć etykietę Wybierz
pracownika. Uporządkować listę wg nazwiska.
•
Zamknąć formularz.
•
W grupie makr Pracownicy - obsługa zdefiniować makro Wybierz, wyszukujące pracownika o za-
danym identyfikatorze:
−
w kolumnie Nazwa makra wpisać nową nazwę Wybierz
−
określić dwie akcje makra Wybierz:
PrzejdźDoFormantu
Nazwa formantu
→
[Id_prac]
ZnajdżRekord
Znajdź
→
=[Lista wyboru pracownika]
Katedra Informatyki Stosowanej Politechniki Świętokrzyskiej
MsAccess – ćwiczenie 6
Strona 4
Rys. 5. Formularz Pracownicy - przegląd w trybie Widok Formularz.
•
Powrócić do formularza Pracownicy - przegląd. W zakładce właściwości zdarzeń pola listowego
dokonać przypisania makra Pracownicy – obsługa.Wybierz dla właściwości Po aktualizacji.
•
Aby zabezpieczyć tabele przed zmianami ustawić dla wszystkich pól z pasma szczegóły właściwość:
Zablokowane
→
Tak.
•
Przesunąć przycisk Zamknij do pasma nagłówka, pozostałe przyciski usunąć.
•
Wprowadzić pole tekstowe posługując się przybornikiem. W etykiecie pola wpisać tekst Kierownik
oddziału: (por. rys. 5). Zmienić właściwości pola określając nazwy - dla pola tekstowego Kierownik,
a dla zawiązanej z nim etykiety Kierownik-etykieta. Będą one wykorzystane przez zmodyfikowane
w dalszej części scenariusza makro Wybierz z grupy makr Pracownicy – obsługa.
•
W polu Kierownik należy wprowadzić wyrażenie odszukujące nazwisko i imię kierownika właści-
wego oddziału. Do tego celu potrzebny będzie identyfikator kierownika z tabeli ODDZIAŁY. Nale-
ż
y zmodyfikować źródło rekordów formularza Pracownicy - przegląd: do siatki projektowej wpro-
wadzić pole Id_kier.
•
Dla pola Kierownik w formularzu zmodyfikować Źródło formantu wykorzystując kreator wyrażeń:
=DLookUp("[PRACOWNICY]![Nazwisko]”;"[PRACOWNICY]";
"[PRACOWNICY]![Id_prac]=[Id_kier]") &" " & DLookUp("[PRACOWNICY]![Imię]";
"PRACOWNICY";"[PRACOWNICY]![Id_prac] =[Id_kier]")
•
Wprowadzone pole powinno być widoczne tylko wtedy, gdy wyświetlana jest informacja o szerego-
wym pracowniku. W tym celu należy zmodyfikować makro Wybierz uzupełniając je o dodatkowe
akcje, które spowodują ukrycie bądź wyświetlenie pola Kierownik i jego etykiety Kierownik-
etykieta. W siatce projektowej makr dodać kolumnę warunków i uzupełnić grupę wg załączonego
schematu (rys. 6).
Nazwa makra
Warunek
Akcja
Wybierz
IdźDoFormantu
ZnajdźRekord
UruchomMakro
Nazwa makra
→
Pracownicy - obsługa.Pokaż kierownika
Katedra Informatyki Stosowanej Politechniki Świętokrzyskiej
MsAccess – ćwiczenie 6
Strona 5
Pokaż kierownika
[Stanowisko]="Kierownik oddziału"
UstawWartość
Element
→
[Kierownik].[Visible]
Wyrażenie
→
FAŁSZ
...
UstawWartość
Element
→
[Kierownik-etykieta].[Visible]
Wyrażenie
→
FAŁSZ
[Stanowisko]<>"Kierownik oddziału"
UstawWartość
Element
→
[Kierownik].[Visible]
Wyrażenie
→
PRAWDA
...
UstawWartość
Element
→
[Kierownik-etykieta].[Visible]
Wyrażenie
→
PRAWDA
Rys. 6. Makra grupy Pracownicy - obsługa dla formularza Pracownicy - przegląd.
•
Dodać pole tekstowe pokazujące lokalizację oddziału, w którym jest zatrudniony pracownik. Jakie
powinno być Źródło formantu dla tego pola?
Zadanie do samodzielnego wykonania
Zastanów się, jak możesz ulepszyć zdefiniowane wcześniej formularze i raporty poprzez
wprowadzenie do nich makropoleceń.