Temat B2. Przygotowywanie formularzy, kwerend i raportów w relacyjnej bazie danych

przez | 18 sierpnia 2021

Wszystkie treści na stronie ir.migra.pl są chronione prawami autorskimi. Więcej informacji znajdziesz tutaj.

Uwaga: Zapoznaj się wcześniej z tematami B1-B3 z podręcznika „Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres podstawowy. Klasa III”. Wykonaj zawarte w nich ćwiczenia i zadania.

Zapisy podstawy programowej realizowane w temacie:

II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych.

Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:

4) przygotowując opracowania rozwiązań złożonych problemów, posługuje się wybranymi aplikacjami w stopniu zaawansowanym:

d) projektuje i tworzy relacyjną bazę złożoną z wielu tabel oraz sieciową aplikację bazodanową dla danych związanych z rozwiązywanym problemem, formułuje kwerendy, tworzy i modyfikuje formularze oraz raporty, stosuje język SQL do wyszukiwania informacji w bazie i do jej modyfikacji, uwzględnia kwestie integralności danych, bezpieczeństwa i ochrony danych w bazie,

Spis treści

  1. Formularz wprowadzania danych filmu
  2. Formularz wprowadzania danych klienta
  3. Kontrolowanie wprowadzanych danych
    1. Kontrolowanie danych
    2. Ograniczenia dla danych i wartości domyślne pól
  4. Wprowadzanie przykładowych danych
  5. Formularz wypożyczenia filmu
    1. Tworzenie formularza wypożyczenia filmu
    2. Umieszczanie na formularzu pola kombi – wprowadzenie list wyboru
  6. Tworzenie kwerendy wybierającej
  7. Tworzenie raportu na podstawie kwerendy
  8. Importowanie danych z innych dokumentów do tabeli bazy danych
    1. Importowanie danych z arkusza kalkulacyjnego do tabeli bazy danych
    2. Importowanie danych z dokumentu tekstowego do tabeli bazy danych

1. Formularz wprowadzania danych filmu

Aby zacząć wypożyczać filmy za pomocą systemu SOWy, wcześniej należy do niego wprowadzić informacje o filmach. Pozostałe informacje (o klientach i wypożyczeniach) będą wprowadzane w trakcie użytkowania systemu.

Na początek utworzymy formularz wprowadzania nowego filmu. Formularz przygotujemy na podstawie tabeli Filmy.

Ustalimy jednolity sposób nazywania formularzy i innych obiektów. Nazwa formularza wypożyczenia filmu może być taka sama jak nazwa tabeli, ale dla ułatwienia projektowania systemu warto je rozróżnić. Przyjmiemy, że pierwszą literą nazwy formularza będzie „F”, kwerendy – „K”, a raportu – „R”. Formularz wprowadzania filmu zapiszemy zatem pod nazwą FFilmy.

Przykład 1. Przygotowanie formularza wprowadzania filmu

Z okna obiektów bazy wybieramy tworzenie nowego formularza. Skorzystamy z Kreatora formularzy (rys. 1.).

Wybieramy tabelę Filmy oraz pola, które powinny się znaleźć na formularzu. Umieścimy na nim wszystkie pola z tej tabeli.

Następnie wybieramy układ formularza (w przykładzie pokazanym na rysunku 2. został wybrany układ kolumnowy).

Gdy program zapyta o tytuł formularza, można podać nazwę, pod którą formularz zostanie zapisany, np. FFilmy, a potem w Widoku projektu tytuł zmodyfikować (rys. 2.).

Rys. 1. Okno Kreatora formularzy
Rys. 2. Oglądany w Widoku projektu formularz wprowadzania nowego filmu, utworzony przy użyciu kreatora

Ćwiczenie 1. Tworzymy formularz wprowadzania filmu

  1. Korzystając z Kreatora formularzy, przygotuj formularz wprowadzania filmu na podstawie przykładu 1.
  2. Zapisz formularz pod nazwą FFilmy.

Kolejną czynnością powinno być poprawienie wyglądu formularza. Kreator pomógł nam w zaprojektowaniu wyłącznie podstawowego wyglądu formularza, nie ustawialiśmy bowiem szczegółowych opcji kreatora. Dalsze prace projektowe wykonamy samodzielnie, aby poznać możliwości programu w zakresie formatowania i redagowania formularzy.

Jedną z ważniejszych zmian jest zastąpienie nazw pól widocznych w etykietach pól po lewej stronie formularza opisami dla użytkownika (rys. 2.). Nie musimy się natomiast martwić nazwami w polach tekstowych po prawej stronie. Podczas korzystania z gotowego formularza będą zamiast nich widoczne wartości odpowiednich pól z tabel bazy danych.

Warto starannie dopracować wygląd formularza. Pola należy rozmieścić tak, aby wygodnie się je wypełniało – ważna jest kolejność, w jakiej będą ustawione. Koniecznie trzeba zwiększyć rozmiary niektórych pól, aby widoczne były całe wyświetlane w nich zapisy, np. najdłuższy tytuł filmu. Można też dobrać kolory tła i ramek, zmienić atrybuty tekstu. W nagłówku formularza należy dodać tytuł opisujący krótko jego przeznaczenie.

Przykład 2. Poprawianie wyglądu formularza

Wszystkie prace projektowe wykonujemy w Widoku projektu.

Aby zmienić właściwości dowolnego obiektu (pola, etykiety) formularza, należy dany obiekt uaktywnić, klikając na nim lewym przyciskiem myszy. Można go wówczas przesuwać i zmieniać jego rozmiary.

W menu kontekstowym (wywołanym przez kliknięcie prawym przyciskiem myszy) znajdziemy Właściwości, które umożliwiają dokonywanie szczegółowych zmian obiektów formularza, m.in. dotyczących tła, ramek, czcionek (rys. 3.).

Aby wstawić na formularzu napis, dodajemy etykietę,korzystając z przycisku Etykieta na karcie Projektowanie w grupie Formanty.

Aby zobaczyć efekt swojej pracy, należy przełączyć się na Widok formularza.

Rys. 3. Okno właściwości obiektu formularza – etykiety tytułu filmu
Rys. 4. Widok formularza wprowadzania filmu po poprawieniu jego wyglądu. W odpowiednich miejscach widoczne są dane z pierwszego rekordu

Ćwiczenie 2. Poprawiamy wygląd formularza wprowadzania filmu

  1. Korzystając z przykładu 2. i rysunku 4., popraw wygląd formularza wprowadzania filmu. Zmień odpowiednio etykiety pól oraz ich szerokość.
  2. Popraw kolory i atrybuty tekstu. Umieść w nagłówku formularza tytuł: „Formularz wprowadzania filmu”.

2. Formularz wprowadzania danych klienta

Formularz wprowadzania danych klienta przygotujemy, stosując zasady poznane podczas tworzenia formularza wprowadzania filmów. Przygotujemy go na podstawie tabeli Klienci. Umieścimy na nim wszystkie pola, poza polem klucza podstawowego Id, ponieważ wartości tego pola są wpisywane automatycznie.

Rys. 5. Widok formularza wprowadzania danych klienta (z widocznymi fikcyjnymi danymi)

Ćwiczenie 3. Tworzymy formularz wprowadzania danych klienta

  1. Przygotuj formularz wprowadzania danych klienta podobny do pokazanego na rysunku 5. Skorzystaj z przykładów 1. i 2.
  2. Zapisz formularz pod nazwą FKlienci.

3. Kontrolowanie wprowadzanych danych

Zanim wprowadzimy przykładowe dane, zmodyfikujemy formularz, aby sprawdzane były wartości niektórych pól (np. pól z kodami pocztowymi, numerami telefonów).

Zastanowimy się, jak ograniczyć wartości wprowadzane do niektórych pól. Ustalimy dozwolony zakres liczb dla pola z liczbą dni wypożyczenia filmu. Wykorzystamy do tego celu mechanizmy programu Microsoft Access.

3.1. Kontrolowanie danych

W programie Microsoft Access można wykorzystać maskę wprowadzania. Stosuje się ją w celu kontrolowania wartości, jakie użytkownik może wprowadzać, oraz sposobu ich wprowadzania. Użytkownik systemu nie może wprowadzić danych w inny sposób niż określony w masce.

Uwaga: Ograniczenia dla danych można wprowadzać bezpośrednio w tabeli – wtedy poprawność danych będzie sprawdzana niezależnie od sposobu, w jaki będziemy je wprowadzać.

Przykład 3. Kontrolowanie wprowadzania kodu pocztowego

Zastosujemy maskę wprowadzania: 00-000 (pięć cyfr z łącznikiem między drugą a trzecią cyfrą).

Aby uruchomić dla danego pola Kreator masek wprowadzania, wskazujemy w tabeli to pole (tu: KodPocztowy). We właściwościach pola ustawiamy kursor myszy na polu maski wprowadzania i naciskając przycisk, który pojawi się po prawej stronie, otwieramy okno Kreatora masek wprowadzania (rys. 6.). Należy przejść kolejne kroki kreatora.

Właściwość Maska wprowadzania dla pola KodPocztowy powinna mieć wartość: 00-000;0;_.

W masce wprowadzania mogą wystąpić trzy części oddzielone średnikami:

pierwsza – określa postać maski, u nas: 00-000 (można używać tylko określonych znaków; ich listę znajdziemy w Pomocy programu Microsoft Access pod hasłem „maska wprowadzania”);

druga – u nas: 0, ale może być wpisane 1 lub można nic nie wpisać; 0 oznacza, że razem z wartością przechowywane będą wszystkie inne wpisywane znaki, np. myślniki, nawiasy; gdy zostanie wpisane 1 lub nic nie zostanie wpisane, to dodatkowe znaki nie będą przechowywane (na przykład kod pocztowy wpisany przez użytkownika jako 53-521 byłby przechowywany w postaci: 53521);

trzecia – dowolny znak (tu: _), który w programie Microsoft Access będzie wyświetlany w tych miejscach maski wprowadzania, w których użytkownik powinien wpisać znak; aby w masce wprowadzania nie był użyty żaden znak w miejscu wprowadzania danych, należy użyć spacji ujętej w cudzysłów (” ”).

Uwaga: Jeśli dla danego pola zdefiniujemy maskę wprowadzania oraz ustawimy właściwości formatu pola, to przy wyświetlaniu danych własności określone w masce zostaną zignorowane.

Rys. 6. Okno Kreatora masek wprowadzania

Ćwiczenie 4. Stosujemy maskę wprowadzania danych

  1. Korzystając z przykładu 3., określ dla pola KodPocztowy maskę wprowadzania: 00-000.
  2. Zapisz zmiany w tabeli.
  3. Sprawdź, wprowadzając przykładowe kody pocztowe, w jaki sposób działa maska (skorzystaj z utworzonego formularza).

3.2. Ograniczenia dla danych i wartości domyślne pól

Dane wprowadza się w dniu wypożyczenia, dlatego w polu wprowadzania daty wypożyczenia powinna pojawiać się bieżąca data.

Program Access ma możliwość wprowadzania do wybranych pól wartości domyślnych – gdy będziemy wprowadzali nowe dane, to wartość pola będzie już wyświetlona, ale będzie można ją zmienić.

Przykład 4. Wprowadzenie wartości domyślnych do wybranego pola tabeli

Aby w polu DataWypozyczenia domyślnie pokazywała się bieżąca data, należy zastosować funkcję Date().

Korzystamy z Konstruktora wyrażeń. Naciskając przycisk we właściwościach pola DataWypozyczenia przy polu Wartość domyślna, otwieramy okno Konstruktora wyrażeń. Funkcja Date() należy do funkcji wbudowanych Data/Godzina.

We właściwościach pola powinien pojawić się zapis: Date().

Ćwiczenie 5. Wprowadzamy bieżącą datę do pola tabeli

  1. Otwórz tabelę Wypozyczenia. W Widoku projektu wprowadź bieżącą datę dla pola DataWypozyczenia zgodnie z opisem podanym w przykładzie 4.
  2. Zapisz tabelę. Przejdź do Widoku arkusza danych i sprawdź, jaka wartość jest wpisana w ostatnim rekordzie w polu DataWypozyczenia.

W programie Microsoft Access można ograniczyć zakres wartości, które użytkownik będzie wprowadzał do danego pola. Możemy w ten sposób ograniczyć na przykład liczbę dni, na jaką może zostać wypożyczony film. Ta właściwość nazywa się regułą sprawdzania poprawności. W przypadku jej naruszenia zostanie wyświetlony komunikat programu o błędzie i o dozwolonych wartościach – program nie pozwoli zapisać takiego rekordu.

Na przykład gdy ustalimy możliwość wypożyczenia filmu maksymalnie na 10 dni, to reguła dla pola LiczbaDni powinna mieć postać: >=1 AND <=10. Należy także ustawić typ pola Liczba całkowita lub Liczba całkowita długa.

Ze zleceniodawcą systemu ustaliliśmy, że filmy będą wypożyczane na jeden dzień lub na trzy dni, a dodatkowo domyślnie ma być wprowadzana liczba 1.

Przykład 5. Zastosowanie reguły sprawdzania poprawności

Aby ograniczyć wprowadzane wartości, należy w podobny sposób, jak opisano w przykładzie 4., otworzyć okno Konstruktora wyrażeń (dla pola LiczbaDni).

Wpisujemy wymagane wartości z operatorem OR (lub). We właściwościach pola przy opisie reguły sprawdzania poprawności powinien pojawić się zapis: 1 OR 3.

Dodatkowo ustawiamy we właściwościach pola wartość domyślną na 1.

Ćwiczenie 6. Dodajemy ograniczenia wartości do wybranego pola tabeli

  1. Otwórz tabelę Wypozyczenia i dodaj właściwości pola LiczbaDni zgodnie z przykładem 5.
  2. Zapisz tabelę pod tą samą nazwą.

4. Wprowadzanie przykładowych danych

Przed przejściem do utworzenia najistotniejszego elementu systemu SOWy – formularza wypożyczenia filmu – wprowadzimy przykładowe dane o klientach i filmach. Dzięki temu łatwiej będzie sprawdzić poprawność jego wykonania oraz tworzyć i sprawdzać pozostałe elementy (kwerendy, raporty).

Dane będziemy wprowadzać, korzystając z przygotowanych formularzy FFilmy i FKlienci. Umożliwiają one również modyfikowanie i usuwanie danych zawartych w polach oraz kasowanie całego rekordu.

Usuwanie rekordów w tabelach Klienci i Filmy jest możliwe pod warunkiem, że rekord, który chcemy usunąć, nie został powiązany z innym rekordem z tabeli Wypozyczenia. Nowe rekordy wprowadzamy do tabel Klienci i Filmy, niepowiązanych ze sobą relacją, a w tabeli Wypozyczenia, która jest z nimi powiązana, nie powinno być jeszcze wprowadzonych żadnych rekordów (nie wypożyczaliśmy jeszcze filmów). Nie powinniśmy więc na razie mieć problemów z usuwaniem rekordów.

Ćwiczenie 7. Wprowadzamy przykładowe rekordy do tabel

  1. Wprowadź dziesięć rekordów do tabeli Filmy. Skorzystaj z przygotowanego formularza.
  2. Wprowadź fikcyjne dane pięciu klientów do tabeli Klienci. Skorzystaj z przygotowanego formularza.

Wskazówki:

  • Aby usunąć źle wpisany czy niepotrzebny rekord, należy wybrać przycisk na karcie Narzędzia główne w Narzędziach tabel.
  • Formularz możesz również zobaczyć w Widoku arkusza danych.

Jeśli błędnie wprowadzimy wartość do pola, dla którego określiliśmy kontrolowanie wartości, np. maskę wprowadzania czy ograniczenie wprowadzanych wartości, to po zakończeniu edycji jego wartości pojawi się okno programu z odpowiednim komunikatem. Na przykład, jeśli w tabeli Wypozyczenia ustalimy, że do pola LiczbaDni można wpisać lub wybrać z listy tylko wartość 1 lub 3, to w przypadku podania innej liczby pojawi się komunikat o błędnej wartości pola.

W profesjonalnie przygotowanych bazach danych projektanci umieszczają własne komunikaty obsługi błędów, które pojawiają się zamiast standardowych komunikatów danego programu.

4. Formularz wypożyczenia filmu

4.1. Tworzenie formularza wypożyczenia filmu

Najważniejszy formularz w systemie to formularz wypożyczenia filmu. Jest on używany najczęściej, w dodatku zwykle w obecności klienta wypożyczalni. Powinien być więc możliwie zrozumiały i prosty w obsłudze. Warto zadbać o dodatkowe udogodnienia przy jego wypełnianiu.

Przykład 6. Przygotowanie formularza wypożyczenia filmu

Formularz wypożyczenia filmu przygotowujemy na podstawie tabeli Wypozyczenia.

Skorzystamy również z kreatora i przygotujemy początkową postać formularza.

Wybieramy wszystkie pola z tabeli, poza polem DataZwrotu.

Uwaga: Formularz zwrotu filmu przygotujemy oddzielnie (temat B3).

Rys. 7. Formularz wypożyczenia filmu – po zakończeniu pracy z kreatorem

Ćwiczenie 8. Tworzymy formularz wypożyczeń filmów

  1. Używając kreatora, przygotuj formularz wypożyczenia filmu. Skorzystaj z przykładów 1. i 6. oraz rysunku 7.
  2. Zapisz formularz pod nazwą FWypozyczenia.

4.2. Umieszczanie na formularzu pola kombi – wprowadzenie list wyboru

Przygotowany w ćwiczeniu 8. formularz wypożyczenia filmu nie jest formularzem, z którego użytkownikowi będzie się wygodnie korzystało. Wyobraźmy sobie następującą sytuację: klient podaje swoje nazwisko i chce jak najszybciej wypożyczyć film. Założyliśmy, że klient nie musi pamiętać swojego identyfikatora, ponieważ wyszukujemy go według nazwiska (ewentualnie imienia i numeru dowodu osobistego). Z tego powodu powinniśmy mieć możliwość szybkiego wybrania nazwiska i innych danych.

Filmy wyszukujemy według nadanego im identyfikatora, ale powinniśmy mieć również możliwość szybkiego przejrzenia odpowiadających im tytułów. Można by w tym celu otworzyć formularze klienta oraz filmu i w nich przejrzeć i wyszukać dane. Taka sytuacja byłaby jednak bardzo niewygodna. Naszym celem jest przecież sprawne i szybkie działanie. Klienci nie powinni długo czekać.

Jedną z możliwości uzyskania na formularzu FWypozyczenia danych klienta i filmu jest wprowadzenie list wyboru (inaczej: list rozwijanych). Bardzo często korzystamy z takich list w innych programach, np. wybierając czcionkę w edytorze tekstu. Dzięki zastosowaniu listy wyboru użytkownik może przeglądać wszystkie dostępne dane.

Formant to obiekt umieszczany w formularzu lub raporcie, np. pole tekstowe, przycisk polecenia, pole kombi.

Aby utworzyć taką listę w programie Access, wprowadzamy do formularza formant pole kombi. Pole kombi ma jeszcze jedną bardzo przydatną własność. Przy wpisywaniu pierwszych liter nazwiska, w polu pojawi się jego pełny zapis. Z taką możliwością spotykamy się często, np. podczas wpisywania adresów stron WWW w przeglądarce internetowej – na podstawie pierwszych liter adresu program podpowiada jego dalszą część.

Przykład 7. Dodawanie pola kombi do formularza wypożyczenia filmu

Aby wstawić na formularzu pole kombi,możemyskorzystać z przycisku Pole kombi na karcie Projektowanie w grupie Formanty.

Wskazujemy w formularzu miejsce, w którym ma być umieszczone pole kombi (może to być dowolne miejsce formularza; w razie potrzeby można zmienić położenie pola na formularzu). Powinno otworzyć się okno Kreatora pól kombi.

Należy wskazać źródło wartości dla pola kombi (mogą to być tabele i kwerendy).

Wybieramy tabelę Klienci oraz pola, które chcemy umieścić na liście – Id, Nazwisko, Imie i NrDowoduOs.

Zgodnie z założeniem, że klienta wyszukujemy według nazwiska, imienia i ewentualnie numeru dowodu osobistego, umieszczamy te trzy pola na liście wyboru, ukrywając pole klucza Id. Należy zaznaczyć opcję: Ukryj kolumnę klucza.

Kolejnym ważnym krokiem jest wskazanie pola, w którym mają być przechowywane wybrane wartości z obiektu Pole kombi. Tutaj wybieramy pole IdKlienta. Program Access musi wiedzieć, która wartość jest kluczowa, czyli z którego rekordu ma wyświetlić dane.

Pamiętamy, że tabelę Wypozyczenia połączyliśmy relacją z tabelą Klienci przez pole IdKlienta, dlatego korzystając z tak przygotowanego formularza, możemy wypożyczać filmy danemu klientowi.

Wpisujemy nazwę utworzonej etykiety – „Klient”.

Uwagi:

  • Kreator tworzy nowy obiekt (etykietę z polem tekstowym), dlatego po zakończeniu pracy z kreatorem powinniśmy usunąć niewykorzystywane już pole IdKlienta wraz z etykietą.
  • Na liście wyboru nie mamy możliwości zmiany wartości pól (nazwiska, imienia czy numeru dowodu osobistego). Możemy ją tylko przeglądać i korzystać z zawartych w niej danych (rys. 8.).
Rys. 8. Lista wyboru klientów na formularzu wypożyczenia filmu (z widocznymi fikcyjnymi danymi)

Ćwiczenie 9. Tworzymy listę wyboru dla klienta

  1. Na formularzu wypożyczenia filmu FWypozyczenia utwórz listę wyboru dla klienta według opisu z przykładu 7.
  2. Zapisz formularz pod tą samą nazwą.

Ćwiczenie 10. Tworzymy listę wyboru dla filmu

  1. Na formularzu FWypozyczenia utwórz listę wyboru dla filmu.
  2. Zapisz formularz pod tą samą nazwą.

Wskazówki: W kolejnych krokach Kreatora pól kombi:

  • Wybierz z tabeli Filmy pola Id i TytulFilmu.
  • Odznacz opcję Ukryj kolumnę klucza – w przypadku filmu posługujemy się tą wartością.
  • Wybierz pole IdFilmu jako pole, w którym mają być przechowywane wartości z obiektu Pole kombi.

Przykład 8. Tworzenie listy wyboru dla listy dni wypożyczenia

Można również utworzyć listę wyboru dla liczby dni wypożyczenia (chociaż założyliśmy, że są tylko dwie możliwe wartości: 1 i 3). W tym celu korzystamy z Kreatora pól kombi.

W oknie kreatora należy zaznaczyć opcję: Chcę wpisać żądane przeze mnie wartości.

Pole, w którym ma być przechowywana wybrana wartość, to pole LiczbaDni.

Po zakończeniu pracy kreatora zmieniamy jeszcze właściwości pola.

W zakładce Dane wypełniamy pole Źródło formantu: LiczbaDni, Typ źródła wierszy: Lista wartości, Źródło wierszy: 1;3 (oddzielone średnikiem).

Projektując tabelę, określiliśmy regułę sprawdzania poprawności dla pola LiczbaDni.

Dla obiektu kombi należy dodatkowo uniemożliwić wprowadzanie wartości spoza listy wyboru.

W opcji Ogranicz do listy wybieramy Tak (rys. 9.).

Rys. 9. Właściwości pola kombi dla pola LiczbaDni

Ćwiczenie 11. Dodajemy do formularza listę wyboru liczby dni

  1. Korzystając z przykładu 8. oraz z wcześniejszych przykładów, na formularzu wypożyczenia filmu FWypozyczenia utwórz listę wyboru dla pola LiczbaDni,
  2. Zapisz formularz pod tą samą nazwą.

Ćwiczenie 12. Poprawiamy wygląd formularza wypożyczenia filmu

  1. Korzystając ze wzoru na rysunku 10., popraw wygląd formularza FWypozyczenia.
  2. Zapisz formularz pod tą samą nazwą.
Rys. 10. Widok formularza wypożyczenia filmu po poprawieniu jego wyglądu. Pokazana jest rozwinięta lista wyboru dni wypożyczenia

Ćwiczenie 13. Testujemy system SOW-y

  1. Korzystając z formularza FWypozyczenia, „wypożycz” filmy kilku wybranym z listy klientom.
  2. Przetestuj system ‒ spróbuj wypożyczyć w tym samym dniu dwa filmy temu samemu klientowi, ten sam film dwóm klientom lub wypożyczyć film na 5 dni. W tabeli Wypozyczenia powinny pojawić się nowe rekordy – sprawdź, czy rzeczywiście tak się stało, korzystając z Widoku arkusza danych.
Wypożyczenie filmu jest równoznaczne z dopisaniem nowego rekordu do tabeli Wypozyczenia.

Pamiętamy, że tabelę Filmy połączono relacją „jeden do wielu” z tabelą Wypozyczenia, dlatego w tabeli Filmy nie można usunąć rekordu z filmem, jeśli w tabeli Wypozyczenia istnieją powiązane z nim rekordy. Gdybyśmy próbowali usunąć np. rekord z filmem „Czerwony Kapturek”, który wypożyczyliśmy Kowalskiemu, to pojawiłby się komunikat o braku możliwości usunięcia rekordu. Dopiero usunięcie odpowiedniego rekordu (rekordów) z tabeli Wypozyczenia umożliwi usunięcie filmu pt. „Czerwony Kapturek” z tabeli Filmy. Natomiast bez problemu można usunąć z tabeli Filmy rekord, do którego nie odwołują się żadne rekordy z tabeli Wypozyczenia (tzn. film nie został nikomu wypożyczony). Można również usuwać rekordy z tabeli Wypozyczenia.

6. Tworzenie kwerendy wybierającej

W programie Microsoft Access w wyniku działania kwerendy (zapytania) powstaje dynamiczny zestaw wyników. Mimo że widzimy wyniki na ekranie, to nie są one zapisywane w bazie danych. Przechowywany jest jedynie ciąg instrukcji języka SQL, pozwalający na ich utworzenie.    

Zgodnie z wymaganiami systemu w wyniku działania naszej kwerendy powinniśmy otrzymać informacje o filmach, które zostały wypożyczone przez konkretnych klientów (ewidencja wypożyczeń). Do tak postawionego zapytania są potrzebne dane z wszystkich trzech tabel: Klienci, Filmy oraz Wypozyczenia. Pamiętamy, że tabele te połączono relacjami.

Przygotujemy kwerendę wybierającą pola z tych tabel.

Przykład 9. Przygotowanie kwerendy ewidencji wypożyczeń, czyli uzyskanie informacji o filmach wypożyczonych przez konkretnych klientów

Kwerendę utworzymy w Widoku projektu (celowo nie korzystamy z Kreatora kwerend, aby więcej czynności wykonać samodzielnie i mieć przedsmak programowania w języku zapytań).

Jako źródło danych wybieramy tabele Filmy, Klienci i Wypozyczenia.

Wybór konkretnych pól z każdej tabeli zależy od tego, jakie informacje chcemy uzyskać w wynikach kwerendy.

Przede wszystkim mają to być informacje o wypożyczonych filmach, ale dodatkowo chcemy wiedzieć, kto wypożyczył dany film. Dlatego wybieramy dane z tabeli Wypozyczenia i do nich dobieramy brakujące dane z tabel Filmy i Klienci.

Wybieramy pola z tabeli Wypozyczenia: IdKlienta, IdFilmu, DataWypozyczenia,

LiczbaDni, DataZwrotu; z tabeli Klienci: Nazwisko, Imie, NrDowOs; z tabeli Filmy: TytulFilmu.

Ustalamy kryteria dla danych: sprawdzamy, czy wartość pola DataZwrotu jest równa Null (Is Null). Jeśli wartość pola jest równa Null, oznacza to, że pole jest niewypełnione.

Uwagi:

  • Relacje widoczne na rysunku 11. zostały narysowane automatycznie, ponieważ je wcześniej utworzyliśmy, ale można je zmienić.
  • Jeszcze nie określiliśmy operacji zwrotu filmu (dopiero w temacie B3 przygotujemy formularz zwrotu), więc na razie wszystkie wartości w kolumnie DataZwrotu będą niewypełnione.
Rys. 11. Kwerenda ewidencji wypożyczeni w Widoku projektu

Ćwiczenie 14. Tworzymy kwerendę ewidencji wypożyczeń

  1. Korzystając z przykładu 9., przygotuj kwerendę ewidencji wypożyczeń.
  2. Zapisz kwerendę pod nazwą KWypozyczenia. Przejrzyj tzw. dynamiczny zestaw wyników zapytania w Widoku arkusza danych.

7. Tworzenie raportu na podstawie kwerendy

Przykład 10. Przygotowanie raportu ewidencji wypożyczonych filmów

Wyniki działania kwerendy utworzonej w ćwiczeniu 14. przedstawimy w raporcie.

Z okna obiektów bazy wybieramy tworzenie nowego raportu.

Skorzystamy z Kreatora raportów.

Jako źródło danych wybieramy kwerendę KWypozyczenia, a następnie pola, które chcemy umieścić w raporcie. Są to pola: TytulFilmu, DataWypozyczenia, Nazwisko, Imie, LiczbaDni.

Ważnym momentem jest ustalenie, w jaki sposób mają być wyświetlane dane (rys. 12.).

Wybieramy opcję przez Filmy, co oznacza, że dla danego tytułu filmu będą wyświetlone pozostałe dane: data wypożyczenia, nazwisko i imię klienta, liczba dni wypożyczenia. Gdyśmy wybrali opcję przez Klienci, to dla danego klienta podane byłyby pozostałe dane: tytuł filmu, data wypożyczenia i liczba dni wypożyczenia. Można zapoznać się z dodatkowymi informacjami na ten temat, korzystając z opcji Pokaż więcej informacji.

Pomijamy grupowanie rekordów. Ustalamy jedynie sortowanie rosnące według daty wypożyczenia.

Wybieramy układ raportu – proponujemy krokowy.

Wpisujemy tytuł RFilmy (raport będzie widoczny pod tą nazwą w wykazie obiektów bazy SOWy). Tytuł w nagłówku raportu zmienimy na „Ewidencja wypożyczeń”.

Podobnie jak podczas projektowania formularzy, projekt raportu należy dopracować.

Rys. 12. Okno Kreatora raportów. Wybieramy tu sposób wyświetlania danych
Rys. 13. Raport RFilmy „Ewidencja wypożyczeń” w Widoku projektu – po zakończeniu pracy z kreatorem. W nagłówku strony widzimy etykiety pól, niżej ‒ pole TytulFilmu (przez to pole są wyświetlane rekordy), a w opcji Szczegóły umieszczono odpowiednie pola
Rys. 14. Podgląd wydruku raportu RFilmy po dopracowaniu wyglądu (z widocznymi fikcyjnymi danymi)

Ćwiczenie 15. Tworzymy raport ewidencji wypożyczeń

  1. Przygotuj raport ewidencji wypożyczeń według przykładu 10. i rysunków 12-14.
  2. Zapisz raport pod nazwą RFilmy.

8. Importowanie danych z innych dokumentów do tabeli bazy danych

Przykładowe dane o filmach i klientach wprowadzaliśmy do bazy danych SOWy, korzystając z klawiatury. W praktyce (zwłaszcza zanim firma zacznie korzystać z gotowego systemu) dane są często przechowywane w dokumentach innych programów, np. edytora tekstu czy arkusza kalkulacyjnego.

Dane możemy importować do istniejącej tabeli bazy danych. Można również tworzyć nowe tabele z importowanych danych. Program Microsoft Access umożliwia także importowanie danych z innych baz danych utworzonych w tym programie lub w innych programach obsługi baz danych.

Niezależnie od tego, z którego dokumentu będziemy importować dane, należy go przygotować, aby było możliwe poprawne wykonanie operacji. Dokument trzeba zazwyczaj sformatować według określonych zasad. Omówimy najważniejsze z nich.

8.1. Importowanie danych z arkusza kalkulacyjnego do tabeli bazy danych

Ćwiczenie 16. Importujemy dane z tabeli arkusza kalkulacyjnego do istniejącej tabeli bazy danych

  1. Przypomnij sobie sposób importowania danych z tabeli arkusza kalkulacyjnego do istniejącej tabeli bazy danych z punktu 4. z tematu B2 („Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres podstawowy. Klasa III”).
  2. Dodatkowe dane o filmach zostały przygotowane w pliku arkusza kalkulacyjnego TB2_c16_Filmy.xls (dokument zawiera fikcyjne dane). Uzupełnij tabelę arkusza, wstawiając do pierwszego wiersza nazwy pól jak w tabeli Filmy w bazie SOWy.
  3. Otwórz bazę SOWy i zaimportuj do tabeli Filmy dane z pliku TB2_c16_Filmy.xls.

Jeśli importujemy dane z arkusza kalkulacyjnego do nowej tabeli bazy danych, to pierwszy wiersz arkusza nie musi zawierać nazw pól. W takim przypadku Kreator importu arkuszy zaproponuje domyślne nazwy (Pole1, Pole2 itd.), które będziemy mogli zmienić na własne.

Po zakończeniu pracy Kreatora importu arkuszy można sprawdzić, czy wszystkie dane zostały zaimportowane poprawnie (w Widoku arkusza danych) oraz jakie typy danych zostały im przypisane (w Widoku projektu).

8.2. Importowanie danych z dokumentu tekstowego do tabeli bazy danych

Przebieg importowania danych z dokumentu tekstowego do nowej lub istniejącej tabeli bazy danych jest podobny do importowania danych z tabeli arkusza kalkulacyjnego.

Zalecamy, by wprowadzić nazwy pól w pierwszym wierszu dokumentu tekstowego, chociaż w przypadku importu danych do nowej tabeli nie jest to konieczne. Gdy importujemy dane do istniejącej tabeli, nazwy pól w dokumencie tekstowym muszą być takie same, jak w tabeli bazy.

W przypadku dokumentu tekstowego więcej czasu musimy poświęcić na jego przygotowanie. Program Access, odczytując dane z dokumentu tekstowego, musi wiedzieć, gdzie kończy się zawartość jednego pola a zaczyna zawartość następnego.

Aby dane z dokumentu tekstowego mogły być odczytane przez program Microsoft Access, można utworzyć tzw. plik tekstu rozdzielonego.

Przykład 11. Przygotowanie pliku tekstu rozdzielonego

W celu rozdzielenia pól stosujemy odpowiednie znaki separacji. Takim znakiem może być średnik, przecinek lub znak tabulacji, rzadziej spacja. Jeśli wstawiamy znak separatora, nie należy wstawiać dodatkowego znaku spacji, np. za przecinkiem. W dokumencie pokazanym na rysunku 15. do rozdzielania pól użyto tabulatorów.

Każdy rekord kończymy znakiem końca akapitu.

W pierwszym wierszu należy wprowadzić nagłówki kolumn z tabeli Klienci (z bazy SOW-y).

Jak pamiętamy, w bazie danych w tabeli Klienci wartości pola klucza podstawowego są wprowadzane automatycznie przez program. Nie należy więc w pliku tekstowym umieszczać tego pola. Gdybyśmy przygotowywali plik z danymi dotyczącymi filmów, to pole identyfikatora powinno wystąpić, bo w tym przypadku sami wprowadzamy wartości klucza podstawowego (temat B1, punt 5.).

Plik tekstu rozdzielonego tworzony w programie Microsoft Word należy zapisać jako plik tekstowy (z rozszerzeniem txt).

Uwaga: Inny typ pliku to plik tekstowy o ustalonej szerokości, w którym początki pól przypadają w określonych kolumnach tekstu (nie będziemy go tu szczegółowo omawiać).

Rys. 15. Przykładowy dokument przygotowany jako plik tekstu rozdzielonego (z widocznymi fikcyjnymi danymi)

Ćwiczenie 17. Przygotowujemy plik tekstu rozdzielonego i importujemy z niego dane do tabeli bazy danych

  1. Otwórz plik TB2_c17_Klienci.doc. Dokument zawiera fikcyjne dane.
  2. Zmodyfikuj dokument, aby otrzymać plik tekstu rozdzielonego, wstawiając jako separatory znaki tabulacji. Postaraj się zautomatyzować tę czynność, korzystając z możliwości zamiany znaków.
  3. Zapisz plik jako zwykły tekst (txt).
  4. Zaimportuj dane z tego pliku do tabeli Klienci z bazy SOWy.

Wskazówka: W przypadku pliku tekstowego otworzy się okno Kreatora importu tekstu. W jednym z kroków musisz zaznaczyć, że korzystasz z pliku tekstu rozdzielonego.

Zadania

  1. Czy możesz pomyłkowo wprowadzić kod pocztowy 4-23, gdy maska dla pola kodu to 00-000;0;_? Sprawdź to w formularzu FKlienci.
  2. Otwórz tabelę Klienci i zastosuj maskę wprowadzania do pola NrTelefonu, aby wprowadzać numer telefonu w postaci dziewięciu cyfr zapisanych w jednym bloku. W miejscach, w których użytkownik ma wpisać cyfry numeru, powinny się wyświetlać znaki podkreślenia.
    Wskazówka: Możesz skorzystać z Kreatora masek wprowadzania. Korzystając z Pomocy, sprawdź, co oznaczają w masce znak wykrzyknika oraz cyfra 9.
  3. W tabeli Klienci dla pola NrDowoduOs ustal odpowiednią maskę wprowadzania.
    Wskazówka: Numer dowodu osobistego składa się z trzech liter i sześciu cyfr.
  4. Otwórz formularz klienta w Widoku projektu i zmień odpowiednio szerokość pól kodu pocztowego, numeru telefonu i dowodu osobistego, uwzględniając rozmiar wynikający z maski wprowadzania.
  5. Utwórz kwerendę „Ewidencja wypożyczeń z bieżącego dnia” (skorzystaj z przykładu 9.).
    Wskazówka: Dodatkowo dla pola DataWypozyczenia wpisz kryterium Date(), aby otrzymywać w tym polu bieżącą datę. Nazwij kwerendę KWypozyczeniaBiezace.
  6. Przygotuj raport na podstawie kwerendy utworzonej w zadaniu 5. Nazwij raport RWypozyczeniaBiezace.
  7. Zaprojektuj dla tworzonej samodzielnie bazy danych SOWyS (zad. 4. w temacie B1) formularze, kwerendy i raporty (możesz korzystać z przykładowych rozwiązań pokazanych w bazie SOWy).
  8. Otwórz plik TB2_z8_Życzenia.doc i wstaw do niego w odpowiednie miejsce pola Imie i Nazwisko z tabeli Klienci (baza danych SOWy).
  9. Przygotuj list seryjny do tych klientów z bazy, którzy wypożyczyli filmy, czyli na podstawie kwerendy KWypozyczenia
  10. Dla zainteresowanych
  11. Otwórz tabelę Klienci i zmień maskę wprowadzania dla pola NrTelefonu, aby była możliwość podania numeru telefonu w standardzie międzynarodowym, w którym dziewięć cyfr numeru zapisanych w jednym bloku poprzedza dwucyfrowy międzynarodowy numer kierunkowy ze znakiem plus, oddzielony od cyfr numeru spacją. Znak plus i spacja powinny być widoczne na formularzu podczas wprowadzania danych nowego klienta (rys. 16.).
    Rys. 16. Pole wprowadzania numeru telefonu widoczne na formularzu do wprowadzania danych nowego klienta
  12. Zaprojektuj dla tworzonej samodzielnie bazy danych SOBiS (zad. 5. w temacie B1) formularze, kwerendy i raporty (możesz korzystać z przykładowych rozwiązań pokazanych w bazie SOWy).
  13. Dodaj do tabeli Klienci nowe pole Plec. Wprowadź odpowiednie wartości dla wszystkich rekordów w tabeli: dla kobiet – literę K, a dla mężczyzn – M. Korzystając z przykładu 8., przygotuj naklejki z etykietami adresowymi dla wszystkich klientów z bazy SOWy. Zapisz plik pod nazwą Etykiety adresowe.
  14. Utwórz bazę danych o nazwie Klasa. Do nowej tabeli zaimportuj dane z pliku TB2_z13_Uczniowie.xls (dokument zawiera fikcyjne dane). Tabelę nazwij Uczniowie.

Wskazówki: W oknie Kreatora importu arkuszy wybieramy źródło danych i zaznaczamy, że ma zostać utworzona nowa tabela. W jednym z kroków kreatora możemy zmienić nazwy pól i ich typy (nie jest to konieczne, jeśli w pliku źródłowym pierwszy wiersz zawiera nazwy pól). W przypadku nowej tabeli program Microsoft Access zaleca zdefiniowanie klucza podstawowego. Mamy również możliwość wskazania własnego pola, które będzie pełnić funkcję klucza podstawowego. Należy wpisać nazwę nowej tabeli.