Katedra Informatyki Stosowanej Politechniki Ś wię tokrzyskiej
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 pracownika).
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 odpowiednio 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 Usunię 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 projektowym.
MsAccess – ć wiczenie 6
Strona 1
Katedra Informatyki Stosowanej Politechniki Ś wię tokrzyskiej
• 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 identyfikują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 UstawWartość 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.
MsAccess – ć wiczenie 6
Strona 2
Katedra Informatyki Stosowanej Politechniki Ś wię tokrzyskiej
Rys. 3. Kwerenda aktualizująca Nowy kierownik - siatka projektowa.
Nazwa makra
Warunek
Akcja
Komentarz
Odwołanie kierownika
OknoKomunikatu
Stary kierownik nie ma przydziału
Wstawienie 0 do Nr _ stan poprzed-
OtwórzKwerendę
niego kierownika
Null w polu Id_kier w formularzu
UstawWartość
O ODDZIAŁACH
Nowy kierownik
[Id_kier] Is Not Null
OknoKomunikatu
Nie odwołano starego kierownika
...
ZatrzymajMakro
DLookUp("[Nr_stan]";"Pracownicy";
Proponowana osoba jest już kie-
OknoKomunikatu
"[Id_prac]=[Lista wyboru kierownika]")=3
rownikiem innego oddziału
...
ZatrzymajMakro
Ustawia Nr_stan i Nr_oddz dla
OtwórzKwerendę
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 kierownika 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. Zapamię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]
MsAccess – ć wiczenie 6
Strona 3
Katedra Informatyki Stosowanej Politechniki Ś wię tokrzyskiej
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 wprowadzić 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
MsAccess – ć wiczenie 6
Strona 4
Katedra Informatyki Stosowanej Politechniki Ś wię tokrzyskiej
UstawWartość
Pokaż kierownika
[Stanowisko]="Kierownik oddziału"
Element → [Kierownik].[Visible]
Wyrażenie →FAŁSZ
UstawWartość
...
Element → [Kierownik-etykieta].[Visible]
Wyrażenie →FAŁSZ
UstawWartość
[Stanowisko]<>"Kierownik oddziału"
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ń.
MsAccess – ć wiczenie 6
Strona 5