Temat B3. Zaawansowane metody tworzenia formularzy

przez | 20 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. Przygotowanie formularza zwrotu filmu
  2. Usprawnienia formularza
    1. Wstawianie bieżącej daty do wybranego pola na formularzu
    2. Umieszczanie przycisku polecenia na formularzu
  3. Modyfikacje formularzy i tabel
    1. Przyciski nawigacyjne
    2. Dodawanie pól do tabel i formularzy
  4. Dodatkowe możliwości stosowania kwerend
    1. Tworzenie innego raportu na podstawie tej samej kwerendy
    2. Zastosowanie funkcji standardowych operujących datami i godzinami w kwerendach
    3. Korzystanie z parametrów w kwerendzie
    4. Zastosowanie standardowych operatorów w kryteriach wyszukiwania
  5. Na czym polega przetwarzanie danych w systemie obsługi wypożyczalni filmów?

1. Przygotowanie formularza zwrotu filmu

W bazie SOWy umożliwiliśmy wprowadzanie danych nowego filmu i danych klienta oraz wypożyczanie filmów. Utworzyliśmy odpowiednie formularze. Nie uwzględniliśmy jednak możliwości zwrotu wypożyczonego filmu. W tym celu utworzymy nowy formularz.

Nie trzeba tworzyć tabeli Zwroty, bo wszystkie potrzebne dane (o klientach, filmach i wypożyczeniach) są już zapisane w utworzonych tabelach. W tabeli Wypozyczenia znajduje się pole DataZwrotu, którego do tej pory nie wypełnialiśmy (dla każdego rekordu powinno mieć wartość Null). Podczas zwracania filmu będzie do niego wprowadzana aktualna data.

Czynności związane z oddawaniem filmu powinny być wykonywane jak najsprawniej, dlatego musimy zaprojektować prosty i wygodny w użyciu formularz.

W jednej bazie danych może znajdować się kilka różnych formularzy przygotowanych na podstawie tej samej tabeli (tabel).

Wstępny projekt formularza

Formularz zwrotu filmu powinien spełniać następujące funkcje:

  • Powinny być widoczne podstawowe dane klienta oraz informacje o filmach, których nie oddał. W związku z tym przygotujemy formularz z podformularzem (przykład 1.).
  • Użytkownik nie powinien mieć możliwości zmiany danych w tym formularzu (poza zmianą wartości pola DataZwrotu). Taką możliwość zablokujemy (przykład 2.).
  • Kiedy klient odda film, w polu DataZwrotu powinna być wprowadzana aktualna data. W formularzu umieścimy przycisk, którego naciśnięcie spowoduje wprowadzenie bieżącej daty w polu DataZwrotu ‒ będzie to równoznaczne z oddaniem filmu (przykład 3.).
  • Aby przyspieszyć i usprawnić wyszukiwanie danych klienta, w formularzu umieścimy przycisk polecenia i utworzymy kwerendę, która posortuje informacje o klientach według nazwiska i imienia (przykłady 4. i 5.).
  • Oddane filmy nie powinny być widoczne na liście filmów wypożyczonych przez danego klienta (przykład 6.).

Tabela Klienci jest w relacji „jeden do wielu” z tabelą Wypozyczenia. Aby wyświetlać listę filmów wypożyczonych przez klienta, nie wystarczy standardowy formularz. Użyjemy formularza z podformularzem, który umożliwia wyświetlenie danych powiązanych. W naszym przypadku będą to filmy wypożyczone przez danego klienta.

Można od razu tworzyć formularz z podformularzem lub utworzyć niezależnie podformularz i potem dołączyć go do formularza głównego. W przykładzie 1. pokażemy tworzenie formularza z podformularzem.

Jeśli podformularz łączymy z formularzem głównym, to należy się upewnić, że źródła ich rekordów są powiązane relacjami.

Przykład 1. Przygotowanie formularza zwrotu filmu z podformularzem

Formularz główny przygotujemy na podstawie tabeli Klienci, natomiast źródłem danych dla podformularza będą tabele Wypozyczenia i Filmy.

Skorzystamy z Kreatora formularzy i przygotujemy początkową postać formularza łącznie z podformularzem.

Po uruchomieniu kreatora wybieramy tabelę Klienci, a z niej pola Nazwisko, Imie, NrDowoduOs.

Wybieramy z tabeli Wypozyczenia pole IdFilmu, z tabeli Filmy pole TytułFilmu i kolejne dane z tabeli Wypozyczenia: LiczbaDni, DataWypozyczenia i DataZwrotu.

Gdy program zapyta o sposób wyświetlania danych, wybieramy opcję przez Klienci (dla danego klienta mają być wyświetlane filmy, których nie oddał).

Wybieramy układ formularza – dla formularza głównego kolumnowy, a dla podformularza – tabelaryczny (w przypadku podformularza układ tabelaryczny jest wygodniejszy, bo zazwyczaj dla jednego klienta będzie pokazywana lista filmów, którą wygodniej przeglądać w tabeli). Wybieramy styl formularza – np. przemysłowy.

Formularz nazywamy FZwroty, a podformularz – PodformularzFZwroty. Mimo że podformularz jest umieszczony od razu na formularzu, to będzie zapisany pod własną nazwą.

Rys. 1. Formularz zwrotu filmu w Widoku projektu. W dolnej części widoczny jest projekt podformularza

Ćwiczenie 1. Tworzymy formularz zwrotu filmu

  1. Korzystając z przykładu 1., utwórz formularz zwrotu filmu.
  2. Popraw odpowiednio etykiety pól opisujących dane klienta i filmu oraz dostosuj szerokość etykiet i pól tekstowych.
  3. W podformularzu zmniejsz wysokość obszaru Szczegóły, aby widoczny był tylko wiersz z polami (rys. 1.). Nie będziemy wypełniać stopki formularza, więc należy zmniejszyć wysokość obszaru stopki tak, aby nie był on w ogóle widoczny.

Użytkownik nie powinien mieć możliwości zmiany danych klienta i filmu na formularzu zwrotu. Formularz ten nie służy do wpisywania nowych danych ani do ich usuwania, dlatego należy zablokować takie możliwości dla danych klienta i filmu (poza możliwością wprowadzania wartości do pola DataZwrotu).

Przykład 2. Blokowanie danych przed zmianami

Otwieramy formularz w Widoku projektu.

Aby otworzyć właściwości formularza, wystarczy uaktywnić kwadrat w lewym górnym rogu formularza (klikając dwukrotnie ten przycisk). Opcję Właściwości formularza można też wybrać z menu kontekstowego, klikając prawym przyciskiem myszy przycisk z kwadratem lub dowolne (ale puste) miejsce w obszarze formularza.

We właściwościach formularza głównego, w zakładce Dane, należy ustawić opcje: Wprowadzanie danych, Dodawanie dozwolone, Usuwanie dozwolone i Edycja dozwolona na – Nie (rys. 2.).

Czynności te należy wykonać również dla podformularza, ale dla pola Edycja dozwolona należy wybrać Tak.

Dodatkowo we właściwościach pola DataZwrotu, w zakładce Dane, należy ustawić opcję Zablokowany na Nie. Pozostałe pola w podformularzu powinny mieć tę opcję ustawioną na Tak.

Właściwości danego pola można otworzyć z menu kontekstowego tego pola (opcja Właściwości).

Aby ustawić te same właściwości dla kilku pól, można je najpierw wszystkie uaktywnić, przytrzymując klawisz Ctrl.

Rys. 2. Okno właściwości formularza. Widoczne są opcje zakładki Dane

Ćwiczenie 2. Zmieniamy właściwości pól formularza i podformularza

  1. Zablokuj możliwość zmiany wszystkich danych (oprócz pola DataZwrotu) na formularzu FZwroty i podformularzu PodformularzFZwroty.
  2. Zapisz formularz z podformularzem pod tymi samymi nazwami.

Uwaga: Podformularz jest oddzielnym obiektem bazy. Można go otwierać w Widoku projektu niezależnie od formularza głównego.

Formularz, który przygotowaliśmy, ma w dole okna przyciski nawigacyjne – zarówno w oknie formularza głównego, jak i w oknie podformularza. Przyciski nawigacyjne umożliwiają przechodzenie do następnego, poprzedniego, ostatniego i pierwszego rekordu. Usuniemy z podformularza te przyciski, gdyż mogą być mylące. Użytkownik może je omyłkowo naciskać, co będzie skutkowało przejściem do następnego filmu wypożyczonego przez tego samego klienta, a nie do danych następnego klienta.

Ćwiczenie 3. Usuwamy przyciski nawigacyjne z podformularza

  1. Usuń przyciski nawigacyjne z podformularza.
  2. Popraw również wygląd formularza (wzór na rys. 3.).

Wskazówka: Ustalenia, czy przyciski nawigacyjne mają być widoczne w oknie, dokonuje się we właściwościach podformularza, w zakładce Format. W tej samej zakładce usuwa się też paski przewijania poziomego i pionowego.

Rys. 3. Widok formularza zwrotu filmu po wykonaniu ćwiczeń 1-3

2. Usprawnienie formularza

2.1. Wstawianie bieżącej daty do wybranego pola na formularzu

Aby usprawnić oddawanie filmu, dodamy możliwość automatycznego wprowadzania aktualnej daty do pola DataZwrotu na formularzu zwrotu. W tym celu przygotujemy odpowiednią procedurę w języku Visual Basic (rys. 4.), którą przypiszemy do pola DataZwrotu. Kliknięcie tego pola w Widoku formularza spowoduje powstanie określonego zdarzenia, które zostanie obsłużone przez napisaną procedurę (rys. 5.). Obsługa języka Visual Basic jest wbudowana w programy pakietu Microsoft Office.

Dany film zostanie oznaczony jako oddany, ponieważ pole DataZwrotu nie będzie już puste.

Przykład 3. Tworzenie procedury zdarzenia w języku Visual Basic, która w wybranym polu formularza wstawi bieżącą datę

Otwieramy formularz zwrotu filmu w Widoku projektu formularza.

We właściwościach pola DataZwrotu wybieramy zakładkę Zdarzenie. Ustalamy, w jaki sposób ma zostać wywołane zdarzenie – wybieramy Przy kliknięciu.

Otworzy się okno Wybieranie konstruktora, w którym wybieramy Konstruktora kodu.

Doszliśmy do okna, w którym wpiszemy procedurę w języku Visual Basic (rys. 4.).

Procedura powinna wykonywać następującą instrukcję: Me!DataZwrotu = Date.

Objaśnienia:

Private Sub nazwa – rozpoczyna definicję procedury; obok nazwy umieszczono zapis Click(), ponieważ wybraliśmy, że procedura ma być wykonywana przy kliknięciu,

Me!DataZwrotu – oznacza odwołanie do wartości pola DataZwrotu, na którym umieszczono kursor myszy,

Date – funkcja standardowa języka Visual Basic, zwracająca aktualną datę,

End Sub – kończy definicję procedury.

Ćwiczenie 4. Wstawiamy bieżącą datę do pola na formularzu zwrotu filmu

  1. Korzystając z przykładu 3., utwórz procedurę w języku Visual Basic, która wstawi bieżącą datę w polu DataZwrotu.
  2. Zapisz formularz pod tą samą nazwą.
Rys. 4. Okno, w którym wpisujemy treść procedury w języku Visual Basic
Rys. 5. Podformularz z widoczną datą zwrotu

Ćwiczenie 5. Testujemy formularz zwrotu filmu

  1. Przetestuj formularz, wykonując kilka operacji zwrotu filmu. Przygotuj najpierw dane w swojej bazie, czyli „wypożycz” kilka filmów.
  2. Zwróć uwagę, czy w polu DataZwrotu pojawi się dla tych rekordów bieżąca data (rys. 5.).

2.2. Umieszczanie przycisku polecenia na formularzu

W celu usprawnienia niektórych czynności można umieszczać na formularzach przyciski poleceń, które należą do formantów programu Microsoft Access. Naciśnięcie takiego przycisku powoduje określone zdarzenie obsługiwane przez procedurę języka Visual Basic.

Do wstawiania przycisków można wykorzystać Kreator przycisków poleceń. Proponuje on kilka kategorii przycisków, w zależności od ich funkcji. Przyciski mogą m.in. wykonywać operacje na rekordach, formularzach, raportach. Po wybraniu określonej akcji program automatycznie tworzy odpowiednią procedurę. Przycisków poleceń można używać do uruchamiania makr i modułów języka Visual Basic. Przyciski można umieszczać na formularzach; mogą być wykorzystywane do operacji na rekordach. W przykładzie 4. pokażemy, w jaki sposób wstawić przycisk usprawniający wyszukanie wybranego klienta.

Rys. 6. Narzędzia projektowania formularzy. Kursor wskazuje przycisk polecenia

Przykład 4. Wstawianie przycisku szukania

Przycisk polecenia wstawimy na formularzu, korzystając z Narzędzi projektowania formularzy (rys. 6.).

Gdy umieścimy przycisk na formularzu, otworzy się Kreator przycisków poleceń.

Kreator umożliwia określenie zdarzenia, jakie ma być wywołane użyciem tego przycisku.

Wybieramy kategorię Nawigowanie między rekordami, a następnie – Znajdź rekord (rys. 7.).

Następnie możemy wybrać, czy na przycisku będzie znajdował się obraz, np. lornetka, czy etykieta tekstowa. Umieścimy na przycisku napis „Szukaj”.

Po naciśnięciu przycisku Szukaj zostanie otwarte okno programu Access Znajdź (Znajdowanie i zamienianie) – rysunek 8.

Jeśli wybierzemy opcję Uwzględnij: Początek pola, to po wpisaniu jednej lub dwóch liter nazwiska i kliknięciu przycisku Znajdź następny w polu tekstowym formularza pojawi się pełny jego zapis.

Uwaga: W polu Szukaj w: (rys. 8.) można szukać w Bieżącym polu (w którym ustawiono kursor) lub Bieżącym dokumencie.

Rys. 7. Okno Kreatora przycisków poleceń
Rys. 8. Okno programu Microsoft Access – Znajdź

Ćwiczenie 6. Umieszczamy przycisk na formularzu

  1. Korzystając z przykładu 4., umieść przycisk szukania na formularzu zwrotu filmu.
  2. Zapisz formularz pod tą samą nazwą.

2.3. Kwerenda jako źródło danych dla formularza

Kwerenda może zostać utworzona za pomocą Kreatora kwerend lub w Widoku projektu i zapisana pod określoną nazwą (tu: KWypozyczenia).

Kwerendę można również utworzyć bezpośrednio w formularzu. Przygotowujemy ją wtedy, korzystając z Konstruktora kwerend, który otwiera się we właściwościach formularza.

Taka kwerenda jest przypisana do konkretnego formularza i nie widać jej na liście kwerend.

Aby przeglądane rekordy były wyświetlane w kolejności alfabetycznej, przygotujemy kwerendę, która posortuje rekordy według nazwiska (a w dalszej kolejności – imienia i numeru dowodu osobistego).

Przykład 5. Tworzenie kwerendy sortującej rekordy

Przygotowując formularz FZwroty, wybraliśmy tabelę Klienci jako źródło danych. Teraz zmienimy źródło danych na kwerendę sortującą dane.

We właściwościach formularza wybieramy zakładkę Dane/Źródło rekordów. Następnie, klikając przycisk , otwieramy Konstruktora kwerend.

Po potwierdzeniu chęci utworzenia kwerendy otworzy się okno Konstruktora kwerend (rys. 9.).

Z tabeli Klienci wybieramy kolejno pola: Nazwisko, Imie, NrDowoduOs, Id, klikając dwukrotnie ich nazwy w okienku reprezentującym tabelę. Dla wszystkich pól oprócz pola Id ustawiamy sortowanie rosnące.

Opcję Pokaż zaznaczamy dla wszystkich pól. Kolejność pól sortowania jest taka, jak kolejność wybranych pól.

Rys. 9. Okno Konstruktora kwerend

Ćwiczenie 7. Tworzymy kwerendę sortującą rekordy

  1. Przygotuj kwerendę sortującą rekordy z danymi klienta według opisu z przykładu 5.
  2. Zapisz kwerendę, nadając odpowiednią nazwę.

Filmy, które oddano, nie powinny wyświetlać się na liście filmów danego klienta, widocznej na formularzu zwrotu. W przykładzie 6. pokażemy, w jaki sposób je z tej listy usuwać.

Przykład 6. Tworzenie kwerendy usuwającej oddany film z listy widocznej na podformularzu

We właściwościach podformularza, w zakładce Dane, należy wybrać źródło rekordów i kliknąć przycisk .

W oknie Konstruktora kwerend otworzy się kwerenda, która została utworzona automatycznie przez program Access, gdy włączyliśmy podformularz do formularza.

Zmodyfikujemy ją, dodając warunek, aby wartość pola DataZwrotu była pusta (w polu kryteria wpisujemy Is Null). Chcemy bowiem, aby na liście filmów wyświetlały się tylko te rekordy, które mają niewypełnioną datę zwrotu, tzn. zawierające tylko filmy nieoddane.

Rys. 10. Kwerenda utworzona automatycznie przez program. W polu kryteriów widoczny jest ustalony przez nas warunek: DataZwrotu is Null

Ćwiczenie 8. Modyfikujemy formularz zwrotu filmu

  1. Zmodyfikuj formularz zwrotu filmu, aby oddane filmy nie wyświetlały się na liście w tabeli podformularza. W tym celu zmodyfikuj odpowiednią kwerendę, korzystając z przykładu 6.
  2. Zapisz formularz pod tą samą nazwą.

3. Modyfikacje formularzy i tabel

Podstawy funkcjonowania bazy danych SOWy są już gotowe. Przedstawimy jeszcze kilka dodatkowych pomysłów na jej modyfikacje. Pozostałe możliwości pozostawimy do samodzielnej realizacji, m.in. podczas wykonywania zadań umieszczonych na końcu tematu.

3.1. Przyciski nawigacyjne

Każde okno formularza zawiera standardowe przyciski nawigacyjne, które są umieszczane w oknach programu Microsoft Access. Tworząc formularze w systemach informatycznych, przygotowuje się zazwyczaj własne przyciski. Można je wówczas umieścić w dogodnych dla użytkownika miejscach i dodatkowo opisać.

Na formularzach klienta, filmu, wypożyczeń i zwrotu umieścimy m.in. przyciski obsługujące przejście do rekordu: następnego, poprzedniego, ostatniego i pierwszego. Ponadto na trzech pierwszych formularzach umieścimy przycisk dodawania nowego rekordu.

Ćwiczenie 9. Umieszczamy przyciski nawigacyjne na formularzach

  1. Umieść na wszystkich formularzach przyciski nawigacyjne obsługujące przejście do rekordu: następnego, poprzedniego, pierwszego i ostatniego.
  2. Usuń standardowe przyciski występujące w oknie programu Microsoft Access.

Wskazówki:

  • Aby usunąć standardowe przyciski w oknie formularza, otwórz okno Właściwości formularza. W zakładce Format odszukaj opcję Przyciski nawigacyjne i wybierz Nie.
  • W celu utworzenia własnych przycisków użyj Kreatora przycisków poleceń (patrz przykład 4.). Możesz wybrać propozycje kreatora lub wprowadzić własne teksty na przyciskach. Skorzystaj również ze wzoru przedstawionego na rysunku 11.

3.2. Dodawanie pól do tabel i formularzy

Na formularzu wypożyczenia filmu wprowadziliśmy listę wyboru dla danych klienta i filmu, ale po zamknięciu listy na formularzu widać tylko nazwisko. Zmodyfikujemy formularz, aby pozostałe dane klienta (imię i numer dowodu osobistego) były pokazywane w dodatkowych polach. Wprowadzimy również pole, w którym będzie się wyświetlał tytuł filmu wybranego z listy (rys. 11.).

Przykład 7. Umieszczanie pól tekstowych na formularzu

Do formularza wypożyczenia filmu należy wprowadzić trzy pola tekstowe (odpowiedni formant z Narzędzi projektowania formularzy z grupy Formanty), dla których źródłem danych będą odpowiednio pola: Imie, NrDowoduOs i TytulFilmu.

Pola te powinny być zablokowane.

Formularz wypożyczenia filmu został wcześniej przygotowany na podstawie tabeli Wypozyczenia, w której nie umieszczono wymienionych pól. Możemy sprawdzić we właściwościach pola (zakładka Dane/Źródło formantu), że nazw tych pól nie ma na liście.

Wszystkie potrzebne pola występujące w tym formularzu dodano do kwerendy KWypozyczenia, we właściwościach formularza należy więc zmienić źródło danych na kwerendę KWypozyczenia.

Rozwijając listę dla źródła formantu, powinniśmy otrzymać wykaz jak na rysunku 12. – możemy stąd wybrać potrzebne pola.

Rys. 11. Formularz wypożyczenia filmu po kilku modyfikacjach – dodano m.in. własne przyciski nawigacyjne i pola wyświetlające dane klienta i filmu
Rys. 12. Wybieranie źródła danych dla pola tekstowego, w którym ma się wyświetlać tytuł filmu

Ćwiczenie 10. Umieszczamy dodatkowe pola na formularzu

  1. Otwórz formularz wypożyczenia filmu i wstaw dodatkowe pola, korzystając z przykładu 7. Rozmieść je i sformatuj jak na rysunku 11.
  2. Zapisz formularz pod tą samą nazwą.

Wskazówka: Przy wstawianiu pól tekstowych do formularza są równocześnie wstawiane etykiety. Można je usunąć lub dodatkowo opisać w nich każde z pól. Jeżeli etykiety zostaną usunięte, to program wprowadzi nazwy domyślne (można je zobaczyć w Widoku arkusza danych).

Założyliśmy, że film można wypożyczyć na 1 dzień lub na 3 dni. Zdarza się jednak, że klient przetrzyma film kilka dni dłużej. Aby obliczyć faktyczną liczbę dni wypożyczenia, możemy umieścić na formularzu zwrotu pole, w którym będzie wykonywana ta operacja.

Gdybyśmy wprowadzili w naszym systemie opłaty za wypożyczenie, to można by również obliczyć należność za przetrzymanie filmu.

Przykład 8. Dodanie do formularza pola, w którym wykonywane są obliczenia

Do podformularza (na formularzu zwrotu filmu) wyświetlającego listę wypożyczonych przez klienta filmów dodamy pole, w którym wprowadzimy wyrażenie, korzystając z Konstruktora wyrażeń. Od daty bieżącej odejmiemy datę wypożyczenia, czyli wartość pola DataWypozyczenia i podamy wynik (w dniach).

Pole, w którym zapisano wyrażenie, można umieścić jako dodatkowe pole w kwerendzie. W naszym przypadku nie musimy tworzyć nowej, bo utworzyliśmy kwerendę przypisaną do podformularza (przykład 6., rys. 10.).

Należy ją otworzyć i kliknąć w nowym polu (na rys. 10. umieszczonym za IdKlienta).

W menu kontekstowym (wywołanym przez kliknięcie prawym przyciskiem myszy) wybieramy Konstruuj. Otworzy się okno Konstruktor wyrażeń.

Wprowadzamy następującą formułę, poprzedzając ją nazwą pola zakończoną dwukropkiem:

FaktLiczbaDni: Date() – [DataWypozyczenia]

Nawias [] oznacza, że korzystamy z wartości pola.

Formuła powinna zostać automatycznie wpisana do wskazanego pola kwerendy.

Należy zamknąć okno kwerendy i wstawić formant pola tekstowego w obszarze podformularza. Jako źródło formantu wybieramy pole FaktLiczbaDni.

Ćwiczenie 11. Dodajemy do formularza pole obliczeniowe

  1. W formularzu zwrotu filmu wstaw pole obliczające faktyczną liczbę dni wypożyczenia filmu. Skorzystaj z przykładu 8.
  2. Przejdź do Widoku formularza i sprawdź, czy w dodanym polu pojawiają się poprawne liczby.

W tabeli Filmy umieściliśmy na razie tylko kilka podstawowych informacji o filmach. Możemy do niej jednak dodać nowe pola, m.in. nazwisko reżysera, krótki opis filmu (dane typu Długi tekst).

Korzystając z obcych źródeł, trzeba pamiętać o przestrzeganiu praw autorskich i o zasadach korzystania z cudzych materiałów (temat D1, „Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres podstawowy. Klasa II”). Należy podać źródło wykorzystanych materiałów.

Ciekawym uzupełnieniem mogłyby być zdjęcia z filmów, klipy wideo czy pliki dźwiękowe, np. fragment ścieżki dźwiękowej (dane typu Obiekt OLE). Takie materiały można znaleźć w Internecie.

Oczywiście, musimy pamiętać o rozbudowaniu formularza wprowadzania filmu o dodatkowe pola.

Ćwiczenie 12. Dodajemy nowe pole do tabeli i modyfikujemy formularz

  1. Dodaj, według własnego uznania, nowe pola do tabeli Filmy.
  2. Zmodyfikuj również formularz wprowadzania filmu, a następnie, korzystając z niego, uzupełnij wartości pól dodanych do tabeli Filmy.

4. Dodatkowe możliwości stosowania kwerend

4.1. Tworzenie innego raportu na podstawie tej samej kwerendy

Na podstawie tej samej kwerendy możemy przygotować więcej niż jeden raport. Skorzystamy z utworzonej w temacie 20. kwerendy (ewidencja wypożyczeń) i przygotujemy raport, w którym dla danego filmu wydrukujemy listę klientów, którzy go wypożyczali.

Ćwiczenie 13. Przygotowujemy raport

  1. Przygotuj raport zawierający wykaz wypożyczonych filmów. Jako sposób wyświetlania danych wybierz przez Klienci.
  2. Zapisz raport pod odpowiednią nazwą.

Wskazówka: Zobacz temat B2, przykład 10.

4.2. Zastosowanie funkcji standardowych operujących datami i godzinami w kwerendach

W programie Microsoft Access możemy skorzystać z kilku funkcji operujących datą i czasem:

  • Date() – zwraca aktualną datę,
  • Day(data) – zwraca numer dnia miesiąca dla podanej daty, np. Day(’11-05-2004′) zwraca 11 (funkcja przyjmuje wartości od 1 do 31),
  • Month(data) – zwraca numer miesiąca dla podanej daty, np. Month(’31-10-2002′) zwraca 10 (funkcja przyjmuje wartości od 1 do 12),
  • Year(data) – zwraca rok dla podanej daty, np. Year(’11-05-2004′) zwraca 2004,
  • Time() – zwraca aktualną godzinę.

Przykład 9. Tworzenie kwerendy wybierającej klientów, którzy wypożyczyli filmy w pierwszym kwartale bieżącego roku

Wybieramy potrzebne pola z tabel Klienci, Filmy i Wypożyczenia, m.in. Nazwisko, Imie, DataWypozyczenia, a następnie:

  • do kwerendy wprowadzamy pole obliczeniowe: Month([DataWypozyczenia]);
  • w polu Kryteria dla tego pola wpisujemy: <=3 (pierwszy kwartał to trzy pierwsze miesiące);
  • wprowadzamy kolejne pole obliczeniowe: Year(Date()) (chodzi o pierwszy kwartał aktualnego roku);
  • w polu Kryteria dla tego pola wpisujemy: Year([DataWypozyczenia]).

Można skorzystać z Konstruktora wyrażeń.

Ćwiczenie 14. Tworzymy kwerendę wybierającą

  1. Przygotuj kwerendę, w wyniku której otrzymamy wykaz filmów wypożyczonych w kwietniu bieżącego roku. Pokaż informacje tylko o filmach.
  2. Utwórz raport na podstawie tej kwerendy.

4.3. Korzystanie z parametrów w kwerendzie

W kwerendach programu Microsoft Access nie trzeba z góry określać wartości, którą program ma wyszukać. Można zastosować parametr – wówczas program będzie pytał o jego wartość podczas każdego uruchomienia kwerendy.

Przykład 10. Podawanie parametru w kwerendzie

Przygotujemy kwerendę, w wyniku której otrzymamy wykaz filmów wypożyczonych w dowolnym miesiącu – podawanym jako parametr kwerendy.

Do kwerendy utworzonej w ćwiczeniu 14. dla pola obliczeniowego Month([DataWypozyczenia]) zamiast konkretnej wartości wprowadzimy parametr.

Aby dane pole kwerendy było traktowane jako parametr, należy w wierszu Kryteria dla danego pola wpisać nazwę lub zdanie zawarte w nawiasach ([]), np. ([Podaj numer miesiąca]). Zawartość nawiasów program traktuje jako parametr i prosi o podanie jego wartości w oknie dialogowym podczas wykonywania kwerendy (rys. 13.).

Rys. 13. Okno dialogowe, w którym wpisujemy wartość parametru

Ćwiczenie 15. Tworzymy kwerendę z parametrami

  1. Zmodyfikuj kwerendę przygotowaną w ćwiczeniu 14., wprowadzając zamiast wartości miesiąca parametr.
  2. Zapisz kwerendę pod tą samą nazwą.

4.4. Zastosowanie standardowych operatorów w kryteriach wyszukiwania

Stosowane w wyrażeniach programu Microsoft Access operatory, funkcje i stałe można odszukać w oknie Konstruktora wyrażeń.

Najczęściej stosowane operatory:

  • arytmetyczne: *, /, +, –;
  • porównania: =, <>, >, <, <=, >=, BETWEEN, np. BETWEEN 1 AND 12 określa zakres wartości <1; 12>, co jest równoznaczne zapisowi >=1 AND <=12;
  • logiczne: AND, OR, NOT;
  • wykonywane na ciągach znaków: & (operator konkatenacji, służący do łączenia dwóch ciągów znaków w jeden);
  • LIKE (przykład 11.).

Przydatne są też funkcje standardowe działające na napisach:

  • LCase – zamienia wszystkie litery na małe, np. LCase('TRUSKAWKA') zwraca napis truskawka;
  • UCase – zamienia wszystkie litery na wielkie, np. UCase('hurtOWNia') zwraca napis HURTOWNIA;
  • Right – zwraca określoną liczbę znaków z prawej strony napisu, np. wartością Right('KP0012',4) jest 0012;
  • Left – zwraca określoną liczbę znaków z lewej strony napisu, np. wartością Left('KP0012',2) jest KP;
  • Len – zwraca długość (w znakach) napisu będącego argumentem, np. wartością Len('Kowalski') jest 8.

Przykład 11. Zastosowanie operatora LIKE

Zastosujemy jeden ze standardowych operatorów programu Microsoft Access – operator LIKE. Operator ten jest przydatny do wyszukiwania wzorów w polach typu tekstowego (Krótki tekst i Długi tekst). W tekście będącym parametrem operatora LIKE można używać znaku *, oznaczającego dowolny ciąg znaków.

Na przykład:

LIKE 'B*' dla pola IdFilmu wyszuka wszystkie filmy, których kod zaczyna się na literę B;

LIKE '*a' dla pola Imie wyszuka wszystkie imiona kończące się na a.

Ćwiczenie 16. Stosujemy operator LIKE w kwerendzie

  1. Przygotuj zestawienie (kwerendę) klientów wypożyczalni filmów, których nazwiska zaczynają się na literę N lub P.
  2. Zapisz kwerendę pod odpowiednią nazwą.

5. Na czym polega przetwarzanie danych w systemie obsługi wypożyczalni filmów?

Przetwarzanie danych to uporządkowane wykonywanie operacji na danych. Na przykładzie tworzenia systemu SOWy omówiliśmy wiele z nich: wprowadzanie, redagowanie (poprawianie, uzupełnianie), wyszukiwanie, prezentację. Przetwarzanie danych z wykorzystaniem bazy SOWy pokażemy na kilku przykładach.

Scenariusz 1.

Do wypożyczalni filmów przychodzi nowy klient. Podaje swoje nazwisko. Ponieważ jego danych nie ma w bazie, musimy go zarejestrować. Otwieramy formularz FKlienci (naciskamy przycisk Dodaj) i wprowadzamy odpowiednie informacje. Następnie otwieramy formularz wypożyczenia filmu FWypozyczenia. Naciskamy przycisk Dodaj, odszukujemy klienta na liście i wybieramy z listy film, który klient chce wypożyczyć. Wybieramy liczbę dni, na jaką ma zostać wypożyczony film.

Wprowadzenie danych nowego klienta jest równoznaczne z dopisaniem nowego rekordu do tabeli Klienci. W ten sposób przetworzyliśmy dane.

Scenariusz 2.

Do wypożyczalni filmów wchodzi stały klient. Podaje swoje nazwisko. Otwieramy formularz wypożyczenia filmu FWypozyczenia i wyszukujemy dane klienta w bazie. Okazuje się, że są trzy osoby o takim samym nazwisku, pytamy więc o imię. Jeśli w bazie są osoby o takim samym imieniu i nazwisku, to możemy jeszcze sprawdzić numer dowodu osobistego.

Wypożyczenie filmu jest równoznaczne z dopisaniem nowego rekordu do tabeli Wypozyczenia. W ten sposób przetworzyliśmy dane.  

Wybieramy z listy film, który mamy wypożyczyć, oraz liczbę dni, na jaką ma zostać wypożyczony.

Scenariusz 3.

Do wypożyczalni filmów przychodzi klient, aby oddać film. Podaje swoje nazwisko.

Otwieramy formularz zwrotu filmu. Wyszukujemy klienta. Wyświetla się lista wypożyczonych przez niego filmów, ustawiamy kursor na danym filmie, klikamy pole, w którym wyświetla się data zwrotu i… zapraszamy klienta do wypożyczenia kolejnego filmu.

Oddanie filmu przez konkretnego klienta to wypełnienie pola DataZwrotu w tabeli Wypozyczenia. W ten sposób przetworzyliśmy dane.  

Ćwiczenie 17. Testujemy system SOW-y

Wspólnie z innymi osobami z grupy przygotuj kilka podobnych do przedstawionych wyżej scenariuszy. Jest to najlepszy sposób na przetestowanie systemu, a tym samym odnalezienie ewentualnych niedociągnięć.

W celu zapewnienia optymalnej szybkości działania i zmniejszenia rozmiarów pliku bazy, warto co jakiś czas wykonać tzw. kompaktowanie bazy danych.

Ćwiczenie 18. Kompaktujemy i naprawiamy plik bazy danych

Wykonaj kompaktowanie i naprawianie pliku bazy danych SOWy.

Wskazówka: Aby naprawić bazę danych, należy wybrać polecenie Kompaktuj i napraw bazę danych. Można je znaleźć na karcie Narzędzia bazy danych w grupie Narzędzia.

Zadania

  1. Umieść na formularzu wypożyczenia filmu przyciski nawigacyjne (jeśli nie zostało to wykonane w ćwiczeniu 9.) oraz we właściwościach formularza, w zakładce Dane, ustaw opcję Wprowadzanie danych na Nie.
  2. Dodaj do formularza wypożyczania filmów przycisk otwierający formularz dodawania nowego klienta. Pracownicy będą mogli z niego korzystać, kiedy do wypożyczalni przyjdzie klient, którego danych nie ma w bazie.
    Wskazówka: Jako akcję dla przycisku wybierz w kreatorze Operacje na formularzach/Otwórz formularz.
  3. Umieść na formularzu wypożyczenia filmu przycisk Szukaj, umożliwiający wyszukiwanie danych klienta. Przygotuj kwerendę sortującą rekordy z danymi klientów.
  4. Wprowadź dodatkowe pola do tabeli Klienci, np. numer dodatkowego dokumentu, numer PESEL lub adres e-mail (do powiadamiania klientów o promocjach – oczywiście, takie powiadomienia powinno się wysyłać tylko tym klientom, którzy wyrazili na to zgodę). Odpowiednio zaktualizuj formularz klienta.
  5. Na formularzu FFilmy wprowadź pole kombi do wybierania rodzaju nośnika i gatunku filmu.
  6. Przygotuj zestawienie (kwerendę i na jej podstawie raport):
    1. osób, które przetrzymują film dłużej niż 7 dni;
    2. filmów według liczby wypożyczeń;
      Wskazówka: Wybierz wszystkie rekordy z tabel Wypozyczenia i Filmy. W oknie projektu kwerendy, z Narzędzi kwerend (na karcie Projektowanie), wybierz polecenie Sumy (przycisk ). W siatce projektowej wyświetla się wtedy dodatkowy wiersz Suma, w którym dla każdego pola pojawi się wpis Grupuj według. W komórce Suma dla pola TytulFilmu wybierz funkcję Policz. Ustaw sortowanie rekordów według wartości tego pola (malejąco).
    3. filmów, które w ostatnim tygodniu nie były wypożyczane;
      Wskazówka: Zadanie możesz rozwiązać w dwóch krokach. W pierwszym kroku zaprojektuj kwerendę, która wybierze wszystkie wypożyczane w ostatnim tygodniu filmy. Nazwij ją np. KFilmyW. W drugim kroku skorzystaj z Kreatora kwerend wyszukujących niedopasowane dane. Tabela Filmy zawiera rekordy, które chcesz otrzymać w wyniku działania kwerendy. Kwerenda KFilmyW zawiera pokrewne rekordy. Pola pasujące to Id i IdFilmu. W wyniku powinieneś otrzymać kwerendę Obiekt Filmy nie pasuje do obiektu KFilmyW.
    4. pięciu osób, które w ostatnim tygodniu wypożyczały dany film;
      Wskazówka: Zmodyfikuj kwerendę z zadania 6c. Aby wyświetlić tylko pięć ostatnich osób, posortuj je według pola DataWypozyczenia, a następnie w oknie projektu kwerendy (na karcie Projektowanie w grupie Konfiguracja kwerendy), rozwiń listę Zwróć: i zmień wybór z: Wszystkie na: 5.
    5. podające, ile razy w kolejnych kwartałach były wypożyczane poszczególne filmy;
      Wskazówka: Skorzystaj z Kreatora kwerend krzyżowych. Wybierz tabelę Wypozyczenia. Jako nagłówki wierszy użyj pola IdFilmu, a jako nagłówki kolumn – pola DataWypozyczenia. Grupuj informacje w kolumnach co kwartał. Wykorzystaj funkcję Zlicz.
    6. osób, które w 2021 roku wypożyczały dany film; identyfikator filmu należy podawać jako parametr, a wyniki wyświetlać według dat wypożyczenia.
  7. Otwórz plik Hurtownia.mdb. Przygotuj raport prezentujący zestawienie klientów hurtowni i wartości dokonanych przez nich zakupów: nazwisko i imię klienta, adres, data realizacji zakupu, wartość oraz podsumowania dla poszczególnych klientów i całej sprzedaży.
  8. Przygotuj list seryjny na podstawie zapytania utworzonego w zadaniu 6a. Zredaguj odpowiednio treść listu.
  9. W systemie SOWyS o wypożyczaniu samochodów (zad. 7. w temacie B2) przygotuj formularz zwrotu samochodu.
  10. Dla zainteresowanych
  11. Zastanów się nad dodatkowymi możliwościami systemu SOWy, na przykład nad:
    1. prowadzeniem magazynu (dany film występuje w określonej liczbie kopii),
    2. prowadzeniem ewidencji opłat.
    Zaprojektuj niezbędne tabele, formularze, relacje (ewentualnie zmodyfikuj istniejących).
  12. Przygotuj zestawienie (kwerendę i na jej podstawie raport) „Lista hitów miesiąca” – najczęściej wypożyczanych w danym miesiącu filmów.
  13. W systemie SOBiS (zad. 11. w temacie B2) przygotuj formularz zwrotu książki.
  14. W systemie SOBiS przygotuj następujące zestawienia (kwerendy i na ich podstawie raporty):
    1. wykaz osób, które przetrzymują książkę dłużej niż 2 tygodnie,
    2. ewidencję wypożyczonych książek.