Spis treści Wstęp ........................................................................................................9 Jak powstaje baza danych? .................................................................................. 10 Dla kogo jest ta książka? ...................................................................................... 11 Układ książki......................................................................................................... 12 Przykłady ............................................................................................................... 13 Rozdział 1. Serwer baz danych, czyli do czego służy Microsoft Access........15 Po co nam bazy danych?...................................................................................... 15 Instalacja programu Microsoft Access............................................................... 17 Zmiany zainstalowanego pakietu Office 2013 .................................................. 20 Aktualizacja starszej wersji pakietu Office ........................................................ 20 Aktywacja i pierwsze uruchomienie programu ............................................... 21 Poznajemy środowisko systemu zarządzania bazami danych Access ........... 24 Tworzenie pustej bazy danych ............................................................................ 25 Zamykanie bazy danych ...................................................................................... 26 Kopiowanie pliku bazy danych ........................................................................... 27 Zmiana domyślnej wersji bazy danych .............................................................. 28 Kompilacja bazy danych ...................................................................................... 29 Podsumowanie...................................................................................................... 31 Rozdział 2. Przykładowa baza danych, czyli jak wykorzystać możliwości programu Access ......................................................33 Jak pracować z bazami danych programu Microsoft Access? ........................ 33 Otwieranie istniejącej bazy danych.................................................................... 34 Wyszukiwanie plików bazy danych ................................................................... 35 Otwieranie baz danych wcześniejszych wersji programu Access .................. 37 Udostępnianie pliku bazy danych ...................................................................... 39 Tworzenie bazy danych na podstawie szablonu Northwind .......................... 40 Poznajemy przykładową bazę danych Northwind ........................................... 41 Przydatne skróty klawiszowe .............................................................................. 48 Dodawanie zaufanych lokalizacji plików bazodanowych ............................... 49 Konwertowanie bazy danych do starszego formatu ........................................ 50 Podział bazy danych ............................................................................................. 50 Konfiguracja podzielonych baz danych............................................................. 52 Podsumowanie...................................................................................................... 53
4
Rozdział 3. Projektowanie i tworzenie tabel, czyli jak przechowywać informacje w bazie danych...........................................................55 Jak zbudowane są tabele? .................................................................................... 55 Szybki start — określamy dane elementarne .................................................... 57 Pola obliczeniowe ................................................................................................. 61 Tworzymy tabelę poprzez wprowadzanie przykładowych danych ................ 63 Tworzymy tabelę poprzez import zewnętrznych danych ............................... 65 Konfigurujemy właściwości kolumn w widoku arkusza danych ................... 68 Tworzenie tabel w widoku projektu ................................................................... 70 Definiujemy klucz podstawowy ......................................................................... 75 Typy danych programu Microsoft Access ......................................................... 78 Reguły sprawdzania poprawności (warunki, które muszą spełniać dane zapisane w tabeli) ........................................................................................ 83 Podsumowanie...................................................................................................... 88 Rozdział 4. Modyfikowanie tabel i przenoszenie danych, czyli jak zmienić strukturę tabel oraz importować lub eksportować dane ..............89 Jak zarządzać obiektami bazy danych? .............................................................. 89 Zmiana nazwy tabeli ............................................................................................ 90 Kopiowanie tabeli ................................................................................................. 93 Usuwanie tabeli..................................................................................................... 94 Ukrywanie tabeli .................................................................................................. 95 Dodawanie kolumn do tabeli ............................................................................. 97 Dodawanie reguły poprawności odwołującej się do kilku kolumn ............... 98 Zmiana definicji istniejącej kolumny ................................................................ 99 Usuwanie wybranych kolumn .......................................................................... 101 Automatyczne wprowadzanie zmian w powiązanych obiektach ................. 102 Narzędzia programu Access zapobiegające zapisywaniu w tabelach błędnych danych ............................................................................. 103 Eksportowanie danych z tabeli ......................................................................... 105 Importowanie danych z innych programów................................................... 106 Podsumowanie.................................................................................................... 109 Rozdział 5. Łączenie tabel, czyli do czego służą relacje ..............................111 Jak podzielić przechowywane w bazie informacje między odpowiednie tabele? ............................................................................. 111 Łączenie tabel za pomocą relacji typu jeden do jednego .............................. 114 Łączenie tabel za pomocą relacji typu jeden do wielu .................................. 120 Łączenie tabel relacją typu wiele do wielu za pomocą pola wielowartościowego .................................................................................. 123 Łączenie tabel za pomocą relacji typu wiele do wielu ................................... 125 Diagram E/R przykładowej bazy danych Northwind.................................... 128 Tworzymy projekt przykładowej bazy danych ............................................... 130 Tabele słownikowe ............................................................................................. 132 Tabele podrzędne ............................................................................................... 133 Tabela nadrzędna ............................................................................................... 134 Tabela łącznikowa .............................................................................................. 136 Korzystanie z tabeli łącznikowej ...................................................................... 138
5
Określamy więzy integralności danych zapisanych w połączonych tabelach ..................................................................................... 140 Wprowadzanie przykładowych danych ........................................................... 142 Usuwanie relacji.................................................................................................. 144 Modyfikowanie połączonych tabel .................................................................. 147 Podsumowanie.................................................................................................... 148 Rozdział 6. Kwerendy, czyli jak zautomatyzować pracę z danymi ...............149 Do czego służą kwerendy? ................................................................................ 149 Pobieranie wszystkich danych z tabeli............................................................. 151 Wybieranie kolumn z tabeli .............................................................................. 153 Tworzenie wyrażeń ............................................................................................ 154 Porządkowanie pobranych danych ................................................................. 157 Sortowanie danych ............................................................................................. 159 Ograniczanie liczby zwracanych wierszy ........................................................ 160 Wyszukiwanie duplikatów ................................................................................ 161 Wybieranie danych na podstawie prostego warunku logicznego ................ 163 Operatory porównania ...................................................................................... 165 Wybieranie danych na podstawie złożonego warunku logicznego ............. 166 Zwracanie danych z dwóch połączonych tabel za pomocą kreatora ........... 167 Zwracanie danych z wielu połączonych tabel ................................................. 168 Zwracanie danych z tabel połączonych za pośrednictwem pól wielowartościowych .................................................................................... 170 Uwzględnianie niepasujących wierszy z połączonych tabel ......................... 171 Dodawanie podsumowań.................................................................................. 173 Zliczanie danych ................................................................................................. 174 Grupowanie danych ........................................................................................... 175 Kwerendy krzyżowe ........................................................................................... 176 Usuwanie wybranych danych ........................................................................... 179 Dodawanie danych ............................................................................................. 180 Modyfikowanie wybranych danych ................................................................. 182 Podsumowanie.................................................................................................... 183 Rozdział 7.
Formularze, czyli jak ułatwić użytkownikom dostęp do danych ....185 W jakim celu tworzymy formularze?............................................................... 185 Szybki start z gotowymi częściami aplikacji ................................................... 186 Automatycznie tworzymy formularze związane z wybraną tabelą .............. 189 Budowa formularzy powiązanych z tabelami ................................................. 192 Wyszukujemy, filtrujemy i usuwamy dane...................................................... 193 Kreator formularzy — tworzymy formularz powiązany z wybraną tabelą ................................................................................................. 196 Kreator formularzy — tworzymy formularz związany z połączonymi tabelami .................................................................... 197 Poznajemy motywy i formularze nawigacyjne ............................................... 199 Zmiana właściwości formularza ....................................................................... 200 Formularz do przeglądania danych ................................................................. 204 Tworzymy formularz z podformularzem ....................................................... 205 Korzystanie z formularza z podformularzem ................................................. 208
6
Panel przełączania jako przykład formularza niezwiązanego z żadną tabelą użytkownika .............................................................................. 209 Poznajemy zależności pomiędzy obiektami bazy danych ............................. 213 Podsumowanie.................................................................................................... 214 Rozdział 8. Raporty, czyli jak zaprezentować dane ......................................215 Do czego służą raporty?..................................................................................... 215 Instalacja drukarki w systemie Windows 7..................................................... 216 Tworzymy autoraport ........................................................................................ 218 Kreator raportów — tworzymy raport powiązany z wybraną tabelą .......... 219 Kreator raportów — tworzymy raport powiązany z wieloma tabelami ...... 221 Kreator raportów — tworzymy raport powiązany z kwerendą .................... 222 Dodajemy podsumowania do stopki raportu ................................................. 224 Raport grupujący dane ...................................................................................... 228 Dodajemy dodatkowe poziomy grupowania danych .................................... 230 Wizualizacje i formatowanie warunkowe ....................................................... 232 Tworzenie filtrów ograniczających prezentowane dane ................................ 233 Podsumowanie.................................................................................................... 236 Rozdział 9. Makra, czyli jak zautomatyzować regularnie wykonywane operacje ...............................................237 Jak zautomatyzować pracę użytkownika za pomocą makr? ......................... 237 Tworzymy najprostsze makropolecenie .......................................................... 238 Makro składające się z dwóch akcji ................................................................. 240 Makro składające się z wielu akcji.................................................................... 241 Modyfikowanie makra ....................................................................................... 243 Makra danych ..................................................................................................... 244 Uruchamiamy makro z poziomu formularza ................................................. 247 Wykonywanie makra krok po kroku ............................................................... 250 Makro eksportujące dane z wybranej tabeli ................................................... 251 Przykładowe makro wysyłające wiadomości e-mail...................................... 252 Podsumowanie.................................................................................................... 254 Rozdział 10. Zarządzanie bazą, czyli na czym polega praca administratora baz danych ..............................................255 Jak zapewnić wydajną pracę użytkownikom programu Access? ................. 255 Tworzymy dokumentację bazy ........................................................................ 256 Konfigurujemy system zarządzania bazami danych Access ......................... 259 Właściwości pliku bazy danych ........................................................................ 266 Kompaktowanie bazy danych ........................................................................... 267 Tworzymy kopię bazy danych........................................................................... 268 Odtwarzamy bazę po awarii.............................................................................. 269 Optymalizacja wydajności bazy ....................................................................... 269 Zabezpieczamy dane przechowywane w bazie .............................................. 271 Podsumowanie.................................................................................................... 273
7
Rozdział 11. Aplikacje sieci Web i Office 365, czyli jak udostępnić bazy danych .............................................275 Usługa Office 365................................................................................................ 275 Zakładamy subskrypcję Office 365 .................................................................. 276 Aplikacje SharePoint .......................................................................................... 278 Tworzymy pustą aplikację sieci Web .............................................................. 279 Tworzymy tabelę na podstawie szablonu ........................................................ 281 Tworzymy tabelę poprzez import danych ....................................................... 283 Tworzymy własną tabelę.................................................................................... 284 Tworzymy relacje................................................................................................ 284 Tworzymy kwerendy .......................................................................................... 286 Modyfikujemy widoki ........................................................................................ 287 Dodajemy kontrolki do widoków bazy danych sieci Web ............................ 289 Konfigurujemy bazę danych sieci Web ............................................................ 291 Podsumowanie.................................................................................................... 292 Dodatek A
Odpowiedzi do zadań ................................................................293 Odpowiedzi do rozdziału 1. .............................................................................. 293 Odpowiedzi do rozdziału 2. .............................................................................. 295 Odpowiedzi do rozdziału 3. .............................................................................. 296 Odpowiedzi do rozdziału 4. .............................................................................. 297 Odpowiedzi do rozdziału 5. .............................................................................. 298 Odpowiedzi do rozdziału 6. .............................................................................. 299 Odpowiedzi do rozdziału 7. .............................................................................. 300 Odpowiedzi do rozdziału 8. .............................................................................. 301 Odpowiedzi do rozdziału 9. .............................................................................. 302 Odpowiedzi do rozdziału 10. ............................................................................ 302 Odpowiedzi do rozdziału 11. ............................................................................ 304
8
ľ-DNSRZVWDMHED]DGDQ\FK" ľ'ODNRJRMHVWWDNVLÈĝND" ľ8NïDGNVLÈĝNL ľ3U]\NïDG\
Wstęp Wyjątkowymi cechami komputerów są niesamowita szybkość, z jaką potrafią wykonywać operacje matematyczne, i absolutna dokładność, która pozwala im na „zapamiętywanie” ogromnej ilości danych. Ludzie, nie będąc w stanie dorównać komputerom, zaczęli doskonalić umiejętność wykorzystywania ich do przechowywania danych i zarządzania nimi. W ten sposób od czasu, w którym powstał pierwszy komputer, zbędne stało się bezproduktywne zaśmiecanie sobie pamięci informacjami czy zapisywanie ich na papierze, którego ilość zamienia biurko w jedną z figur origami, a biuro w magazyn makulatury. Zamiast każdorazowego przeszukiwania stert papierów, które często kończy się tylko bólem głowy, możemy zapisać nasze informacje w specjalnych programach komputerowych — bazach danych. Ich zadaniem jest właśnie efektywne przechowywanie, wyszukiwanie i modyfikowanie wybranych informacji. Bazy danych, przeszedłszy długi etap rozwoju, nie działają obecnie bezpośrednio w środowisku systemu operacyjnego (tak jak gry czy edytory tekstu), ale w środowisku systemu zarządzania bazami danych (SZBD). Jednym z takich systemów jest wchodzący w skład pakietu Office 2013 Professional program Microsoft Access 20131.
i 1
Access nie jest bazą danych, tylko systemem zarządzania bazami danych, tak jak Word nie jest dokumentem tekstowym, a edytorem tekstu.
Niższe wersje pakietu Office 2013, takie jak Home, Student czy Business, nie zawierają programu Microsoft Access. Oznacza to, że programu Access nie znajdziemy w tabletach z systemem Windows RT.
10
Jak powstaje baza danych?
Pakiet Microsoft Office 2013 jest przykładem na to, że rozbudowane i zaawansowane programy mogą być jednocześnie łatwe w użyciu. Chociaż program Access od pozostałych programów wchodzących w skład tego pakietu odróżnia to, że zanim będziemy mogli skorzystać z zalet wynikających z przechowywania informacji w bazie danych, musimy ją samodzielnie stworzyć i następnie wypełnić danymi, to bogata biblioteka przykładowych baz danych i znajomy interfejs upraszczają to zadanie.
i
W przypadku gdy dane są nieskomplikowane i nie ma ich zbyt wiele, baza danych może składać się z pojedynczej tabeli. Jednak olbrzymia ilość różnorodnych informacji dostarczana nam przez domowników, przyjaciół, znajomych z pracy czy wreszcie przez przełożonych wymaga przejścia na wyższy poziom wtajemniczenia bazodanowego. Po przestudiowaniu kilku prostych instrukcji i opisów poziom ten jest z łatwością osiągalny, i to w krótkim czasie. Wśród dostępnych systemów zarządzania bazami danych (SZBD) do najbardziej przystępnych należy właśnie program Microsoft Access. Dzięki niemu osoby niebędące zawodowymi informatykami są w stanie samodzielnie stworzyć kompletną aplikację bazodanową — od jej zaprojektowania, poprzez utworzenie samej bazy danych, aż po opracowanie interfejsu użytkownika (również interfejsu WWW).
Niezależnie od stopnia skomplikowania i ilości informacji, które chciałbyś umieścić w bazie danych, Access 2013 pozwoli Ci je zebrać, uporządkować, przeanalizować i udostępnić innym użytkownikom, również w internecie, gwarantując dostęp do zawartych w bazie informacji z dowolnego, podłączonego do sieci komputera.
Jak powstaje baza danych? Proces tworzenia bazy danych dzieli się na: t etap projektowania bazy danych, t etap implementacji projektu, czyli tworzenia bazy danych i wypełniania jej danymi.
Projektowanie bazy danych Podstawową funkcją każdej aplikacji bazodanowej jest przechowywanie pewnych informacji o wybranych obiektach. Na przykład baza danych biblioteki przechowuje określoną ilość informacji opisujących książki, takie jak tytuł, numer ISBN, numer egzemplarza itd. Informacje tego typu nazywane są atrybutami (cechami) pewnego obiektu, w tym przypadku książki. Ponadto obiekty różnych typów są ze sobą połączone relacjami, np. książka jest napisana przez autora. Tak więc baza danych to nic
Dla kogo jest ta książka?
innego jak uporządkowany zbiór danych o obiektach, ich atrybutach i łączących te obiekty relacjach. Projektowanie bazy danych wymaga umiejętności spojrzenia na informacje jako na zbiór danych opisujących poszczególne przedmioty oraz związki (relacje) zachodzące pomiędzy różnymi obiektami. Na przykład każdy towar ma swoją nazwę (nazwa jest atrybutem towaru), a jednocześnie każdy towar został kupiony w określonej firmie (pomiędzy towarem a firmą zachodzi związek „został kupiony”). Podczas projektowania i tworzenia bazy danych można wykorzystać wiadomości wyniesione z lekcji matematyki. Pozwoli to nam na traktowanie informacji zapisanych w tabelach jako elementów zbiorów i dostrzeżenie pewnych zasad, według których te informacje są zorganizowane.
Programowanie bazy danych Faza projektowania kończy się wdrożeniem projektu w środowisko konkretnego systemu zarządzania bazami danych. Ponieważ w przypadku programu Access 2013 projektowanie i wdrożenie projektu są ze sobą ściśle związane, możemy przyjąć, że projektując bazę danych, będziemy jednocześnie tworzyć obiekty bazy danych, takie jak tabele i kwerendy, oraz że obiekty te zostaną ze sobą prawidłowo powiązane relacjami. Następnym etapem jest umożliwienie użytkownikom korzystania z bazy danych. Skoro głównym zadaniem bazy danych jest przechowywanie informacji, to użytkownik musi mieć możliwość dodawania informacji do bazy, ich modyfikowania i usuwania. Dobrym pomysłem jest również wykorzystanie możliwości obliczeniowych komputera do generowania przeróżnych raportów, podsumowań i statystyk. W większości przypadków zadaniem twórcy bazy danych jest również zaimportowanie do niej pewnych danych, np. skopiowanie ich z innej bazy danych, z arkuszy Excela czy plików tekstowych.
Dla kogo jest ta książka? Książka Access 2013 PL. Kurs jest adresowana do tych czytelników, którzy nie mają czasu lub ochoty, aby zapisać się na specjalistyczne kursy komputerowe, a chcą w sposób łatwy i przyjemny dowiedzieć się, jak zaprojektować i stworzyć bazę danych działającą w środowisku SZBD Access 2013, przy okazji poznając niektóre z możliwości tego programu. Aby wyjść naprzeciw tym oczekiwaniom, jako główny cel książki przyjęto odpowiedzenie na możliwie największą liczbę pytań „Po co…?” (Po co mi baza danych? Po co w tej bazie tyle tabel? Po co te formularze? itd.). Wyjaśnienia dotyczące poszczególnych składników bazy danych w ramach kolej-
11
12
Układ książki
nych rozdziałów mają przekonać czytelnika, że samodzielne utworzenie czy zmodyfikowanie bazy danych programu Access nie jest niczym trudnym i nie wymaga fachowej wiedzy informatycznej. W trakcie lektury zwróć uwagę na pogrubione zdania — to właśnie one zawierają krótkie podsumowania, które odpowiadają na pytania: „Po co?”. Pisząc tę książkę, chcieliśmy również pokazać korzyści, jakie wypływają z używania własnej bazy danych.
Układ książki Książka została podzielona na 11 rozdziałów, z których każdy opisuje osobne zagadnienie związane z tworzeniem bazy danych lub korzystaniem z niej. Poszczególne rozdziały zawierają po kilka lub kilkanaście podrozdziałów, każdy z nich prezentuje jeden konkretny problem lub zadanie, a następnie bardzo dokładnie, krok po kroku przedstawia sposób jego rozwiązania. 1. Rozdział 1., „Serwer baz danych, czyli do czego służy Microsoft Access”, odpowiada na pytanie: „Po co nam serwer bazy danych?” i zawiera ćwiczenia opisujące instalację programu Access oraz tworzenie i zamykanie bazy danych. 2. Rozdział 2., „Przykładowa baza danych, czyli jak wykorzystać możliwości programu Access”, odpowiada na pytanie: „Jak pracować z bazą danych programu Microsoft Access?” i zawiera ćwiczenia pozwalające tworzyć i zarządzać bazami danych. 3. Rozdział 3., „Projektowanie i tworzenie tabel, czyli jak przechowywać informacje w bazie danych”, odpowiada na pytanie: „Jak zbudowane są tabele?” i poświęcony jest opisowi podstawowego typu obiektów wszystkich relacyjnych baz danych — tabel, metod ich projektowania i tworzenia. 4. Rozdział 4., „Modyfikowanie tabel i przenoszenie danych, czyli jak zmienić strukturę tabel oraz importować lub eksportować dane”, odpowiada na pytanie: „Jak zarządzać obiektami bazy danych?”. Ćwiczenia z tego rozdziału na przykładzie tabel opisują sposoby modyfikowania i usuwania obiektów bazodanowych. Dodatkowo przedstawione zostały sposoby eksportowania i importowania danych zewnętrznych (danych zapisanych poza bazą danych, np. w plikach tekstowych lub arkuszach programu Excel). 5. Rozdział 5., „Łączenie tabel, czyli do czego służą relacje”, odpowiada na pytanie: „Jak podzielić przechowywane w bazie informacje pomiędzy odpowiednie tabele?”. Rozwiązanie przedstawionych w tym rozdziale zadań ma podstawowe znaczenie dla zrozumienia relacyjnego modelu baz danych, który od pół wieku niepodzielnie dominuje na rynku baz danych.
Przykłady
6. Rozdział 6., „Kwerendy, czyli jak zautomatyzować pracę z danymi”, odpowiada na pytanie: „Czym są i do czego służą kwerendy?”. Zadania i ćwiczenia z tego rozdziału pokazują najmocniejszą stronę bazy danych — możliwość programowego pobierania, wyszukiwania czy modyfikowania danych. 7. Rozdział 7., „Formularze, czyli jak ułatwić użytkownikom dostęp do danych”, odpowiada na pytanie: „Jak i po co tworzyć formularze?” i pokazuje, w jaki sposób za pomocą formularzy dane przechowywane w połączonych relacjami tabelach, a pobierane przez kwerendy mogą być wyświetlane, modyfikowane, usuwane lub dodawane. 8. Rozdział 8., „Raporty, czyli jak zaprezentować dane”, odpowiada na pytanie: „Do czego służą raporty?”. Wykonanie zadań z tego rozdziału pozwoli czytelnikowi opracować przechowywane w bazie dane i zaprezentować je innym użytkownikom. 9. Rozdział 9., „Makra, czyli jak zautomatyzować regularnie wykonywane operacje”, odpowiada na pytanie: „Jak wykonać za użytkownika niektóre operacje?” i zawiera ćwiczenia i zadania związane z tworzeniem własnych makr (makropoleceń), czyli grup czynności wykonywanych przez SZBD Access jako jedno polecenie. 10. Rozdział 10., „Zarządzanie bazą, czyli na czym polega praca administratora baz danych”, odpowiada na pytanie: „Jak zapewnić bezpieczną i wydajną pracę użytkownikom programu Access?”. Ćwiczenia z tego rozdziału opisują codzienne obowiązki administratora baz danych, których wykonanie umożliwi użytkownikom bezproblemowe i wydajne korzystanie z bazy. 11. Rozdział 11., „Aplikacje sieci Web i Office 365, czyli jak udostępnić bazy danych” przedstawia największą nowość programu Access 2013 i odpowiada na pytanie: „Jak w prosty sposób stworzyć w pełni funkcjonalną aplikację WWW?”. Wykonując ćwiczenia z tego rozdziału, czytelnik przygotuje i opublikuje w sieci prostą bazę danych korzystającą z usługi Access Services serwera SharePoint 2013. 12. Dodatek A. „Odpowiedzi” zawiera dodatkowe informacje na temat programu Access oraz odpowiedzi na pytania znajdujące się na końcu rozdziałów.
Przykłady Pod adresem ftp://ftp.helion.pl/przyklady/ac13ku.zip znajdują się pliki umożliwiające wykonanie poszczególnych zadań oraz ich rozwiązania.
13
14
ľ3RFRQDPED]\GDQ\FK"ľ,QVWDODFMD SURJUDPX0LFURVRIW$FFHVVľ=PLDQ\ ]DLQVWDORZDQHJRSDNLHWX2IğFHľ $NWXDOL]DFMDVWDUV]HMZHUVMLSDNLHWX2IğFH ľ$NW\ZDFMDLSLHUZV]HXUXFKRPLHQLH SURJUDPXľ3R]QDMHP\ĂURGRZLVNRV\VWHPX ]DU]ÈG]DQLDED]DPLGDQ\FK$FFHVVľ 7ZRU]HQLHSXVWHMED]\GDQ\FKľ=DP\NDQLH ED]\GDQ\FKľ.RSLRZDQLHSOLNXED]\GDQ\FK ľ=PLDQDGRP\ĂOQHMZHUVMLED]\GDQ\FKľ .RPSLODFMDED]\GDQ\FKľ3RGVXPRZDQLH
1
Serwer baz danych, czyli do czego służy Microsoft Access Po co nam bazy danych? Przez zdecydowanie większą część naszej historii nie mieliśmy większych problemów z przyswajaniem istotnych (przydatnych) informacji. Jeszcze nie tak dawno nowe dane pojawiały się na tyle rzadko, że z łatwością zapoznawano się z nimi i poddawano je weryfikacji. Sytuacja ta jednak całkowicie się zmieniła. Nowe metody badawcze, rozwój technologiczny i zainteresowanie otaczającym światem w krótkim czasie spowodowały, że pojedynczy człowiek nie jest już w stanie zapoznać się ze wszystkimi dostępnymi danymi. Dlatego tak cenna stała się umiejętność szybkiego wyszukiwania danych potrzebnych w danym momencie. Dopóki danych jest stosunkowo niewiele lub ich struktura nie jest skomplikowana, mogą być one wydajnie przechowywane i wyszukiwane w plikach tekstowych czy arkuszach kalkulacyjnych. Jednak coraz częściej te sposoby przechowywania danych okazują się niewystarczające. I tu najlepszym rozwiązaniem okazały się relacyjne bazy danych. Czas potrzebny na ich utworzenie i regularne wprowadzanie do nich danych zwraca się, gdy potrzebujemy uzyskać konkretną informację, np. znaleźć nazwisko i numer telefonu osoby,
16
Po co nam bazy danych?
której trzy lata temu pożyczyliśmy książkę. Wystarczy wtedy za pomocą kilku kliknięć myszą uruchomić program Access i odczytać z bazy danych namiary zapominalskiego, i to łącznie z karą, jaką przewidujemy za tak długi okres zwłoki. Bazy danych, tak jak inne programy komputerowe, działają w określonym środowisku. Dla większości gier środowiskiem tym jest system Windows, a dla baz danych system zarządzania bazami danych (SZBD), dla którego zostały utworzone. I tak jak w przypadku pozostałych programów, możliwe — choć czasami dość skomplikowane — jest przeniesienie bazy danych z jednego środowiska do innego. Możliwość tę zawdzięczamy temu, że bazy danych, choć działają pod kontrolą różnych serwerów (takich jak MySQL, Oracle czy Access), tworzone są na podstawie tego samego, relacyjnego modelu1. Sama baza danych jest uporządkowanym zbiorem obiektów różnych typów, np. tabel i kwerend, przy czym podstawowym i wymaganym obiektem relacyjnej bazy danych jest tabela.
i
Baza danych musi zawierać przynajmniej jedną tabelę. Tabele, kwerendy, formularze czy raporty są przykładami obiektów bazy danych. W większości SZBD, w tym w programie Access, raz utworzone obiekty bazodanowe mogą być modyfikowane i usuwane.
Struktura tabel bazy danych, w których przechowywane są dane użytkownika, została opisana w rozdziale 4. W tym momencie wystarczy zaznaczyć, że każda tabela składa się z wierszy i kolumn, na przecięciu których znajdują się pola. Informacje opisujące jeden obiekt (np. towar, klienta czy transakcję sprzedaży) zapisane są w pojedynczym wierszu tabeli, a poszczególne dane na temat obiektu (np. nazwa towaru, nazwisko klienta czy data sprzedaży) zapisane są w kolejnych polach (a więc osobnych kolumnach) tego wiersza.
i
Tabele przypominają arkusze kalkulacyjne, ale w terminologii bazodanowej pojedynczemu wierszowi arkusza odpowiada rekord, również składający się z pewnej liczby pól.
Wykonanie zadań i ćwiczeń zamieszczonych w tym rozdziale pozwoli na zainstalowanie SZBD Access, utworzenie pustej bazy danych, ustawienie kilku podstawowych jej opcji oraz prawidłowe zakończenie pracy z programem. 1
Relacyjny model baz danych został opracowany w latach siedemdziesiątych XX wieku przez pracującego dla firmy IBM naukowca Edgara Franka Codda. Ciekawostką jest fakt, że chociaż matematyczne podstawy tego modelu były znane już od ponad 100 lat, to zbudowanie serwera relacyjnych baz danych okazało się dość trudne. Doktor Codd został uhonorowany nagrodą Turinga wcześniej (otrzymał ją w 1981 roku), niż na rynku pojawił się pierwszy — oparty na stworzonym przez niego modelu — serwer bazodanowy.
Instalacja programu Microsoft Access
Instalacja programu Microsoft Access Zanim będziemy mogli utworzyć własną bazę danych, musimy albo zainstalować na komputerze system zarządzania bazami danych Access 2013, albo skorzystać z usługi Office 365. Office 365 to świadczona przez firmę Microsoft usługa polegająca na udostępnianiu aplikacji pakietu Office. Na przykład plan premium dla użytkowników domowych pozwala za około 40 zł miesięcznie używać programów pakietu Office 2013 na maksymalnie 5 komputerach PC i Mac w jednym gospodarstwie domowym. Ponadto pod adresem http://office.microsoft.com/pl-pl/ dostępna jest 90-dniowa, darmowa wersja próbna tej usługi. Office 365 (lub dostęp do serwera SharePoint) jest wymagany jedynie do wykonania ćwiczeń z ostatniego rozdziału.
i
Nowa instalacja programu, który wchodzi w skład pakietu Microsoft Office 2013 Professional (edycje Home, Student oraz Business nie zawierają programu Access), polega na: 1. Upewnieniu się, że nasz komputer spełnia minimalne wymagania związane z instalacją programu. 2. Zakupieniu legalnej wersji oprogramowania. Licencja na nowy pakiet Office jest nie tylko nieco droższa od licencji na poprzednią wersję, ale dodatkowo ograniczona została (do jednego) liczba komputerów, na których można legalnie zainstalować programy pakietu Office 2013 (poprzednia licencja w zależności od edycji umożliwiała instalację na dwóch lub trzech komputerach). 3. Instalacji programu. Minimalne wymagania sprzętowe pakietu Microsoft Office 2013 zostały zebrane w tabeli 1.1. Tabela 1.1. Minimalne wymagania pakietu Office w wersji 2013
Procesor Pamięć Dysk twardy
Kliencki system operacyjny Połączenie internetowe
Procesor o częstotliwości co najmniej 1 GHz. Co najmniej 1 GB pamięci RAM w przypadku wersji 32-bitowej i 2 GB w przypadku wersji 64-bitowej. 3 GB wolnego miejsca na potrzeby instalacji; część tego obszaru może być zwolniona po instalacji, gdy oryginalny pakiet instalacyjny zostanie usunięty z dysku. 32- lub 64-bitowy system Windows 7, 32- lub 64-bitowy system Windows 8. Połączenie szerokopasmowe o przepustowości 128 Kb/s lub większej w celu pobrania i aktywacji programów.
17
18
Instalacja programu Microsoft Access
i
Wskazane jest, aby przed zainstalowaniem programu Access 2013 uaktualnić system operacyjny przez pobranie i zainstalowanie poprawek dostępnych w witrynie Microsoft Update.
Aby zainstalować program Access 2013 na komputerze, na którym nie ma zainstalowanych wcześniejszych wersji pakietu Office, wykonaj poniższe kroki: 1. Do napędu DVD włóż płytę z programem Microsoft Office. Wtedy prawdopodobnie zostanie automatycznie uruchomiony program instalatora. Jeżeli opcja automatycznego odtwarzania zawartości płyt DVD została wyłączona, należy samodzielnie uruchomić plik instalatora setup.exe znajdujący się w głównym katalogu płyty.
i
W domyślnie skonfigurowanych systemach Windows 7 i Windows 8 przed rozpoczęciem instalacji konieczne będzie potwierdzenie posiadania uprawnień administratora komputera — z reguły wystarczy kliknąć przycisk Tak.
2. Wyświetlona zostanie treść licencji końcowego użytkownika. Należy zapoznać się z warunkami licencji, a następnie zaakceptować je.
2
3
3. Po kliknięciu przycisku Kontynuuj zostaniemy zapytani, czy chcemy zainstalować wszystkie wchodzące w skład pakietu programy, czy też dostosować instalację do własnych potrzeb. Żeby zainstalować wyłącznie program Access, kliknij przycisk Dostosuj.
Instalacja programu Microsoft Access
4. Po kliknięciu przycisku Dostosuj zostanie wyświetlone okno dialogowe zawierające cztery zakładki. Na pierwszej, która dotyczy opcji instalacji pakietu Office, będziemy mogli zadecydować, jakie składniki pakietu Office mają być zainstalowane. Należy kliknąć pozycję Microsoft Office Access i z menu kontekstowego wybrać opcję Uruchom wszystko z mojego komputera. Podczas wybierania poszczególnych 4 składników w dolnej części okna możemy zobaczyć ich krótki opis, a w prawym dolnym rogu — informacje o wymaganym i wolnym miejscu na dysku. Jeżeli nie chcesz instalować pewnych programów, wybierz dla nich opcję Niedostępne. 5. Kolejna zakładka pozwala zmienić domyślną lokalizację programu. Zawiera ona kompletne informacje o dostępnym i wymaganym wolnym miejscu na dysku, w tym o wielkości plików instalacyjnych domyślnie kopiowanych na dysk.
5
6. Trzecia zakładka pozwala podać informacje o użytkowniku programu: jego imię, inicjały i nazwę firmy. Będą one używane między innymi do identyfikowania naszych dokumentów i bazy danych. 7
6
7. Ostatnia zakładka pozwala wybrać pomiędzy 32- i 64-bitową wersją pakietu Office. Domyślnie instalowana jest wersja 32-bitowa, nawet jeżeli system operacyjny jest 64-bitowy. Zdecydowanie zalecamy instalowanie wersji 32-bitowej. 8. Kliknij przycisk Zainstaluj teraz. 9. Wybrane programy pakietu Office
8
19
20
Zmiany zainstalowanego pakietu Office 2013
2013 zostaną zainstalowane. Kliknięcie przycisku Kontynuuj w trybie online spowoduje wyświetlenie strony pozwalającej m.in. zapoznać się z możliwościami pakietu Office.
Zmiany zainstalowanego pakietu Office 2013 Aby dodać, usunąć, naprawić lub zarejestrować składniki pakietu Office 2013: 1. Uruchom program instalacyjny tego pakietu. 2. Wyświetlone zostanie pytanie o to, jaka akcja ma być przeprowadzona: a) Wybór pierwszej opcji spowoduje wyświetlenie znanego nam już okienka opcji instalacji. 2a 2b 2c 2d
b) Opcja druga jest w pełni automatyczna i polega na przywróceniu z płyty instalacyjnej oryginalnych plików zainstalowanych programów pakietu.
c) Trzecia opcja również jest automatyczna — po potwierdzeniu decyzji wszystkie programy pakietu zostaną odinstalowane z komputera. d) Wybierając ostatnią opcję, będziemy mieli okazję wpisać 25-znakowy klucz produktu. O klucz ten zostaniemy też poproszeni podczas pierwszego uruchomienia dowolnego z zainstalowanych programów pakietu Office 2013.
Aktualizacja starszej wersji pakietu Office Jeżeli na komputerze zainstalowana jest starsza wersja pakietu Office, instalator wykryje ją automatycznie i zamiast przycisku Zainstaluj teraz wyświetli przycisk Uaktualnij. Sama aktualizacja przypomina instalację: 1. Żeby zastąpić zainstalowane programy pakietu Office ich nowszą wersją, kliknij Uaktualnij.
Aktywacja i pierwsze uruchomienie programu
1
2
2. Kliknięcie przycisku Dostosuj spowoduje wyświetlenie okna dialogowego z pięcioma zakładkami — pierwsza pozwala wybrać, czy wcześniejsze wersje programów mają być usunięte, czy zachowane; pozostałe cztery zakładki są identyczne z opisanymi w punkcie „Instalacja programu Microsoft Access”.
3. Kliknięcie przycisku Uaktualnij rozpocznie proces automatycznej aktualizacji programów pakietu Office.
Aktywacja i pierwsze uruchomienie programu Aktywacja produktów ma na celu ograniczenie piractwa komputerowego. Pakiet Office 2013 jest jednym z wielu programów firmy Microsoft, które po zainstalowaniu wymagają aktywacji, czyli telefonicznego lub przeprowadzanego za pośrednictwem internetu zgłoszenia dotyczącego zainstalowania produktu. Oznacza to, że po instalacji programy pakietu Office będą działać w normalnym trybie tylko przez tydzień — potem konieczna będzie ich aktywacja. Jeśli użytkownik spróbuje uruchomić pakiet bez wcześniejszej aktywacji lub będzie próbował tę aktywację ominąć w nieautoryzowany sposób, pakiet Office 2013, podobnie jak system Windows, przejdzie w tryb ograniczonej funkcjonalności. W przypadku Office 2013 będzie się to objawiać w taki sposób, że aplikacje będą zachowywały się podobnie jak popularne Office Viewers, czyli darmowe przeglądarki dokumentów. Użytkownik będzie mógł tylko otwierać i drukować pliki Office, ale edytowanie i tworzenie nowych plików Office zostanie zablokowane.
i
Ponieważ każdy komputer, a właściwie prawie każda jego część, ma swój unikatowy identyfikator (numer seryjny), numery te mogą być wykorzystane do wygenerowania unikatowego numeru komputera. Dodatkowo program Microsoft Office 2013 także ma swój identyfikator (Product ID). Poprzez połączenie obu tych numerów, czyli numeru komputera i oprogramowania, wygenerowany zostanie unikatowy identyfikator wykorzystywany podczas aktywacji.
21
22
Aktywacja i pierwsze uruchomienie programu
Sam proces aktywacji jest bardzo prosty do przeprowadzenia. 1. Każdorazowe uruchomienie nieaktywowanego programu powoduje wyświetlenie przypomnienia o konieczności aktywacji. Office 2013 może być aktywowany: a) Poprzez wpisanie adresu e-mail, dla którego zarejestrowana została subskrypcja tego pakietu.
1a 1b
b) Poprzez wpisanie klucza produktu. Większość z nas będzie wybierała właśnie tę opcję. 2. Po wybraniu drugiej opcji pozostanie nam jedynie wpisać klucz produktu i kliknąć Zainstaluj. 3. Możemy też aktywację uruchomić ręcznie, klikając znajdujący się w lewym górnym rogu przycisk PLIK, a następnie wybierając widoczną w lewej części okna zakładkę Konto2. 4. Kliknięcie przycisku Aktywuj produkt (pod nim widoczna będzie informacja o liczbie dni pozostałych do obowiązkowej aktywacji) spowoduje wyświetlenie znanego nam już okienka aktywacyjnego.
4
5. Po udanej aktywacji należy ponownie uruchomić program.
2
Listę zakładek menu PLIK z poziomu ekranu powitalnego można wyświetlić, wybierając opcję Otwórz inne pliki.
Aktywacja i pierwsze uruchomienie programu
6. Podczas pierwszego uruchomienia programu zostaniemy również zapytani o domyślny format dokumentów tworzonych w programach pakietu Office 2013. Do wyboru mamy: a) domyślny format pakietu Office, czyli Open XML — zalecamy wybór tego formatu, b) format zgodny ze standardem ODF.
6a 6b
Pierwsza aktywacja programu może być przeprowadzona przez internet. Jednak kolejne aktywacje wersji detalicznych pakietu Office 2013 wymagają już zatelefonowania do biura obsługi firmy Microsoft Polska. Ta metoda aktywacji zostanie też automatycznie wybrana, jeżeli po wpisaniu klucza produktu program nie połączy się z serwerem aktywacji firmy Microsoft. W takim wypadku: 1. Odpowiadając na pierwsze pytanie kreatora aktywacji, wybierz opcję Chcę aktywować oprogramowanie przez telefon i kliknij Dalej. 2. Wybierz kraj (Polska) i zadzwoń pod wyświetlony na ekranie numer telefonu.
2 3
4
3. Telefon odbierze automat, który przedstawi Ci przebieg procesu aktywacji — sprowadza się on do podania przez nas identyfikatora instalacji. 4. W odpowiedzi usłyszymy kod potwierdzający, którego poprawne wprowadzenie i kliknięcie przycisku Dalej kończy proces aktywacji.
23
24
Poznajemy środowisko systemu zarządzania bazami danych Access
Poznajemy środowisko systemu zarządzania bazami danych Access Zanim zaczniemy tworzyć bazy danych i zarządzać nimi, czyli po prostu korzystać z baz danych działających w środowisku SZBD Access 2013, powinniśmy poznać podstawowe zasady pracy z tym programem.
i
Program Office Access 2013 wyposażono w interfejs użytkownika nawiązujący do interfejsu systemu Windows 8.
Standardowe okno programu Access 2013 zawiera cztery podstawowe elementy, z których najbardziej widoczna jest wstążka — typ menu, który zastąpił piętrowy układ przycisków i pasków narzędzi pakietu Office znanych z wersji 2003 i wcześniejszych. Aby zapoznać się z najważniejszymi oknami programu: 1. Uruchom Access 2013. 2. Główną część ekranu powitalnego zajmować będą szablony baz danych — wybierz szablon Pusta baza danych dla komputerów. 3. Wstążka ułatwia znajdowanie powiązanych ze sobą poleceń. Jeżeli na przykład szukane polecenie ma związek z danymi, można je znaleźć w zakładce DANE ZEWNĘTRZNE, a jeżeli chcemy utworzyć nowy formularz lub raport, odpowiednie polecenie znajdziemy w zakładce TWORZENIE. Taki układ menu ułatwia także użytkownikowi odkrywanie funkcji, które zaprezentowane w inny sposób mogłyby pozostać przez niego niezauważone. 4. Wstążki wszystkich programów pakietu Office 2013 wyglądają tak samo i pozwalają wykonać podobne operacje. Zawartość poszczególnych zakładek wstążki może być dostosowana do potrzeb użytkownika (w tym celu należy kliknąć dowolny obszar wstążki prawym przyciskiem myszy i wybrać opcję Dostosuj wstążkę). W ten sam sposób wstążka może też być zwinięta (ukryta). 5. Okno nawigacji — widoczne w lewej części pionowe okno pozwala wybierać obiekty bazy danych, z którymi zamierzamy pracować. 6. Pasek stanu — zwany również informacyjnym znajduje się u dołu ekranu i służy do wyświetlania komunikatów wysyłanych przez Access w trakcie wykonywania pewnych czynności. Pasek ten wyświetla również krótkie podpowiedzi dla użytkownika, które dotyczą m.in. znaczenia poszczególnych poleceń menu i przycisków na pasku narzędzi, oraz informacje o wciśniętych klawiszach Caps Lock, Num Lock, Scroll Lock, a także przyciski pozwalające przełączać wybrany obiekt pomiędzy widokiem projektu a widokiem arkusza danych.
Tworzenie pustej bazy danych
3 4
5
7
7. Główne okienko programu — w nim widoczny jest wybrany (czyli ten, z którym aktualnie pracujemy) obiekt bazy danych. Wybierając kolejny obiekt, spowodujemy wyświetlenie go w osobnej zakładce głównego okna programu Access 2013.
Tworzenie pustej bazy danych Po zainstalowaniu SZBD Access 2013 możemy utworzyć nową, działającą w tym środowisku bazę danych. Jeszcze się teraz nie dowiemy, jak tworzyć obiekty bazy danych, ani — tym bardziej — jak wprowadzać do nich dane. Naszą pracę rozpoczniemy od spojrzenia na bazę danych jak na plik programu Access znajdujący się na dysku twardym komputera. Po uruchomieniu programu Access (w systemie Windows 7 uruchamiamy program, wybierając kolejno menu Start/Wszystkie programy/Microsoft Office 2013/ Microsoft Office Access 2013; w systemie Windows 8 wystarczy wpisać Access na ekranie startowym) możemy utworzyć nową bazę danych na kilka sposobów: 1. Klikając przycisk Pusta baza danych dla komputerów (opisane w ostatnim rozdziale aplikacje sieci Web są nieco inne).
1
2
2. Wybierając jeden z wielu szablonów przykładowych baz danych zainstalowanych razem z programem lub dostępnych w witrynie Office.com.
25
26
Zamykanie bazy danych
3. Następnie podaj nazwę i lokalizację pliku bazy danych. 4. Kliknij przycisk Utwórz. 5. Zostanie utworzony plik o podanej nazwie (jeżeli plik o takiej nazwie istniał już w wybranym folderze, zostaniemy zapytani, czy zastąpić go nowym), a na ekranie wyświetli się widok arkusza danych pierwszej tabeli. 6. Zwróć uwagę na Narzędzia tabel automatycznie wyświetlone na wstążce i zamknij okno tabeli.
5 6 6
7. Jeżeli w tabeli wprowadzone zostały jakiekolwiek zmiany, zostanie wyświetlone pytanie, czy zapisać te zmiany, a następnie pytanie o nazwę zapisywanej tabeli. Na razie jednak nie wprowadzaliśmy żadnych zmian, więc okienko tabeli zostanie zamknięte.
Zamykanie bazy danych Jednym z zadań serwerów bazodanowych, takich jak program Access, jest zagwarantowanie spójnego obrazu danych zapisanych w bazie. Innymi słowy, program Access dba o to, aby ewentualne awarie (np. brak prądu lub błąd systemu operacyjnego) nie wpłynęły na uszkodzenie przechowywanych w bazie informacji.
i
Jeżeli przypadkowo zamkniesz bazę danych lub zakończysz pracę programu Access kliknięciem przycisku Zamknij, zostanie wyświetlone pytanie, czy program ma zapisać lub odrzucić wszystkie wprowadzone ostatnio i jeszcze niezapisane zmiany. Niewyświetlenie tego pytania oznacza, że wszystkie wprowadzone zmiany są już na trwałe zapisane w pliku bazy danych.
Kopiowanie pliku bazy danych
Aby ułatwić programowi Access realizację tego zadania, baza danych powinna być prawidłowo zamknięta: 1. Rozwiń menu PLIK i kliknij przycisk Zapisz (ten przycisk będzie nieaktywny, jeżeli wszystkie zmiany zostały już zapisane). lub 2. Zakończ pracę programu Access kliknięciem przycisku znajdującego się w prawym górnym rogu ekranu programu. W ten sposób zamkniemy bieżącą bazę danych i zakończymy pracę programu Access.
2
1
i
W programie Access możliwe jest uruchomienie tylko jednej bazy danych — próba uruchomienia innej bazy danych wymaga albo uruchomienia drugiej kopii programu Access, albo zamknięcia bieżącej bazy danych.
Kopiowanie pliku bazy danych Baza danych programu Access, tak jak każdy inny plik, może być skopiowana z jednego folderu (np. z folderu Moje dokumenty komputera Domowy) do innej lokalizacji (np. do folderu Bazy danych udostępnionego na komputerze Srv1). Aby skopiować plik bazy danych, wykonaj poniższe kroki: 1. Zamknij bazę danych, którą zamierzasz skopiować. 2. Wyświetl na ekranie zawartość folderu zawierającego plik bazy (np. folderu Moje dokumenty) i zaznacz plik bazy danych. 3. Niezależnie od zainstalowanej wersji systemu Windows możesz skopiować zaznaczony plik:
27
28
Zmiana domyślnej wersji bazy danych
2
a) naciskając kombinację klawiszy Ctr+C b) lub klikając ten plik prawym przyciskiem myszy i wybierając z menu kontekstowego opcję Kopiuj. 4. Następnie wyświetl zawartość folderu docelowego (w przypadku folderów udostępnionych na innych komputerach przeszukaj zasoby sieciowe) i wklej do niego skopiowany plik: t naciskając kombinację klawiszy Ctr+V t lub wybierając z menu kontekstowego opcję Wklej.
i
Jeżeli planujemy przenieść plik bazy danych z jednego komputera na inny za pomocą dysku przenośnego, warto przed skopiowaniem skompaktować bazę danych i w ten sposób zmniejszyć (znacznie bardziej niż za pomocą kompresji ZIP) wielkość pliku. Sposób kompaktowania bazy danych został opisany w rozdziale 10.
Zmiana domyślnej wersji bazy danych Domyślne bazy danych tworzone w SZBD Access 2013 zapisywane są w formacie zgodnym z wersją 2007 i 2010. Jeżeli jednak chcemy zachować zgodność z wcześniejszymi wersjami programu, możemy zmienić domyślny format bazy danych.
i
Każda baza danych zapisana jest w określonym formacie, np. w formacie systemu zarządzania bazami danych Access, Oracle Server czy MySQL. Ponieważ te SZBD również są uaktualniane, podanie formatu nie jest wystarczającą informacją o bazie danych — należy określić również wersję bazy danych danego formatu.
Kompilacja bazy danych
Żeby zapisać naszą (na razie pustą) bazę danych w innym formacie: 1. Rozwiń menu PLIK. 2. Przejdź do zakładki Zapisz jako. 3. Wybierz format Access 2002-2003 lub Access 2000. 4. Zapisz bazę w wybranym formacie. 1
2
3
Kompilacja bazy danych Domyślnym formatem baz danych programu Access 2013, podobnie jak wersji 2010 i 2007, jest plik o rozszerzeniu .accdb. Bazy danych zapisane w plikach tego typu mogą być modyfikowane (możemy zmienić nie tylko zapisane w nich dane, ale również strukturę obiektów bazy danych, czyli np. dodać kolumnę do tabeli czy pole tekstowe do formularza) oraz rozbudowywane (możemy tworzyć nowe formularze lub raporty). Jednak to, co na etapie tworzenia czy testowania bazy danych jest zaletą programu Access, może okazać się jego wadą w czasie korzystania z gotowej bazy danych. Gdy nie jesteśmy jedynymi użytkownikami bazy danych, stajemy przed uzasadnioną obawą, że ktoś inny może modyfikować strukturę naszych tabel lub dodawać własne, nie zawsze prawidłowo działające kwerendy. Dlatego produkcyjną wersję bazy danych należy skompilować i zapisać w postaci pliku .accde. W ten sposób nie tylko uniemożliwimy wprowadzanie zmian do istniejących formularzy czy raportów, ale również poprawimy wydajność bazy danych. Aby zapisać wcześniej utworzoną, pustą bazę danych w postaci skompilowanej, powinniśmy kolejno wykonać poniższe czynności:
29
30
Kompilacja bazy danych
1. Jeżeli program Access został wyłączony, dwukrotnie klikamy lewym przyciskiem myszy plik bazy, np. plik Pierwsza baza danych.accdb — baza zostanie otwarta. 2. Jeżeli program Access jest uruchomiony, ale baza została zamknięta, z menu PLIK wybieramy opcję Otwórz, wskazujemy plik Pierwsza baza danych.accdb i klikamy przycisk Otwórz. 3. Ponieważ ta baza danych zawiera makra, zostanie wyświetlone ostrzeżenie przed potencjalnie groźnymi skutkami uruchomienia nieznanego programu. 4. W tym przypadku zakładamy, że kreator nie dodał do bazy „złośliwego” lub błędnego makra, i klikamy przycisk Włącz zawartość.
3
4
5. Zostanie wyświetlone główne okno programu Access. Rozwiń menu PLIK i przejdź na zakładkę Zapisz jako. 6. W głównym okienku zaznacz pozycję Utwórz plik ACCDE. 7. Kliknij przycisk Zapisz jako. 8. Po ewentualnej zmianie nazwy i lokalizacji tworzonego pliku naciśnij przycisk Zapisz. 9. Ponieważ po zakończeniu pracy kreatora pozostaje otwarta nieskompilowana baza danych, należy ją zamknąć i otworzyć bazę zapisaną w pliku .accde. Aby otworzyć skompilowaną bazę danych, możemy, podobnie jak to robiliśmy w przypadku plików .accdb, dwukrotnie kliknąć lewym przyciskiem myszy plik skompilowanej bazy danych.
i
Kompilacja w żaden sposób nie modyfikuje oryginalnego pliku .accdb. Dzięki niej tworzony jest nowy plik .accde, który zawiera kopię tej samej, ale skompilowanej bazy danych.
Podsumowanie
Podsumowanie Po przeczytaniu tego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi mogą być pewne kłopoty, mają pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Czy możemy jednocześnie na tym samym komputerze korzystać z programów Access 2010 i Access 2013? 2. Czy w programie Access możemy utworzyć więcej niż jedną bazę danych? 3. Gdzie w internecie można znaleźć szczegółowe informacje dotyczące aktywacji programu Access? 4. Gdzie można znaleźć informacje na temat usługi Office 365? 5. Czy możemy odzyskać przechowywane w bazie dane po niewłaściwym jej zamknięciu bądź po przerwaniu pracy komputera w wyniku awarii? 6. W jaki sposób odczytujemy informację o wielkości pliku naszej bazy danych, niezbędną do jej kopiowania? 7. Czy jest możliwe jednoczesne przechowywanie w komputerze dwóch wersji bazy danych — skompilowanej i nieskompilowanej?
31
32
ľ-DNSUDFRZDÊ]ED]DPLGDQ\FKSURJUDPX 0LFURVRIW$FFHVV"ľ2WZLHUDQLHLVWQLHMÈFHM ED]\GDQ\FKľ:\V]XNLZDQLHSOLNöZED]\ GDQ\FKľ2WZLHUDQLHED]GDQ\FKZF]HĂQLHMV]\FK ZHUVMLSURJUDPX$FFHVVľ8GRVWÚSQLDQLH SOLNXED]\GDQ\FKľ7ZRU]HQLHED]\GDQ\FKQD SRGVWDZLHV]DEORQX1RUWKZLQGľ3R]QDMHP\ SU]\NïDGRZÈED]ÚGDQ\FK1RUWKZLQGľ 3U]\GDWQHVNUöW\NODZLV]RZHľ'RGDZDQLH ]DXIDQ\FKORNDOL]DFMLSOLNöZED]RGDQRZ\FK ľ.RQZHUWRZDQLHED]\GDQ\FKGRVWDUV]HJR IRUPDWXľ3RG]LDïED]\GDQ\FKľ.RQğJXUDFMD SRG]LHORQ\FKED]GDQ\FKľ3RGVXPRZDQLH
2
Przykładowa baza danych, czyli jak wykorzystać możliwości programu Access Jak pracować z bazami danych programu Microsoft Access? Podejmując się zadania stworzenia własnej bazy danych w programie Microsoft Access, musimy uświadomić sobie, że zanim zobaczymy efekt końcowy naszej pracy, czeka nas faza projektowania. Innymi słowy, zanim zaczniemy wprowadzać dane, musimy zaprojektować bazę i podzielić te dane pomiędzy tabele powiązane ze sobą relacjami. Temu tematowi poświęcone są właśnie kolejne rozdziały. Struktura bazy, w której będziemy przechowywać informacje, jest zależna w dużym stopniu od naszej kreatywności. Dla mniej wytrwałych zawsze pozostaje możliwość wpisania danych do tabeli programu Word czy arkusza programu Excel, wchodzących w skład pakietu Microsoft Office. Należy jednak pamiętać, że taka opcja nie pozwala na do-
34
Otwieranie istniejącej bazy danych
stosowanie programu do naszych potrzeb. Tylko samodzielne zaprojektowanie bazy danych i utworzenie określonej liczby obiektów (tabel i ich kolumn, kwerend, formularzy itd.) umożliwi jej wykorzystanie w odpowiednim stopniu, czyli takim, który pozwoli przechowywać w komputerze ciągle zmieniające się informacje. Aby definitywnie rozwiać wszelkie wątpliwości dotyczące tworzenia własnej bazy danych, a także uprzedzić pytania, jakie mogą się pojawić w trakcie jej konstruowania, w rodzaju: „Co z tego, że utworzyłem te tabele i nawet jakieś kwerendy, skoro nadal nie wiem, czemu ma to służyć?”, niniejszy rozdział został wyposażony w szereg zadań i ćwiczeń. Została tu zaprezentowana przykładowa baza danych Northwind dołączona do programu Access. Dzięki tej bazie — utworzonej na potrzeby fikcyjnej firmy zajmującej się handlem produktami spożywczymi oraz ich dostawami — możemy nie tylko zapoznać się z działaniem już istniejącej bazy danych, z zarządzaniem dostępem do pliku bazy danych, ale również z podstawowymi możliwościami programu Access, których znajomość pozwoli na efektywniejsze zaprojektowanie naszej bazy danych.
i
W książce założono, że systemem operacyjnym zainstalowanym na komputerze czytelnika jest domyślnie skonfigurowany system Microsoft 7.
Otwieranie istniejącej bazy danych W pierwszym rozdziale dowiedzieliśmy się, że baza danych programu Access zapisana jest w jednym pliku o rozszerzeniu .accdb lub (w przypadku jej skompilowanej wersji) w pliku .accde. W dalszej części tego rozdziału dowiemy się, że baza danych może też być podzielona na dwa pliki — w jednym zostaną zapisane wszystkie dane, a w drugim umieszczone będą pozostałe obiekty bazy danych. Aby otworzyć zapisaną w pliku bazę danych, należy: 1. Uruchomić SZBD Access 2013.
i
Szybkim sposobem na uruchomienie bazy danych jest dwukrotne kliknięcie pliku bazy danych — w ten sposób zostanie uruchomiony program Access i otworzona wybrana baza danych.
2. Bazę danych, z którą chcemy pracować, możemy znaleźć na kilka sposobów: a) wybierając na ekranie powitalnym opcję Otwórz inne pliki,
Wyszukiwanie plików bazy danych
b) rozwijając menu PLIK i wybierając opcję Otwórz (ten sposób ma zastosowanie, jeżeli program Access jest już uruchomiony, ale baza danych, z którą pracowaliśmy, została zamknięta), c) naciskając kombinację klawiszy Ctrl+O, d) klikając ikonę Komputer e) i wskazując lokalizację pliku bazy danych f) lub klikając nazwę jednego z ostatnio otwieranych plików baz danych widocznych w sekcji Ostatnie w menu PLIK (ta sama sekcja widoczna jest z lewej strony ekranu powitalnego). Aby uruchomić którąś z nich, wystarczy kliknąć nazwę odpowiedniego pliku bazy.
2b
2f
2d
3
2e
3. Jeżeli plik bazy danych znajduje się na dysku SkyDrive lub w bibliotece SharePoint, należy kliknąć przycisk Dodaj lokalizację, dzięki czemu będziemy mogli wskazać lokalizację w chmurze. 4. Baza danych zostanie otwarta po wskazaniu nazwy pliku i kliknięciu przycisku Otwórz.
Wyszukiwanie plików bazy danych Na lokalnych dyskach komputera przechowywane są tysiące różnych plików. Aby poszukiwanie pliku bazy danych, który znajduje się „gdzieś na dysku”, nie okazało się być bardzo czasochłonnym zadaniem, do znalezienia potrzebnego w danym momencie pliku możemy użyć narzędzi systemu operacyjnego, takich jak funkcja wyszukiwania systemu Windows 7.
35
36
Wyszukiwanie plików bazy danych
Aby znaleźć plik bazy danych, możemy: 1. Rozwinąć menu Start i wpisać w polu wyszukiwania rozszerzenie accdb. Po chwili w menu Start pojawią się wszystkie znalezione pliki bazy danych programu Access 2007 – 2013.
1
2. Inny sposób, który pozwala na bardziej precyzyjne określenie warunków wyszukiwania, polega na skorzystaniu z Eksploratora Windows: a) W lewym oknie Eksploratora Windows zaznacz pozycję Biblioteki (biblioteki to wirtualne foldery pozwalające wyświetlać i przeglądać znajdujące się w różnych folderach pliki — Windows 7 zawiera cztery predefiniowane biblioteki: Dokumenty, Muzyka, Obrazy i Wideo). b) W prawym górnym rogu Eksploratora znajduje się pole wyszukiwania — wpisz w nim accdb.
i
Wyszukiwać pliki możemy również na podstawie ich nazw, a nie tylko rozszerzeń.
c) Rozpocznie się wyszukiwanie plików i folderów spełniających podane kryterium wyszukiwania. Zielony pasek przesuwający się w pasku adresu będzie sygnalizował postęp wyszukiwania. b
c a d
d) Po chwili w głównym oknie Eksploratora zobaczysz wszystkie pliki spełniające podane kryterium, czyli pliki baz danych SZBD Access 2007 – 2013.
Otwieranie baz danych wcześniejszych wersji programu Access
3. Jeżeli na dyskach komputera przechowujemy wiele plików baz danych, wynik ich przeszukiwania będzie za każdym razem zawierał zbyt wiele pozycji, żeby rzeczywiście ułatwić nam znalezienie tego jednego, szukanego. Rozwiązać ten problem możemy, definiując dodatkowe filtry wyszukiwania: a) Kliknij lewym przyciskiem myszy okienko wyszukiwania — zostanie wyświetlona lista ostatnio wyszukiwanych fraz oraz trzy rodzaje filtrów wyszukiwania. b) Z listy filtrów wybierz Data modyfikacji. c) Zostanie wyświetlony kalendarz — zaznaczając na nim dowolną datę, wyszukamy bazy danych zmodyfikowane tego dnia. Jeżeli nie znasz dokładnej daty ostatniej modyfikacji szukanej bazy, wybierz bardziej ogólną opcję, np. Wcześniej w tym roku. d) Po chwili główne okienko Eksploratora będzie zawierało bazy danych programu Access z bieżącego roku. 3a
3b
3d 3c
Otwieranie baz danych wcześniejszych wersji programu Access Program Access 2013 jest zgodny z wcześniejszymi wersjami (plikami o rozszerzeniu .mdb), czyli możemy otworzyć w nim bazę danych utworzoną np. w wersji 2003 i pracować z nią, tak jak to robiliśmy w środowisku Access 2003 — ta operacja niczym się nie różni od otwierania pliku bazy najnowszej wersji Accessa. Zanim jednak będziemy mogli skorzystać z nowych funkcji programu, musimy przekonwertować bazę danych. Innymi słowy, po otwarciu bazy danych w formacie .mdb możemy z nią pracować, tj. odczytywać i modyfikować dane, ale nie możemy zmieniać i dodawać niektórych obiektów bazy danych.
37
38
Otwieranie baz danych wcześniejszych wersji programu Access
Żeby skonwertować bazę danych: 1. Otwórz bazę w formacie .mdb. 2. Z menu PLIK wybierz opcję Zapisz jako. 3. Upewnij się, czy wybranym formatem jest Baza danych programu Access. 4. Kliknij Zapisz jako.
3 2
4
5. Jeżeli wyświetlone zostanie ostrzeżenie o zamknięciu otwartych obiektów bazy danych, kliknij Tak. 6. Podaj nazwę i lokalizację zapisywanej bazy i kliknij Zapisz. 7. Zostanie wyświetlona informacja o tym, że skonwertowaną do wersji 2013 bazę danych otworzymy tylko w programach Access 2007 lub nowszych. 8. Po kliknięciu OK skonwertowana kopia bazy danych zostanie otworzona.
7
8
Udostępnianie pliku bazy danych
Udostępnianie pliku bazy danych Access 2013 jest w pełni zintegrowany z usługami w chmurze — to dlatego w prawym górnym rogu znajduje się przycisk Zaloguj się. Po jego kliknięciu będziemy mogli zalogować się na założone wcześniej konto Live ID i w ten sposób automatycznie korzystać np. z dysku SkyDrive. Aby zalogować się na swoje konto, wystarczy: 1. Kliknąć Zaloguj się. 2. Podać adres e-mailowy, który jest identyfikatorem do naszego konta Live ID. 3. Następnie podać hasło do konta Live ID (to powinno być inne hasło niż do skrzynki pocztowej, której nazwa jest jednocześnie identyfikatorem Live ID).
i
Więcej informacji na temat darmowego konta Live ID, w tym opis procedury jego założenia, znajdziemy pod adresem https://accountservices.passport.net/ppnetworkhome. srf?lc=1045.
Po udanym zalogowaniu: 1. W prawym górnym rogu wyświetlona zostanie nazwa użytkownika i jego awatar.
1
2 2a
2. Na liście dostępnych lokalizacji pojawi się nasz dysk SkyDrive. Aby otworzyć zapisaną na nim bazę danych: a) Kliknij Przeglądaj. b) Wskaż plik bazy programu Access.
Jeżeli komputer podłączony jest do sieci lokalnej, możemy też skorzystać z bardziej tradycyjnej formy współdzielenia plików. W tym celu należy jedynie utworzyć i udostępnić folder, do którego zostanie skopiowany plik bazy. Dodatkowo mamy możliwość ograniczenia dostępu do bazy danych przez nadanie odpowiednich uprawnień udostępnionemu folderowi.
39
40
Tworzenie bazy danych na podstawie szablonu Northwind
Gdy chcemy udostępnić plik bazy danych, musimy: 1. Utworzyć na lokalnym dysku nowy folder o nazwie np. Baza. Warto pamiętać, że ze względów bezpieczeństwa nie należy udostępniać więcej zasobów komputera, niż jest to niezbędne. W tym przypadku lepiej więc utworzyć folder i zapisać w nim wyłącznie plik bazy danych, niż np. udostępnić wszystkim folder Moje dokumenty. 2. Kliknąć utworzony folder prawym przyciskiem myszy i z menu kontekstowego wybrać opcję Udostępnij/Określonym osobom. 3. Wybrać użytkowników, którzy będą mogli korzystać z udostępnionego folderu. 4. Określić poziom uprawnień dla tych użytkowników jako Odczyt/ Zapis.
3
4
5. Kliknąć przycisk Udostępnij.
5
Tworzenie bazy danych na podstawie szablonu Northwind Firma Microsoft do SZBD Access dołącza szablony wielu typowych baz danych, wśród nich szablon bazy firmy zajmującej się handlem artykułami spożywczymi. Samodzielne przeanalizowanie tej bazy pozwala nie tylko na zapoznanie się z możliwościami programu Access, ale również na wykorzystanie cennych przykładów gotowych rozwiązań konkretnych problemów. Struktura tej bazy jest bowiem jawna. Każdy z jej użytkowników może więc wzorować się na tabelach czy formularzach utworzonych przez inżynierów firmy Microsoft. Aby utworzyć bazę danych Northwind: 1. Uruchom program Access. W głównym oknie wyświetlone zostaną przykładowe szablony baz danych. 2. Kliknij przycisk Biznes — znalezione zostaną dostępne online szablony z tej kategorii, w tym szablon Northwind.
Poznajemy przykładową bazę danych Northwind
3. Kliknij szablon bazy Northwind.
2
3
4. Zmień nazwę tworzonej bazy danych na Northwind i ewentualnie zmień lokalizację jej pliku.
5. Kliknij przycisk Utwórz. 6. Na podstawie wybranego szablonu program Access utworzy bazę danych i automatycznie ją uruchomi.
Poznajemy przykładową bazę danych Northwind Czas poświęcony na zapoznanie się z przykładową bazą danych zwróci się z nawiązką podczas projektowania i tworzenia własnych baz danych. Przyglądając się tej bazie, dowiemy się, do czego służą poszczególne obiekty bazy danych, takie jak tabele, kwerendy, formularze czy raporty. Wcielając się w rolę użytkownika gotowej bazy danych, zdobędziemy wiedzę, która pozwoli nam zrozumieć znaczenie poszczególnych obiektów bazodanowych oraz poznać interfejs programu Access 2013. 1. Jeżeli utworzona w poprzednim ćwiczeniu baza Northwind została zamknięta, uruchom ją. 2. Zostanie wyświetlone ostrzeżenie o zablokowaniu niektórych funkcji tej bazy danych. Żeby je włączyć, kliknij znajdujący się na pasku ostrzeżenia przycisk Włącz zawartość. 3. Baza Northwind zostanie ponownie uruchomiona, ale tym razem wyświetlony zostanie formularz logowania przykładowej bazy danych. Wybierz z listy dowolnego pracownika i kliknij przycisk Zaloguj. 4. Otwarty zostanie główny formularz bazy danych Northwind. Dzięki niemu możemy uruchamiać pozostałe formularze, raporty i kwerendy bazy danych.
41
42
Poznajemy przykładową bazę danych Northwind
i
Formularze tworzą interfejs użytkownika bazy danych i pozwalają mu przeszukiwać i modyfikować zapisane w niej dane oraz uruchamiać utworzone w tej bazie raporty. Tworzeniu formularzy poświęcony jest rozdział 7.
5. Aby powiększyć ten formularz, zwiń wstążkę. Żeby ponownie rozwinąć ukrytą wstążkę, należy kliknąć prawym przyciskiem myszy dowolną pozycję menu i odznaczyć pole wyboru Zwiń wstążkę. 6. W lewym okienku zobaczymy listę aktywnych (tj. już złożonych, ale jeszcze niezrealizowanych) zamówień. 7. W środkowym okienku wyświetlone zostaną towary, których stan w magazynie jest niższy od określonego minimalnego zapasu. Oznacza to, że na formularzu możemy umieszczać dane zapisane w różnych tabelach. 8. W prawym oknie zobaczymy odnośniki pozwalające wyświetlać formularze, kwerendy i raporty przykładowej bazy danych. Czyli na formularzach możemy też umieszczać przyciski uruchamiające inne formularze, kwerendy czy raporty. 9. Natomiast na pasku formularza znajdziemy trzy przyciski pozwalające odpowiednio na: a) złożenie nowego zamówienia sprzedaży, b) złożenie nowego zamówienia kupna, c) odświeżenie widocznych w tym formularzu danych. Innymi słowy, na formularzach można też umieszczać przyciski różnych poleceń. 10. W sekcji Szybkie łącza kliknij odnośnik Wyświetl zapasy — wybrany formularz zostanie wyświetlony w osobnej zakładce. Klikając nazwy zakładek, możemy się przełączać pomiędzy obiektami bazy danych. 10
5
9 6
7
8
Poznajemy przykładową bazę danych Northwind
11. Kliknij nazwę jednego z brakujących produktów. Zwróć uwagę, że jeżeli ilość jakiegoś produktu wynosi 0, jest ona wyświetlana na czerwono. Czyli Access pozwala dynamicznie formatować dane wyświetlane na formularzach. 12. Zostanie wyświetlony nowy formularz. Tym razem będzie to formularz modalny, czyli wyświetlany w osobnym okienku — tak wyświetlone formularze musimy zamknąć, zanim będziemy mogli wrócić do innych obiektów bazy danych. Za pomocą tego formularza możemy odczytać i zmodyfikować wszystkie dane wybranego produktu. W dolnej części formularza znajdują się przyciski nawigacyjne. Przy ich użyciu możemy: a) wyłączyć i włączyć filtrowanie (domyślnie formularz pokazuje tylko informacje o produkcie, który wybraliśmy w punkcie 11.), b) wyszukać podane wyrażenie na bieżącym formularzu, c) wyświetlić informacje o kolejnym produkcie (o ile wyłączyliśmy wcześniej filtrowanie), d) wyświetlić informacje o poprzednim produkcie, e) przejść do ostatniego produktu, f) przejść do pierwszego produktu,
d
f
c
e
g
a
b
g) dodać nowy produkt (podczas dodawania nowego produktu musimy wypełnić wszystkie pola oznaczone jako wymagane).
13. Aby zmienić koszt, cenę lub opis wybranego produktu, wystarczy ustawić kursor w odpowiednim polu tekstowym i wpisać nowe dane z klawiatury. Po kliknięciu dowolnego przycisku nawigacyjnego zmienione dane zostaną zapisane w tabeli Produkty powiązanej z formularzem. Oznacza to, że formularze służą jedynie do prezentowania i modyfikowania przechowywanych w tabelach danych.
43
44
Poznajemy przykładową bazę danych Northwind
Gdy chcemy się przekonać, czy informacje zmieniane za pośrednictwem formularza rzeczywiście są zapisywane w tabeli, możemy: 1. Zmienić nazwę, opis i cenę jednego z produktów. 2. Zamknąć formularz Szczegóły produktu przyciskiem Zamknij. 3. Wyświetlić Okienko nawigacyjne, np. klikając widoczną z lewej strony ekranu jego miniaturę. 4. Domyślnie obiekty bazy danych są podzielone na stworzone przez jej twórców kategorie tematyczne. Ponieważ chcemy zobaczyć wszystkie tabele, a następnie wybrać z nich tabelę Produkty, powinniśmy zmienić widok Okienka nawigacyjnego. W tym celu:
a b
a) Kliknij widoczną w jego prawym górnym rogu strzałkę skierowaną w dół. b) Z listy możliwych sposobów wyświetlania obiektów bazy danych wybierz Typy obiektu. c) W Okienku nawigacyjnym zostanie wyświetlona lista wszystkich typów obiektów bazy danych, czyli tabel, kwerend, formularzy, raportów, makropoleceń i modułów. d) Rozwiń listę tabel. Zwróć uwagę, że w Okienku nawigacyjnym obiekty bazy danych uporządkowane są alfabetycznie według ich nazw. e) Po wyświetleniu listy wszystkich tabel dwukrotnie kliknij tabelę Produkty.
5. Wybrana tabela zostanie otwarta w widoku arkusza danych. Znajdź zmodyfikowany w formularzu towar i wprowadź dowolną zmianę bezpośrednio w tabeli. 6. Zamknij okno tabeli. 6 5d 5e 5
Poznajemy przykładową bazę danych Northwind
7. Jeszcze raz wyświetlimy formularz zawierający szczegółowe dane o towarze. Tym razem zrobimy to, klikając na głównym formularzu nazwę dowolnego towaru, a następnie: a) klikając pole listy Przejdź do produktu, b) wybierając modyfikowany produkt. Okazuje się, że na formularzach można też umieszczać pola list, które pobierają dane z wybranych tabel. 8. Zwróć uwagę, że zmiany wprowadzone bezpośrednio w tabeli zaczęły obowiązywać natychmiast. Formularz Szczegóły produktu pozwala nie tylko odczytywać i modyfikować informacje o poszczególnych towarach, ale za jego pośrednictwem możemy też dodawać nowe produkty. Aby dodać nowy towar: 1. Kliknij przycisk Zapisz i nowy. 2. Wpisz nazwę nowego towaru (np. .LHïNL)1. 1
3 2
4 5 6b
6a
3. Zwróć uwagę, że identyfikator (numer) towaru jest automatycznie generowany przez SZBD Access i nie może być przez nas nie tylko podany, ale również zmieniony. W bazach danych informacje przechowywane są w tabelach, ale mogą być prezentowane w zupełnie inny sposób poprzez formularze. 4. Kliknij klawisz Tab — uaktywnione zostanie kolejne pole formularza; wpisz dane nowego towaru.
5. Ten formularz nie umożliwia dodawania informacji o dostawcach, możemy jedynie z listy dostawców wcześniej wprowadzonych do bazy wybrać nazwę firmy dostarczającej dany towar. Zwróć uwagę, że ten sam towar może być dostarczany przez wielu różnych dostawców. Podstawą relacyjnych baz danych jest to, że dane o różnych typach obiektów (na przykład produktach i dostawcach) są przechowywane w odrębnych tabelach. Formularze pozwalają użytkownikom uprościć pracę z tak przechowywanymi danymi.
1
Spolszczając przykładową bazę danych, tłumacz błędnie przetłumaczył pole Name jako Nazwisko, a nie Nazwa towaru.
45
46
Poznajemy przykładową bazę danych Northwind
6. Program Office Access 2013 umożliwia też korzystanie z pól załączników oraz pól wielowartościowych: a) Pierwsza funkcjonalność pozwala na dołączenie do rekordu dowolnego dokumentu, obrazu czy arkusza kalkulacyjnego. Tak dołączone obiekty będą zapisane w bazie danych programu Access. b) Za pomocą pola z wieloma wartościami można wybrać więcej niż jedną wartość (np. przypisać towar do wielu dostawców) bez tworzenia specjalnych (opisanych w rozdziale 6.) tabel łącznikowych.
i
Korzystanie z bazy danych musi być nie tylko możliwie najłatwiejsze, ale również powinno uniemożliwiać (a przynajmniej utrudniać) użytkownikom wprowadzanie błędnych danych. Dzięki zapisaniu danych o dostawcach i produktach w osobnych tabelach i udostępnieniu tych tabel za pośrednictwem formularzy, zamiast za każdym razem wpisywać nazwę dostawcy, można ją wybrać z listy.
7. Aby dołączyć do informacji o towarze jego zdjęcie lub dokument reklamowy:
7a
a) Dwukrotnie kliknij pole Załączniki, a następnie kliknij przycisk Dodaj i wskaż plik załącznika. b) Aby go później otworzyć, wystarczy raz jeszcze dwukrotnie kliknąć pole załącznika i z menu wybrać opcję Otwórz.
8. Ustaw kursor w polu Opis i wprowadź przykładowy opis produktu. Potem zaznacz dowolny wyraz — pojawi się nowy pasek narzędzi pozwalający sformatować wprowadzony tekst. 9. Przećwicz możliwość formatowania zapisywanych w tabeli danych, zmieniając krój, kolor i wielkość czcionki, którą zapisane zostały poszczególne wyrazy opisu. Okazuje się, że Access 2013 pozwala formatować tekst zapisywany w polach typu Nota. 10. Aby zapisać wprowadzone dane do tabeli Produkty, kliknij dowolny przycisk nawigacyjny znajdujący się w lewym dolnym rogu formularza. 11. Zamknij formularz Szczegóły produktu. Bazy danych programu Access — oprócz tabel służących do przechowywania danych i pozwalających w prosty i wygodny sposób wprowadzać i modyfikować te dane formularzy — zawierają też raporty. Raporty również można wyświetlać z poziomu formularzy. Aby wyświetlić przykładowy raport:
Poznajemy przykładową bazę danych Northwind
1. Kliknij znajdujący się na głównym formularzu odnośnik Raporty ze sprzedaży — zostanie wyświetlony formularz pozwalający wybrać, jakie dane i jak uporządkowane będzie zawierał generowany raport. Czyli dane prezentowane w raportach mogą być wybrane za pomocą formularzy. 2. Aby zobaczyć raport, kliknij przycisk Podgląd. Raporty umożliwiają jedynie odczyt wybranych danych, ale to, jakie dane będzie zawierał raport w danym momencie, możemy zmieniać. Program Access 2013 ułatwia filtrowanie również za pomocą wbudowanych narzędzi, które nie są zależne od formularzy stworzonych w bazie danych. Dla typów danych Tekst, Liczba i Data dostępne są różne opcje filtrowania. Przykładowo nowe opcje filtrowania ułatwiają filtrowanie kolumny dat dla wszystkich rekordów należących do zakresu dat Dzisiaj, Wczoraj, W ubiegłym tygodniu, W przyszłym miesiącu, W przyszłości, W przeszłości itd. Praca związana z filtrowaniem przebiega tak samo jak we wcześniejszych wersjach programu Access, a zatem użytkownik nie musi poznawać nowego sposobu wyszukiwania potrzebnych informacji. 1. Po zapoznaniu się z raportem zaznacz wartość sprzedaży (nie jej podsumowanie) dowolnego produktu w pierwszym kwartale. 2. Po kliknięciu prawym przyciskiem myszy zostanie wyświetlone okno dialogowe umożliwiające filtrowanie danych. Za jego pomocą usuń z raportu towary, których wartość sprzedaży była mniejsza od wartości sprzedaży wybranego towaru lub jej równa.
1
2
3. Aby wyłączyć filtr, ustaw kursor myszy w tej kolumnie, w której wcześniej go włączyłeś, kliknij prawy przycisk myszy i wybierz opcję Wyczyść filtr. 4. Kliknij znajdujący się w prawym dolnym rogu raportu przycisk Podgląd wydruku.
47
48
Przydatne skróty klawiszowe
5. Zwróć uwagę, że: a) W głównym oknie wyświetlony został podgląd wydruku raportu. b) Na wstążce automatycznie wyświetlona została sekcja Podgląd wydruku pozwalająca m.in. wydrukować raport oraz zmienić jego orientację lub rozmiar. 6. Kończąc ćwiczenie, pozostaw otwartą bazę Northwind — użyjemy jej do poznania najczęściej używanych skrótów klawiszowych programu Access 2013.
Przydatne skróty klawiszowe Jeżeli należysz do osób, które do wykonywania typowych operacji wolą używać skrótów klawiszowych niż myszki, poniższa tabela jest dla Ciebie. Skrót klawiszowy Akcja F1
Wyświetla rozbudowaną pomoc.
Ctrl+F1
Zwija/rozwija wstążkę.
F5
Przechodzi do wiersza o wybranym numerze (domyślnie do pierwszego wiersza). Działa na formularzach, tabelach, kwerendach i raportach.
F6
Przełącza pomiędzy widocznymi okienkami programu Access.
F7
Pozwala sprawdzić pisownię danych przechowywanych lub zwracanych przez wybrany obiekt bazy danych.
F11
Wyświetla/ukrywa Okienko nawigacyjne.
Del
Kasuje wybrany obiekt lub dane.
Alt+Enter
Wyświetla arkusz właściwości wybranego obiektu. Działa w widoku projektu.
Ctrl+C
Kopiuje zaznaczony obiekt lub dane do schowka.
Ctrl+F
Wyświetla okienko Znajdowanie i zamienianie. Nie działa w widoku projektu tabeli, kwerendy, formularza czy raportu.
Ctrl+N
Pozwala utworzyć nową bazę danych.
Ctrl+O
Pozwala otworzyć istniejącą bazę danych.
Ctrl+P
Pozwala wydrukować wybrany obiekt.
Ctrl+S
Zapisuje wybrany obiekt.
Ctrl+V
Kopiuje dane ze schowka do wybranego obiektu.
Ctrl+X
Kasuje wybrany obiekt lub dane i przenosi je do schowka.
Ctrl+Z
Wycofuje zmiany wprowadzone przez ostatnio wykonaną operację.
Esc
Wycofuje wykonywaną właśnie operację.
Dodawanie zaufanych lokalizacji plików bazodanowych
Dodawanie zaufanych lokalizacji plików bazodanowych Jeżeli baza danych zawiera jakieś elementy aktywne (takie jak makropolecenia przedstawione w rozdziale 9.), przed jej uruchomieniem Access wyświetla znane nam już ostrzeżenie i blokuje działanie niektórych funkcji bazy. W ten sposób SZBD Access chroni nas przed skutkami nieświadomego uruchomienia pochodzących z niezaufanych źródeł i potencjalnie niebezpiecznych programów. Działanie to można jednak zmienić, określając zaufaną lokalizację baz danych — bazy znajdujące się w takiej zaufanej lokalizacji będą uruchamiane bez zgłaszania ostrzeżenia. Aby zaufać bazom danych znajdującym się w folderze Dokumenty: 1. Jeżeli SZBD Access 2013 został wyłączony, uruchom go i kliknij Otwórz inne pliki. W przeciwnym razie rozwiń menu PLIK. 2. Przejdź do zakładki Opcje. Ta zakładka pozwala skonfigurować działanie programu Access. 3. Przejdź do sekcji Centrum zaufania i kliknij przycisk Ustawienia Centrum zaufania. 4. Następnie wybierz sekcję Zaufane lokalizacje.
4
5. Kliknij przycisk Dodaj nową lokalizację. 6
7 8
6. Kliknij Przeglądaj i wskaż bibliotekę Dokumenty. 7. Zaznacz pole wyboru Podfoldery tej lokalizacji są także zaufane.
5 9
8. Kliknij OK.
9. Zamknij sekcję Zaufane lokalizacje, a następnie okno Centrum zaufania przyciskami OK. 10. Po zamknięciu okna opcji programu Access wprowadzone zmiany zaczną obowiązywać. Od tego momentu nie kopiuj do folderu Dokumenty pochodzących z niezaufanych źródeł plików baz danych programu Access.
49
50
Konwertowanie bazy danych do starszego formatu
Konwertowanie bazy danych do starszego formatu Wiemy już, że bazy danych utworzone we wcześniejszych wersjach programu Access mogą być w łatwy sposób przekonwertowane do postaci pliku SZBD Access 2013. W ten sposób będziemy mogli nie tylko korzystać z wcześniejszej wersji bazy danych (możliwe jest otwarcie nieprzekonwertowanej bazy), ale również ją modyfikować. Zwykle możliwa jest również odwrotna operacja, czyli konwersja bazy zapisanej w formacie Access 2013 do postaci umożliwiającej pracę i modyfikowanie bazy we wcześniejszych wersjach programu.
i
Bezpośrednia konwersja możliwa jest do pliku wersji SZBD Access 2000 lub późniejszej, o ile baza danych nie wykorzystuje funkcji niedostępnych we wcześniejszych wersjach programu Access. Dlatego próba konwersji przykładowej bazy Northwind skończy się niepowodzeniem.
Aby umożliwić użytkownikom programu Access 2000 korzystanie z bazy zapisanej w formacie Access 2007 – 2013, musimy: 1. Uruchomić pustą bazę danych utworzoną w rozdziale 1. 2. Rozwinąć menu PLIK. 3. Wybrać opcję Zapisz jako. 4. Wskazać format kompatybilny z wersją 2000 lub 2002 – 2003. 5. Kliknąć przycisk Zapisz jako. 6. Ewentualnie zmienić nazwę oraz lokalizację zapisywanego pliku bazy danych i kliknąć Zapisz.
Podział bazy danych SZBD Access 2013 umożliwia podzielenie bazy danych na dwa pliki: jeden będzie zawierał dane (a więc definicje tabel i zapisane w nich informacje), drugi natomiast — interfejs użytkownika (a więc kwerendy, formularze i raporty). W efekcie wielu użytkowników może jednocześnie korzystać z tej samej bazy danych, co oznacza, że każdy z nich będzie miał dostęp do tych samych (aktualnych) danych. W przypadku małej sieci lokalnej (na przykład małej firmy)2 wystarczy w tym celu skopiować na poszcze2
W przypadku większych organizacji należy zastosować rozwiązanie opisane w rozdziale 11., czyli opublikować bazę danych programu Access na serwerze SharePoint.
Podział bazy danych
gólne komputery plik zawierający interfejs użytkownika i skonfigurować go tak, aby pobierał dane z udostępnionego w sieci drugiego pliku, w którym zostały umieszczone tabele z danymi. Bazę danych warto również podzielić w przypadku komputerów niepodłączonych do sieci. Oddzielenie danych i tabel od elementów interfejsu użytkownika ułatwia bowiem jego ewentualną modyfikację czy uaktualnienie. Z kolei zmniejszenie rozmiaru plików bazodanowych poprawia wydajność samej bazy danych.
i
Przed podzieleniem bazy danych należy wykonać kopię jej pliku.
Aby podzielić przykładową bazę danych Northwind na dwa pliki, powinniśmy: 1. Uruchomić bazę Northwind. 2. Zamknąć formularz logowania. 3. Przejść do zakładki NARZĘDZIA BAZY DANYCH. 3
5
4
4. Kliknąć przycisk Baza danych programu Access. Uruchomiony zostanie kreator rozdzielenia bazy danych. 5. Kliknąć przycisk Podziel bazę danych.
6. Podać lokalizację i nazwę pliku zawierającego tabele i dane, a następnie kliknąć przycisk Podziel. Po chwili baza danych będzie podzielona na dwa pliki, a wszystkie tabele zostaną zastąpione odwołaniami do przeniesionych tabel. 7. Praca z podzieloną bazą danych niczym nie różni się od pracy z bazą niepodzieloną — po podzieleniu bazy nadal możliwe jest modyfikowanie zapisanych w niej informacji. Zmiana struktury tabel wymaga jednak otwarcia pliku z tabelami i danymi (Northwind_wb.accdb), a nie oryginalnego pliku bazy danych (Northwind.accdb).
51
52
Konfiguracja podzielonych baz danych
Konfiguracja podzielonych baz danych Po wykonaniu poprzedniego ćwiczenia przykładowa baza danych Northwind została zapisana w dwóch plikach, z których jeden zawiera dane, a drugi (ten plik pozostał w oryginalnej lokalizacji) — wyłącznie interfejs użytkownika. Jeżeli z bazy danych ma korzystać kilku użytkowników, to na komputer każdego z nich należy skopiować plik interfejsu użytkownika, a samą bazę danych skonfigurować w ten sposób, aby wszyscy mogli połączyć się z tym samym plikiem zawierającym dane. W tym celu należy: 1. Skopiować na komputery użytkowników plik z interfejsem użytkownika (w tym przypadku plik Northwind.accdb). 2. Uruchomić na tych komputerach skopiowaną bazę danych. Ponieważ lokalizacja pliku bazodanowego uległa zmianie, dane będą niedostępne, a próba uruchomienia jakiegokolwiek formularza powiązanego (formularza prezentującego dane zapisane w dowolnej tabeli), np. próba zalogowania się do programu jako jeden z pracowników zakończy się wyświetleniem komunikatu o błędzie. 3. Naciśnij OK.
2
3
Aby rozwiązać ten problem, należy: 1. W Okienku nawigacji wyświetlić tabele. Zwróć uwagę, że ich ikony zawierają strzałkę symbolizującą, iż tabele te znajdują się w zewnętrznym pliku. 2. Kliknąć prawym przyciskiem myszy odnośnik do dowolnej tabeli i wybrać opcję Menedżer tabel połączonych. 3. Kliknąć przycisk Zaznacz wszystkie, żeby zmienić lokalizację wszystkich tabel bazy danych. 4. Następnie kliknąć OK. Zostanie wyświetlone standardowe okno dialogowe systemu Windows, które umożliwia wskazanie lokalizacji pliku z tabelami i danymi. 5. Określić lokalizację pliku z danymi (jeżeli plik znajduje się w udostępnionym przez inny komputer folderze, należy rozpocząć jego poszukiwanie od kliknięcia ikony Moje miejsca sieciowe) i kliknąć przycisk Otwórz.
Podsumowanie
4 3
6. Po wskazaniu prawidłowego pliku zostanie wyświetlona informacja o pomyślnym odświeżeniu połączonych tabel. Zamknij okno Menedżera tabel połączonych. Od tego momentu użytkownicy zdalnych komputerów będą mieli dostęp do danych zapisanych w udostępnionym pliku.
Podsumowanie Po przeczytaniu tego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi może mieć pewne kłopoty, mają mu pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Do czego służą pola załączników programu Office Access 2013? 2. Czy można korzystać z nieprzekonwertowanej bazy utworzonej w innej niż nasza wersji programu Access? 3. Czy jest wymagane tworzenie kopii plików, na które dzielimy bazę danych? 4. Które z naszych operacji wykonywanych w trakcie korzystania z bazy danych mogą ją uszkodzić? 5. Czy istnieją jakieś zabezpieczenia, które chronią bazę danych przed jej otwarciem?
53
54
ľ-DN]EXGRZDQHVÈWDEHOH"ľ6]\ENLVWDUW ĽRNUHĂODP\GDQHHOHPHQWDUQHľ3ROD REOLF]HQLRZHľ7ZRU]\P\WDEHOÚSRSU]H] ZSURZDG]DQLHSU]\NïDGRZ\FKGDQ\FKľ 7ZRU]\P\WDEHOÚSRSU]H]LPSRUW]HZQÚWU]Q\FK GDQ\FKľ.RQğJXUXMHP\ZïDĂFLZRĂFLNROXPQ ZZLGRNXDUNXV]DGDQ\FKľ7ZRU]HQLH WDEHOZZLGRNXSURMHNWXľ'HğQLXMHP\ NOXF]SRGVWDZRZ\ľ7\S\GDQ\FKSURJUDPX 0LFURVRIW$FFHVVľ5HJXï\VSUDZG]DQLD SRSUDZQRĂFLZDUXQNLNWöUHPXV]ÈVSHïQLDÊ GDQH]DSLVDQHZWDEHOL ľ3RGVXPRZDQLH
3
Projektowanie i tworzenie tabel, czyli jak przechowywać informacje w bazie danych Jak zbudowane są tabele? Tabele są podstawowymi obiektami każdej relacyjnej bazy danych, w tym baz programu Access. Składają się one z wierszy i kolumn, na przecięciu których znajdują się pola. Poszczególne wiersze przechowują informacje o kolejnych obiektach (np. imiona, nazwiska, pseudonimy i adresy osób), a poszczególne kolumny — o tych samych cechach (atrybutach) obiektów (np. imionach kolejnych osób).
56
Jak zbudowane są tabele?
Zanim zaczniemy tworzyć własne tabele, musimy spojrzeć na modelowane zagadnienie jako na zbiór różnorodnych informacji, wśród których dość dużą liczbę stanowią dane zupełnie nieprzydatne. Aby nie zaśmiecać naszej bazy danych niezrozumiałymi i chaotycznymi informacjami, powinniśmy dostrzec pewne zasady, według których dane są organizowane. Pierwszym krokiem w projektowaniu bazy danych jest wybór typów obiektów (np. osoby, towary, filmy czy transakcje zakupu), o których będziemy gromadzić informacje w naszych tabelach. Następnie z ogromnego zbioru cech (atrybutów) wybranych obiektów należy wyodrębnić te, które najlepiej je opisują (np. imiona i nazwiska osób, nazwy i ceny towarów, tytuły filmów czy daty transakcji zakupu). Innymi słowy, projektowanie bazy danych zaczyna się od zidentyfikowania interesujących nas danych. Wśród różnych typów danych, które będziemy przechowywać w poszczególnych kolumnach, w polach tekstowych będą znajdować się np. tytuły filmów, a w polach liczbowych ceny towarów. Ponadto w przypadku niektórych obiektów należy określić maksymalną liczbę znaków, jaka będzie użyta do ich zapisu, np. w kolumnie Nazwisko użytkownik powinien mieć możliwość zapisania ciągu znaków Brzęczyszczykiewicz (19 znaków), a w kolumnie wiek — np. liczb z zakresu od 0 do 150. Umiejętność odpowiedniego doboru typu kolumn do typów danych, które chcemy w nich przechowywać, jest jedną z podstawowych zalet projektanta bazy danych. Na tym etapie należy utworzyć listę wszystkich atrybutów (kolumn) oraz ich typów danych. Pojawiające się problemy z doborem typu danych z reguły świadczą o błędzie w projekcie tabeli. Oczywiście, różne typy obiektów pozostają ze sobą w pewnych relacjach (ludzie mieszkają w domach, meble są własnością osób, towary zostały kupione w ramach transakcji zakupu przez określone osoby itd.). Opisowi tej zasadniczej (dla projektanta relacyjnej bazy danych) umiejętności łączenia tabel został poświęcony rozdział 5. Wykonanie ćwiczeń z bieżącego rozdziału pozwoli na razie na samodzielne utworzenie tabel, adekwatnych do przechowywanych w nich danych. Na tym etapie powinniśmy: 1. Wstępnie określić kolumny poszczególnych tabel. Ogólną zasadą jest przechowywanie danych o różnych typach obiektów w osobnych tabelach. Na przykład w osobnych tabelach powinny być zapisane dane o klientach, towarach i zamówieniach. Pozwala to zdefiniować właściwe kolumny poszczególnych tabel — jeżeli chcemy na przykład przechowywać informacje o dacie i wartości zamówienia, do tabeli Zamówienia dodamy kolumny DataZamówienia i Wartość.
Szybki start — określamy dane elementarne
2. Wyeliminować powtarzające się dane. W relacyjnych bazach danych ta sama informacja nie powinna być przechowywana w kilku miejscach. W związku z tym, jeżeli jakieś dane mogą być obliczone na podstawie innych (na przykład wiek na podstawie daty urodzenia), w bazie powinna być zapisana tylko jedna z nich (prawdopodobnie data urodzenia).
Szybki start — określamy dane elementarne Pierwszą tabelę utworzymy, korzystając z pól typu Szybki start. Wiemy już, że poszczególne wiersze przechowują informacje o jednym obiekcie, a poszczególne kolumny — o jednym atrybucie obiektów danego typu. Pola szybkiego startu ułatwiają określenie listy interesujących nas cech obiektów danego typu. Tworząc np. tabelę Kontakty, w której będziemy zapisywać dane dotyczące kontaktów z naszymi znajomymi, musimy zastanowić się nad tym, czy interesuje nas kod pocztowy, czy też informacja taka jest nam w ogóle niepotrzebna. Ponadto musimy zadecydować o tym, czy np. adres domowy zostanie zapisany w jednej kolumnie Adres, czy w kilku kolumnach szczegółowych: Ulica, Nr domu, Miasto. Gdy skorzystamy z pól szybkiego startu, podjęcie prawidłowych decyzji nie sprawi nam większych kłopotów. 1. Uruchom Access 2013, na podstawie szablonu Pusta baza danych dla komputerów utwórz nową bazę danych i nazwij ją 5R]G]LDï. 2. W głównym oknie programu zostanie wyświetlony widok arkusza danych pierwszej tabeli. Chociaż tabele mogą być tworzone również w tym widoku, na razie zamknij to okno. 3. Przejdź do zakładki TWORZENIE. Z lewej strony wstążki pojawią się ikony pozwalające utworzyć tabelę na trzy różne sposoby: 2a
2b
2c
a) w widoku arkusza danych, b) w widoku projektu, c) oraz jako listę serwera SharePoint (ten typ tabel dotyczy przedstawionych w rozdziale 11. baz sieci Web).
4. Kliknij przycisk Tabela — w głównym oknie programu Access zostanie wyświetlony znany nam już widok arkusza danych tabeli.
57
58
Szybki start — określamy dane elementarne
5. Zwróć uwagę, że pierwsza kolumna nazywa się Identyfikator i że nie można zapisać lub zmienić przechowywanych w tej kolumnie danych. Ta kolumna będzie pełniła rolę klucza podstawowego tabeli — w relacyjnych bazach danych klucz podstawowy jednoznacznie identyfikuje wiersze tabeli, czyli na jego podstawie zawsze możliwe jest wybranie konkretnego wiersza tabeli. Access ułatwia zakładanie kluczy podstawowych i automatycznie dodaje do tabel kolumnę o nazwie Identyfikator o typie danych Autonumerowanie, co oznacza, że będzie automatycznie wstawiał wartości do tej kolumny. Ustaw kursor w polu Kliknij, aby dodać.
6
6. W zakładce POLA kliknij przycisk Więcej pól. 7
8
7. Przewiń w dół listę możliwych do dodania pól tabeli. W jej dolnej części znajdują się pola szybkiego startu. 8. Kliknij pole Adres.
9. Do tabeli zostaną automatycznie dodane kolumny Adres, Miasto, Województwo, Kod pocztowy i Kraj/Region. Zwróć uwagę, że poszczególne kolumny przechowują dane elementarne, czyli takie, które opisują tylko jeden atrybut obiektu. Czyli zamiast umieszczenia w jednej kolumnie (nazwijmy ją CałyAdres) ciągu znaków typu: ul. Zielna 1/1, 40-000 Katowice, Śląsk, Polska, dane te są dzielone na pięć kolumn: a) Adres — tu zapisujemy nazwę ulicy i numer domu. b) Miejscowość — tu przechowujemy dane o miejscu zamieszkania danej osoby. c) Województwo — tu umieszczamy informacje o województwie. d) Kod — kolumna, w której zapisujemy wyłącznie kod pocztowy. e) Kraj/region — tu przechowujemy informacje dotyczące kraju, w którym mieszka dana osoba. 10. Ten podział ma swoje uzasadnienie. Wszystkie systemy zarządzania relacyjnymi bazami danych, w tym Access, doskonale radzą sobie z łączeniem danych przechowywanych w kilku kolumnach. Natomiast wyodrębnienie danych składających się na informację zapisaną w pojedynczej kolumnie jest
Szybki start — określamy dane elementarne
dość skomplikowane i czasochłonne. Na przykład wyszukanie osób mieszkających na ulicy Zielnej (gdyby ta informacja stanowiła część dużej kolumny CałyAdres) wymagałoby napisania skomplikowanej i dość wolno działającej procedury. Projektując tabele, powinniśmy w poszczególnych kolumnach zapisywać wartości atomowych, niepodzielnych atrybutów. Atomowy oznacza tu „używany do wyszukiwania, sortowania lub grupowania”, np. jeżeli planujemy wyszukiwać lub sortować wiersze na podstawie miast, nazwa miasta będzie wartością atomową. Wyjątkiem od tej reguły jest (opisane w rozdziale 5.) tworzenie relacji typu jeden do wielu za pomocą pól wielowartościowych.
i
11. Ponieważ nasza tabela ma przechowywać informacje o kontaktach, powinniśmy dodać do niej jeszcze kilka kolumn, takich jak Imię i Nazwisko. W związku z tym: a) Zaznacz kolumnę Identyfikator. b) Kliknij ikonę Krótki tekst — do tabeli zostanie dodana nowa kolumna typu tekstowego. c) Zwróć uwagę, że nowa kolumna zostanie dodana bezpośrednio po zaznaczonej, w naszym przypadku — po kolumnie Identyfikator. b a c
12. W ten sam sposób dodaj jeszcze jedną kolumnę tekstową.
a
13. Dodane kolumny mają domyślne, nieoddające ich przeznaczenia nazwy Pole1 i Pole2. Powinniśmy je zmienić na opisowe nazwy Imię i Nazwisko. W tym celu: a) Kliknij prawym przyciskiem myszy nagłówek kolumny Pole1. Zostanie wyświetlone menu kontekstowe zawierające m.in. polecenie Zmień nazwę pola.
b
b) Po wybraniu opcji Zmień nazwę pola nazwa kolumny zostanie podświetlona. Wpisz nową nazwę kolumny (,PLÚ) i naciśnij Enter.
59
60
Szybki start — określamy dane elementarne
i
Nadając nazwy poszczególnym obiektom (kolumna też jest obiektem, mówimy bowiem, że tabela zawiera kolekcję kolumn), musimy przestrzegać konwencji nazewniczej programu Access. Określa ona, które nazwy są poprawne. Jednym z kryteriów ich poprawności jest brak w nazwie symboli specjalnych, takich jak spacja. Jeżeli nazwy obiektów będą niezgodne z tą konwencją, muszą być umieszczane w nawiasach kwadratowych. Ponadto jeżeli baza danych będzie uruchamiana na komputerach z zainstalowanymi innymi niż polska wersjami językowymi systemu Windows, nazwy obiektów nie powinny też zawierać polskich znaków diakrytycznych1.
14. Aby zmienić nazwę kolumny Pole2 na Nazwisko: a) Kliknij dwukrotnie lewym przyciskiem myszy nagłówek kolumny Pole2. b) Wpisz nową nazwę kolumny — Nazwisko. c) Zatwierdź zmiany klawiszem Enter. 15. Access pozwala dodawać do tabeli nowe kolumny na kilka sposobów. Żeby dodać ostatnią kolumnę, wystarczy, że: a b
a) Przewiniemy okienko tabeli w prawo i klikniemy lewym przyciskiem myszy nagłówek, w którym widoczny jest napis Kliknij, aby dodać. b) Wyświetlone zostanie menu kontekstowe pozwalające wybrać typ dodawanej kolumny — wybierz Data i godzina. c) Zmień domyślną nazwę dodawanej kolumny — w tym przypadku chcielibyśmy dodatkowo przechowywać informacje o urodzinach naszych znajomych, dlatego nazwiemy tę kolumnę DataUrodzenia.
16. Pozycję kolumn tabeli można zmieniać. Aby przesunąć kolumnę DataUrodzenia za kolumnę Nazwisko: a) Zaznacz przesuwaną kolumnę (kolumnę DataUrodzenia). b) Naciśnij i przytrzymaj lewy przycisk myszy. c) Przesuń kursor za kolumnę Nazwisko i puść lewy przycisk myszy. 17. Wpisz do tabeli przykładowe dane minimum trzech znajomych. Pamiętaj, żeby za każdym razem wpisać nazwisko znajomego1.
1
Pierwsza wersja programu Access 2013 zawierała wiele błędów związanych z obsługą obiektów o polskich nazwach. Błędy te powinny zostać usunięte w aktualizacjach wydanych po premierze książki.
Pola obliczeniowe
18. Zamknij okno tabeli, klikając widoczny w prawym górnym rogu przycisk Zamknij. Zostaniesz zapytany, czy zapisać zmiany w tabeli — kliknij przycisk Tak. 19. Następnie zostaniesz zapytany o nazwę tworzonej tabeli: a) Zmień domyślną nazwę Tabela1 na Kontakty. b) Kliknij przycisk OK.
a b
20 a b
20. Wyświetl Okienko nawigacyjne. Zobaczysz w nim jedyny obiekt naszej bazy danych, czyli utworzoną przed chwilą tabelę Kontakty. Aby ją otworzyć, wykonaj jedną z czynności: a) Dwukrotnie kliknij nazwę tabeli. b) Kliknij nazwę tabeli prawym przyciskiem myszy i z menu kontekstowego wybierz polecenie Otwórz. 21. Tabela zostanie wyświetlona w znanym nam już widoku arkusza danych.
Pola obliczeniowe W źle zaprojektowanej bazie danych użytkownicy przechowują w tabelach te same, wielokrotnie powielane informacje. Dotyczy to również danych obliczonych na podstawie innych danych. Na przykład rok urodzenia znajomych jest pochodną daty ich urodzenia, a cena brutto towarów może być obliczona na podstawie ich ceny netto i stawki podatku VAT. Takich danych nie należy bezpośrednio zapisywać w tabelach — gdybyśmy popełnili taki błąd, zmieniając cenę netto towaru, musielibyśmy jednocześnie zmienić jego cenę brutto, co prędzej lub później doprowadziłoby do utraty spójności danych. Co jednak zrobić, jeżeli chcemy umożliwić użytkownikom korzystanie z takich danych, np. pozwolić im wyszukiwać wiersze na podstawie roku urodzenia znajomych czy grupować towary według ich cen brutto? Problem ten rozwiązuje kolejna funkcja programu Access 2013, czyli możliwość dodawania do tabel pól obliczeniowych. Aby dodać kolumnę z wiekiem znajomych:
61
62
Pola obliczeniowe
1. Jeżeli okno arkusza danych tabeli Kontakty zostało zamknięte, wyświetl je.
2
2. Kliknij pole Kliknij, aby dodać (jeżeli będzie to konieczne, okno arkusza danych tej tabeli przewiń w prawo). 3. Z listy typów dodawanej kolumny wybierz Pole obliczeniowe/Liczba. 3
4. Wyświetlone zostanie okno konstruktora wyrażeń. Aby za jego pomocą zbudować wyrażenie zwracające rok urodzenia znajomych:
4
a) W polu Elementy wyrażeń rozwiń sekcję Funkcje i zaznacz Funkcje wbudowane.
b
a
c
b) Wybierz kategorię wyrażeń — Data/godzina. c) Dwukrotnie kliknij funkcję Year — zostanie ona dodana do okna konstruktora wyrażeń.
5. Wybrana funkcja Year zwraca rok obliczony na podstawie przekazanej do niej daty — w tym przypadku chodzi o daty urodzin zapisane w kolumnie DataUrodzenia:
6 a
a) Zaznacz wyrażenie <
> znajdujące się w nawiasach za nazwą dodanej funkcji. b) W polu Elementy wyrażeń zaznacz tabelę Kontakty.
b
c
c) W polu Kategorie wyrażeń dwukrotnie kliknij kolumnę DataUrodzenia — nazwa tej kolumny zostanie wstawiona do wyrażenia. 6. Kliknij OK.
Tworzymy tabelę poprzez wprowadzanie przykładowych danych
7. Zmień nazwę kolumny obliczeniowej na RokUrodzenia. 8. Zwróć uwagę, że pola tej kolumny Access automatycznie wypełnił poprawnymi danymi. Zmień datę urodzenia dowolnego znajomego, a rok urodzenia zostanie automatycznie uaktualniony. 9. Zamknij okno tabeli Kontakty.
i
Pola wyliczeniowe są doskonałym (szybkim, niezawodnym, a jednocześnie stosunkowo łatwym do zastosowania) sposobem na przechowywanie w bazie nadmiarowych informacji bez ryzyka, że dane te stracą spójność. Stosuj je wszędzie tam, gdzie brak pola wyliczeniowego wymagałby powtarzania tych samych wyrażeń w różnych raportach lub kwerendach.
Tworzymy tabelę poprzez wprowadzanie przykładowych danych Program Access pozwala również na tworzenie tabel bez wcześniejszego określania ich pól (nazw kolumn), jedynie poprzez wprowadzenie danych — wystarczy wpisać wybrane dane, aby SZBD Access utworzył na ich podstawie tabelę. Podobnie jak poprzednio tworzyliśmy tabelę, określając jej pola (nazwy kolumn), tak tym razem wpiszemy po prostu wybrane dane, na podstawie których SZBD Access utworzy odpowiednią tabelę. Ta metoda wymaga jednak umiejętności samodzielnego dzielenia informacji, które opisują obiekt, na poszczególne dane elementarne (takie jak ulica, miasto i kod pocztowy w przypadku pola szybkiego startu Adres).
i
Access 2013 ułatwia bezpośrednią pracę w arkuszu danych tabel w zakresie ich tworzenia i dostosowywania do potrzeb użytkownika. Można zacząć wprowadzać informacje do komórki danych, tak jak robi się to w Excelu. Gdy zostanie wprowadzona nowa wartość, Access automatycznie doda nowe pole i wykryje typ danych (np. datę, liczbę lub tekst). Można nawet wklejać tabele programu Excel do nowego arkusza danych, a wówczas Access automatycznie utworzy wszystkie pola i rozpozna typy danych.
1. Jeżeli okno tabeli jest otwarte, zamknij je i przejdź do zakładki TWORZENIE. 2. Drugą od lewej ikoną na wstążce jest ikona Tabela. Kliknij ją lewym przyciskiem myszy. 3. Na ekranie zostanie wyświetlony znany nam widok arkusza danych tabeli przypominający arkusz programu Excel.
63
64
Tworzymy tabelę poprzez wprowadzanie przykładowych danych
4. W poszczególnych kolumnach wpisz (w jednym wierszu) kolejne informacje o wybranym filmie: a) Pierwsza kolumna zawiera automatycznie generowany identyfikator wiersza (klucz podstawowy). b) W drugim polu wpisz przykładowy tytuł filmu (+REELW1LH]Z\NïDSRGUöĝ). c) Naciśnij klawisz Tab. d) W trzecim polu wpisz nazwę gatunku (Fantasy). e) W czwartym czas trwania w minutach (200). f) W piątym opinię o filmie (3RSURVWXWU]HED]REDF]\Ê). g) W szóstym informację o wersji (5R]V]HU]RQHSï\WRZHZ\GDQLH'9').
a
i
b
d
e
f
g
Aby automatycznie dostosować szerokość kolumny do wpisanych w jej polach danych, należy dwukrotnie kliknąć pionową linię wyznaczającą jej prawy bok.
5. W ten sam sposób wprowadź informacje o przynajmniej dwóch innych filmach. Nie zapomnij o tym, aby nowe tytuły filmów zostały zapisane w tej kolumnie co tytuł pierwszego filmu, nazwy gatunków pod nazwą pierwszego gatunku itd. 6. Następnie musimy zmienić domyślne nazwy kolumn tabeli (Pole1, Pole2 itd.) na bardziej opisowe. Wykonaj jedną z dwóch czynności: a) Dwukrotnie kliknij nagłówek kolumny i w miejsce nazwy domyślnej wpisz własną nazwę kolumny (w ten sposób zmień nazwę Pole1 na 7\WXï). b) Zaznacz kolumnę, klikając nazwę kolumny prawym przyciskiem myszy, i z menu kontekstowego wybierz opcję Zmień nazwę pola (w ten sposób zmień nazwę Pole2 na *DWXQHN). Postępując w wybrany przez siebie sposób, zmień nazwy kolejnych kolumn: Pole3 na CzasTrwania(min), Pole4 na 2SLQLD i Pole5 na Wersja.” 7. Zamknij okno widoku tabeli. 8. Zostanie wyświetlone pytanie, czy zapisać zmiany w projekcie tabeli. Kliknij przycisk Tak. 9. Kolejne pytanie będzie dotyczyło nazwy, pod jaką należy zapisać utworzoną tabelę. Wpisz Filmy i kliknij przycisk OK.
Tworzymy tabelę poprzez import zewnętrznych danych
Tworzymy tabelę poprzez import zewnętrznych danych Bardzo często decydujemy się na stworzenie własnej bazy danych w programie Access wtedy, gdy wcześniejsze sposoby przechowywania informacji (np. w arkuszach Excela czy plikach tekstowych) przestały spełniać nasze wymagania. W takiej sytuacji dysponujemy już pewną liczbą danych, które chcielibyśmy jak najmniejszym nakładem pracy przenieść do tworzonej bazy danych. Access 2013 znacznie upraszcza to zadanie. 1. Kliknij zakładkę DANE ZEWNĘTRZNE. 2. Na wstążce zostaną wyświetlone ikony pozwalające odczytywać lub zapisywać zewnętrzne dane. W sekcji Import kliknij ikonę Plik tekstowy.
1
2
3. Uruchomiony zostanie kreator importu danych tekstowych. 4. Wskaż lokalizację pliku lista.txt, który znajduje się w podfolderze Rozdział03\ Starter archiwum ZIP z przykładami do książki. 5. Upewnij się, że zaznaczone jest pierwsze pole wyboru Importuj dane źródłowe do nowej tabeli w bieżącej bazie danych — w ten sposób na podstawie importowanego pliku utworzymy nową tabelę bazy danych, a nie dopiszemy tych danych do istniejącej tabeli lub utworzymy połączenie z tym plikiem. 6. Po kliknięciu OK zostaniemy zapytani o format importowanych danych. 7. Dane w plikach tekstowych mogą być rozdzielane albo określonym znakiem, albo na podstawie ich długości. W przykładowym pliku zostały rozdzielone znakiem tabulacji. Żeby się upewnić, czy wybrany został prawidłowy format pliku, oraz zobaczyć strukturę tworzonej tabeli, kliknij przycisk Zaawansowane. 8. Wyświetlone zostanie okienko Lista specyfikacji importu zawierające m.in. informacje o kolumnach tworzonej tabeli. Zwróć uwagę, że Access na podstawie odczytanych danych określił typy kolumn. 9. Ponieważ układ docelowej tabeli jest poprawny, kliknij OK.
65
66
Tworzymy tabelę poprzez import zewnętrznych danych
8 10
10. Po kliknięciu przycisku Dalej zobaczymy podgląd importowanych danych. W tym wypadku Access prawidłowo rozpoznał strukturę pliku źródłowego, ale pomylił się przy ocenie sposobu ich kodowania i adresy nie byłyby właściwie zaimportowane.
7
11. Żeby skorygować ten błąd: a) Raz jeszcze kliknij przycisk Zaawansowane. b) Zmień stronę kodową na Środkowoeuropejski (Windows)2. c) Kliknij OK. 12. Kliknij przycisk Dalej. 13. Kolejne pytania kreatora będą dotyczyły zdefiniowania poszczególnych kolumn tabeli. Będziemy mieli okazję określić: a
b
a) nazwę kolumny (Nazwa pola), b) typ danych (Typ danych),
c
d
c) czy dana kolumna ma być poindeksowana (Indeksowany), d) czy zaznaczone dane mają być pominięte i niezaimportowane do tworzonej tabeli (Nie importuj pola).
2
Strony kodowe określają sposób przechowywania i przetwarzania znaków diakrytycznych, takich jak polskie litery ą lub Ź. Jeżeli dane tekstowe zapisane w jednej stronie kodowej zostaną odczytane przy użyciu innej strony, znaki diakrytyczne zostaną źle zinterpretowane.
Tworzymy tabelę poprzez import zewnętrznych danych
i
Sortowanie i wyszukiwanie danych przechowywanych w tabeli znacznie przyspieszają poindeksowane kolumny. Tworząc np. indeks na kolumnie Nazwisko, skrócimy czas potrzebny na posortowanie listy osób według ich nazwisk i na znalezienie danych osoby o podanym nazwisku. Specjalnym typem indeksów są indeksy unikatowe — definiując je, uniemożliwimy przechowywanie w osobnych wierszach wybranych kolumn powtarzających się wartości. Indeksy przechowują kopie danych i są automatycznie aktualizowane przez serwer bazodanowy. Ponieważ zwiększają one rozmiar bazy i nieco wydłużają czas modyfikowania danych, nie należy zakładać ich dla wszystkich kolumn tabeli. Ogólnie można przyjąć, że pojedyncza tabela nie powinna mieć więcej niż kilka indeksów.
14. Kolejno zdefiniuj kolumny tabeli, nazywając je odpowiednio: ,PLÚ, Nazwisko, =DZöG, Firma, Kod, Miasto, Adres. Aby zdefiniować kolejną kolumnę, wystarczy kliknąć jej podgląd lewym przyciskiem myszy. 15. Piątą kolumnę (kolumnę z wiekiem) pomiń przy imporcie i poindeksuj (wybierając opcję Duplikaty OK) kolumny Imię, Nazwisko i Adres. 16. Po kliknięciu Dalej zostaniemy zapytani, czy Access ma dodać kolumnę klucza podstawowego. Możemy wybrać pomiędzy: a) utworzeniem dodatkowej kolumny identyfikatora (należy wybrać tę opcję), b) wskazaniem jednej z istniejących kolumn jako kolumny klucza podstawowego, c) utworzeniem tabeli bez klucza podstawowego.
i
Tego typu klucze podstawowe nazywa się naturalnymi. Wśród projektantów baz danych od wielu lat trwa dyskusja, czy klucze naturalne są lepsze od sztucznych (czyli dodatkowej kolumny Identyfikator zawierającej wartości automatycznie generowane przez serwer bazodanowy). W przypadku baz danych programu Access zalety kluczy sztucznych (łatwość użycia, właściwy typ danych i zagwarantowana przez SZBD Access ich niepowtarzalność, za które zapłacimy koniecznością utworzenia dodatkowej kolumny i bardziej skomplikowanymi relacjami pomiędzy tabelami) prawie zawsze przewyższają straty, jakie mogą pojawić się w wyniku wybrania niewłaściwej kolumny na klucz podstawowy.
17. Po kliknięciu Dalej zostaniemy zapytani o nazwę tworzonej tabeli. Zaakceptuj domyślną nazwę Lista i kliknij przycisk Zakończ. 18. Ostatnie pytanie kreatora importu danych tekstowych będzie dotyczyło tego, czy zapisać poszczególne kroki, tak abyśmy mogli je w przyszłości szybciej powtórzyć. Nie zaznaczaj pola wyboru Zapisz kroki importowania i zakończ pracę kreatora. 19. Rozwiń Okienko nawigacyjne i, jeżeli jest to potrzebne, zmień jego widok na Typ obiektu. W sekcji Tabele wyświetlone zostaną wszystkie trzy tabele naszej bazy danych. Otwórz tabelę Lista i przeanalizuj jej zawartość.
67
68
Konfigurujemy właściwości kolumn w widoku arkusza danych
Konfigurujemy właściwości kolumn w widoku arkusza danych Do tej pory określaliśmy tylko kilka podstawowych właściwości kolumn, takich jak nazwa i typ. SZBD Access 2013 pozwala ustawić znacznie więcej właściwości dla każdej kolumny — w tym ćwiczeniu poznamy te najczęściej ustawiane.
i
Im więcej ustawimy dodatkowych właściwości kolumn, tym lepiej Access będzie automatycznie dbał o spójność przechowywanych w nich danych. Dodatkowe właściwości kolumn pozwalają też określić sposób prezentowania danych (a więc definiując je na poziomie tabeli , nie będziemy musieli definiować ich oddzielnie dla poszczególnych raportów czy formularzy.
Aby ustawić dodatkowe właściwości kolumn mające wpływ na spójność danych: 1. Wyświetl widok arkusza danych tabeli Kontakty. 2. Zaznacz kolumnę Imię. 3. Wyświetl na wstążce zakładkę NARZĘDZIA TABEL/POLA. 4. W sekcji Właściwości znajdują się przyciski pozwalające skonfigurować wybraną tabelę. Zmniejsz rozmiar pola do 30. Ponieważ poprzedni rozmiar był większy, wyświetlone zostanie ostrzeżenie o możliwej 4 utracie danych (od teraz niemożliwe będzie zapisywanie imion o długości powyżej 30 znaków) — kliknij OK. 5. Zaznacz kolumnę Miasto. 6. Przypuśćmy, że większość znajomych mieszka w Warszawie — ustawiając taką wartość domyślną, uprościmy wprowadzanie danych o nowych znajomych. W tym celu: a) Kliknij przycisk Wartość domyślna. c b
b) Wyświetlony zostanie znany nam już konstruktor wyrażeń. Tym razem wystarczy wpisać w nim nazwę miasta (jeżeli nie umieścimy jej w cudzysłowach, Access doda je automatycznie). c) Zatwierdź zmiany przyciskiem OK.
Konfigurujemy właściwości kolumn w widoku arkusza danych
Aby ustawić dodatkowe właściwości kolumn mające wpływ na sposób prezentowania danych: 1. Zaznacz kolumnę DataUrodzenia. 2. W sekcji Właściwości kliknij przycisk Nazwa i etykieta. 3. Wyświetlone zostanie okno dialogowe pozwalające podać etykietę i opis kolumny: a) W polu Etykieta wpisz 'DWDXURG]HQLD]QDMRPHJR. b) W polu Opis — 'DWDXURG]HQLD. Należy opisywać poszczególne kolumny — opisy kolumn wyświetlane są m.in. na pasku stanu programu Access podczas dodawania, odczytywania bądź modyfikowania zapisanych w nich danych. Opisy te będą też automatycznie użyte w formularzach i raportach. c) Zatwierdź zmiany przyciskiem OK. a b
c
4. Dane typu Data/Godzina mogą być prezentowane (formatowane) na różne sposoby. W przypadku dat urodzin prawdopodobnie chcielibyśmy widzieć tylko datę (bez godziny), w dodatku w formie dostosowanej do ustawień regionalnych (np. 3 marca 1964). Aby osiągnąć taki efekt: a) Upewnij się, że zaznaczoną kolumną jest DataUrodzenia. b c
b) W sekcji Formatowanie rozwiń pole listy Format. c) Z listy dostępnych formatów wybierz Data długa.
5. Zamknij okno tabeli Kontakty i zapisz wprowadzone zmiany.
69
70
Tworzenie tabel w widoku projektu
Tworzenie tabel w widoku projektu Tworzenie tabel za pomocą kreatora tabel lub poprzez wprowadzanie danych jest szybkie i proste, ale nie pozwala na precyzyjne dostosowanie tabeli do rodzaju przechowywanych w niej informacji. Dlatego wcześniejsze ćwiczenia miały jedynie pokazać użytkownikowi, jak zbudowana jest tabela bazy danych. W dalszej części książki do tworzenia (i modyfikowania) tabel wykorzystywać będziemy widok projektu tabeli. Chociaż definicja tabeli utworzonej za pomocą kreatora lub poprzez wprowadzanie danych może być zmieniona w widoku projektu, to najlepiej (i najszybciej) jest od początku tworzyć tabele przy użyciu widoku projektu. 1. Przejdź do zakładki TWORZENIE i kliknij ikonę Projekt tabeli. 2. Wyświetlony zostanie widok projektu tabeli, w którym znajdziesz: a) nazwy poszczególnych kolumn tabeli, b) typy danych przechowywanych w odpowiednich kolumnach, c) opisy poszczególnych kolumn, a
b
d) informacje o dodatkowych atrybutach wybranej kolumny,
c
e d
e) krótkie komunikaty podpowiedzi dotyczące aktywnego pola.
3. W tworzonej tabeli będziemy przechowywać najważniejsze informacje o firmach. Ustaw kursor w pierwszym polu kolumny Nazwa pola i jako nazwę pierwszej kolumny tabeli wpisz: Nazwa. 4. Przejdź do kolumny Typ danych (np. naciskając klawisz Tab) i z listy dostępnych typów danych wybierz Krótki tekst.
i
W wielu przypadkach po ustawieniu kursora w polu w jego prawym rogu wyświetlona zostanie strzałka skierowana w dół. Po jej kliknięciu zostanie udostępniona lista wartości poprawnych dla tego pola. Aby wybrać jedną z nich, wystarczy kliknąć ją lewym przyciskiem myszy.
Tworzenie tabel w widoku projektu
5. Przejdź do kolumny Opis i wpisz krótki opis tabeli (1D]Z\ğUPQLHSU]HNUDF]DMÈFH]QDNöZ). 6. Lista atrybutów pola (kolumny) zależy od wybranego typu danych. W przypadku pól tekstowych należy m.in.: a) Określić maksymalną długość ciągu znaków. Próba zapisania w kolumnie tabeli ciągu znaków o większej długości zakończy się błędem (w tym wypadku ogranicz długość do 50 znaków).
i
W przypadku pól tekstowych, w których przechowywane są dane o określonej postaci, np. numery kodu pocztowego składające się z dwóch cyfr, myślnika i kolejnych trzech cyfr, należy dodatkowo określić maskę wprowadzania danych. Ćwiczenie opisujące tworzenie masek wprowadzania znajduje się w dalszej części rozdziału.
b) Określić tytuł (w widoku arkusza danych nazywany etykietą) kolumny (wpisz 1D]ZDğUP\).
i
Tytuł obiektu (np. kolumny) nie jest tym samym, co jego nazwa. Generalnie do identyfikowania obiektów program Access wykorzystuje nazwy, a użytkownik widzi tytuły (etykiety) i nimi się posługuje. Dotyczy to wszystkich typów obiektów bazy danych.
c) W przypadku rzadko powtarzających się nazw firm nie ma potrzeby podawania wartości domyślnej. Wartość ta zostanie ustawiona dla innej kolumny tworzonej tabeli. d) Określić, czy dana wartość będzie musiała być podana podczas wprowadzania danych o firmach do tabeli. Po zmianie wartości atrybutu Wymagane na Tak próba zapisania informacji o firmie bez podania jej nazwy zakończy się błędem — wymuś więc podawanie nazw firm. e) Aby rzeczywiście wymusić przyjętą regułę biznesową („Firmy muszą mieć nazwy”), należy ustawić również wartość atrybutu Zerowa dł. dozwolona na Nie. f) Określić, czy wartości zapisane w tej kolumnie będą indeksowane, a jeżeli tak, czy możliwe będzie wpisanie w kilku wierszach tych samych danych. W tym przypadku należy wybrać opcję Tak (Duplikaty OK). 7. Następnie dodaj do projektu tabeli kolumnę o nazwie Miasto: a) Przejdź do kolumny Typ danych i z listy dostępnych typów danych wybierz Krótki tekst. b) Przejdź do kolumny Opis i wpisz krótki opis tabeli (6LHG]LEDğUP\).
71
72
Tworzenie tabel w widoku projektu
8. Dla tej kolumny ustaw następujące wartości dodatkowych atrybutów: a) Ogranicz rozmiar pola do 30 znaków. b) Wpisz tytuł pola (6LHG]LEDğUP\). c) Podaj domyślną wartość dla pola (.DWRZLFH). W ten sposób we wszystkich nowych wierszach tabeli wartością pola Miasto będą Katowice, a jeżeli jakaś firma będzie zarejestrowana w innym mieście, użytkownik może zmienić tę wartość i wpisać poprawną nazwę miasta.
7
7a
7b
8a 8b
8c
d) Powyższe pole nie powinno być wymagane (może się zdarzyć, że będziesz chciał wpisać do tabeli informacje o firmie, nie znając jej adresu).
8d 8e
e) Ponieważ przewidujemy, że stosunkowo często będziemy wyszukiwać dane na podstawie adresu firmy, kolumna Miasto również powinna być zindeksowana. Bardzo prawdopodobne jest też, że w tabeli będą zapisywane dane o wielu firmach z tego samego miasta, dlatego jako wartość atrybutu Indeksowane powinieneś wybrać Tak (Duplikaty OK). 9. Dodaj kolejne pole tabeli o nazwie Kod. 10. Przejdź do kolumny Typ danych i z listy dostępnych typów danych wybierz Krótki tekst. 11. Przejdź do kolumny Opis i wpisz krótki opis tabeli (.RGSRF]WRZ\ğUP\). 12. Ogranicz rozmiar pola do 5 znaków. 13. Zbuduj maskę wprowadzania, która wymusi na użytkownikach wpisywanie kodu firmy w postaci dwie cyfry, myślnik, trzy cyfry. W tym celu: a) Ustaw kursor w polu Maska wprowadzania. Z prawej strony pola wyświetlony zostanie wielokropek. Po jego kliknięciu zobaczysz na ekranie informację o konieczności zapisania tabeli. Kliknij przycisk Tak.
Tworzenie tabel w widoku projektu
b) Podaj nazwę tworzonej tabeli (Firmy) i kliknij przycisk OK. c) Zostanie wyświetlone ostrzeżenie o braku klucza podstawowego tabeli. Na pytanie, czy utworzyć klucz podstawowy, odpowiedz kliknięciem przycisku Tak.
d e
f
d) Na ekranie zostanie wyświetlone okienko Kreatora masek wprowadzania. Z listy przykładowych masek wybierz Kod pocztowy.
e) Ustaw kursor w polu Próbuj: i przekonaj się, że dzięki określeniu maski wprowadzania niemożliwe stało się wpisywanie błędnych kodów pocztowych (np. zbyt długich, zbyt krótkich czy zawierających litery). f) Kliknij przycisk Dalej. g) Kolejne pytanie kreatora umożliwia zmianę maski wprowadzania oraz symbolu wyświetlanego w miejscu brakujących cyfr kodu. Ponieważ w tym przypadku żadne zmiany nie są konieczne, kliknij przycisk Dalej. h) Ostatnie pytanie kreatora pozwala zdecydować, czy w tabeli mają być zapisane same cyfry kodu, czy cyfry wraz z oddzielającym je myślnikiem. Ponieważ nie ma potrzeby wielokrotnego przechowywania tego samego znaku myślnika, zaakceptuj domyślną opcję eliminującą myślnik i zakończ pracę kreatora.
i
Sposób wyświetlania danych nie musi odpowiadać formie ich przechowywania — widzieliśmy na przykład, że data może być zapisana jako , a wyświetlana jako PDUFD . Jeżeli mimo wszystko zdecydujemy się na przechowywanie znaku myślnika w kolumnie Kod, rozmiar pola powinien być zwiększony do 6 znaków.
14. Wpisz tytuł pola (.RGSRF]WRZ\ğUP\)3. 15. Utwórz nową kolumnę o nazwie 'DWD=DïRĝHQLD i typie danych Data/Godzina. Jako opis pola wpisz 'DWD]DïRĝHQLDğUP\. 16. W zakładce Ogólne z listy dostępnych formatów wybierz Data długa, a następnie zaznacz pozycję Maska wprowadzania i kliknij wielokropek wyświetlony z prawej strony pola.
3
Zwróć uwagę, że w tym czasie do tabeli została dodana nowa kolumna Identyfikator typu Autonumerowanie. To ona będzie pełniła funkcję klucza podstawowego tabeli.
73
74
Tworzenie tabel w widoku projektu
17. Jeżeli przed uruchomieniem Kreatora masek wprowadzania konieczne będzie zapisanie tabeli, kliknij przycisk Tak. Ponieważ podaliśmy już nazwę tabeli i określiliśmy klucz podstawowy, na ekranie zostanie wyświetlone okienko kreatora masek wprowadzania. Zauważ, że kreator masek wprowadzania dostosowuje proponowane maski do typu kolumny, dla której został uruchomiony. 18. Tym razem chcemy wymusić na użytkownikach wprowadzanie poprawnych dat. W tym celu z listy dostępnych masek wybierz najpopularniejszy format wprowadzania dat do różnych programów, czyli Datę krótką, i zakończ działanie Kreatora masek wprowadzania. 19. Podaj tytuł pola ('DWD]DïRĝHQLDğUP\). 20. Ostatnią kolumną tabeli będzie kolumna Kapitał, w której będziemy przechowywać informacje o kapitale zakładowym. Dodaj nową kolumnę o nazwie .DSLWDï. 21. Jako typ danych nowego pola wybierz Waluta. 22. Podaj opis pola (.DSLWDï]DNïDGRZ\). 23. Lista atrybutów pól walutowych różni się od atrybutów dostępnych dla pól tekstowych. W tym przypadku: a) Jako format wybierz Euro. b) Podaj tytuł pola (.DSLWDï]DNïDGRZ\ğUP\). 24. Zamknij okno widoku projektu tabeli i zapisz wprowadzone zmiany. 25. Otwórz tabelę Firmy w widoku Arkusza danych i wpisz przykładowe dane o trzech różnych firmach. 26. Zwróć uwagę, że: a) Nagłówkami kolumn nie są ich nazwy, a tytuły. b) Na pasku stanu wyświetlana jest informacja wprowadzona w polu opisu poszczególnych kolumn. c) Niemożliwe jest zapisanie danych o firmie bez podania jej nazwy. d) Niemożliwe jest wprowadzenie błędnych danych do pól Kod i Data.
b
i
a c
Błędne dane możemy wycofać, naciskając klawisz ESC)
27. Zamknij okno arkusza danych tabeli Firmy.
Definiujemy klucz podstawowy
Definiujemy klucz podstawowy Jednym z najczęściej powtarzających się w tym rozdziale terminów był klucz podstawowy. Za każdym razem gdy próbowaliśmy zapisać tabelę bez zdefiniowanego klucza podstawowego, SZBD Access ostrzegał o jego braku i proponował jego automatyczne utworzenie. Już na tej podstawie możemy przypuszczać, że klucz podstawowy jest ważnym elementem każdej tabeli i jego brak przy korzystaniu z bazy danych może spowodować wystąpienie poważnych błędów. Skoro informacje o poszczególnych obiektach zapisane są w kolejnych wierszach tabeli, a samą tabelę traktujemy jak zbiór danych zapisanych w kolejnych wierszach (zbiór, a nie listę, gdyż dane w tabeli nie są w żaden sposób uporządkowane), to konieczne okazuje się ponumerowanie tych wierszy. W przeciwnym razie Access nie mógłby określić, czy kiedy pytamy o adres Jana, interesuje nas adres Jana z Katowic czy Jana z Gdańska. Nie wdając się w zawiłości teorii zależności funkcyjnych i różnic pomiędzy zbiorem a wielozbiorem, możemy przyjąć, że klucz podstawowy jest numerem wiersza, który jednoznacznie identyfikuje obiekt (np. znajomego czy firmę) w tabeli.
i
Funkcję klucza podstawowego może pełnić dowolna kolumna (a nawet zbiór kilku kolumn) tabeli, o ile dane przechowywane w tej kolumnie są niepowtarzalne. Na przykład, dopóki w tabeli Znajomi nie znajdują się informacje o kilku osobach noszących to samo nazwisko, kluczem podstawowym tej tabeli mogłaby być kolumna Nazwisko. Nie możemy jednak wykluczyć tego, że kiedyś dopiszemy do tabeli kolejną osobę o nazwisku Nowak, zatem wybór tej kolumny na klucz podstawowy wcześniej czy później stanie się przyczyną problemów.
Aby samodzielnie określić klucz podstawowy tabeli: 1. Utwórz nową tabelę w widoku projektu. 2. Pierwszą kolumnę nazwij ,'7RZDUX. 3. Jako typ danych wybierz Autonumerowanie.
i
Wybór autonumerowania jako typu danych spowoduje, że SZBD Access będzie automatycznie wstawiał w kolejnych polach kolumny wygenerowane przez siebie wartości. Co więcej, wartości tych nie będzie można zmienić. Nie oznacza to jednak, że dana kolumna będzie kluczem podstawowym tabeli — po prostu, najczęściej obie te funkcje (klucza podstawowego oraz autonumerowania) używane są łącznie.
4. Wpisz opis pola (.OXF]SRGVWDZRZ\WDEHOL).
75
76
Definiujemy klucz podstawowy
5. Dla pól typu Autonumerowanie można ustawić jedynie kilka wartości: a) Wartością pola może być albo Liczba całkowita długa (liczba całkowita z przedziału od –2 147 483 648 do 2 147 483 647), albo Identyfikator replikacji (16-bajtowy, losowo wygenerowany ciąg znaków) — zostaw domyślnie wybraną wartość Liczba całkowita długa. b) Atrybut Nowe wartości może przyjąć jedną z dwóch wartości: Przyrostowo (kolejny wiersz będzie miał numer o jeden większy od poprzedniego) lub Losowo (numery kolejnych wierszy będą losowane) — wybierz opcję Przyrostowo.
i
Jeśli wybrane zostało przyrostowe generowanie nowych wartości i jakiś wiersz zostanie skasowany, jego numer nie będzie ponownie wykorzystany. Tak więc nawet przy wyborze tej opcji nie możemy mieć pewności, że wiersze tabeli będą miały nadane kolejne numery. Za to na pewno będą miały niepowtarzalne numery.
c) Wpisz tytuł pola (,GHQW\ğNDWRUWRZDUX).
2 5a
3
4
5b
5c
Na tym etapie utworzyliśmy kolumnę, w której przechowywane będą wartości automatycznie generowane przez SZBD Access. Żeby jednak na ich podstawie możliwe było jednoznaczne określenie wiersza (rekordu) tabeli, musimy mieć pewność, że te wartości się nie powtórzą. W przeciwnym razie powrócilibyśmy do sytuacji, w której niemożliwe jest określenie osoby na podstawie jej imienia, bo w tabeli zapisane są dane kilku osób noszących to samo imię. Rozwiązaniem tego problemu jest właśnie określenie kolumny jako kolumny klucza podstawowego. W tym celu ustaw kursor w dowolnym polu kolumny (w polu jego nazwy, typu danych lub opisu), a następnie: 1. Wykonaj jedną z czynności: a) Kliknij ikonę Klucz podstawowy. b) Naciśnij prawy przycisk myszy i z menu kontekstowego wybierz opcję Klucz podstawowy.
Definiujemy klucz podstawowy
1 2
2. W obu przypadkach na lewym marginesie, na wysokości pola IDTowaru, wyświetlona zostanie ikona klucza, a wartość opcji Indeksowane zostanie zmieniona na Tak (Bez duplikatów). 3. Dodaj do tabeli jeszcze jedną kolumnę o nazwie Nazwa, typie danych Krótki tekst i opisie 1D]ZDWRZDUX.
4. Następnie podaj tytuł kolumny (2ERZLÈ]NRZDQD]ZDWRZDUX), zmień wartość atrybutu Wymagane na Tak, natomiast Zerowa dł. dowolna na Nie i Indeksowane na Tak (Bez duplikatów). 5. W rezultacie nowo utworzona tabela składać się będzie z dwóch kolumn. W żadnej z nich niemożliwe będzie zarówno przechowywanie w różnych polach tej samej wartości, jak i pozostawianie pustych pól. Jednak wartości pól IDTowaru generowane będą automatycznie, a wartości pól Nazwa — nie. Aby się o tym przekonać, otwórz tabelę w widoku arkusza danych. Możesz to zrobić, klikając ikonę Widok (widoczną z lewej strony wstążki) i wybierając Widok arkusza danych. 6. Zostanie wyświetlone pytanie, czy zapisać tabelę. Kliknij przycisk Tak. 7. Podaj nazwę tabeli (Towary) i kliknij przycisk OK. 8. Wpisz nazwę pierwszego towaru (0LFURVRIW2IğFH) i drugiego (.XEHN). 9. Przekonaj się, że wartości pól IDTowaru nie można ani samodzielnie wpisywać, ani zmieniać. 10. Wpisz nazwę trzeciego towaru (SRP\ïND), a następnie usuń ten rekord. W tym celu zaznacz wiersz, klikając pole po jego lewej stronie, i naciśnij klawisz Delete lub kliknij prawym przyciskiem myszy i z menu kontekstowego wybierz Usuń rekord. 11. Dodaj nazwę czwartego towaru (.VLÈĝND$FFHVV3/). Przekonaj się, że: a) Mimo że wiersz o numerze 3 został usunięty, to nowy wiersz ma numer 4, czyli autonumerowanie nie gwarantuje ciągłości numerów. b) Niemożliwe jest zapisanie w kolumnie Nazwa kilka razy tej samej wartości. W tym przypadku kolejna próba zapisania w tabeli informacji o szelkach zakończy się wyświetleniem komunikatu o błędzie.
77
78
Typy danych programu Microsoft Access
12. Cofnij ostatnio wprowadzone zmiany przez naciśnięcie dwa razy klawisza Esc i wyświetl tabelę w widoku projektu. 13. Zaznacz kolumnę IDTowaru i w ten sam sposób, w jaki oznaczyłeś ją jako klucz podstawowy, cofnij to zaznaczenie. Znajdująca się na lewym marginesie ikona klucza zniknie.
14
i
14. Sprawdź, czy możliwe jest oznaczenie jako klucza podstawowego kolumny Nazwa. Okaże się, że tak, o czym świadczyć będzie wyświetlona przy tej kolumnie ikona klucza.
Chociaż jako klucz podstawowy może być określona kolumna innego typu niż Autonumerowanie, to na potrzeby tej książki przyjęliśmy, że kluczem podstawowym każdej tabeli powinna być kolumna typu Autonumerowanie, czyli będziemy używali wyłącznie sztucznych kluczy podstawowych.
15. Ponownie jako klucz podstawowy oznacz kolumnę IDTowaru. W rezultacie ikona klucza zniknie z kolumny Nazwa i zostanie wyświetlona przy kolumnie IDTowaru. Okazuje się, że tabela może mieć tylko jeden klucz podstawowy.
Typy danych programu Microsoft Access Tworząc kolejne tabele, musieliśmy dla każdej kolumny określić typ przechowywanych w niej danych. Jest to konsekwencją poznanej wcześniej reguły, w myśl której w poszczególnych kolumnach należy przechowywać pojedyncze informacje. W rezultacie w osobnej kolumnie (typu Liczba) zapisywać będziemy np. numer domu, a w osobnej (typu Krótki tekst) nazwę ulicy. Wybór właściwego typu danych jest jedną z najważniejszych decyzji, jakie należy podjąć podczas projektowania i tworzenia tabel. Ma on wpływ nie tylko na wielkość tabel (a więc pośrednio całej bazy) i szybkość odczytywania oraz modyfikowania danych, ale dodatkowo wiele narzędzi programu Access automatycznie dostosowuje swoje działanie do typu danych. Poniższe ćwiczenie ma za zadanie krótko przedstawić wszystkie typy danych dostępne w programie Access 2013 i pomóc czytelnikowi w prawidłowym doborze typu kolumny do rodzaju przechowywanych w niej danych. 1. Utwórz nową tabelę w widoku projektu.
Typy danych programu Microsoft Access
2. Pierwszą kolumnę nazwij Teksty i jako typ danych wybierz Krótki tekst, natomiast w polu Opis wpisz .RPELQDFMDWHNVWXLOLF]EOXEOLF]E\QLHZ\PDJDMÈFH REOLF]Hñ. W polach tego typu można przechowywać maksymalnie 255 znaków, chyba że określony został mniejszy rozmiar pola. W tym najczęściej wykorzystywanym typie pól zapisywane są m.in. imiona, nazwy, numery telefonów itp. 3. Dodaj kolumnę o nazwie 2SLV\ i typie danych Długi tekst. W polu Opis wpisz 'ïXJLWHNVWOXENRPELQDFMDWHNVWXLOLF]E. W polach tego typu można przechowywać maksymalnie 65 535 znaków. Pola tego typu wykorzystywane są z reguły do przechowywania dodatkowych uwag użytkowników. Tego typu pola mają dwie ciekawe właściwości: a) Access 2013 pozwala na formatowanie tekstów przechowywanych w polach tego typu, jeżeli właściwość Format tekstu zostanie ustawiona na Tekst sformatowany. b) Jeżeli natomiast właściwość Tylko dołącz zostanie ustawiona na Tak, użytkownicy będą mogli tylko dopisywać tekst do już istniejącego (bez możliwości usuwania lub modyfikowania oryginalnego tekstu).
3
2
3a 3b
4. Dodaj kolumnę o nazwie /LF]E\ i typie Liczba. Jako opis pola wpisz Dane QXPHU\F]QHXĝ\ZDQHZREOLF]HQLDFKPDWHPDW\F]Q\FK. Dopuszczalny zakres i dokładność liczb przechowywanych w polach tego typu zależą od ustawienia parametru Rozmiar pola i wynoszą odpowiednio: a) Bajt — przechowuje liczby całkowite z przedziału od 0 do 255. W polach tego typu przechowywane są małe liczby całkowite, wykorzystywane w obliczeniach, np. liczba oddziałów firmy lub liczba dzieci. b) Dziesiętne — przechowuje liczby z przedziału od –10 ^ 28 – 1 do 10 ^ 28 – 1. Dokładność, z jaką przechowywane będą liczby (liczba miejsc po przecinku), zależy od wartości argumentu Skala, natomiast wartość argumentu Miejsca dziesiętne nie powinna być zmieniana. W polach tego typu przechowywane są wartości, takie jak wyniki pomiarów długości czy
79
80
Typy danych programu Microsoft Access
szerokości, które muszą być zapisane z określoną dokładnością (np. do dwóch miejsc po przecinku). c) Liczba całkowita — przechowuje liczby całkowite z przedziału od –32 768 do 32 767. W polach tego typu przechowywane są niewielkie liczby całkowite wykorzystywane w obliczeniach, np. liczba jednostek towaru. d) Liczba całkowita długa — przechowuje liczby całkowite z przedziału od –2 147 483 648 do 2 147 483 647. W polach tego typu przechowywane są liczby całkowite wykorzystywane w obliczeniach, np. liczba wykorzystanych jednostek towaru, liczba uzyskanych przez osobę punktów. e) Pojedyncza precyzja — przechowuje liczby z przedziału od –3,402823e38 do –1,401298e–45 w przypadku wartości ujemnych oraz od 1,401298e–45 do 3,402823e38 w przypadku wartości dodatnich. Liczby te przechowywane są ze skończoną dokładnością (a więc wyniki ich zaokrągleń mogą być niedokładne). W polach tego typu przechowywane są duże liczby wykorzystywane w obliczeniach, np. odczyty najróżniejszych liczników (jak liczniki kilometrowe, liczniki energii). f) Podwójna precyzja — przechowuje liczby z przedziału od –1,79769313486231e308 do –4,94065645841247e–324 w przypadku wartości ujemnych oraz od 4,94065645841247e–324 do 1,79769313486231e308 w przypadku wartości dodatnich. Liczby te również przechowywane są ze skończoną dokładnością. W polach tego typu przechowywane są ogromne liczby wykorzystywane w obliczeniach, np. szacowane liczby cząsteczek biorących udział w eksperymentach. g) Identyfikator replikacji — 16-bajtowa, unikatowa w skali globalnej liczba szesnastkowa. Tego typu identyfikatorów używa się do zagwarantowania niepowtarzalności kluczy wierszy, które znajdują się w tabelach różnych baz danych (taka sytuacja występuje np. przy replikacji baz danych). Jeżeli baza danych działa tylko na jednym komputerze, zamiast identyfikatorów replikacji należy używać liczb całkowitych. 5. Dodaj kolumnę o nazwie Czas i typie danych Data/Godzina. Jako opis pola wpisz :DUWRĂFLGDW\LJRG]LQ\GODODWSRPLÚG]\L. W polach tego typu przechowywane są informacje o czasie zajścia danego zdarzenia, np. dacie urodzin czy dacie i godzinie zawarcia transakcji. Dopuszczalny zakres i dokładność danych przechowywanych w polach tego typu zależą od ustawienia parametru Rozmiar pola i wynoszą odpowiednio: a) Data ogólna — ustawienie to jest połączeniem ustawień Data krótka i Godzina długa, przy czym jeżeli wartość pola jest datą, to nie jest wyświetlana żadna godzina, a jeżeli wartość pola jest godziną, to nie jest wyświetlana żadna data.
Typy danych programu Microsoft Access
b) Data długa — przechowuje informacje o dacie w formacie zależnym od ustawień systemu Windows. Dla polskich ustawień regionalnych przykładowe dane będą wyglądały następująco: 1 stycznia 2001. c) Data średnia — przechowuje informacje o dacie w formacie zależnym od ustawień systemu Windows. Dla polskich ustawień regionalnych przykładowe dane będą wyglądały następująco: 01-sty-01. d) Data krótka — przechowuje informacje o dacie w formacie zależnym od ustawień systemu Windows. W tym przypadku SZBD Access przyjmuje, że daty z zakresu od 00-01-01 do 29-12-31 są datami dla dwudziestego pierwszego wieku (to znaczy, że dotyczą one lat od 2000 do 2029). Daty z zakresu od 30-01-01 do 99-12-31 traktowane są jako daty należące do dwudziestego wieku (to znaczy, że dotyczą one lat od 1930 do 1999). Dla polskich ustawień regionalnych przykładowe dane będą wyglądały następująco: 2001-01-01. e) Godzina długa — przechowuje informacje o czasie w formacie zależnym od ustawień systemu Windows. Dla polskich ustawień regionalnych przykładowe dane będą wyglądały następująco: 13:13:13. f) Godzina średnia — przechowuje informacje o czasie w formacie zależnym od ustawień systemu Windows. Dla polskich ustawień regionalnych przykładowe dane będą wyglądały następująco: 1:13. g) Godzina krótka — przechowuje informacje o czasie w formacie zależnym od ustawień systemu Windows. Dla polskich ustawień regionalnych przykładowe dane będą wyglądały następująco: 13:13. 6. Dodaj kolumnę o nazwie Pieniądze i typie Waluta. Jako opis pola wpisz :DUWRĂFLZDOXWRZHXĝ\ZDQHZREOLF]HQLDFKPDWHPDW\F]Q\FKSU]HSURZDG]DQ\FK]GRNïDGQRĂFLÈGRF]WHUHFKPLHMVFSRSU]HFLQNX. W polach tego typu
przechowywane są informacje o cenach towarów lub pensjach pracowników. Sposób prezentowania danych zależy od określenia wartości atrybutu Format: a) Standardowy — dane są wyświetlane w takiej postaci, w jakiej zostały zapisane. b) Walutowy — format (symbol waluty, symbol wartości dziesiętnych oraz liczba miejsc po przecinku) zależy od ustawień regionalnych systemu Windows. c) Euro — niezależnie od ustawień regionalnych systemu Windows użyty zostanie format waluty z symbolem euro. d) Stałoprzecinkowy — wyświetlana jest przynajmniej jedna cyfra, a format (symbol wartości dziesiętnych oraz liczba miejsc po przecinku) zależy od ustawień regionalnych systemu Windows.
81
82
Typy danych programu Microsoft Access
e) Standardowy — w przeciwieństwie do formatu stałoprzecinkowego w tym formacie używany jest regionalny separator tysięcy (dla Polski jest nim spacja). Pozostałe ustawienia nie ulegają zmianie. f) Procentowy — dane mnożone są przez 100, a do wyniku dodawany jest znak procentu. g) Wykładniczy — dane są wyświetlane w notacji naukowej jako mantysa i wykładnik, np. 1E – 1 = 0,1; 1E00 = 1; 9,8765E4 = 98765. 7. Dodaj kolumnę o nazwie ,GHQW\ğNDWRU, określ typ jako Autonumerowanie i w polu Opis wpisz 1LHSRZWDU]DOQDGRP\ĂOQLH]ZLÚNV]DQDROXEJHQHURZDQDORVRZDOLF]ED. W polach tego typu przechowywane są wartości kluczy podstawowych tabel. 8. Dodaj kolumnę o nazwie Bit, określ typ danych jako Tak/Nie i w polu Opis wpisz -HGQD]GZöFKZDUWRĂFL7DN1LH3UDZGD)DïV]OXE:ï:\ï. W polach tego typu przechowywane są informacje, czy towar jest dostępny, czy osoba jest kierownikiem itp. 9. Dodaj kolumnę o nazwie =HZQÚWU]Q\RELHNWi określ typ danych jako Obiekt OLE. W polu Opis wpisz =HZQÚWU]QHSOLNL]DZLHUDMÈFHGDQHGRZROQHJR ]JRGQHJR]WHFKQRORJLÈ2/(W\SX. W polach tego typu przechowywane są m.in. zapisane w plikach zdjęcia osób lub towarów, arkusze programu Excel itp. 10. Kolejną kolumną tabeli będzie kolumna 2GQRĂQLN o typie danych Hiperłącze. W polu Opis wpisz $GUHV\XGRVWÚSQLRQ\FKZVLHFL]DVREöZ. W polach tego typu przechowywane są zarówno adresy lokalnie udostępnionych plików lub folderów (np. \\machabeus\baza), jak i uniwersalne adresy internetowe (np. http://www.microsoft.com/mcp). 11. Ostatnią kolumną naszej tabeli będzie kolumna o nazwie Plik typu Załącznik. Opisz ją jako =HZQÚWU]QHSOLNLGRZROQHJRW\SX. W polach tego typu można przechowywać dowolne pliki. 12. Otwórz tabelę w widoku arkusza danych. Na pytanie, czy zapisać zmiany, odpowiedz Tak i zapisz tabelę pod nazwą 7\S\'DQ\FK. Tym razem zrezygnuj z tworzenia klucza podstawowego tabeli. Ta tabela ma za zadanie pokazać różnorodne typy danych i nie będzie wykorzystywana do przechowywania informacji. 13. Wpisz przykładowe dane do kolejnych pól tabeli. 14. Zamknij okno tabeli TypyDanych.
Reguły sprawdzania poprawności (warunki, które muszą spełniać dane zapisane w tabeli)
Reguły sprawdzania poprawności (warunki, które muszą spełniać dane zapisane w tabeli) Tworząc tabele, możemy nie tylko dostosować poszczególne kolumny do rodzaju przechowywanych w nich danych, ale również uniemożliwić wprowadzanie błędnych danych. Do tej pory poznaliśmy następujące sposoby utrudniania wprowadzania błędnych lub niekompletnych danych: 1. Dopasowanie typu kolumny do przechowywanych w niej informacji. 2. Uniemożliwienie niewypełnienia pól kolumny danymi (w tym celu należało ustawić wartość atrybutu Wymagane na Tak i ewentualnie Zerowa dł. Dozwolona na Nie). 3. Automatyczne wstawianie wartości domyślnej do pól kolumny. 4. Uniemożliwienie wielokrotnego wpisania tej samej wartości w różnych polach kolumny (w tym celu wartość atrybutu Indeksowane należało ustawić na Tak (Bez duplikatów)). Wykonując poniższe ćwiczenia, poznamy najbardziej uniwersalny sposób wymuszania na użytkownikach wpisywania poprawnych danych, czyli reguły sprawdzania poprawności. W pierwszej kolejności dodamy regułę w widoku arkusza danych istniejącej tabeli:
i
Reguła sprawdzania poprawności jest warunkiem logicznym (czyli testem, którego wynikiem jest albo prawda, albo fałsz). Przykładowo wynikiem testów 5 > 2 lub 14 jest liczbą parzystą jest prawda, a wynikiem testu 3 > 4 jest fałsz. Ponieważ ten warunek jest automatycznie sprawdzany przez SZBD Access, przy jakiejkolwiek zmianie wartości w kolumnie, dla której został określony, niemożliwe będzie zapisanie w polach kolumny danych niespełniających reguły poprawności.
1. Wyświetl widok arkusza danych tabeli Kontakty. 2. Przejdź do zakładki NARZĘDZIA TABELI/POLA. 3. Zaznacz kolumnę DataUrodzenia. Przypuśćmy, że chcemy uniemożliwić zapisywanie w niej dat wcześniejszych niż 1 stycznia 1900 roku i późniejszych niż bieżąca data. Definiując odpowiednią regułę, spowodujemy, że Access automatycznie uniemożliwi zapisanie niepoprawnych danych (w tym przypadku błędnej daty urodzenia). 4. W sekcji Sprawdzanie poprawności pola kliknij przycisk Sprawdzanie poprawności i wybierz Reguła poprawności pola.
83
84
Reguły sprawdzania poprawności (warunki, które muszą spełniać dane zapisane w tabeli)
5. Język programowania wszystkich relacyjnych baz danych (język SQL) pozwala używać kilku specjalnych warunków logicznych. Jednym z nich jest BETWEEN … AND, który pozwala sprawdzić, czy dana wartość należy do podanego zakresu. Aby użyć tego warunku w tworzonej regule: a) Wpisz BETWEEN. b) Po spacji podaj początkową datę (dolną granicę zakresu) (w programie Access daty powinny być zapisywane pomiędzy znakami #, ale w tym wypadku Access sam je doda).
6 a
b
c d
c) Wpisz słowo AND)
d) Górną granicą ma być bieżąca data — nie możemy więc wstawić w tym miejscu określonej daty, tylko nazwę funkcji zwracającej bieżącą datę — rozwiń więc sekcję Funkcje/Funkcje wbudowane, wybierz kategorię Data/ godzina i dwukrotnie kliknij funkcję Date. 6. Zamknij okienko konstruktora wyrażeń przyciskiem OK. 7. Pozostało nam jeszcze określić komunikat błędu zgłaszany wtedy, gdy użytkownik spróbuje wpisać nieprawidłowe dane: a) W sekcji Sprawdzanie poprawności pola kliknij przycisk Sprawdzanie poprawności i wybierz opcję Komunikat sprawdzania poprawności pola. b) Wpisz komunikat błędu (3RGDQDGDWDXURG]HQLDMHVWQLHSRSUDZQD). c) Kliknij OK. 8. Spróbuj zmienić lub wpisać niepoprawną datę urodzenia — dzięki zdefiniowanej regule Access będzie automatycznie dbał o poprawność naszych danych.
8
Reguły sprawdzania poprawności (warunki, które muszą spełniać dane zapisane w tabeli)
W ramach ostatniego ćwiczenia zdefiniujemy kilka reguł poprawności w widoku projektu tabeli: 1. Utwórz nową tabelę w widoku projektu. 2. Dodaj kolumnę Wiek typu Liczba i ustaw rozmiar pola jako Liczba całkowita. 3. Ustaw kursor w polu Reguła spr. poprawności i kliknij wielokropek znajdujący się w prawym rogu pola. 4. Na ekranie zostanie wyświetlone okno konstruktora wyrażeń — to za jego pomocą utworzymy regułę sprawdzania poprawności. 5. W tym przypadku nie chcemy pozwolić użytkownikom na wpisywanie w kolumnie Wiek liczb ujemnych oraz większych niż 500: a) Zaznacz pozycję Operatory.
4
b) Ponieważ chcemy porównać wpisaną przez użytkownika wartość z najmniejszą dopuszczalną przez nas wartością (0), jako typ operatorów wybierz Porównawcze.
d
a
b c
c) Liczby nieujemne są większe od zera lub mu równe, więc z listy operatorów porównania wybierzmy >=.
d) Wpisz liczbę, z którą będzie porównywany wiek wpisywany przez użytkowników, czyli 0. 6. Utworzona przez nas reguła sprawdzania poprawności nie pozwoli na wpisywanie ujemnego wieku. Musimy ją jednak rozbudować w ten sposób, aby uniemożliwiała również wpisywanie wartości większych niż 500:
i
Chociaż niemożliwe jest utworzenie dla jednej kolumny kilku różnych reguł sprawdzania poprawności, to taki sam wynik uzyskamy za pomocą złożonych reguł zawierających operatory logiczne And (koniunkcji), Or (alternatywy) i Not (negacji).
a) Z listy typów operatorów wybierz Logiczne. b) Dwukrotnie kliknij operator And.
i
Wynikiem operatora And (logicznego i) prawda jest tylko wtedy, jeżeli prawdziwe były wyniki obu połączonych za jego pomocą wyrażeń. W tym przypadku zbudujemy regułę, która będzie prawdziwa dla wszystkich liczb większych od zera lub równych zero i mniejszych niż 500.
85
86
Reguły sprawdzania poprawności (warunki, które muszą spełniać dane zapisane w tabeli)
c) Dodaj drugi operator porównania (<). d) Wpisz wartość, która będzie wyznaczała górny limit wieku (). Gotowa reguła będzie miała postać ! $QG. e) Kliknij przycisk OK. Utworzona reguła zostanie wyświetlona w polu Reguła spr. poprawności. 7. Kolejnym krokiem jest określenie komunikatu, który zostanie wyświetlony użytkownikom podczas próby wpisania do kolumny danych niezgodnych z naszą regułą: a) Ustaw kursor w polu Tekst reguły sprawdzania. b) Wpisz komunikat :LHNPXVLQDOHĝHÊGRSU]HG]LDïXRGGR. 8. Zapisz tabelę pod nazwą 5HJXï\ i otwórz ją w widoku arkusza danych. W przypadku tej tabeli tworzenie klucza podstawowego będzie niepotrzebne. 9. Wpisz nieujemną liczbę mniejszą niż 500. Ponieważ dla tej wartości reguła jest prawdziwa, nie został wyświetlony żaden komunikat. 10. Wpisz liczbę spoza zdefiniowanego zakresu. Tym razem wyświetlony został komunikat informujący użytkownika o próbie wpisania błędnych danych. 11. Popraw błędne dane i wyświetl projekt tabeli. 12. Dodaj nową kolumnę +DVïR o typie danych Tekst. 13. Tym razem utworzymy regułę uniemożliwiającą zapisywanie zbyt krótkich haseł: a) Ustaw kursor w polu Reguła spr. poprawności i kliknij wielokropek znajdujący się w prawym rogu pola. b) Jedną z wbudowanych funkcji programu Access jest funkcja Len, która w formie wyniku zwraca liczbę znaków przekazanych jako argument jej wywołania. Dodaj tę funkcję, kolejno wybierając: Funkcje/Funkcje wbudowane/Tekstowe/Len. c) Ponieważ chcemy sprawdzić, z ilu znaków składa się hasło wpisane do tabeli, jako argument wywołania funkcji wpisz >+DVïR@ (argumenty wszystkich funkcji przekazywane są w nawiasach okrągłych, natomiast nawias kwadratowy oznacza identyfikator obiektu, w tym przypadku kolumnę o nazwie Hasło).
i
Nawias kwadratowy służy do poinformowania SZBD Access, że ma sprawdzić długość hasła wpisanego do pól kolumny Hasło, a nie długość wyrazu „Hasło”.
Reguły sprawdzania poprawności (warunki, które muszą spełniać dane zapisane w tabeli)
d) Następnie dodaj operator porównania (>) i wpisz wartość określającą minimalną długość hasła ().
e c
d
e) Kliknij przycisk OK.
b
14. Wpisz następujący Tekst reguły sprawdzania: +DVïRQLHPRĝHVNïDGDÊVLÚ ]bPQLHMQLĝ]QDNöZ. 15. Zapisz tabelę i wyświetl ją w widoku arkusza danych.
i
Przed otworzeniem tabeli w widoku arkusza danych SZBD Access zapyta, czy sprawdzić zapisane w tej tabeli dane pod kątem zgodności z nowo dodaną regułą. Zrezygnuj z tej możliwości (naciśnij przycisk Anuluj) — w innym przypadku Access zgłosi błąd, ponieważ w tej tabeli znajdują się rekordy z krótszym (pustym) hasłem.
16. Wpisz poprawne, co najmniej 10-znakowe hasło. Nie zobaczysz żadnego komunikatu, a poprawne hasło zostanie zapisane w tabeli. 17. Spróbuj wpisać zbyt krótkie hasło. Tym razem na ekranie wyświetlone zostanie ostrzeżenie. Access 2013 pozwala również tworzyć reguły sprawdzania poprawności dla całych rekordów, a nie pojedynczych pól — tego typu regułę utworzymy w następnym rozdziale.
87
88
Podsumowanie
Podsumowanie Po przeczytaniu tego rozdziału i wykonaniu znajdujących się w nim ćwiczeń powinieneś potrafić samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi możesz mieć pewne kłopoty, mają Ci pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Czy Access 2013 umożliwia zaimportowanie danych tekstowych z każdego typu plików? 2. W jaki sposób zmienić definicję tabeli utworzonej za pomocą kreatora lub poprzez wprowadzanie danych? 3. Na czym polega indeksowanie danych? 4. Dlaczego sposób wyświetlania danych nie zawsze odpowiada formie ich przechowywania? 5. Czy istnieją jakieś ograniczenia w tworzeniu reguł sprawdzania poprawności danych?
ľ-DN]DU]ÈG]DÊRELHNWDPLED]\GDQ\FK" ľ=PLDQDQD]Z\WDEHOLľ.RSLRZDQLHWDEHOL ľ8VXZDQLHWDEHOLľ8NU\ZDQLHWDEHOLľ 'RGDZDQLHNROXPQGRWDEHOLľ'RGDZDQLH
UHJXï\SRSUDZQRĂFLRGZRïXMÈFHMVLÚGRNLONX NROXPQľ=PLDQDGHğQLFMLLVWQLHMÈFHMNROXPQ\ ľ8VXZDQLHZ\EUDQ\FKNROXPQľ$XWRPDW\F]QH ZSURZDG]DQLH]PLDQZSRZLÈ]DQ\FKRELHNWDFK ľ1DU]ÚG]LDSURJUDPX$FFHVV]DSRELHJDMÈFH ]DSLV\ZDQLXZWDEHODFKEïÚGQ\FKGDQ\FKľ (NVSRUWRZDQLHGDQ\FK]WDEHOLľ,PSRUWRZDQLH GDQ\FK]LQQ\FKSURJUDPöZľ3RGVXPRZDQLH
4
Modyfikowanie tabel i przenoszenie danych, czyli jak zmienić strukturę tabel oraz importować lub eksportować dane Jak zarządzać obiektami bazy danych? Codzienna praca użytkownika bazy danych związana jest z odczytywaniem, modyfikowaniem danych w tabelach i wprowadzaniem do nich informacji. Natomiast do obowiązków projektanta i administratora bazy danych należy także tworzenie, modyfikowanie i usuwanie obiektów bazodanowych (np. tworzenie nowych tabel, usuwanie niewykorzystywanych raportów czy przygotowywanie formularzy). Tym, co wyróżnia program Access wśród innych systemów zarządzania bazami danych (SZBD), takich jak Oracle Server, DB2, MySQL, SQL Server, mSQL, InterBase czy PostgreSQL, jest łatwość wprowadzania zmian w strukturze obiektów bazy danych.
90
Zmiana nazwy tabeli
W przypadku większości SZBD program kliencki jest napisany w języku programowania wysokiego poziomu, takim jak C# czy Java. Zmiany w strukturze bazy danych wiążą się więc najczęściej z koniecznością uaktualnienia zainstalowanego na wielu komputerach programu klienckiego. Pomijając nawet tę trudność, poszczególne systemy zarządzania bazami danych w ograniczonym stopniu pozwalają na modyfikowanie struktury np. tabel. Powoduje to, że ich administratorzy często muszą wykonywać czasochłonne operacje. Chcąc np. usunąć oryginalną tabelę, tworzą jej tymczasową kopię, która zachowuje wszystkie zapisane dane. Następnie konstruują nową tabelę — o tej samej nazwie co usunięta, ale ze zmienioną strukturą. Kolejnym krokiem jest wprowadzenie danych z tymczasowej kopii oryginalnej tabeli do nowej tabeli. Usunięcie tabeli tymczasowej kończy tę wymagającą wiele pracy zmianę definicji tabeli. Natomiast zmiana definicji obiektu bazy danych programu Access nie tylko jest bardzo łatwa do przeprowadzenia, ale również bezpieczna. Co więcej, od wersji 2003 może być ona automatycznie uwzględniona we wszystkich powiązanych obiektach bazy danych, np. zmiana typu wybranej kolumny tabeli może prowadzić do automatycznej zmiany typu poszczególnych pól formularzy, które są powiązane z tą kolumną. Wykonując ćwiczenia z niniejszego rozdziału, nauczymy się bezpiecznie modyfikować obiekty bazodanowe oraz poznamy sposoby eksportowania i importowania danych zewnętrznych (danych zapisanych poza bazą danych).
Zmiana nazwy tabeli Chociaż SZBD Access pozwala na zmianę nazwy wszystkich obiektów bazodanowych w tej samej bazie, to musimy pamiętać, że nie wszystkie zmiany są korzystne dla jej prawidłowego działania. Zmiana nazwy tabeli spowoduje co prawda automatyczne sprawdzenie i uaktualnienie wszystkich powiązanych z nią obiektów, jednak ten mechanizm nie jest bezbłędny. Dlatego po każdorazowej zmianie nazwy należy sprawdzić, czy operacja ta nie wpłynęła niekorzystnie na samą bazę danych, a szczególnie na powiązane z tabelą formularze czy raporty pobierające z niej dane. Aby zmienić nazwę tabeli Filmy: 1. W archiwum z przykładami w folderze Rozdział04\Starter otwórz bazę danych Rozdział4. Ta baza zawiera te same tabele i dane co baza utworzona w poprzednim rozdziale oraz dodatkowo jedną tabelę i prostą kwerendę (kwerendom poświęcony jest rozdział 6.). 2. Jeżeli wyświetlone zostanie ostrzeżenie o wyłączeniu zawartości aktywnej, włącz ją.
Zmiana nazwy tabeli
a
3. Otwórz Okienko nawigacji i wyświetl w nim wszystkie obiekty pogrupowane według ich typów. W tym celu: a) Kliknij ikonę strzałki skierowanej w dół. b) Zaznacz Typ obiektu.
b
c) Zaznacz również pole Wszystkie obiekty programu Access. c
4. W przykładowej bazie danych znajduje się kwerenda kFilmy wybierająca gatunki wszystkich filmów zapisanych w tabeli Filmy. Otwórzmy tę kwerendę — w tym celu wystarczy dwukrotnie kliknąć jej nazwę. 5. Na ekranie zostaną wyświetlone nazwy gatunków filmów zapisanych w tabeli Filmy. Właśnie przekonaliśmy się, że kwerendy pozwalają odczytywać (jak się później dowiemy — również modyfikować) dane zapisane w tabelach. 6. Zamknij widok arkusza danych kwerendy. Zamknięcie okna kwerendy jest ważne, ponieważ uaktualnienie powiązanych z tabelą obiektów (np. kwerend czy formularzy) jest niemożliwe, jeżeli są one otwarte. Oznacza to, że próba zmiany nazwy tabeli bez wcześniejszego zamknięcia okna kwerendy kFilmy zakończy się wyświetleniem komunikatu o błędzie. 7. Wróć do Okienka nawigacji, otwórz tabelę Filmy w widoku arkusza danych i przekonaj się, że kwerenda rzeczywiście odczytała nazwy gatunków filmów z tej tabeli. 8. Zamknij okno tabeli. 9. Kliknij prawym przyciskiem myszy tabelę Filmy. 10. Z menu kontekstowego wybierz opcję Zmień nazwę.
9
10
11. Wpisz nową nazwę (ZmienionaNazwa) i naciśnij klawisz Enter. Pamiętaj, że przed zmianą nazwy tabeli koniecznie należy zamknąć nie tylko tę tabelę, ale również wszystkie powiązane z nią kwerendy, formularze i raporty.
91
92
Zmiana nazwy tabeli
12. Raz jeszcze otwórz kwerendę odczytującą tytuły filmów zapisanych w tabeli o zmienionej nazwie. 13. Okazuje się, że pomimo zmiany nazwy tabeli odczytująca z niej dane kwerenda nadal działa. Czyli SZBD Access automatycznie zmienia definicje kwerend powiązanych z tabelami. 14. Aby poznać sposób działania tej funkcji, zmień typ wyświetlanych w Okienku nawigacji danych na Tabele i powiązane widoki1.
15
15. Teraz możemy zobaczyć, że Access potrafi powiązać kwerendę kFilmy z tabelą, z której ta kwerenda odczytuje dane. Przy okazji poznaliśmy bardzo przydatny sposób prezentowania nazw obiektów w Okienku nawigacji.
Pozostała do wyjaśnienia druga część zagadki — wiemy już, że Access zna powiązania istniejące pomiędzy różnymi obiektami, ale jak to się stało, że zmiana nazwy tabeli została automatycznie uwzględniona w kwerendzie? Żeby się tego dowiedzieć: 1. Rozwiń menu PLIK i wybierz Opcje. 2. Przejdź do zakładki Bieżąca baza danych. 3. Zwróć uwagę na dwa domyślnie zaznaczone pola wyboru w sekcji Opcje autokorekty nazw:
2
3
a) Śledź informacje autokorekty nazw. b) Wykonaj autokorektę nazw.
a b
1
5
Kwerendy w innych SZBD nazywają się widokami (ang. Views) i prawdopodobnie przez pomyłkę ta nazwa trafiła też do Okienka nawigacji.
Kopiowanie tabeli
4. To te dwie domyślnie włączone opcje programu Access powodują, że zmiana nazwy jakiegoś obiektu (np. tabeli) zostanie automatycznie uwzględniona we wszystkich powiązanych z nim obiektach (takich jak kwerendy). 5. Zamknij okno opcji bieżącej bazy danych przyciskiem Anuluj. 6. Przywróć oryginalną nazwę tabeli Filmy.
Kopiowanie tabeli Na etapie projektowania i testowania bazy danych szczególnie przydatne jest wykonanie kopii istniejącej tabeli. SZBD Access umożliwia zarówno sporządzenie kopii samej struktury tabeli (czyli definicji kolumn), jak i struktury tabeli wraz z zapisanymi w niej danymi. Aby wykonać kopię tabeli Kontakty: 1. Zaznacz tę tabelę w Okienku nawigacji. 2. Do schowka można skopiować obiekt dowolnego typu (również tabelę) na kilka sposobów: a) naciskając kombinację klawiszy Ctrl+C, 3b
2b
b) wybierając opcję Kopiuj znajdującą się w zakładce NARZĘDZIA GŁÓWNE wstążki, w sekcji Schowek, c) wybierając z menu kontekstowego (wyświetlanego po kliknięciu obiektu prawym przyciskiem myszy) opcję Kopiuj. 3. Kopię obiektu umieszczonego w schowku również możemy utworzyć na kilka sposobów: a) naciskając kombinację klawiszy Ctrl+V, b) wybierając ze wstążki opcję Wklej,
2c 3c
i
c) wybierając z menu kontekstowego (wyświetlanego po kliknięciu prawym przyciskiem myszy wolnego obszaru Okienka nawigacji) opcję Wklej.
Polecenie Wklej jest niedostępne, jeżeli do schowka nie zostały wcześniej skopiowane żadne dane lub obiekty.
93
94
Usuwanie tabeli
4. Niezależnie od wybranej metody, na ekranie wyświetlone zostanie okno dialogowe pozwalające na: a) podanie nazwy tabeli będącej kopią istniejącej tabeli, b) utworzenie pustej tabeli, niezawierającej danych zapisanych w oryginalnej tabeli, c) utworzenie dokładnej kopii tabeli wraz z zapisanymi w niej danymi, d) dołączenie kopiowanej tabeli do innej, już istniejącej tabeli.
4a 4b
5
4c
5. Aby utworzyć wierną kopię tabeli wraz z danymi, upewnij się, że zaznaczona jest opcja Struktura i dane, i wpisz nazwę kopii. Następnie kliknij przycisk OK.
4d
Usuwanie tabeli Usuwanie niepotrzebnych i nieużywanych tabel z bazy danych jest poważną decyzją i przed jej podjęciem należy utworzyć kopię pliku bazy danych — gdyby okazało się po jakimś czasie, że tabela jest jednak potrzebna, będzie można ją przywrócić z tej kopii. Z drugiej strony, usuwając tabelę, możemy nie tylko uprościć strukturę bazy danych, ale przede wszystkim zmniejszyć rozmiar jej pliku. Usunięcie tabeli wiąże się z usunięciem wszystkich przechowywanych w niej danych.
i
Przypadkowo usunięty obiekt można przywrócić kombinacją klawiszy CTRL+Z.
Aby usunąć z bazy danych tabelę Kontakty, należy: 1. W Okienku nawigacji znaleźć i zaznaczyć tabelę Kontakty. 2. Możemy usunąć obiekt (w tym tabelę) na kilka sposobów: a) naciskając klawisz Delete, b) klikając ikonę Wytnij znajdującą się w zakładce NARZĘDZIA GŁÓWNE wstążki w sekcji Schowek, c) naciskając kombinację klawiszy Ctrl+X, d) wybierając z menu kontekstowego (wyświetlanego po kliknięciu tabeli prawym przyciskiem myszy) opcję Usuń.
Ukrywanie tabeli
3. Zwróć uwagę, że gdy usuwasz obiekt (na sposób opisany w punktach 2a lub 2d), zostanie wyświetlone pytanie, czy rzeczywiście chcesz wykonać tę operację, natomiast usunięcie tabeli i zapisanie jej w schowku (sposoby 2b i 2c) nie spowoduje wyświetlenia tego pytania. Czyli nie trzeba potwierdzać decyzji o usunięciu obiektu, jeżeli przenosimy go do schowka.
4
4. Po potwierdzeniu decyzji tabela i wszystkie zapisane w niej dane zostaną usunięte. Aby ją przywrócić, anuluj ostatnią operację za pomocą kombinacji klawiszy Ctrl+Z. 5. Kliknij małą ikonę strzałki widoczną na wstążce w dolnej części sekcji Schowek. 5
6. Zwróć uwagę, że zaglądając do schowka pakietu Office, znajdziemy w nim wszystkie skopiowane do niego obiekty i dane. 7. Okienko schowka zawiera również przycisk Opcje, który pozwala dostosować wygląd i działanie schowka do indywidualnych potrzeb.
6
7
Ukrywanie tabeli Tabele, podobnie jak pozostałe obiekty bazy danych, mogą być ukryte przed nieupoważnionymi użytkownikami. W ten sposób zabezpieczamy przechowywane w nich poufne dane. Pamiętaj jednak, że chociaż ukryte obiekty (podobnie jak ukryte pliki czy foldery) domyślnie nie są wyświetlane w głównym oknie bazy danych programu Access, to użytkownik może je odnaleźć. Aby ukryć tabelę Reguły: 1. W Okienku nawigacji wyświetl wszystkie tabele bazy danych.
95
96
Ukrywanie tabeli
2. Kliknij prawym przyciskiem myszy tabelę Reguły i z menu kontekstowego wybierz opcję Właściwości tabeli. 3. Wyświetlone zostanie okienko właściwości wybranej tabeli. Zaznacz pole wyboru Ukryty. 4
4. Dodatkowo w polu Opis wpisz krótki opis tabeli (1LHZLGRF]QDZbJïöZ nym oknie bazy danych tabela). 5. Kliknij przycisk OK. Zwróć uwagę, że tabela Reguły nie znajduje się już na liście tabel bazy danych.
3 5
Ukryte obiekty możemy jednak wyświetlić. W tym celu: 1. Kliknij prawym przyciskiem myszy wolny obszar Okienka nawigacji. 2. Wybierz pozycję Opcje nawigacji. Wyświetlone zostanie okienko pozwalające dostosować wygląd i działanie Okienka nawigacji do Twoich potrzeb.
2
3. Zaznacz pole wyboru Pokaż ukryte obiekty. 3 4
i
4. Kliknij przycisk OK. Tabela Reguły znów jest widoczna, a o tym, że tabela została ukryta, informuje jedynie półprzezroczysta ikona.
Gdybyśmy zaznaczyli pole wyboru Pokaż obiekty systemowe znajdujące się w tym samym okienku, w głównym oknie bazy danych wyświetlone by zostały wszystkie tabele systemowe programu Access 2013. Nie należy zmieniać ani struktury tych tabel, ani przechowywanych w nich danych. W obu przypadkach może to doprowadzić do wadliwego działania SZBD Access i konieczności jego ponownej instalacji.
Dodawanie kolumn do tabeli
Dodawanie kolumn do tabeli Dopóki nie zdobędziemy doświadczenia w projektowaniu tabel, które w pełni harmonizują z przechowywanymi w nich danymi, dość często będziemy zmuszeni do ich modyfikowania. Jedną z takich modyfikacji jest dodanie nowej kolumny do istniejącej tabeli.
i
Dodanie nowej kolumny jest najbezpieczniejszą z modyfikacji istniejącej tabeli. Możemy być pewni, że po jej przeprowadzeniu nie utracimy żadnych informacji, a sama baza danych będzie działać poprawnie.
Aby do tabeli Firmy dodać kolumnę DataZamknięcia: 1. W widoku projektu otwórz tabelę Firmy (najprościej kliknąć tabelę prawym przyciskiem myszy i z menu kontekstowego wybrać opcję Widok projektu). 2. Zaznacz kolumnę tabeli, przed którą ma być utworzona nowa kolumna (kolumnę Kapitał). 3. Kliknij prawym przyciskiem myszy i z menu kontekstowego wybierz opcję Wstaw wiersze (w widoku projektu kolumny tabeli są wierszami).
2
3
4. Wpisz nazwę dodawanej kolumny ('DWD=DPNQLÚFLD) i określ jej typ (Data/Godzina). Wykorzystaj wiedzę z poprzedniego rozdziału i ustaw wartości dodatkowych atrybutów kolumny, tak aby odpowiadały Twoim wymaganiom. 5. Zapisz tabelę i otwórz ją w widoku arkusza danych. 6. Zwróć uwagę, że pomiędzy kolumną DataZałożenia a kolumną Kapitał dodana została kolumna DataZamknięcia. Wprowadź datę zamknięcia wybranej firmy.
97
98
Dodawanie reguły poprawności odwołującej się do kilku kolumn
Dodawanie reguły poprawności odwołującej się do kilku kolumn W poprzednim rozdziale nauczyliśmy się tworzyć reguły sprawdzania poprawności dla poszczególnych kolumn. Access 2013 pozwala też tworzyć reguły sprawdzania poprawności odwołujące się do różnych kolumn tabeli. Ich przeznaczenie i zasada działania są takie same — uniemożliwiają one zapisywanie w bazie nieprawidłowych danych (tj. takich, dla których reguła zwraca fałsz). Aby dodać regułę gwarantującą, że data zamknięcia firmy będzie późniejsza niż data jej założenia: 1. Wyświetl ponownie widok arkusza danych tabeli Firmy (jeżeli został zamknięty). 2. Zaznacz kolumnę DataZamknięcia. 3. Przejdź do zakładki NARZĘDZIA TABEL/POLA. 4. Kliknij przycisk Reguła poprawności i wybierz opcję Reguła poprawności (nie: Reguła poprawności pola). 5. Wyświetlony zostanie znany nam już konstruktor wyrażeń. Zwróć uwagę, że tym razem w okienku Elementy wyrażeń znajduje się również tabela Firmy, a w okienku Kategorie wyrażeń — wszystkie jej kolumny. 6. Ponieważ ta reguła ma uniemożliwić wpisanie daty zamknięcia firmy wcześniejszej od daty jej założenia:
7 a
b
c
a) Dwukrotnie kliknij kolumnę DataZałożenia — zostanie ona dodana do tworzonego wyrażenia. b) Wpisz operator <=. c) Dwukrotnie kliknij kolumnę DataZamknięcia.
5 a
c
7. Kliknij OK.
8. Jeżeli dane wcześniej zapisane w tabeli były niezgodne z nową regułą, zostanie wyświetlone ostrzeżenie. Kliknij Tak — reguła zostanie zapisana, ale dane nadal mogą być niespójne2. 2
W terminologii bazodanowej jako niespójne określa się dane niespełniające przyjętych reguł biznesowych. Przykładem takiej reguły jest utworzona przez nas reguła mówiąca, że data zamknięcia firmy nie może być wcześniejsza od daty jej założenia.
Zmiana definicji istniejącej kolumny
9. Dodaj jeszcze komunikat sprawdzania poprawności dla nowej reguły — w tym celu wybierz Sprawdzanie poprawności/Komunikat sprawdzania poprawności, wpisz 'DWD]DPNQLÚFLDğUP\QLHPRĝHE\ÊZF]HĂQLHMV]DRG GDW\MHM]DïRĝHQLD i kliknij OK. 10. Wpisz błędną (niezgodną z naszą regułą) datę zamknięcia firmy. Okazuje się, że tego typu reguły są sprawdzane na poziomie rekordów, a nie poszczególnych pól, więc komunikat błędu zostanie wyświetlony dopiero wtedy, gdy spróbujesz przejść do innego wiersza tabeli. 11. Popraw niespójne dane i zamknij okno tabeli Firmy.
Zmiana definicji istniejącej kolumny Zmiana typu istniejącej kolumny, w przeciwieństwie do dodania nowej, nie zawsze będzie możliwa do przeprowadzenia. Jeżeli w kolumnie znajdują się już dane i nie można zmienić ich typu na nowy, SZBD Access podczas próby zmiany definicji kolumny zgłosi błąd. Próba zmiany np. typu kolumny Teksty tabeli TypyDanych na typ liczbowy zakończy się błędem, jeżeli w tej kolumnie znajduje się chociaż jeden ciąg znaków. Natomiast zmiana kolumny Liczby na typ Walutowy będzie zawsze możliwa do przeprowadzenia. Innymi słowy, podczas zmiany typu kolumny Access przeprowadza automatyczną konwersję istniejących danych i jeżeli okaże się ona niemożliwa, zgłosi błąd. Żeby się o tym przekonać: 1. W widoku arkusza danych otwórz tabelę TypyDanych. 2. Wpisz do niej swoje dane, wzorując się na przykładowym wierszu. 1
2
3. Następnie wyświetl tę tabelę w widoku projektu. 4. Spróbuj zmienić typ danych kolumny Teksty:
c a
b
a) Ustaw kursor w polu Typ danych kolumny Teksty. b) Z listy typów danych programu Access wybierz pozycję Długi tekst. c) Przełącz tabelę do widoku arkusza danych.
99
100
Zmiana definicji istniejącej kolumny
d) Zostanie wyświetlone pytanie, czy zapisać zmiany. Kliknij przycisk Tak. e) Typ danych kolumny został zmieniony, a zapisane w niej dane nie uległy zmianie.
i
Zawsze możliwa jest zmiana węższego typu danych na typ, który pozwala na przechowywanie większych danych (np. zmiana typu Krótki tekst na Długi tekst, czy zmiana rozmiaru pól liczbowych z Bajt na Liczba całkowita).
1. Ponownie wyświetl tabelę w widoku projektu. 2. Postępując w ten sam sposób, zmień typ kolumny Teksty na Liczba. 3. Otwórz tabelę w widoku arkusza danych. Tym razem po pytaniu: „Czy zapisać zmiany?” zostanie wyświetlony komunikat ostrzegający, że próba zmiany typu kolumny może spowodować utratę niektórych zapisanych w niej danych. 4. Przerwij zmianę typu kolumny kliknięciem przycisku Nie — inaczej utracisz dane zapisane w kolumnie Teksty. 5. Przywróć kolumnie Teksty oryginalny typ danych (Krótki tekst). 6. Spróbuj zmienić typ danych kolumny Opisy: a) Ustaw kursor w polu Typ danych kolumny Opisy. b) Z listy dostępnych typów danych wybierz Krótki tekst. c) Otwórz tabelę w widoku arkusza danych. d) Po zapisaniu zmian wyświetlone zostaną dwa ostrzeżenia: o utracie historii zmian oraz znane nam ostrzeżenie przed zmianą typu danych z szerszego (w tym przypadku umożliwiającego zapisanie około 65 tysięcy znaków) na węższy (pozwalający na zapisanie jedynie 255 znaków),
i
Musimy pamiętać, że choć zmiana szerszego typu danych na węższy (np. zmiana rozmiaru kolumny) jest możliwa do przeprowadzenia, to spowoduje ona utratę lub zmianę danych, które nie będą mogły być zapisane w zmienionej kolumnie.
e) Sprawdź, czy zmiana typu kolumny spowodowała utratę jakichś danych. Okaże się, że teksty zostały obcięte, a formatowanie — utracone. 7. Przełącz się ponownie do widoku projektu tabeli. 8. Przywróć oryginalny typ danych kolumny Opisy (Długi tekst).
Usuwanie wybranych kolumn
9. Następnie spróbuj zmienić typ danych kolumny Odnośnik: a) Ustaw kursor w polu Typ danych kolumny Odnośnik. b) Z listy dostępnych typów danych wybierz Waluta. c) Otwórz tabelę w widoku arkusza danych. d) Po zapisaniu zmian wyświetlony zostanie komunikat ostrzegający, że zmiana typu kolumny spowoduje usunięcie zapisanych w niej danych, ponieważ niemożliwe jest zamienienie (konwersja) odnośników na jakiekolwiek liczby. Kliknij przycisk Tak. 10. W efekcie wszystkie odnośniki zostały skasowane, a w kolumnie Odnośnik wpisywać można liczby, które będą wyświetlane w formacie walutowym. 11. Przełącz się do widoku projektu tabeli i przywróć oryginalny typ danych kolumny Odnośnik (Hiperłącze).
Usuwanie wybranych kolumn Zdarza się, że dane, które na etapie projektowania tabeli wydawały się interesujące i warte zapisania (np. drugie imię znajomych czy liczba pracowników firmy), okazały się w trakcie korzystania z bazy nieprzydatne. Jeszcze częściej okazuje się, że pewne informacje powinny być zapisane w innej tabeli, niż nam się początkowo wydawało. Takie niepotrzebne kolumny należy usunąć. 1. Wyświetl widok projektu tabeli Firmy. 2. Kolumnę Kapitał możemy skasować na kilka sposobów: a) zaznaczając tę kolumnę i klikając klawisz Delete,
c
b) klikając dowolne pole kolumny prawym przyciskiem myszy i wybierając z menu kontekstowego opcję Usuń wiersze, c) wybierając znajdującą się w sekcji narzędzia wstążki opcję Usuń.
b
101
102
Automatyczne wprowadzanie zmian w powiązanych obiektach
3. Niezależnie od wybranej metody na ekranie zostanie wyświetlony komunikat ostrzegający, że usunięcie kolumny wiąże się z nieodwracalnym usunięciem wszystkich zapisanych w niej danych. 4. Potwierdź decyzję kliknięciem przycisku Tak. 5. Zapisz zmiany i otwórz tabelę w widoku arkusza danych. Kolumna Kapitał i wszystkie zapisane w niej informacje zostaną usunięte.
Automatyczne wprowadzanie zmian w powiązanych obiektach Wiemy już, że możliwa jest zmiana (choć czasami wiąże się to z utratą danych lub ich zmianą) typu istniejącej kolumny. Chociaż metody tworzenia takich obiektów jak kwerendy czy formularze oraz zarządzania nimi opisane są w następnych rozdziałach książki, to w tym miejscu należy wspomnieć o pewnej przydatnej funkcji programu Access 2013. Jest nią automatyczne wprowadzanie zmian właściwości kolumny we wszystkich obiektach powiązanych z tą kolumną. Aby zasymulować zmianę wszystkich pól pobierających dane z kolumny Obrót tabeli Sklep: 1. Wyświetl projekt tabeli Sklep. 2. Załóżmy, że obroty sklepów są większe, niż początkowo sądziliśmy, i dodatkowo kontrola urzędu skarbowego uświadomiła nam, że dane o nich nie mogą być zaokrąglane do całych złotych. Powinniśmy więc zwiększyć skalę i precyzję liczb zapisywanych w kolumnie Obrót3: a) Ustaw kursor w polu Typ danych pola Obrót.
b 3
b) Zmień format danych na Waluta.
c
4
3
c) Zmień liczbę miejsc po przecinku, ustawiając wartość atrybutu Miejsca dziesiętne na 2.
Uważni czytelnicy powinni zauważyć, że kolumna Obrót w ogóle nie powinna być dodana do tej tabeli. Obroty sklepów są nadmiarową informacją (są sumą sprzedaży), a wiemy już, że w relacyjnych bazach danych nie należy zapisywać nadmiarowych danych.
Narzędzia programu Access zapobiegające zapisywaniu w tabelach błędnych danych
3. Z lewej strony pola Miejsca dziesiętne wyświetlona zostanie ikona ostrzeżenia. Kliknij ją. 4. Aby zmienić format pól powiązanych z kolumną Obrót (w naszej bazie danych nie ma jeszcze formularzy i raportów, ale gdyby były, zostałyby zaktualizowane), z menu kontekstowego wybierz opcję Aktualizuj obiekt Miejsca dziesiętne wszędzie tam, gdzie użyto obiektu Obrót. 5. Zamknij okno projektu tabeli Sklep i zapisz wprowadzone w niej zmiany.
Narzędzia programu Access zapobiegające zapisywaniu w tabelach błędnych danych Jeżeli do tabel naszej bazy danych trafią śmieci (błędne lub niespójne dane), wszystkie wyniki ich analiz (np. raporty sprzedaży) również będą błędne. Uniwersalna zasada GIGO (śmieci na wejściu — śmieci na wyjściu, ang. Garbage In, Garbage Out) obowiązuje również osoby tworzące bazy danych w SZBD Access. Na szczęście ten program udostępnia wiele narzędzi, które w prosty sposób uniemożliwiają zapisywanie błędnych danych. Do tej pory poznaliśmy: 1. Typy danych. Wybierając właściwe typy poszczególnych kolumn, zapobiegamy zapisywaniu w nich całkowicie błędnych danych, np. nazw zamiast dat. 2. Rozmiary pól. Ustawiając tę właściwość kolumny, ograniczamy rozmiar możliwych do zapisania w niej danych. Ustawiając na przykład rozmiar pola KodPocztowy na 5, zapobiegniemy błędom polegającym na wprowadzaniu zbyt długich kodów. 3. Format. Chociaż ta właściwość kolumn nie zapobiega wprowadzaniu błędnych danych, to sprawia, że dane są wyświetlane w sposób przyjazny dla użytkowników. Dzięki temu łatwiej jest zauważyć (i poprawić) błędy. 4. Maska wprowadzania. Ustawiając ją, określamy sposób, w jaki dane mogą być zapisywane w kolumnie. Możemy np. wymusić wprowadzanie numerów telefonów zaczynających się od 0 lub numerów zamówień składających się z dwóch liter i czterech cyfr. 5. Wartość domyślna. Definiując dla kolumny tę właściwość, ułatwimy użytkownikom wprowadzenie najczęściej występującej wartości — Access wpisze ją automatycznie.
103
104
Narzędzia programu Access zapobiegające zapisywaniu w tabelach błędnych danych
6. Wymagane. W dobrze zaprojektowanej bazie danych większość atrybutów obiektów (czyli wartości kolumn) powinna mieć jakąś wartość. Ustawiając tę właściwość, uniemożliwimy zapisanie rekordu (wiersza), jeżeli ta wartość (np. nazwa towaru) nie zostanie wprowadzona.
i
W bazach danych brakująca wartość reprezentowana jest za pomocą specjalnej wartości NULL. Oznacza ona brakującą lub nieznaną wartość, a jej stosowanie ma poważne konsekwencje — przede wszystkim NULL nie jest ani równy jakiejkolwiek innej wartości, ani różny od niej, w tym od wartości NULL. Oznacza to, że w bazach danych obowiązuje logika trójwartościowa: wynikiem testu logicznego może być prawda, fałsz lub wartość nieznana. Na przykład wszystkie te testy zwracają wartość nieznaną: 1 > NULL, 1 <= NULL, NULL = NULL.
7. Zerowa dł. dozwolona. W polach tekstowych można domyślnie zapisać pusty ciąg znaków, czyli „”. Pusty ciąg znaków jest różny od wartości NULL i w inny sposób przetwarzany przez SZBD Access. Na przykład wynikiem dodania pustego ciągu znaków do tekstu jest oryginalny tekst, ale wynikiem dodania do tego samego tekstu wartości NULL jest wartość NULL (co ma sens, jeżeli tylko pamiętamy, że NULL oznacza brakującą lub nieznaną wartość). Ustawiając tę właściwość, uniemożliwimy zapisywanie w kolumnie pustych ciągów znaków. 8. Indeksowane (bez duplikatów). Włączając tę właściwość dla kolumny uniemożliwimy zapisanie w jej różnych wierszach tej samej wartości. Jeżeli na przykład kody produktów nie mogą się powtarzać, najszybszym i najskuteczniejszym sposobem wymuszenia tej reguły biznesowej jest ustawienie dla kolumny Kod właściwości Indeksowane: Tak (Bez duplikatów). 9. Klucz podstawowy. W tabelach bez kluczy podstawowych Access nie jest w stanie jednoznacznie identyfikować poszczególnych wierszy. Jako ogólną zasadę przyjęliśmy, że każda tabela powinna mieć klucz podstawowy i że w większości przypadków powinien to być klucz sztuczny, czyli kolumna typu Autonumerowanie. 10. Reguły sprawdzania poprawności to najbardziej uniwersalna metoda zapobiegania zapisywaniu w tabelach niepoprawnych danych. Access 2013 pozwala je definiować dla poszczególnych pól oraz całych rekordów. Jeżeli wprowadzane lub modyfikowane dane nie spełnią zdefiniowanych w tych regułach warunków, zostanie zgłoszony błąd. Pojedyncze tabele mogą (i powinny) mieć zdefiniowanych kilkanaście i więcej reguł sprawdzania poprawności.
Eksportowanie danych z tabeli
Eksportowanie danych z tabeli Informacje w pliku bazy danych programu Access są zapisane w charakterystycznej dla niego postaci. Wynika z tego, że jedynie za pomocą odpowiednich wersji tego programu możliwe jest odczytywanie i modyfikowanie danych zapisanych w pliku .accde lub .accdb. Możliwe jest jednak wyeksportowanie danych bazy programu Access do plików o innych formatach. Na liście dostępnych formatów plików znajdują się m.in. pliki .html, .xlsx (format programu Microsoft Excel), .csv (plik tekstowy zawierający dane rozdzielone przecinkami), listy serwera SharePoint czy dokumenty .xml. Można również wyeksportować dane do dowolnej bazy, dla której istnieje sterownik ODBC. Zatem informacje przechowywane w bazie programu Access mogą być wykorzystywane w innych programach, np. możliwe jest ich wyeksportowanie do arkusza Excela i przedstawienie w postaci wykresu lub wyeksportowanie do edytora Word i wykorzystanie w korespondencji seryjnej, np. do automatycznego zaadresowania listów do naszych znajomych. Aby wyeksportować dane z tabeli Firmy do programu Excel: 1. Kliknij prawym przyciskiem myszy tabelę Firmy i z menu kontekstowego wybierz opcję Eksportuj/Excel.
1
2. Uruchomiony zostanie kreator eksportu. Zostaniemy zapytani o lokalizację pliku docelowego i sposób wyeksportowania do niego danych: a) Ewentualnie zmień lokalizację i nazwę pliku (domyślnie nazwa pliku będzie odpowiadać nazwie eksportowanej tabeli). b) W polu Format pliku z listy dostępnych typów wybierz Skoroszyt programu Excel.
105
106
Importowanie danych z innych programów
c) Zaznacz pole Eksportuj dane z formatowaniem i układem — w ten sposób informacje o formatowaniu danych zostaną zachowane podczas ich eksportu.
c
d) Zaznacz również pole Otwórz plik docelowy po ukończeniu operacji eksportowania — w ten sposób sprawdzimy, czy dane zostały prawidłowo wyeksportowane.
d
e) Kliknij przycisk OK.
a
b
e
3. Po przełączeniu się z powrotem do programu Access zostanie wyświetlone pytanie, czy zapisać kroki wykonane za pomocą kreatora w celu ich szybkiego powtórzenia. Nie zaznaczaj tej opcji i zakończ pracę kreatora, klikając Zamknij.
Importowanie danych z innych programów Podobnie jak możliwy jest eksport informacji z bazy danych programu Access do innych programów, tak możliwy jest import danych zapisanych w innych formatach do tego programu. W ten sposób możemy np. wykorzystać w naszej bazie cennik firmy przechowywany w arkuszu programu Excel. Access 2013 ułatwia również wymienianie kontaktów z programem Outlook. Można zaimportować rekord kontaktu programu Outlook do bazy Accessa; można też wyeksportować rekord kontaktu z bazy Accessa i zapisać go jako kontakt w programie Outlook. Co więcej, Access upraszcza proces zbierania informacji od innych osób. W tym celu Access automatycznie konstruuje formularz zbierania danych za pomocą programu Microsoft Office InfoPath lub przy użyciu formatu HTML w treści wiadomości e-mail. Tak przygotowany formularz można wysłać do adresatów, używając adresów e-mail z folderu Kontakty programu Office Outlook lub z poziomu programu Office Access. Program Office Outlook przetwarza formularze przychodzące i zapisuje dane w bazie danych programu Office Access, efektywnie aktualizując dane bez ich ponownego wpisywania. Przed rozpoczęciem tego ćwiczenia upewnij się, że program Outlook jest właściwie skonfigurowany.
Importowanie danych z innych programów
Aby zaimportować dane przechowywane w skrzynce adresowej programu Outlook: 1. Wyświetl Okienko nawigacji, kliknij prawym przyciskiem myszy dowolną tabelę i z menu kontekstowego wybierz Importuj/Folder programu Outlook. 2. Lub przejdź do zakładki DANE ZEWNĘTRZNE, kliknij ikonę Więcej i wybierz Folder programu Outlook. 3. Uruchomiony zostanie kreator pobierania danych. Zaakceptuj domyślną opcję importu do nowej tabeli i kliknij OK4. 4. Wskaż folder Outlooka, który zawiera importowane dane — w naszym przypadku będzie to podfolder książki adresowej o nazwie Kontakty. 5. Kliknij przycisk Dalej. 6. Uruchomiony zostanie kreator importu danych z programu Outlook. Jego zadaniem jest dopasowanie importowanych informacji do struktury tabel programu Access, a więc podzielenie ich pomiędzy poszczególne kolumny. Lista zadawanych pytań oraz dopasowanie do nich właściwych odpowiedzi zależą od struktury pliku programu Outlook i rodzaju zapisanych w nim danych wraz z ich układem. 7. W pierwszej kolejności kreator umożliwi dopasowanie kolejnych kolumn do struktury importowanych danych. 8. Po zdefiniowaniu wszystkich kolumn kliknij przycisk Dalej. 7
8
4
Druga opcja pozwala dopisać dane do istniejącej tabeli, a trzecia — utworzyć tabelę połączoną. Tabele połączone poznaliśmy w rozdziale 2., w którym podzieliliśmy przykładową bazę danych. Teraz dowiedzieliśmy się, że tego typu tabele mogą wskazywać również na źródła danych inne niż pliki Accessa, na przykład na foldery programu Outlook.
107
108
Importowanie danych z innych programów
9. Skoro tylko pamiętamy, że dla każdej tabeli powinniśmy określić klucz podstawowy, to nie zdziwi nas kolejne pytanie kreatora. Jak zwykle możemy wybrać, czy: a) Kolumna klucza podstawowego zostanie dodana przez program Access (wybierz tę opcję). b) Jedna z importowanych kolumn będzie pełnić funkcję klucza podstawowego tabeli. c) Tabela nie będzie miała zdefiniowanego klucza podstawowego. 10. Kliknij przycisk Dalej. Jeżeli importowane dane odpowiadały wymogom relacyjnego modelu baz danych (przede wszystkim, jeżeli nie powtarzały się te same informacje), możesz już utworzyć tabelę z zaimportowanymi danymi. Znacznie częściej dane nie będą jednak miały prawidłowej struktury — na szczęście za pomocą analizatora możemy automatycznie podzielić je pomiędzy powiązane tabele. 1. Żeby zapoznać się z działaniem analizatora, zaznacz pole Chcę, aby kreator przeanalizował tabelę po zaimportowaniu danych i kliknij przycisk Zakończ.
i
W każdej chwili możemy także uruchomić analizator, przechodząc do zakładki Narzędzia bazy danych i klikając ikonę Analizuj tabelę. Działanie analizatora jest dość wolne i może minąć kilka minut, zanim będziesz mógł przejść do kolejnego punktu.
2. Na początku analizator poinformuje o gotowości do pracy — kliknij Tak. 3. Następnie sprawdzi, czy zaimportowane dane nie zawierają duplikatów. Zapoznaj się z przykładami opisującymi problemy związane z wielokrotnym zapisywaniem tych samych danych i kliknij Dalej. 4. Następnie analizator spróbuje rozwiązać wykryte problemy, dzieląc zaimportowane dane pomiędzy kilka powiązanych ze sobą tabel. Raz jeszcze przyjrzyj się przykładom poprawnego przechowywania informacji w relacyjnych bazach danych. 5. Kliknij przycisk Dalej, a następnie upewnij się, że zaznaczone jest pole wyboru Tak, niech kreator zadecyduje, i raz jeszcze kliknij Dalej. W ten sposób dane zostaną automatycznie umieszczone w odpowiednich tabelach. 6. Wyświetlony zostanie diagram z tabelami i łączącymi je relacjami. Kliknij nagłówki poszczególnych tabel albo po kolei zaznacz te tabele i kliknij przycisk Zmień nazwę tabeli — w ten sposób będziesz mógł zmienić domyślne nazwy Tabela1, Tabela2 itd.
Podsumowanie
7. Po kliknięciu Dalej będziesz mógł sprawdzić, czy analizator właściwie ustawił klucze podstawowe tabel; jeżeli nie — dodaj lub samodzielnie wskaż kolumnę klucza. 8. Jeżeli w wyniku pracy analizatora dane zostały podzielone pomiędzy kilka tabel, będziemy mieli okazję przejrzeć i poprawić strukturę każdej z tych tabel. 9. Na końcu analizator zaproponuje utworzenie kwerendy, która zbierze dane z utworzonych przez niego tabel w jednym miejscu i będzie się nazywała tak, jak oryginalnie miała się nazywać tabela zawierająca importowane dane.
Podsumowanie Po przeczytaniu bieżącego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi mogą być pewne kłopoty, mają pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Czy w związku z tym, że wyświetlenie ukrytej tabeli jest dość łatwą do wykonania przez nieupoważnioną osobę czynnością, istnieje lepsza forma zabezpieczenia danych bazy? 2. Czym jest niejawna konwersja typów? 3. Czy jest możliwe wyeksportowanie tylko jednej kolumny do bazy danych innego programu? 4. Czy wszystkie importowane przez nas dane mogą być modyfikowane w programie Access? 5. Czy dane odebrane w wiadomościach e-mail można automatycznie zapisywać w bazie Access 2013?
109
110
ľ-DNSRG]LHOLÊSU]HFKRZ\ZDQHZED]LH LQIRUPDFMHPLÚG]\RGSRZLHGQLHWDEHOH"ľ
ÈF]HQLHWDEHO]DSRPRFÈUHODFMLW\SXMHGHQ GRMHGQHJRľÈF]HQLHWDEHO]DSRPRFÈ UHODFMLW\SXMHGHQGRZLHOXľÈF]HQLHWDEHO UHODFMÈW\SXZLHOHGRZLHOX]DSRPRFÈSROD ZLHORZDUWRĂFLRZHJRľÈF]HQLHWDEHO]D SRPRFÈUHODFMLW\SXZLHOHGRZLHOXľ'LDJUDP (5SU]\NïDGRZHMED]\GDQ\FK1RUWKZLQGľ 7ZRU]\P\SURMHNWSU]\NïDGRZHMED]\GDQ\FKľ 7DEHOHVïRZQLNRZHľ7DEHOHSRGU]ÚGQHľ7DEHOD QDGU]ÚGQDľ7DEHODïÈF]QLNRZDľ.RU]\VWDQLH ]WDEHOLïÈF]QLNRZHMľ2NUHĂODP\ZLÚ]\ LQWHJUDOQRĂFLGDQ\FK]DSLVDQ\FKZSRïÈF]RQ\FK WDEHODFKľ:SURZDG]DQLHSU]\NïDGRZ\FKGDQ\FK ľ8VXZDQLHUHODFMLľ0RG\ğNRZDQLHSRïÈF]RQ\FK WDEHOľ3RGVXPRZDQLH
5
Łączenie tabel, czyli do czego służą relacje Jak podzielić przechowywane w bazie informacje między odpowiednie tabele? W relacyjnej bazie danych, takiej jak baza danych programu Access, bardzo rzadko przechowujemy w tabelach informacje, które nie są powiązane w żaden sposób z danymi umieszczonymi w innych tabelach. Dzięki temu ogranicza się do minimum ilość nadmiarowych danych — mówi się o normalizacji bazy danych.
i
Osoby zawodowo związane z bazami danych używają terminu „postacie normalne”. W im wyższej postaci normalnej znajduje się tabela, tym bardziej jest ona znormalizowana i tym mniejsze ryzyko wystąpienia problemów z zapisanymi w niej danymi. Jeżeli wszystkie Twoje tabele (zgodnie ze wskazówkami z poprzednich rozdziałów) mają klucze podstawowe, są w pierwszej postaci normalnej. Dodatkowo, jeżeli klucze te są kluczami sztucznymi założonymi na pojedynczych kolumnach, tabele spełniają też wymóg drugiej postaci normalnej. Przyjmuje się powszechnie, że dobrze zaprojektowana baza danych powinna spełniać wymogi trzeciej postaci normalnej — z bieżącego rozdziału dowiemy się, jak osiągnąć ten cel.
112
Jak podzielić przechowywane w bazie informacje między odpowiednie tabele?
Z drugiej strony, aby użytkownik mógł poznać kompletne dane o interesujących go obiektach, musi naraz odczytać informacje z wielu tabel. Sprawdzając np. zrealizowane zamówienia, będzie chciał poznać nazwę firmy, która dostarczyła mu towary (te dane znajdują się w tabeli Firma), oraz nazwę tych towarów (czyli dane z tabeli Towar). Aby ułatwić użytkownikowi pracę z relacyjnymi bazami, dane dotyczące obiektów różnego typu (np. towarów i ich producentów) są umieszczane w odrębnych, ale powiązanych ze sobą tabelach. Taka forma przechowywania informacji posiada wiele zalet. Aby je poznać, wystarczy porównać relacyjny model baz danych (przykładem jest baza danych programu Access) z modelem jednorodnym (przykładem jest arkusz danych programu Excel). 1. W arkuszu danych programu Excel komplet informacji jest zapisany w jednym obiekcie (arkuszu).
1
2. W relacyjnej bazie danych informacje o obiektach różnego typu (np. firmach i towarach) przechowywane są w odrębnych tabelach. 3. Aby możliwe było odtworzenie informacji o tym, jaki towar został zamówiony w danej firmie, w tabeli Towary znajduje się kolumna przechowująca identyfikator firmy.
3
2
2 3 3
Jak podzielić przechowywane w bazie informacje między odpowiednie tabele?
Ten uproszczony przykład pozwala zauważyć, że dzięki temu, iż informacje zostały podzielone między kilka tabel, liczba nadmiarowych (wielokrotnie przechowywanych) danych uległa znacznemu zmniejszeniu. W arkuszu programu Excel dane określonej firmy pojawiły się tyle razy, ile towarów zostało w niej zakupionych. Natomiast w bazie programu Access, niezależnie od liczby kupionych w niej towarów, informacja o samej firmie została zapisana tylko raz. Jedynie krótki identyfikator firmy (klucz podstawowy) wskazuje na zakup poszczególnych towarów w różnych przedsiębiorstwach.
i
Wielokrotne zapisywanie tych samych informacji prędzej czy później prowadzi do problemów związanych z utrzymaniem spójnego (adekwatnego do stanu rzeczywistego) stanu danych, np. zmiana numeru telefonu firmy musiałaby być przeprowadzona w niewiadomej, potencjalnie dość dużej liczbie pól. Dokonując takiej operacji, można bardzo łatwo popełnić błąd. Wystarczy zmienić numer telefonu w 100 polach, a pominąć w pozostałych 15 polach, żeby zapisane w bazie dane straciły spójność.
Wykorzystywanie informacji zapisanych w odrębnych tabelach (np. z tabeli Towar — danych o nazwie towaru i dacie jego zakupu, a z tabeli Firma — danych o nazwie firmy) wymaga ich wzajemnego powiązania. Związek zachodzący pomiędzy powiązanymi ze sobą tabelami w SZBD Access nazywany jest relacją łączącą te tabele. Tak jak poszczególne kolumny tabeli przechowują określone cechy (atrybuty) danego obiektu (np. nazwę firmy, adres koleżanki czy tytuł książki), tak relacje przedstawiają związek zachodzący pomiędzy obiektami dwóch różnych typów (np. towar został sprzedany przez firmę, koleżanka pożyczyła płyty, autor napisał książkę). Istnieją trzy rodzaje relacji dwuargumentowych — czyli takich, które odpowiadają związkowi łączącemu dwie różne tabele (relacje wieloargumentowe nie są używane w relacyjnych bazach danych): 1. Relacje typu jeden do jednego, w których jednemu obiektowi A odpowiada dokładnie jeden obiekt B (przykładem takiej relacji jest związek pomiędzy uczniem a przypisaną mu szafką w szatni). 2. Relacje typu jeden do wielu, w których jednemu obiektowi A odpowiada dowolna liczba obiektów B (przykładem takiej relacji jest związek pomiędzy firmą a towarami — jedna firma może produkować dowolną liczbę towarów, ale ten sam towar może być wyprodukowany tylko w jednej firmie). 3. Relacje typu wiele do wielu, w których dowolnej liczbie obiektów A odpowiada dowolna liczba obiektów B (przykładem takiej relacji jest związek pomiędzy filmami a aktorami — w każdym filmie może zagrać dowolna liczba aktorów i każdy aktor może zagrać w dowolnej liczbie filmów).
113
114
Łączenie tabel za pomocą relacji typu jeden do jednego
Wykonując ćwiczenia z bieżącego rozdziału, utworzysz projekt własnej relacyjnej bazy danych, określisz typ tabel wchodzących w skład tej bazy oraz poznasz metody tworzenia, modyfikowania i usuwania relacji łączących te tabele.
Łączenie tabel za pomocą relacji typu jeden do jednego Relacje typu jeden do jednego są dość rzadko spotykane w bazach danych. Przecież skoro jednemu rekordowi tabeli A odpowiadać ma dokładnie jeden rekord tabeli B, to dlaczego wszystkich danych nie zapisać w jednej dużej tabeli, będącej połączeniem kolumn tych dwóch tabel? Jeżeli jednak weźmiemy pod uwagę wydajność (szybkość) bazy (szczególnie w przypadkach, gdy część informacji jest regularnie modyfikowana, a inna rzadziej albo gdy różne informacje są odczytywane i modyfikowane równocześnie przez wielu użytkowników), to podział danych między dwie tabele (związane ze sobą relacją typu jeden do jednego) ma swoje uzasadnienie. 1. Utwórz nową bazę danych i zapisz ją pod nazwą 5R]G]LDïD. 2. Utwórz tabelę Uczeń. W skład tabeli powinny wchodzić trzy kolumny: 2a
2b
2c
a) IdUcznia, typ Autonumerowanie — oznacz tę kolumnę jako kolumnę klucza podstawowego tabeli. b) Nazwisko, typ Krótki tekst. c) Imię, typ Krótki tekst1.
3. Zapisz tabelę pod nazwą Uczeń, otwórz ją w widoku arkusza danych i wpisz do niej przykładowe dane kilku znajomych. Kończąc tę część ćwiczenia, zamknij okno tabeli Uczeń. 1
Dla uproszczenia podczas tworzenia tabel nie będziemy ustawiali dodatkowych właściwości ich kolumn ani definiowali reguł sprawdzania poprawności. Robimy tak tylko po to, żeby móc skoncentrować się na nowym materiale. Tworząc własne bazy danych, należy stosować się do wskazówek z poprzednich rozdziałów książki.
Łączenie tabel za pomocą relacji typu jeden do jednego
4. Utwórz tabelę Szafka. W skład tej tabeli również powinny wchodzić trzy kolumny: a) IdSzafki, typ Liczba — oznacz tę kolumnę jako kolumnę klucza podstawowego tabeli,
i 4b
Tym razem wyjątkowo kluczem podstawowym tabeli nie jest kolumna typu Autonumerowanie. Ponieważ tabela Szafka będzie połączona relacją typu jeden do jednego, wartości jej klucza podstawowego będą takie same jak wartości klucza podstawowego powiązanej tabeli Uczeń.
b) Numer, typ Liczba, Indeksowane — Tak (Bez duplikatów),
4a 4c
c) Uwagi, typ Długi tekst.
5. Naciśnij kombinację klawiszy Ctrl+S i zapisz tabelę pod nazwą Szafka. 6. W ten sposób utworzyliśmy dwie niepowiązane ze sobą tabele. Pozostała nam do wykonania najważniejsza część zadania — utworzenie relacji łączącej te tabele.
6a
6b
a) Ustaw kursor w polu Typ danych kolumny IdSzafki. b) Z listy dostępnych typów danych wybierz Kreator odnośników….
115
116
Łączenie tabel za pomocą relacji typu jeden do jednego
c) Uruchomiony zostanie kreator, który ułatwi utworzenie łączącej tabele relacji. Ponieważ chcemy połączyć dwie istniejące tabele, odpowiadając na pytanie kreatora, wybierzemy domyślną opcję Obiekt pole odnośnika ma pobierać wartości z innej tabeli lub kwerendy. d) Kliknij przycisk Dalej. e) Wskaż tabelę, z którą chcesz połączyć tabelę Szafka. Będzie to tabela Uczeń. f) Kliknij przycisk Dalej. g) Z listy kolumn tabeli Uczeń wybierz IdUcznia (tabele powinny być łączone poprzez kolumny będące ich kluczami podstawowymi) i dodatkowo kolumnę Nazwisko (w ten sposób w polach kolumny zamiast identyfikatorów uczniów będą wyświetlane ich nazwiska).
i
Wprowadzanie, modyfikowanie czy odczytywanie danych z połączonych tabel stanie się łatwiejsze, jeżeli zamiast identyfikatorów wierszy wyświetlimy wartości jakiejś opisowej kolumny, np. nazwisko ucznia czy nazwę towaru. Nie zmienia to faktu, że nasze tabele powinny być łączone poprzez klucze podstawowe.
h) Kliknij przycisk Dalej.
6g
6h
6i 6j
i) Dodatkowo, od wersji 2003 programu Access, kreator odnośników pozwala na posortowanie danych pobieranych z połączonej tabeli, dzięki czemu znalezienie odpowiedniego rekordu (np. ucznia) jest szybsze i łatwiejsze. Z listy dostępnych pól wybierz Nazwisko. j) Kliknij przycisk Dalej.
Łączenie tabel za pomocą relacji typu jeden do jednego
6k
6l
k) Odpowiadając na kolejne pytanie kreatora, upewnij się, że zaznaczone jest pole wyboru Ukryj kolumnę klucza (zalecane). Po to dodaliśmy kolumnę Nazwisko, żeby przypisywać uczniom szafki na podstawie ich nazwisk, a nie identyfikatorów. l) Kliknij przycisk Dalej.
m) Ostatnie pytania kreatora będą dotyczyły: i. Nazwy utworzonej kolumny odnośnika — zaakceptuj nazwę IDSzafki.
i ii
iii n
ii. Włączenia mechanizmu sprawdzania integralności danych — pozostaw to pole odznaczone (mechanizm sprawdzania integralności włączymy samodzielnie w dalszej części ćwiczenia).
iii. Tego, czy w kolumnie IDSzafki tabeli Szafka będzie można przechowywać wiele wartości. Upewnij się, że to pole nie jest zaznaczone2. n) Zakończ pracę kreatora. 7. Zapisz tabelę Szafka i zamknij jej okno projektu. Pierwsza część zadania została wykonana. Ponieważ pierwszy raz tworzyliśmy relacje, żeby przedstawić krok po kroku ich budowę i działanie, nie skorzystaliśmy z pomocy kreatora do włączenia więzów integralności i teraz musimy zrobić to samodzielnie. 8. Kliknij ikonę Relacje znajdującą się w sekcji wstążki NARZĘDZIA BAZY DANYCH.
8 2
Pola wielowartościowe są specyficzną funkcją programu Access ułatwiającą łączenie tabel relacjami typu wiele do wielu, ale niezgodną z założeniami relacyjnych baz danych. Lepiej jej nie używać — w ten sposób łatwiej będzie w przyszłości przenieść bazę do innego serwera, np. do darmowej edycji Express serwera SQL Server.
117
118
Łączenie tabel za pomocą relacji typu jeden do jednego
9. Zostanie wyświetlone okno relacji bazy danych. Zobaczymy w nim połączone ze sobą tabele: Uczeń i Szafka oraz trzy tabele systemowe3. Ponieważ nie pracujemy z tymi tabelami, należy je ukryć, klikając je kolejno prawym przyciskiem myszki i wybierając z menu kontekstowego opcję Ukryj tabelę. 10. Na tym etapie tabele są już ze sobą połączone, ale nadal identyfikatory szafek mogą nie odpowiadać identyfikatorom uczniów — nie włączyliśmy jeszcze sprawdzania integralności. 11. Żeby włączyć ten mechanizm, kliknij prawym przyciskiem myszy linię przedstawiającą relację (linię łączącą obie tabele) i z menu kontekstowego wybierz opcję Edytuj relację….
11
12. W oknie właściwości relacji zaznacz kolejno pola wyboru: a) Wymuszaj więzy integralności — w ten sposób SZBD Access będzie sprawdzał, czy w powiązanych polach przechowywane są prawidłowe dane, czyli czy identyfikatory uczniów odpowiadają identyfikatorom szafek. b) Kaskadowo aktualizuj pola pokrewne — w ten sposób zmiana klucza podstawowego głównej tabeli zostanie automatycznie odwzorowana w powiązanej tabeli, czyli zmiana identyfikatora ucznia spowoduje automatyczną zmianę identyfikatora jego szafki.
d
a b
c
c) Kaskadowo usuń rekordy pokrewne — w ten sposób usunięcie danych z jednej tabeli spowoduje automatyczne usunięcie powiązanych danych z drugiej tabeli (w tym przypadku skasowanie ucznia spowoduje usunięcie danych o przypisanej mu szafce). d) Zwróć uwagę, że utworzona relacja jest typu jeden do jednego i kliknij przycisk OK.
3
Pierwsza wersja programu Access 2013 wyświetla w oknie Relacje tabele systemowe, ale błąd ten może być naprawiony w później wydanej aktualizacji.
Łączenie tabel za pomocą relacji typu jeden do jednego
14
13
13
13. W oknie relacji zostanie wyświetlony typ relacji łączącej tabele Szafka i Uczeń. Znajdujące się po obu stronach relacji jedynki świadczą o tym, że jest to relacja typu jeden do jednego. 14. Zamknij okno relacji i zapisz wprowadzone zmiany.
Aby przetestować działanie mechanizmu wymuszania spójności danych w połączonych tabelach: 1 2
1. Otwórz tabelę Szafka. 2. Przypisz poszczególnym uczniom ich szafki. Zwróć uwagę, że tym razem klucz podstawowy tabeli musi odpowiadać jednemu z rekordów zapisanych w powiązanej tabeli i że w kolumnie IdSzafki wyświetlane są nazwiska uczniów.
3. Przekonaj się, że ponieważ utworzyliśmy relację typu jeden do jednego, to próba przypisania jednemu uczniowi kilku różnych szafek spowoduje wyświetlenie komunikatu o błędzie. 4. Sprawdź również, że dzięki ustawieniu w kolumnie Numer właściwości Indeksowanie: Tak (bez duplikatów) ta sama szafka nie może być przypisana kilku uczniom. 5. Popraw błędne dane i zamknij okno tabeli Szafka.
i
Łączenie tabel związkiem typu jeden do jednego polega na zastąpieniu klucza podstawowego jednej tabeli kolumną odnośnika wskazującą na klucz podstawowy drugiej tabeli.
119
120
Łączenie tabel za pomocą relacji typu jeden do wielu
Łączenie tabel za pomocą relacji typu jeden do wielu Najczęściej spotykaną relacją w bazie danych jest związek typu jeden do wielu. Wynika to z tego, że użytkownicy bazy chcą uniknąć konieczności wielokrotnego przechowywania w tabelach tych samych danych, np. informacji o przedmiotach, które należą do poszczególnych grup, kategorii lub są czyjąś własnością. Wykonując to ćwiczenie, utworzymy tabele i połączymy je relacją typu jeden do wielu. 1. Utwórz składającą się z dwóch kolumn tabelę Klasa: a) Pierwszą kolumnę nazwij IdKlasy, jako typ wybierz Autonumerowanie i określ, że kolumna ta będzie kluczem podstawowym tabeli. c a b
b) Drugą kolumnę nazwij Nazwa, a jako typ danych wybierz Krótki tekst.
c) Zamknij okno tabeli i zapisz ją pod nazwą Klasa. 2. W ten sposób utworzyliśmy tabelę Klasa niepowiązaną z innymi tabelami bazy danych. Następnym etapem będzie powiązanie jej z tabelą Uczeń. Ponieważ każdy uczeń może należeć tylko do jednej klasy, ale każda klasa może liczyć wielu uczniów, należy utworzyć relację typu jeden do wielu. Tego typu relacje tworzy się, dodając kolumnę odnośnika (w innych SZBD nazywaną kolumną klucza obcego) do podrzędnej tabeli: a) Otwórz w widoku projektu tabelę Uczeń. b) Do tej tabeli należy dodać nową kolumnę, w której przechowywane będą identyfikatory klasy (w ten sposób będziemy mogli przypisać każdego ucznia do wybranej klasy). Ponieważ kolumna ta będzie kolumną odnośnika, jej tworzenie zaczniemy od ustawienia kursora w polu Typ danych pustej kolumny i wybrania z listy typów danych kreatora odnośników. c) Tym razem dane będą również pobierane z innej tabeli. Pozostaw zaznaczone pole wyboru Obiekt pole odnośnika ma pobierać wartości z tabeli lub kwerendy i kliknij przycisk Dalej. d) Jako powiązaną tabelę wybierz tabelę Klasa i kliknij przycisk Dalej.
Łączenie tabel za pomocą relacji typu jeden do wielu
e) Z listy kolumn tabeli Klasa dodaj zarówno IdKlasy (tabele muszą być łączone poprzez kolumny kluczy podstawowych), jak i Nazwa (łatwiej będzie przypisywać uczniów do klas, posługując się ich nazwami, a nie identyfikatorami) i kliknij przycisk Dalej. f) Posortuj dane kolumny odnośnika według nazw klas i kliknij przycisk Dalej. g) Upewnij się, że pole wyboru Ukryj kolumnę klucza (zalecane) jest zaznaczone, i kliknij przycisk Dalej. h) Zmień nazwę kolumny odnośnika na IdKlasy, zaznacz pole wyboru Włącz integralność danych, nie zaznaczaj pola Zezwalaj na wiele wartości i zakończ pracę kreatora. 3. Po zapisaniu zmian w tabeli Uczeń zamknij okno tej tabeli i wyświetl okno relacji bazy danych. 4. Aby tabela Klasa została wyświetlona w oknie relacji, wybierz jeden z poniższych sposobów: a) Kliknij prawym przyciskiem myszy wolny obszar tego okna i z menu kontekstowego wybierz opcję Pokaż wszystko. b) Kliknij ikonę Wszystkie relacje — w ten sposób zostaną pokazane wszystkie relacje bazy danych (te dwie możliwości mają jednak tę wadę, że znowu wyświetlone zostaną tabele systemowe).
d
c c
b
c) Zaznacz tabelę Uczeń i kliknij ikonę Relacje bezpośrednie lub kliknij ją prawym przyciskiem myszy i z menu kontekstowego wybierz opcje Pokaż bezpośrednie — w ten sposób zostaną pokazane tabele bezpośrednio połączone relacjami z już istniejącymi tabelami. d) Kliknij ikonę Pokaż tabelę, a następnie nazwę tabeli Klasa.
5. Dopasuj rozmiar i położenie poszczególnych tabel. (Wielkość tabeli możemy zmienić, klikając lewym przyciskiem myszy dowolną z jej krawędzi, przytrzymując ten przycisk i przesuwając kursor. Przesunąć tabelę możemy, klikając lewym przyciskiem myszy jej nagłówek, przytrzymując ten przycisk i przesuwając kursor myszy).
121
122
Łączenie tabel za pomocą relacji typu jeden do wielu
5
5
5
6
6. Zaznacz linię łączącą tabele Uczeń i Klasa, kliknij prawym przyciskiem myszy i z menu kontekstowego wybierz opcję Edytuj relację…. 7. Zauważ, że tym razem pole wyboru Wymuszaj więzy integralności zostało automatycznie zaznaczone. 8. Zaznacz pole Kaskadowo aktualizuj pola pokrewne.
7 8
9. Zwróć uwagę, że tym razem typem relacji jest jeden do wielu, i kliknij przycisk OK.
9
10. Zamknij okno relacji i zapisz wprowadzone zmiany. Przekonajmy się, jak działają relacje typu jeden do wielu: 1. Otwórz widok arkusza danych tabeli Klasa i wpisz kilka przykładowych nazw klas. 2. Zamknij okno tabeli Klasa i otwórz okno tabeli Uczeń. 3. Wpisz nowych i przypisz poszczególnych uczniów do przykładowych klas. Zwróć uwagę, że tym razem możliwe jest wielokrotne wpisanie w kolumnie odnośnika tych samych wartości (przypisanie wielu uczniów do tej samej klasy).
3
i
Łączenie tabel związkiem typu jeden do wielu polega na dodaniu do jednej tabeli kolumny odnośnika wskazującego na klucz podstawowy drugiej tabeli.
Łączenie tabel relacją typu wiele do wielu za pomocą pola wielowartościowego
Łączenie tabel relacją typu wiele do wielu za pomocą pola wielowartościowego W większości SZBD połączenie tabel związkiem typu wiele do wielu wymaga utworzenia dodatkowej tabeli, w której znajdowałyby się informacje o połączonych ze sobą obiektach. Ponieważ każdy uczeń może np. wybrać kilka specjalizacji, a tę samą specjalizację może wybrać dowolna liczba uczniów, zapisanie danych łączących uczniów i specjalizacje wymaga utworzenia dodatkowej tabeli łącznikowej. Access 2013 dzięki specjalnym polom wielowartościowym upraszcza tworzenie tego typu relacji. 1. Utwórz tabelę Specjalizacja: a) Pierwszą kolumną tabeli będzie IdSpecjalizacji typ Autonumerowanie — oznacz tę kolumnę jako kolumnę klucza podstawowego tabeli. b) Dodaj drugą kolumnę Nazwa typu Krótki tekst. 2. Trzecią i ostatnią kolumną tabeli będzie kolumna odnośnika. Tak jak poprzednio ustaw kursor w polu Typ danych pustej kolumny i z listy typów danych wybierz Kreator odnośników: a) Zaakceptuj domyślną opcję Obiekt pole odnośnika ma pobierać wartości z tabeli lub kwerendy. b) Jako tabelę źródłową wskaż tabelę Uczeń. c) Z listy pól tabeli Uczeń wybierz kolumny IdUcznia i Nazwisko. d) Posortuj dane według nazwisk. e) Ukryj kolumnę klucza podstawowego. f) Zmień nazwę kolumny odnośnika na Nazwiska.
f
g) Zaznacz pole wyboru Zezwalaj na wiele wartości.
h
g i
123
124
Łączenie tabel relacją typu wiele do wielu za pomocą pola wielowartościowego
h) Zwróć uwagę, że zaznaczenie tego pola uniemożliwiło kreatorowi włączenie mechanizmu sprawdzania integralności danych — w następnym ćwiczeniu poznamy inny (zgodny ze standardem relacyjnych baz danych) sposób łączenia tabel relacjami typu wiele do wielu. i) Zakończ pracę kreatora i zapisz zmiany w tabeli Specjalizacja. 3. Zamknij okno projektu tabeli. 4. Wyświetl widok relacji bazy danych i dodaj do niego nowo utworzoną tabelę (możesz to zrobić, klikając prawym przyciskiem myszy wolny obszar okna Relacje i wybierając z menu kontekstowego opcję Pokaż tabelę).
4
5. Dwukrotnie klikając linię łączącą tabele Uczeń i Specjalizacja oraz zaznaczając pola wyboru Wymuszaj więzy integralności i Kaskadowo aktualizuj pola pokrewne, włącz wymuszanie więzi integralności dla relacji łączącej tabele Uczeń i Specjalizacja. Pora sprawdzić, w jaki sposób pola wielowartościowe pozwalają łączyć tabele relacjami typu wiele do wielu: 1. Otwórz okno widoku arkusza danych tabeli Specjalizacja i zapisz w niej informacje o kilku specjalizacjach, z których każda będzie wybrana przez przynajmniej dwóch uczniów. 2. Przekonaj się również, że ten sam uczeń może wybrać różne specjalizacje.
1
2
i
Pola wielowartościowe pozwalają połączyć dwie tabele relacją typu jeden do wielu, która w praktyce działa jak relacja typu wiele do wielu. Jest to rozwiązanie niezgodne z teorią relacyjnych baz danych, ale ułatwiające samodzielne tworzenie baz danych w programie Access 2013. Żeby w pełni wykorzystać taką relację, należy jeszcze utworzyć odpowiednią kwerendę — zagadnienie to zostało opisane w następnym rozdziale.
Łączenie tabel za pomocą relacji typu wiele do wielu
Łączenie tabel za pomocą relacji typu wiele do wielu Pola wielowartościowe są wygodne w użyciu, ale nie zawsze mogą zastąpić tradycyjny sposób łączenia dwóch tabel relacją typu wiele do wielu za pośrednictwem tabeli łącznikowej. W takiej tabeli, oprócz kluczy podstawowych obu łączonych tabel, często przechowuje się dodatkowe informacje opisujące samą relację. Ponieważ przykładowo każdy uczeń chodzi na zajęcia do różnych wykładowców, a każdy wykładowca prowadzi zajęcia dla wielu różnych uczniów i ocena zajęć nie jest ani ogólną oceną ucznia, ani wykładowcy, tylko oceną zajęć prowadzonych przez danego wykładowcę dokonaną przez konkretnego ucznia, więc powinna być zapisana w tabeli łącznikowej Wykładowca_Uczeń. Innym popularnym przykładem informacji zapisywanych w tabelach łącznikowych są daty, np. data wypożyczenia przedmiotu danej osobie i data jego zwrotu. Zanim możliwe będzie utworzenie tabeli łącznikowej, należy utworzyć łączone w ten sposób tabele (ogólną zasadą jest tworzenie najpierw tabeli nadrzędnej, a następnie powiązanych z nią tabel podrzędnych — w ten sposób podczas ich zakładania możemy uruchomić kreator odnośników i wskazać wcześniej przygotowaną tabelę nadrzędną). Aby dodać tabelę nadrzędną przechowującą dane o wykładowcach: 1. Utwórz tabelę Wykładowca: a) Pierwszą kolumną tabeli będzie IdWykladowcy, typ Autonumerowanie — oznacz tę kolumnę jako kolumnę klucza podstawowego tabeli. b) Drugą kolumnę nazwij Nazwisko, a jako typ wybierz Krótki tekst. c) Ostatnią kolumną tabeli będzie Imię, również typu Krótki tekst. 2. Zapisz tabelę pod nazwą Wykładowca. W ten sposób dodaliśmy do bazy danych tabelę Wykładowca niepowiązaną z innymi tabelami. Kolejnym etapem będzie jej powiązanie z tabelą Uczeń. Ponieważ ten sam uczeń ma jednocześnie wielu wykładowców, nie możemy do tabeli Uczeń dodać kolumny odnośnika powiązanej z tabelą Wykładowca — w ten sposób ograniczylibyśmy do jednego liczbę wykładowców uczących daną osobę. Z tego samego powodu nie możemy do tabeli Wykładowca dodać kolumny odnośnika powiązanej z tabelą Uczeń.
i
Utworzenie w jednej tabeli kilku kolumn odnośników powiązanych z tą samą tabelą, np. utworzenie w tabeli Uczeń kolumn Wykładowca_1, Wykładowca_2 itp. jest bardzo złym rozwiązaniem i prowadzi do poważnych problemów na etapie tworzenia kwerend, formularzy i raportów. Właśnie przed popełnieniem tego błędu ma chronić specyficzna dla SZBD Access możliwość tworzenia pól wielowartościowych.
125
126
Łączenie tabel za pomocą relacji typu wiele do wielu
Aby prawidłowo powiązać tabele Uczeń i Wykładowca, musimy utworzyć dodatkową tabelę bazy danych: 1. Utwórz nową tabelę w widoku projektu. 2. Pierwszą kolumną tabeli będzie kolumna odnośnika, tak więc ustaw kursor w polu Typ danych i z listy dostępnych typów wybierz Kreator odnośników…. a) Tak jak poprzednio, odnośnik będzie wskazywał inną tabelę bazy danych. b) Z listy dostępnych tabel wybierz tabelę Wykładowca. c) Z listy pól tabeli Wykładowca wybierz IdWykładowcy i Nazwisko. d) Posortuj dane według nazwisk. e) Upewnij się, że kolumna klucza została ukryta. f) Zmień nazwę kolumny odnośnika na Wykładowca, włącz mechanizm sprawdzania integralności danych i zakończ pracę kreatora. g) Zostaniesz zapytany, czy zapisać tabelę. Kliknij przycisk Tak i podaj nazwę tabeli :\NïDGRZFD8F]Hñ. 3. Zostanie wyświetlony komunikat o braku klucza podstawowego tabeli. Ponieważ ta tabela ma przede wszystkim łączyć dwie inne tabele bazy danych, dodatkowy klucz podstawowy nie jest w jej przypadku potrzebny. Kliknij przycisk Nie. 4. Drugą kolumną tabeli również będzie kolumna odnośnika. Ustaw kursor w polu Typ danych pustego wiersza i z listy dostępnych typów wybierz Kreator odnośników…. a) Tak jak poprzednio, odnośnik będzie wskazywał inną tabelę bazy danych. b) Z listy dostępnych tabel wybierz tabelę Uczeń. c) Z listy pól tabeli Uczeń wybierz IdUcznia i Nazwisko. d) Posortuj dane według nazwisk. e) Upewnij się, że kolumna klucza została ukryta. f) Zmień nazwę kolumny odnośnika na Uczeń, włącz mechanizm sprawdzania integralności danych i zakończ pracę kreatora. 5. Dodaj do tabeli łącznikowej trzecią kolumnę o nazwie Ocena, typie Liczba i rozmiarze Bajt. 6. Jeżeli chcesz się przekonać, w jaki sposób kreator utworzył odnośniki, zaznacz kolumnę Wykładowca lub Uczeń i przejdź do zakładki Odnośnik — wyświetlona zostanie definicja odnośnika, w tym instrukcja SELECT pobierająca dane z powiązanej tabeli (więcej informacji na temat tej instrukcji znajduje się w następnym rozdziale).
Łączenie tabel za pomocą relacji typu wiele do wielu
2 5
7 4
7. Zapisz zmiany wprowadzone w tabeli i zamknij okno jej projektu.
6
8. Wyświetl okno relacji bazy danych. 9. Wyświetl obie nowo dodane tabele. 10. Dwukrotnie kliknij linię łączącą tabele Uczeń oraz WykładowcaUczeń i zaznacz pola wyboru Wymuszaj więzy integralności, Kaskadowo aktualizuj pola pokrewne i Kaskadowo usuń rekordy pokrewne. 13 10
11
12
11. Dwukrotnie kliknij linię łączącą tabele Wykładowca oraz WykładowcaUczeń i zaznacz pola wyboru Wymuszaj więzy integralności, Kaskadowo aktualizuj pola pokrewne i Kaskadowo usuń rekordy pokrewne.
12. Tabele widoczne w oknie Relacje ułóż tak, aby efekt końcowy przypominał ten poniższy. Gratulacje! Właśnie zaprojektowałeś i utworzyłeś relacyjną bazę danych. 13. Zamknij okno relacji i zapisz wprowadzone zmiany. Sprawdźmy, czy możliwe jest przypisanie do jednego wykładowcy wielu uczniów, a do jednego ucznia wielu wykładowców: 1. Otwórz okno widoku arkusza danych tabeli Wykładowca i wpisz dane kilku wykładowców.
127
128
Diagram E/R przykładowej bazy danych Northwind
2. Otwórz okno widoku arkusza danych tabeli WykładowcaUczeń. Dwie pierwsze kolumny tej tabeli są kolumnami odnośników, dlatego zamiast wpisywać w nich jakiekolwiek dane, wybierz identyfikatory uczniów i wykładowców mających z nimi zajęcia.
2
i
3
3. Wpisz również ocenę zajęć danego wykładowcy wystawioną przez wybranego ucznia. W ten sposób w bazie danych zostanie zapisana informacja o tym, którzy uczniowie mają zajęcia z danymi wykładowcami i jak te zajęcia zostały przez nich ocenione.
Łączenie tabel związkiem typu wiele do wielu polega na utworzeniu dodatkowej tabeli zawierającej kolumny odnośników powiązane z kluczami podstawowymi obu łączonych tabel.
Diagram E/R przykładowej bazy danych Northwind Zanim sami zaczniemy projektować własne bazy danych, powinniśmy jeszcze raz przeanalizować znaną z rozdziału 2. przykładową bazę Northwind. W ten sposób powtórzymy i utrwalimy poznane do tej pory wiadomości, które są niezbędne do utworzenia funkcjonalnej bazy danych. 1. Otwórz przykładową bazę danych Northwind_wb (jeżeli baza Northwind została wcześniej podzielona, relacje łączące tabele zobaczymy, gdy otworzymy plik zawierający właśnie tabele, a nie formularze i raporty). 2. Jeżeli pominąłeś poprzednie ćwiczenia, otwórz plik bazy Northwind znajdujący się w folderze Rozdział06\Starter na dołączonej do książki płycie CD i zamknij ekran uruchamiania tej bazy. 3. Kliknij ikonę Relacje znajdującą się w zakładce NARZĘDZIA BAZY DANYCH. 4. Baza danych Northwind składa się z kilkunastu tabel powiązanych ze sobą. 5. Aby zapoznać się z jej niektórymi tabelami i łączącymi je relacjami, ukryjemy wszystkie tabele z wyjątkiem ośmiu pokazanych na rysunku — rozmieść je w ten sam sposób.
Diagram E/R przykładowej bazy danych Northwind
6. Zwróć uwagę, że: a) Każdy klient (odpowiada mu pojedynczy wiersz tabeli Klienci) może złożyć dowolną liczbę zamówień, ale to samo zamówienie może być złożone tylko przez jednego klienta. b) Zamówienie może być zrealizowane przez jednego spedytora, ale ten sam spedytor może realizować dowolną liczbę zamówień. c) W ramach każdego zamówienia dostarczone mogą być dowolne produkty. Możliwe jest zarówno kupno tego samego produktu w ramach wielu różnych zamówień, jak i wielokrotne zamawianie tego samego towaru. Dodatkowo dla każdego zamówienia poszczególnych towarów możliwe jest określenie liczby kupowanego towaru, jego ceny jednostkowej, rabatu, statusu itd. d) Ten sam produkt może być dostarczony przez wielu różnych dostawców (wielowartościowe pole DostawcaID w tabeli Produkty) i — oczywiście — każdy dostawca może dostarczać dowolną liczbę produktów. e) U każdego dostawcy możemy złożyć dowolną liczbę zamówień kupna. Każde zamówienie kupna musi dotyczyć tylko jednego, wybranego dostawcy. f) W ramach każdego zamówienia kupna możemy zamawiać dowolną liczbę najróżniejszych towarów po dowolnych cenach.
6a
6c
6b
6d
6e
6f
129
130
Tworzymy projekt przykładowej bazy danych
7. Możemy wyświetlić projekt dowolnej tabeli, klikając ją prawym przyciskiem myszy i wybierając z menu kontekstowego opcję Projekt tabeli. Wyświetl projekt tabeli Produkty, a następnie porównaj jego strukturę z formularzami opisanymi w rozdziale 2. 8. Zwróć uwagę, że we wszystkich tabelach przykładowej bazy danych informacje o obiektach różnych typów (np. dostawcach i zamówieniach) podzielone są pomiędzy wiele kolumn, z których każda przechowuje dane elementarne (np. kod pocztowy czy miasto dostawcy). 9. Zamknij przykładową bazę danych Northwind.
Tworzymy projekt przykładowej bazy danych Na potrzeby tej książki zaprojektujemy i utworzymy bazę danych Płytoteka, w której przechowywane będą podstawowe informacje o płytach i pożyczających je osobach. Zanim jednak zbudujemy nową bazę programu Access, warto zaprojektować układ jej tabel. Aby zaprojektować bazę danych: 1. Określ informacje, które będą przechowywane w bazie. Zacznij od wypisania (jeden pod drugim) nazwy typów obiektów, o których informacje powinny trafić do bazy danych, np.: 3ï\W\ Osoby
2. Następnie należy wypisać te atrybuty obiektów, o których informacje powinny być zapisane w bazie danych, i upewnić się, że te same informacje nie będą zapisywane kilkakrotnie: 3ï\WD^7\WXï=HVSöï*DWXQHN7\S&HQD'DWDZ\GDQLD&]DVWUZDQLD 2NïDGND` 2VRED^,PLÚ1D]ZLVNR$GUHV7HOHIRQ$GUHVHPDLO`
3. Podziel dane pomiędzy tabele. Wykorzystując zdobytą wiedzę o zaletach dzielenia danych o obiektach różnego typu pomiędzy powiązane ze sobą tabele, wyszukaj na liście atrybutów te, które nie opisują bezpośrednio obiektu danego typu, a następnie dopisz do listy tabel brakujące typy obiektów: 3ï\WD^7\WXï*DWXQHN7\S&HQD'DWDZ\GDQLD&]DVWUZDQLD2NïDGND 8ZDJL`
Tworzymy projekt przykładowej bazy danych
2VRED^,PLÚ1D]ZLVNR$GUHV7HOHIRQ$GUHVHPDLO` =HVSöï1D]ZD2SLQLD`WUXGQRX]QDÊQD]ZÚ]HVSRïXF]\QDV]ÈRQLP RSLQLÚ]DEH]SRĂUHGQLHDWU\EXW\Sï\W\
4. Określ atomowe atrybuty. W tym i poprzednich rozdziałach omówione zostały zalety dzielenia danych opisujących obiekty poszczególnych typów na atrybuty elementarne. Korzystając z tych informacji, zmodyfikuj listę atrybutów obiektów: 3ï\WD^7\WXï*DWXQHN7\S&HQD'DWDZ\GDQLD&]DVWUZDQLD2NïDGND 8ZDJL` 2VRED^,PLÚ1D]ZLVNR0LDVWR8OLFD1UGRPX7HOHIRQ$GUHVHPDLO` =HVSöï1D]ZD2SLQLD`
5. Utwórz tabele słownikowe. Jednym z etapów procesu normalizacji bazy danych, który dodatkowo korzystnie wpływa na jej wydajność oraz komfort pracy użytkowników, jest wydzielenie tabel słownikowych. Tabele tego typu przechowują pewną liczbę danych, które są wykorzystywane do określania wartości pojedynczego atrybutu obiektu nadrzędnego tworzonych tabel. W efekcie tabela nadrzędna jest mniejsza, a użytkownicy, zamiast wielokrotnie wpisywać ten sam ciąg znaków, mogą wybrać daną wartość z tabel podrzędnych. W przykładowej bazie danych w tabeli słownikowej zostały umieszczone dwa atrybuty płyty: a) *DWXQHN (lista gatunków muzycznych jest skończona, a prawdopodobieństwo wielokrotnego wpisywania tych samych danych o gatunku muzycznym jest dość duże), b) 1RĂQLN (lista nośników jest jeszcze krótsza niż lista gatunków muzycznych). Lista wynikowa tabel bazy danych wygląda następująco: 3ï\WD^7\WXï&HQD'DWDZ\GDQLD&]DVWUZDQLD2NïDGND8ZDJL` *DWXQHN^1D]ZD` 1RĂQLN^1D]ZD` 2VRED^,PLÚ1D]ZLVNR0LDVWR8OLFD1UGRPX7HOHIRQ$GUHVHPDLO` =HVSöï1D]ZD2SLQLD`
6. Określ klucze podstawowe. 7. Połącz tabele. Ostatnim zadaniem jest określenie relacji łączących poszczególne obiekty: a) Każda płyta należy do jednego, określonego gatunku, ale do tego samego gatunku może należeć dowolna liczba płyt (związek typu wiele do jednego).
131
132
Tabele słownikowe
b) Każda płyta może być nagrana przez dowolną liczbę zespołów, a każdy zespół może nagrać dowolną liczbę płyt (związek typu wiele do wielu, który zaimplementujemy za pomocą pola wielowartościowego). c) Ta sama osoba może (jednocześnie) pożyczyć dowolną liczbę płyt, w dodatku skoro możemy mieć kilka egzemplarzy tej samej płyty, to tę samą płytę może pożyczyć kilka osób. O samym fakcie pożyczenia płyty też warto wiedzieć kilka rzeczy, np. kiedy płyta została pożyczona oraz kiedy i w jakim stanie oddana (związek typu wiele do wielu zaimplementowany za pomocą tabeli łącznikowej). 8. W ten sposób określiliśmy budowę tabel przykładowej bazy danych (punkty 1 – 6) oraz łączące je relacje (punkt 7.). Wykonując pozostałe ćwiczenia z tego rozdziału, utworzymy tabele bazy Płytoteka oraz łączące je relacje.
Tabele słownikowe Kolejność tworzenia tabel nie jest dowolna. Jako pierwsze należy utworzyć tabele słownikowe, potem kolejno tabele podrzędne i jako ostatnie — tabele nadrzędne (tabelą nadrzędną przykładowej bazy danych jest tabela Płyta). Aby utworzyć tabelę słownikową Gatunek: 1. Uruchom nowy projekt bazy danych programu Access i nazwij go Rozdział6b. 2. Korzystając przede wszystkim z umiejętności zdobytych w poprzednich rozdziałach, a także z planu bazy danych, znajdującego się we wcześniejszym ćwiczeniu, utwórz tabelę słownikową Gatunek: a) Pierwszą kolumną tej tabeli będzie kolumna IdGatunku (będąca kluczem podstawowym) typu Autonumerowanie. b) Drugą kolumną będzie Nazwa typu Tekst o maksymalnej długości pola 30 znaków, wartości atrybutu Wymagane — Tak, Zerowa dł. dozwolona — Nie i wartości atrybutu Indeksowane — Tak (Bez duplikatów). W tabelach słownikowych nie powinno się kilkakrotnie zapisywać nazw tych samych gatunków muzycznych. Nie powinniśmy również pozwolić użytkownikom na zapisywanie w nich gatunków muzycznych bez nazwy. 3. Zapisz tabelę pod nazwą Gatunek. 4. Drugą tabelą słownikową bazy danych Płytoteka jest tabela Typ. Utwórz tę nową tabelę w widoku projektu i dodaj do niej dwie kolumny:
Tabele podrzędne
i
Tabela Nośnik jest zbudowana podobnie jak tabela Gatunek, dlatego zamiast tworzyć nową tabelę w widoku projektu, możemy skopiować tabelę Gatunek i zapisać ją pod nazwą Nośnik, a następnie wprowadzić wymagane zmiany. Ćwiczenia poświęcone kopiowaniu i modyfikowaniu tabel znajdują się w rozdziale 4.
a) Pierwszą kolumną tabeli będzie kolumna IdNośnika (będąca kluczem podstawowym) typu Autonumerowanie. b) Drugą kolumną będzie Nazwa typu Tekst o maksymalnej długości pola 25 znaków, wartości atrybutu Wymagane — Tak, Zerowa dł. dozwolona — Nie i wartości atrybutu Indeksowane — Tak (Bez duplikatów). 5. Zapisz tabelę pod nazwą Nośnik.
Tabele podrzędne Po zbudowaniu tabel słownikowych kolej na utworzenie wszystkich tabel podrzędnych. Ponieważ w bazie danych Płytoteka tabele podrzędne nie będą zawierać kolumn odwołujących się do innych tabel (nie ma ani jednej tabeli, która będąc podrzędną w stosunku do jednej tabeli, jednocześnie byłaby nadrzędną w stosunku do innej), ich tworzenie nie różni się zasadniczo od tworzenia tabel słownikowych. 1. Utwórz tabelę podrzędną Zespół składającą się z trzech kolumn: a) Pierwszą kolumną tabeli będzie IdZespołu, typ Autonumerowanie, klucz podstawowy. b) Druga to Nazwa, typ Tekst, wartości atrybutu Wymagane — Tak i wartości atrybutu Indeksowane — Tak (Duplikaty OK). c) Trzecia to Opinia, typ Nota. 2. Zapisz tabelę pod nazwą Zespół. 3. Utwórz tabelę podrzędną Osoba: a) Pierwszą kolumną będzie IdOsoby, typ Autonumerowanie, klucz podstawowy. b) Druga to Imię, typ Tekst, Rozmiar pola — 15, Wymagane — Tak, Indeksowane — Tak (Duplikaty OK). c) Trzecia to Nazwisko, typ Tekst, Rozmiar pola — 20, Wymagane — Tak, Indeksowane — Tak (Duplikaty OK). d) Czwarta to Ulica, typ Tekst.
133
134
b d f
Tabela nadrzędna
a c e
e) Piąta to Telefon, typ Tekst, Rozmiar pola — 7 (chociaż w tym rozdziale nie zajmujemy się konfigurowaniem tabel i ich kolumn, dla przypomnienia ustaw też maskę wprowadzania na predefiniowaną maskę Numer telefonu). f) Szósta to Email, typ Tekst, Rozmiar pola — 30.
4. Zapisz tabelę pod nazwą Osoba.
Tabela nadrzędna Na tym etapie tworzenia baza danych Płytoteka zawiera cztery niepowiązane ze sobą tabele. Nadszedł czas, aby zamienić te niezwiązane ze sobą obiekty w relacyjną bazę danych, która będzie przechowywać informacje o poszczególnych płytach, czyli połączyć tabele relacjami. Ponieważ tabela Płyta będzie zawierać kolumny wskazujące na dane zapisane w pozostałych tabelach, jej utworzenie wymaga zbudowania relacji łączących odpowiednie tabele. 1. Otwórz nową tabelę w widoku projektu. 2. Pierwszą kolumną tabeli będzie IdPłyty typu Autonumerowanie. Ta kolumna będzie pełniła funkcję klucza podstawowego tabeli. 3. Drugą kolumną będzie kolumna odnośnika, łącząca tabelę Płyta z tabelą Gatunek. Kolumny tego typu tworzyliśmy, ustawiając kursor w polu Typ danych pustego wiersza i wybierając Kreator odnośników… z listy typów danych. a) Ponieważ chcemy połączyć tabelę Płyta z tabelą Gatunek, w odpowiedzi na pierwsze pytanie kreatora wybierz opcję Obiekt pole odnośnika ma pobierać wartości z tabeli lub kwerendy. b) Na liście dostępnych tabel zaznacz tabelę Gatunek i kliknij przycisk Dalej.
Tabela nadrzędna
c) Zostanie wyświetlona lista kolumn tabeli Gatunek. Wiemy już, że chociaż tabele zawsze powinny być łączone za pomocą kluczy podstawowych (w tym przypadku będą to wartości pól kolumny IdGatunku), to identyfikatory poszczególnych gatunków są mało opisowe (administrator musiałby zapamiętać, że np. identyfikatorem gatunku Jazz jest liczba 12, a Rock — liczba 3). SZBD Access ułatwia jednak przeglądanie i modyfikowanie danych w połączonych tabelach dzięki temu, że wyświetlane identyfikatory automatycznie zastępuje związanymi z nimi wartościami pól innej kolumny danej tabeli. Zamiast np. wpisywać liczbę 3 w oknie widoku arkusza danych tabeli, będziemy mogli wybrać nazwę gatunku. Aby to osiągnąć, zaznacz oba pola tabeli Gatunek i kliknij przycisk Dalej. d) Aby ułatwić administratorowi przypisywanie poszczególnych płyt do gatunków, posortuj je alfabetycznie według nazw. e) Odpowiadając na kolejne pytanie, upewnij się, że pole wyboru Ukryj kolumnę klucza (zalecane) jest zaznaczone, i kliknij przycisk Dalej. W ten sposób gatunki będą wybierane wyłącznie na podstawie ich nazwy. f) Ostatnie pytanie kreatora będzie dotyczyło nazwy tworzonej kolumny i sprawdzania integralności danych. Wpisz nazwę *DWXQHN, zaznacz pole wyboru Włącz integralność danych i kliknij przycisk Zakończ. 4. Po zakończeniu pracy kreatora odnośników konieczne będzie zapisanie tabeli nadrzędnej. Zapisz ją pod nazwą Płyta. 5. W ten sam sposób, w jaki połączyliśmy tabele Płyta i Gatunek, połączymy tabelę nadrzędną z tabelą Nośnik. Jedynie odpowiadając na drugie pytanie kreatora, wskażemy na tabelę Nośnik, a nie na tabelę Gatunek i zmienimy nazwę kolumny na Nośnik. 6. Tabela Zespół jest ostatnią tabelą połączoną z tabelą Płyta za pomocą związku typu jeden do wielu. Jej tworzenie będzie przebiegało tak samo jak w dwóch poprzednich przypadkach, z tym, że wybierając tabelę powiązaną, wskażesz na tabelę Zespół, z listy dostępnych kolumn wybierzesz IdZespołu oraz Nazwa, nazwę kolumny zmienisz na Zespoły i zaznaczysz pole wyboru Zezwalaj na wiele wartości (w ten sposób poznamy w praktyce możliwość łączenia tabel za pomocą pól wielowartościowych). 7. Następnie utwórz pozostałe kolumny tabeli: a) Tytuł typu Tekst, Wymagane — Tak, Indeksowane — Tak (Duplikaty OK), b) Cena typu Walutowy, wartość domyślna — brak (należy skasować domyślną wartość kolumny), c) DataWydania, typ — Data/Godzina, Format — Data krótka, Maska wprowadzania — Data krótka,
135
136
Tabela łącznikowa
d) CzasTrwania, typ — Liczba, Rozmiar pola — Dziesiętne, Skala — 2, wartość domyślna — brak (należy skasować domyślną wartość kolumny), Reguła sprawdzania poprawności — >=0 And <=360, Tekst reguły sprawdzania — Dane spoza dopuszczalnego zakresu, e) Okładka typu Obiekt OLE oraz Uwagi, typ — Nota. 8. Zapisz wprowadzone zmiany i zamknij okno tabeli.
3 6
2
8
5 7a
7b
7c 7d
Tabela łącznikowa Skoro ta sama osoba może pożyczyć wiele różnych płyt, a jedna płyta może być pożyczona przez kilka osób, to pomiędzy tabelami Płyta i Osoba zachodzi związek typu wiele do wielu. Wprowadzenie tego typu związku wymaga utworzenia dodatkowej tabeli łącznikowej, w której przechowywane będą wartości kluczy podstawowych obu tabel. W ten sposób jedna relacja typu wiele do wielu zostanie zastąpiona dwiema równorzędnymi relacjami typu wiele do jednego. Dodatkowo, w tabeli łącznikowej Pożyczka będziemy zapisywać informacje dotyczące faktu pożyczenia danej płyty przez konkretną osobę. Aby utworzyć tabelę łącznikową: 1. Należy otworzyć nową tabelę w widoku projektu. 2. Pierwszą kolumną tabeli będzie odnośnik łączący ją z tabelą Płyta (tak jak poprzednio, tabele powinny być powiązane na podstawie wartości klucza podstawowego tabeli, czyli kolumny IdPłyty, ale wyświetlane powinny być tytuły płyt uporządkowane alfabetycznie). Kończąc pracę kreatora odnośników, włącz integralność danych i zmień nazwę kolumny na Płyta.
Tabela łącznikowa
3. Po zakończeniu pracy kreatora odnośników należy zapisać nowo tworzoną tabelę pod nazwą Pożyczka. W odpowiedzi na ostrzeżenie o braku zdefiniowanego klucza podstawowego kliknij przycisk Nie. Tabela łącznikowa przechowująca wyłącznie wartości kluczy podstawowych powiązanych tabel nie wymaga dodatkowej kolumny klucza podstawowego. W dalszej części ćwiczenia utworzymy dla tej tabeli kompozytowy (złożony z kilku kolumn) klucz podstawowy. 4. Za pomocą kreatora odnośników utwórz relację łączącą nowo tworzoną tabelę z tabelą Osoba (tak jak poprzednio, tabele powinny być powiązane na podstawie wartości klucza podstawowego tabeli podrzędnej, ale wyświetlane powinny być nazwiska ułożone alfabetycznie). Pamiętaj o zmianie nazwy kolumny na Osoba. 5. Dodaj kolumny DataPożyczki i DataZwrotu typu Data/Czas. 6. Jako ostatnią kolumnę tabeli dodaj kolumnę Uwagi typu Tekst. 7. Zaznacz dwie pierwsze kolumny tabeli i kliknij ikonę klucza podstawowego. W ten sposób niepowtarzalna kombinacja identyfikatora płyty i identyfikatora osoby będzie używana jako klucz podstawowy tabeli Pożyczka. 8. Zamknij okno projektu tabeli Pożyczka i zapisz wprowadzone zmiany. Po utworzeniu tabel powinniśmy uporządkować diagram łączących je relacji — w terminologii bazodanowej nazywa się on diagramem E/R (Encja/Relacja): 1. Przejdź do zakładki NARZĘDZIA BAZY DANYCH i kliknij ikonę Relacje. 2. Kliknij prawym przyciskiem myszy wolny obszar okna relacji i z menu kontekstowego wybierz opcję Pokaż wszystko. Wyświetlone zostaną wszystkie połączone tabele bazy danych Płytoteka. 3. Ukryj tabele systemowe. 4. Sprawdź, czy widoczne są wszystkie utworzone w poprzednich punktach tabele (powinno być ich sześć) i czy są one połączone w ten sam sposób jak na rysunku. 5. Jeżeli jedna z tabel nie została wyświetlona, musiałeś niedokładnie wykonać trzy poprzednie ćwiczenia. Aby usunąć błędnie utworzoną relację, powinieneś zapoznać się z podrozdziałem „Usuwanie relacji”, który znajduje się w dalszej części tego rozdziału. 6. Jeżeli przy niektórych relacjach nie widać symboli ich typu, to oznacza, że nie zostało dla nich włączone sprawdzanie integralności danych. Ten problem rozwiążemy w dalszej części rozdziału.
137
138
Korzystanie z tabeli łącznikowej
i
Właśnie doprowadzamy naszą bazę danych do trzeciej postaci normalnej (a nawet do postaci Boyce’a-Codda). Aby tabela była w tej postaci, musi spełniać wymagania pierwszej i drugiej postaci normalnej, a dodatkowo pomiędzy kolumnami tabeli nie mogą występować przechodnie zależności funkcyjne (czyli wartości wszystkich kolumn muszą zależeć wyłącznie od wartości jej klucza podstawowego). W praktyce relacyjne bazy danych normalizuje się właśnie do tej postaci.
7. Zamknij okno relacji.
7
4
Korzystanie z tabeli łącznikowej Dzięki tabeli łącznikowej Pożyczka w bazie danych możliwe jest przechowywanie informacji o tym, które osoby i kiedy pożyczyły oraz oddały określone płyty. Nie ma żadnych ograniczeń związanych z liczbą płyt, które pożyczyła jedna osoba, ani z liczbą osób, które pożyczyły tę samą płytę. Aby powiązać dane o płytach z danymi o osobach (przed wpisaniem danych do tabeli łącznikowej należy wpisać przykładowe dane do tabel Płyta i Osoba): 1. W widoku arkusza danych otwórz tabelę Pożyczka. 2. Ustaw kursor w polu kolumny Płyta i z listy tytułów wybierz przykładowy tytuł płyty. 3. Ustaw kursor w polu Osoba i z listy osób wybierz nazwisko tej, która pożyczyła tę płytę.
Korzystanie z tabeli łącznikowej
4. Zapisz również datę pożyczki — w ten sposób wpisałeś do tabeli łącznikowej pierwszy wiersz. 5. W ten sam sposób przypisz do pozostałych płyt informacje o pożyczających. Zwróć uwagę, że dzięki użyciu tabeli łącznikowej możliwe jest: a) pożyczenie tej samej płyty przez wiele osób, b) pożyczenie przez tę samą osobę wielu różnych płyt, c) zapisanie dodatkowych informacji (dat) opisujących pożyczkę, a nie pożyczoną płytę czy pożyczającą osobę. 6. Aby na tym etapie budowania bazy danych zapoznać się z najważniejszymi informacjami o płycie i o osobie, która ją pożyczyła (np. jej tytuł, datę pożyczki, dane osoby, która ją pożyczyła), musimy na ekranie jednocześnie wyświetlić zawartość aż trzech tabel: Płyta, Pożyczka i Osoba.
6
7. Zwróć jednak uwagę, że w widoku arkusza danych nadrzędnych tabel z lewej strony wierszy znajduje się znak +. Jego kliknięcie spowoduje wyświetlanie wierszy tabeli podrzędnej powiązanych z danym rekordem. 8. Jednoczesne wyświetlenie zawartości wszystkich połączonych tabel w celu odczytania niektórych zapisanych w nich danych dotyczących pożyczonej płyty (w tym przypadku płyty Help!), tak samo jak wyszukiwanie wierszy przechowujących te same wartości w kolumnach odnośników, jest uciążliwe i niepraktyczne. Rozwiązanie tego problemu znajdziemy w następnym rozdziale, gdzie zostały zaprezentowane kolejne obiekty bazy danych — kwerendy. Pozwalają one na wyświetlenie jedynie części informacji przechowywanych w bazie.
139
140
Określamy więzy integralności danych zapisanych w połączonych tabelach
i
Charakterystyczną cechą relacyjnych baz danych jest przechowywanie informacji w wielu powiązanych ze sobą tabelach. Chociaż utrudnia to odczytywanie danych, to dzięki ograniczeniu do minimum (do odnośników, które w innych SZBD nazywają się kluczami obcymi) zapobiega błędom wynikającym z modyfikowania, usuwania i wstawiania danych. Tworząc bazę danych programu Access, pamiętaj, że informacje powinny być zapisane nie tam, gdzie chcielibyśmy, żeby były wyświetlane, tylko przy obiekcie, którego bezpośrednio dotyczą (a więc w kolumnach odpowiednich tabel).
Określamy więzy integralności danych zapisanych w połączonych tabelach Do tej pory połączyliśmy tabele bazy danych Płytoteka, dodając do niektórych z nich kolumny odnośników. W poszczególnych polach tych kolumn przechowywane są wartości kluczy podstawowych powiązanych tabel. Kolumnę, w której polach kolejno zapisuje się klucze podstawowe innej tabeli, nazywa się odnośnikiem lub kluczem obcym tabeli. Wiemy również, że SZBD Access ma możliwość automatycznego sprawdzania, czy w kolumnach klucza podstawowego i obcego połączonych tabel przechowywane są poprawne dane (czyli czy wartości kluczy obcych odpowiadają wartościom powiązanych kluczy podstawowych, np. czy płyta została pożyczona jednej z osób, których dane zapisane są w tabeli Osoba). Ten mechanizm sprawdzania poprawności danych nazywa się wymuszaniem więzów integralności i powinniśmy go odpowiednio skonfigurować, zanim do powiązanych tabel wpiszemy jakiekolwiek dane: 1. W zakładce NARZĘDZIA BAZY DANYCH kliknij ikonę Relacje. 2. Za pomocą techniki „przeciągnij i upuść” uporządkuj ikony tabel w taki sposób, aby linie obrazujące relacje nie krzyżowały się. Następnie dopasuj rozmiar ikon poszczególnych tabel, aby widoczne były wszystkie ich kolumny. 3. Jeżeli kończąc pracę kreatora odnośników, nie zaznaczyliśmy pola wyboru Włącz integralność danych, tabele nie odzwierciedlają jeszcze typów powiązań (wszystkie te powiązania powinny być typu jeden do wielu). Aby prawidłowo określić typ relacji i włączyć mechanizm automatycznego aktualizowania i usuwania wierszy w powiązanych tabelach: a) Kliknij prawym przyciskiem myszy linię łączącą tabele Płyta i Gatunek, a następnie z menu kontekstowego wybierz opcję Edytuj relację…. b) Zaznacz pole wyboru Wymuszaj więzy integralności — w ten sposób określony zostanie typ powiązania i SZBD Access będzie automatycznie sprawdzał, czy dane w połączonych tabelach są prawidłowe (np. czy użytkownik nie próbował przypisać płyty do gatunku, który nie istnieje w bazie).
Określamy więzy integralności danych zapisanych w połączonych tabelach
c) Zaznacz pole wyboru Kaskadowo aktualizuj pola pokrewne — w ten sposób zmiana wartości klucza podstawowego tabeli podrzędnej zostanie automatycznie uwzględniona w tabeli nadrzędnej (jeżeli ktoś zmieni identyfikator gatunku, np. rocka z 3 na 33, zmiana ta zostanie automatycznie przeprowadzona w tabeli Płyta, dzięki czemu te płyty, które wcześniej zostały zaklasyfikowane jako płyty rockowe, nadal nimi zostaną). d) Nie zaznaczaj pola wyboru Kaskadowo usuń rekordy pokrewne — zaznaczenie tego pola umożliwia bowiem skasowanie gatunku, do którego zostały zaklasyfikowane pewne płyty. W takim przypadku SZBD Access automatycznie skasuje z bazy informacje o wszystkich płytach usuwanego gatunku (np. jeżeli ktoś skasowałby wiersz z gatunkiem blues, automatycznie zostaną usunięte z tabeli Płyta wszystkie płyty zaklasyfikowane jako bluesowe). e) Kliknij przycisk OK. Linia łącząca tabele Płyta i Gatunek zostanie pogrubiona i, co najważniejsze, na jej końcach wyświetlone zostaną symbole 1 i . Obrazują one typ powiązania jeden do wielu (w tym przypadku dowolna liczba płyt może należeć do jednego gatunku, ale ta sama płyta nie może równocześnie zostać zaklasyfikowana jako należąca do różnych gatunków).
4e
4b 4c 4c
4. Powtórz czynności opisane w punktach od a) do e) dla relacji łączących tabele: a) Nośnik i Płyta, b) Zespół i Płyta.
141
142
Wprowadzanie przykładowych danych
5. W przypadku relacji łączących tabele Płyta, Pożyczka i Osoba należy dodatkowo (oprócz wymuszenia więzów integralności i kaskadowej aktualizacji powiązanych pól) umożliwić kaskadowe usuwanie rekordów tabeli łącznikowej. W tym celu: a) Dwukrotnie kliknij lewym przyciskiem myszy linię łączącą tabele Płyta i Pożyczka. b) Zaznacz pole wyboru Wymuszaj więzy integralności. c) Zaznacz pole wyboru Kaskadowo aktualizuj pola pokrewne. d) Zaznacz pole wyboru Kaskadowo usuń rekordy pokrewne — w tabeli łącznikowej zapisane są informacje o pożyczeniu danej płyty konkretnej osobie, zakładamy więc, że usuwając z bazy osobę lub płytę, chcemy jednocześnie usunąć ich historię wypożyczeń. e) Kliknij przycisk OK. 6. Powtórz opisane w punktach od a) do e) czynności dla relacji łączącej tabele Zespół i Pożyczka. 7. Zamknij okno relacji i zapisz wprowadzone zmiany. Wykonując ćwiczenia z pierwszych pięciu rozdziałów książki, utworzyliśmy w tym momencie własną bazę danych. Zapoznając się z kolejnymi rozdziałami książki, dowiemy się, jak ją uzupełnić: 1. Kwerendami pozwalającymi zautomatyzować operacje pobierania i modyfikowania danych. 2. Formularzami ułatwiającymi edycję i pobieranie danych. 3. Raportami prezentującymi dane. 4. Makrami automatycznie wykonującymi ciąg operacji.
Wprowadzanie przykładowych danych Po określeniu relacji łączących tabele, a także po skonfigurowaniu mechanizmu sprawdzania poprawności danych powinniśmy wpisać do utworzonej bazy kilka przykładowych informacji — tylko w ten sposób będziemy mogli ją przetestować. 1. Aby się przekonać, czy możliwe jest wpisanie płyt bez jednoczesnego określenia ich gatunków, nazw zespołów lub pożyczających je osób, wprowadź przykładowe tytuły, ceny i daty wydania kilku płyt.
Wprowadzanie przykładowych danych
2. Jak widać, mimo że tabela Płyta powiązana jest z innymi tabelami, możemy wpisywać niepełne informacje o płytach. Niemożliwe jest jedynie wpisanie do tabeli płyty bez podania jej tytułu.
2
i
Nie można dodawać nowych rekordów do tabel podrzędnych w widoku arkusza danych tabeli nadrzędnej. Aby np. dodać nowy gatunek, należy otworzyć tabelę Gatunek, a nie Płyta.
3. Sprawdź, czy w polach odnośników (kolumnach kluczy obcych) możliwe jest wpisanie z klawiatury dowolnych danych. Wyświetlony komunikat o błędzie poinformuje, że operacja taka jest niedozwolona. W ten sposób SZBD Access automatycznie zapobiega naruszeniu integralności danych poprzez przypisanie płyty do nieistniejącego w powiązanych tabelach gatunku czy pożyczenie płyty nieznanej osobie. 3
4. Zamknij okno tabeli Płyta i w widoku arkusza danych otwórz tabelę Gatunek. Wpisz kilka przykładowych gatunków muzycznych. 5. Zamknij okno tabeli Gatunek i w widoku arkusza danych otwórz tabelę Nośnik. Wpisz nazwy kilku typów nośników. 6. Zamknij okno tabeli Nośnik i w widoku arkusza danych otwórz tabelę Osoba. Wpisz dane kilku znajomych osób. 7. Zamknij okno tabeli Osoba i w widoku arkusza danych otwórz tabelę Zespół. Wpisz nazwy kilku zespołów muzycznych. 8. Zamknij okno tabeli Zespół i w widoku arkusza danych raz jeszcze otwórz tabelę Płyta. Ustaw kursor w polu Gatunek na pierwszej z wpisanych płyt i kliknij strzałkę wyświetloną z prawej strony pola. Zostanie wyświetlona lista nazw wprowadzonych gatunków. 9. Ustaw kursor w polu Zespoły i przekonaj się, że każdą płytę można powiązać z dowolną liczbą zespołów. Uzupełnij informacje o płytach zapisanych w tabeli i zamknij okno tabeli Płyta.
143
144
Usuwanie relacji
Usuwanie relacji Czasami projektant czy administrator bazy danych musi usunąć relację łączącą dwie tabele. Usunięcie istniejącej relacji może okazać się konieczne w poniższych przypadkach. 1. Relacja została błędnie utworzona, np. połączone zostały nieodpowiednie tabele. 2. Odpowiadając na pytania kreatora, dotyczące wybieranych kolumn połączonej tabeli, popełniliśmy błąd i zapomnieliśmy o jednej z kolumn lub zaznaczyliśmy wszystkie kolumny tabeli. Chociaż SZBD Access umożliwia poprawienie tych błędów, zmiana istniejących relacji wymaga pewnej znajomości języka SQL, jeżeli więc baza nie została jeszcze udostępniona użytkownikom, prościej jest ją usunąć i utworzyć prawidłową relację. 3. Chcemy zmodyfikować lub usunąć kolumnę klucza obcego z powiązanej tabeli (odpowiedź na pytanie: „Dlaczego musimy usunąć relację przed zmodyfikowaniem połączonych tabel?” znajdziemy w kolejnym punkcie podrozdziału „Modyfikowanie połączonych tabel”). Aby usunąć relację łączącą dwie tabele: 1. W folderze Rozdział05\Starter otwórz bazę danych Rozdzial5c. 2. Wyświetl okno relacji tej bazy danych. 3. Zaznacz relację łączącą tabele Klasa i Uczeń. 4. Zaznaczoną relację możemy usunąć na trzy sposoby: a) klikając prawym przyciskiem myszy linię reprezentującą relację i wybierając z menu kontekstowego Usuń,
2
c
b) zaznaczając relację i naciskając klawisz Delete, c) zaznaczając relację i klikając przycisk Usuń.
3
a
Usuwanie relacji
5. Niezależnie od wybranej metody na ekranie zostanie wyświetlona prośba o potwierdzenie decyzji usunięcia relacji. Kliknij przycisk Tak. 6. Linia łącząca tabele Klasa i Uczeń zostanie usunięta. Zamknij okno relacji i zapisz wprowadzone zmiany. 7. Otwórz widok arkusza danych tabeli Klasa i dopisz nową nazwę klasy. 8. Zamknij okno tabeli Klasa i otwórz tabelę Uczeń. 9. Zwróć uwagę, że kolumna IdKlasy nie została skasowana. Co więcej, po kliknięciu strzałki znajdującej się z prawej strony pola możemy się przekonać, że nowo dodana klasa znajduje się na liście nazw klas, do których możemy przypisywać uczniów.
i
Chociaż kolumna odnośnika nie jest usuwana wraz z relacją, to po usunięciu relacji SZBD Access nie sprawdza już integralności danych w połączonych w ten sposób tabelach.
10. Wyświetl widok projektu tabeli Uczeń. 11. Ustaw kursor w polu Klasa i kliknij zakładkę Odnośnik. 12. Wartości poszczególnych atrybutów zostały ustalone przez Kreatora odnośników w trakcie tworzenia kolumny. Najważniejsze z nich to: a) Typ kontrolki — określa, w jaki sposób wyświetlane będą wartości pól powiązanej tabeli. Wybór domyślnej wartości (Pole kombi) spowoduje, że w prawym rogu pola znajdzie się strzałka. Po jej naciśnięciu będą wyświetlane pobierane dane.
a c
b d e
f
b) Typ źródła wierszy — wartość Tabela/ Kwerenda oznacza, że dane będą pobierane (bezpośrednio lub poprzez kwerendę) z innej tabeli. c) Źródło wierszy — wartość tego atrybutu jest instrukcją języka SQL, która pobiera wybrane dane połączonej tabeli.
145
146
Usuwanie relacji
d) Kolumna powiązana — wskazuje na numer zwracanej przez instrukcję języka SQL kolumny, za pośrednictwem której tabele są powiązane (1 oznacza, że niezależnie od wyświetlanych nazw lub nazwisk tabele są powiązane za pośrednictwem kolumny klucza podstawowego). e) Szerokość kolumn — oddzielone średnikami wartości oznaczają, jak szerokie będą poszczególne kolumny, gdy wyświetlimy je, rozwijając pole wyboru. Zmień szerokość pierwszej kolumny z 0 na 1 — w ten sposób „odkryjesz” wartości klucza podstawowego. f) Ogranicz do listy — ustawiony na Tak powoduje, że w tej kolumnie można zapisywać tylko dane wyświetlane w polu wyboru. Zmień wartość tego atrybutu na Nie. 13. W widoku danych wyświetl tabelę Uczeń. Sprawdź, jak teraz pokazywane są nazwy klas, i wpisz z klawiatury identyfikator nieistniejącej klasy. Ponieważ wyłączyliśmy sprawdzanie więzi integralności i zezwoliliśmy na wpisywanie w tej kolumnie dowolnych danych, Access nie zgłosi żadnego błędu. 14. Popraw błędne dane i raz jeszcze wyświetl widok projektu tabeli Uczeń. 15. Aby odtworzyć relację łączącą tabele Uczeń i Klasa, musisz ustawić kursor w polu Typ danych kolumny IdKlasy i uruchomić Kreator odnośników. W ten sposób wszystkie zmiany wprowadzone w poprzednich punktach zostaną usunięte. 16. Po odtworzeniu usuniętej relacji zapisz tabelę. Następnie zamknij okno projektu tabeli.
i
Utworzenie relacji będzie niemożliwe, jeżeli dane w łączonych tabelach będą niespójne. Na przykład jeżeli przypisaliśmy jakiegoś ucznia do nieistniejącej klasy, będziemy musieli poprawić jego dane przed odtworzeniem relacji łączącej tabele Uczeń i Klasa.
Modyfikowanie połączonych tabel
Modyfikowanie połączonych tabel Zasady modyfikowania tabel niepołączonych z innymi tabelami zostały przedstawione w rozdziale 4. Zasady te nie dotyczą jednak kolumn kluczy obcych, czyli kolumn odnośników zawierających dane wskazujące na wiersze połączonej tabeli. Musimy pamiętać, że przed usunięciem połączonych tabel czy zmodyfikowaniem kolumn odnośników powinniśmy usunąć łączące je relacje. Żeby się o tym przekonać: 1. Wyświetl projekt tabeli Szafka. 2. Spróbuj zmienić typ danych kolumny IDSzafki na Krótki tekst. 3. Wyświetlony komunikat o błędzie poinformuje, że zmiana typu kolumny odnośnika (klucza obcego) jest niemożliwa. Aby ją przeprowadzić, należy najpierw usunąć odpowiednią relację. 4. Kliknij przycisk OK. 3
5. Zaznacz i spróbuj usunąć kolumnę IdSzafki. 6. Ponownie zostanie wyświetlony komunikat o błędzie informujący, że usunięcie kolumny wchodzącej w skład jakiejkolwiek relacji jest niemożliwe bez wcześniejszego usunięcia tej relacji.
6
7. Kliknij przycisk OK i zamknij okno projektu tabeli Szafka. Zapamiętaj — modyfikowanie kolumn, które są częścią relacji, wymaga wcześniejszego usunięcia tej relacji.
147
148
Podsumowanie
Podsumowanie Po przeczytaniu bieżącego rozdziału i wykonaniu znajdujących się w nim ćwiczeń powinieneś samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi możesz mieć pewne kłopoty, mają Ci pomóc w poszerzeniu wiedzy z zakresu omawianej w rozdziale tematyki (odpowiedzi znajdują się w dodatku A). 1. Co to jest kolumna odnośnika i czy może być nią każda kolumna? 2. Jak posortować dane alfabetycznie i czy możemy to zrobić w trakcie tworzenia tabeli? 3. W poprzednich wersjach programu Access należało usuwać wartości domyślne kolumn odnośników. W jakiej sytuacji powinniśmy je zachować? 4. Kiedy przy tworzeniu bazy danych nie powinniśmy korzystać z możliwości łączenia tabel za pomocą pola wielowartościowego, jaką daje Access 2013? 5. Czy aby pozbyć się niepotrzebnej tabeli, musimy usunąć wszystkie utworzone przez nas relacje czy tylko te, które odnoszą się do usuwanej tabeli?
ľ'RF]HJRVïXĝÈNZHUHQG\"ľ3RELHUDQLH ZV]\VWNLFKGDQ\FK]WDEHOLľ:\ELHUDQLHNROXPQ ]WDEHOLľ7ZRU]HQLHZ\UDĝHñľ3RU]ÈGNRZDQLH SREUDQ\FKGDQ\FKľ6RUWRZDQLHGDQ\FKľ 2JUDQLF]DQLHOLF]E\]ZUDFDQ\FKZLHUV]\ľ :\V]XNLZDQLHGXSOLNDWöZľ:\ELHUDQLHGDQ\FKQD SRGVWDZLHSURVWHJRZDUXQNXORJLF]QHJRľ2SHUDWRU\ SRUöZQDQLDľ:\ELHUDQLHGDQ\FKQDSRGVWDZLH ]ïRĝRQHJRZDUXQNXORJLF]QHJRľ=ZUDFDQLH GDQ\FK]GZöFKSRïÈF]RQ\FKWDEHO]DSRPRFÈ NUHDWRUDľ=ZUDFDQLHGDQ\FK]ZLHOXSRïÈF]RQ\FK WDEHOľ=ZUDFDQLHGDQ\FK]WDEHOSRïÈF]RQ\FK ]DSRĂUHGQLFWZHPSöOZLHORZDUWRĂFLRZ\FKľ 8Z]JOÚGQLDQLHQLHSDVXMÈF\FKZLHUV]\]SRïÈF]RQ\FK WDEHOľ'RGDZDQLHSRGVXPRZDñľ=OLF]DQLH GDQ\FKľ*UXSRZDQLHGDQ\FKľ.ZHUHQG\NU]\ĝRZH ľ8VXZDQLHZ\EUDQ\FKGDQ\FKľ'RGDZDQLH GDQ\FKľ0RG\ğNRZDQLHZ\EUDQ\FKGDQ\FKľ 3RGVXPRZDQLH
6
Kwerendy, czyli jak zautomatyzować pracę z danymi Do czego służą kwerendy? Podzielenie danych zapisanych w bazie między odpowiednie tabele wyeliminowało ich nadmiarowość, ale utrudniło użytkownikom pobieranie interesujących ich w danym momencie informacji. Aby np. odczytać nazwę zespołu i tytuły nagranych przez niego płyt, trzeba odwołać się do co najmniej dwóch powiązanych ze sobą tabel. Modyfikowanie, wstawianie i usuwanie danych również powoduje pewne komplikacje, np. usunięcie rekordu z tabeli podrzędnej, jeżeli jego klucz podstawowy występuje choć raz w tabeli nadrzędnej, może okazać się niemożliwe — taka sytuacja wystąpi podczas próby usunięcia danych o firmie, w której kupiliśmy już pewną liczbę towarów. Konieczne jest więc zapoznanie się z kolejnymi typami obiektów bazy danych programu Access, czyli kwerendami. Pozwalają one na zautomatyzowanie operacji pobierania i modyfikowania informacji zapisanych w tabelach. Wszystkie systemy zarządzania relacyjnymi bazami danych (w tym Access) umożliwiają dokonywanie tych operacji za pomocą instrukcji strukturalnego języka zapytań (języka SQL). Kwerendy są
150
Do czego służą kwerendy?
instrukcjami tego języka zapisanymi w bazie danych (w innych SZBD nazywają się one widokami). Wyjątkową cechą programu Access jest to, że nieznajomość języka programowania relacyjnych baz danych (języka SQL) nie jest przeszkodą w tworzeniu i modyfikowaniu kwerend, gdyż pomagają nam w tym narzędzia graficzne. W zależności od rodzaju wykonywanych przez kwerendy operacji dzieli się je na: 1. Kwerendy pobierające dane (instrukcje SELECT języka SQL). Najczęściej wykorzystywaną i najbardziej rozbudowaną instrukcją języka SQL jest właśnie instrukcja SELECT, której w SZBD Access odpowiadają kwerendy wybierające dane (jest to typ domyślny nowo tworzonych kwerend). Kwerendy tego typu pobierają, przekształcają i porządkują dane zapisane w tabelach. Umożliwiają również wyliczanie — na podstawie przechowywanych w tabelach informacji — danych pochodnych (np. na podstawie ceny towaru SZBD Access może wyliczyć wartość podatku VAT). 2. Kwerendy krzyżowe (instrukcje SELECT języka SQL uzupełnione o charakterystyczną dla SZBD Access funkcję TRANSFORM). Kwerendy tego typu służą do wykonywania obliczeń i jednoczesnej zmiany struktury danych w celu ich łatwiejszej analizy. Kwerendy krzyżowe obliczają sumę, średnią, zliczają dane lub przeprowadzają inne rodzaje podsumowań dla danych zgrupowanych wzdłuż lewej i wzdłuż górnej krawędzi arkusza danych. Kwerendy tego typu wyświetlają te same informacje co kwerendy wybierające, które wykonują analogiczne obliczenia, ale dzięki przekształcaniu wierszy na kolumny mają one czytelniejsze (i znacznie krótsze) wyniki. Odpowiednikiem kwerend krzyżowych jest klauzula PIVOT języka SQL. 3. Kwerendy tworzące tabele (instrukcje SELECT INTO języka SQL). Czasami (najczęściej do celów diagnostycznych lub na potrzeby wykonania kopii wybranych danych) programowo tworzy się nowe tabele bazy danych zawierające kopie informacji zapisanych w innych tabelach. Zadania te realizują kwerendy tworzące tabele. 4. Kwerendy aktualizujące istniejące dane (instrukcje UPDATE języka SQL). Kwerendy tego typu pozwalają na automatyczną zmianę danych zapisanych w tabelach. Z reguły są one wykorzystywane do zmiany wartości wybranych rekordów, np. przecenienia towarów należących do określonej grupy towarowej. 5. Kwerendy dołączające dane (instrukcje INSERT INTO języka SQL). Kwerendy dołączające służą do dodawania grupy rekordów, które pochodzą z jednej lub kilku tabel, na końcu innej tabeli (lub tabel). W praktyce kwerendy tego typu wykorzystywane są podczas importowania danych lub w celu dopisania do wybranej tabeli rekordów spełniających podane kryteria, np. danych klientów, których zadłużenie przekroczyło określony próg. Podstawowa różnica
Pobieranie wszystkich danych z tabeli
pomiędzy kwerendami tego typu a kwerendami tworzącymi tabele polega na tym, że kwerendy dołączające dopisują dane do istniejącej już tabeli, tak więc tabela docelowa musi być wcześniej utworzona. Natomiast wielokrotne próby uruchomienia kwerendy tworzącej tabele za każdym razem spowodują usunięcie i ponowne utworzenie tabeli o podanej nazwie. 6. Kwerendy usuwające istniejące dane (instrukcje DELETE języka SQL). Kwerendy tego typu wykorzystywane są do usuwania wierszy z jednej lub kilku tabel. W praktyce kwerendy tego typu wykorzystywane są do automatycznego usuwania rekordów spełniających podane kryteria, np. towarów, których nie ma już w ofercie firmy.
i
Kwerendy pobierające dane nie przechowują kopii zapisanych w tabelach danych. Pełnią jedynie funkcję perspektywy, swego rodzaju widoków, które ułatwiają użytkownikowi znalezienie i odczytanie informacji. Jeżeli więc dane w tabeli zostaną zmodyfikowane, to zmiana ta będzie automatycznie widoczna poprzez wszystkie powiązane z tą tabelą kwerendy.
Pobieranie wszystkich danych z tabeli Kwerenda, która odczytuje wszystkie dane zapisane w jednej tabeli, jest najprostszą z kwerend. Zwracane przez nią dane są identyczne z danymi zapisanymi w tabeli źródłowej. W praktyce rzadko tworzy się tego typu kwerendy wybierające, ale my zaczniemy od najprostszego przykładu: 1. Otwórz plik Rozdział06\Starter\Rozdział6 zawierający utworzoną w poprzednim rozdziale bazę Płytoteka (ta baza zawiera dodatkową tabelę DoZałatwienia). 2. Przejdź do zakładki TWORZENIE. 3. Kliknij widoczną z prawej strony wstążki ikonę Kreator kwerend, a następnie z listy dostępnych kreatorów wybierz domyślnie zaznaczoną opcję Kreator prostych kwerend. 4. Z listy rozwijanej Tabele/Kwerendy wybierz tabelę źródłową (tabelę, w której znajdują się pobierane przez kwerendę dane). W tym przypadku będzie to tabela Nośnik. 5. Z listy dostępnych pól wybierz kolumny IdNośnika i Nazwa.
i
Klikając przycisk >>, możemy od razu dodać do kwerendy wszystkie kolumny tabeli.
151
152
Pobieranie wszystkich danych z tabeli
6. Kliknij przycisk Dalej.
4 5 6
7
8
7. Podaj nazwę nowej kwerendy (N1RĂQLN). 8. Zakończ pracę kreatora, otwierając okno widoku arkusza danych kwerendy.
9. Na ekranie zostanie wyświetlona lista typów nośników i ich identyfikatorów. Dopisz nazwę nowego typu nośnika.
i
Zwróć uwagę, że wbrew swojej nazwie proste kwerendy wybierające dane pozwalają również na dopisywanie, usuwanie i modyfikowanie zapisanych w tabelach danych.
10. Zamknij okno kwerendy i wyświetl zawartość tabeli Nośnik. Przekonaj się, czy dopisany rekord znajduje się w tej tabeli.
Wybieranie kolumn z tabeli
Wybieranie kolumn z tabeli Użytkownika bazy danych stosunkowo rzadko interesują wszystkie zapisane w tabeli informacje. Jeżeli np. w danym momencie chce się dowiedzieć, jaka jest cena danej płyty, to informacje dotyczące czasu jej trwania będą dla niego raczej zbędne. Istotny natomiast będzie tytuł płyty i jej cena. Dlatego zdecydowana większość kwerend zwraca tylko wybrane kolumny tabel. Aby zapoznać się z tego typu kwerendami: 1. Za pomocą kreatora prostych kwerend utwórz nową kwerendę. 2. Jako źródłową wybierz tabelę Płyta. 3. Z listy wszystkich kolumn tabeli wybierz Tytuł i Cena.
2 3
4. Kliknij przycisk Dalej.
4
5. Ponieważ kolumna Cena jest typu liczbowego, kreator pozwoli wybrać pomiędzy kwerendą, która zwróci tytuły i ceny wszystkich płyt, a kwerendą, która dodatkowo będzie zawierała podsumowania, np. sumę cen wszystkich płyt lub średnią cenę kupionych płyt. Nie zmieniając domyślnej opcji Szczegółowa, kliknij Dalej. 6. Zmień domyślną nazwę kwerendy na N3ï\WD i zakończ pracę kreatora, otwierając okno widoku arkusza danych kwerendy. 7. Na ekranie zostanie wyświetlona lista tytułów płyt i ich ceny. Brak ceny świadczy o tym, że nie wyceniliśmy jeszcze danej płyty. 8. Przekonaj się, że tym razem również możliwe jest modyfikowanie za pośrednictwem kwerendy danych zapisanych w tabeli. Możemy np. zapisać informację o tym, że płyta Vrooom jest warta 99,9 zł. 9. Zamknij okno kwerendy.
153
154
Tworzenie wyrażeń
Tworzenie wyrażeń Na podstawie przechowywanych w bazie danych SZBD może wyliczyć dane pochodne. Dane te mogą być wyliczone na podstawie informacji zapisanych albo w pojedynczych polach (np. zaokrąglony do kwadransów czas trwania płyt, ostatnia litera nazwy zespołu), albo w kilku (np. kompletny adres osoby, na który składa się informacja o mieście, ulicy i numerze mieszkania).
i
Ponieważ kreator kwerend nie umożliwia m.in. tworzenia wyrażeń, prawie wszystkie pozostałe kwerendy będziemy tworzyli tak jak tabelę, czyli w widoku projektu.
Aby utworzyć kwerendę zawierającą proste wyrażenia: 1. Przejdź do zakładki TWORZENIE i kliknij ikonę Projekt kwerendy. 2. Na ekranie zostanie wyświetlone okno dialogowe Pokazywanie tabeli. 3. Zwróć uwagę, że kwerendy mogą pobierać dane zarówno z tabel, jak i z innych kwerend. My jednak wybierzemy dane bezpośrednio z tabeli. 4. Zaznacz tabelę Płyta. 3
5. Kliknij przycisk Dodaj. 6. Ponieważ nasza kwerenda będzie pobierać dane tylko z jednej tabeli, zamknij okno dialogowe Pokazywanie tabeli.
4 5
6
7. Okno projektu kwerendy podzielone jest na dwie części: a) W górnej widzimy tabele, z których kwerenda będzie pobierała dane. b) Tabela zajmująca dolną część okna pozwala na wybranie danych zwracanych przez kwerendę.
Tworzenie wyrażeń
8. Dodać kolumnę do kwerendy możemy na dwa sposoby:
8a 7a
a) dwukrotnie klikając nazwę wybranej kolumny,
8b
b) rozwijając listę dostępnych pól tabeli źródłowej i wybierając interesującą nas kolumnę.
9. Dodaj do kwerendy kolumnę Tytuł. 10. Zwróć uwagę, że po wybraniu kolumny w polu Tabela: automatycznie zostanie wpisana nazwa tabeli bazowej.
11
11. Aby się przekonać, jakie dane zwróci kwerenda, musimy ją uruchomić kliknięciem ikony Uruchom. 9 10
12. Zgodnie z oczekiwaniami kwerenda zwróciła tytuły wszystkich płyt zapisanych w tabeli Płyta. 13
13. Wyświetl widok projektu kwerendy.
12
155
156
Tworzenie wyrażeń
14. Dodaj do kwerendy kolumnę Cena.
14
15
15. Trzecia kolumna kwerendy będzie zwracała zaokrągloną do liczb całkowitych cenę zakupu płyty. W tym celu w kolejnym polu wpisz &,QW&HQD 1.
16. Zwróć uwagę, że przed nazwą funkcji SZBD Access dopisał Wyr1. Stało się tak dlatego, że w tabeli źródłowej nie było kolumny przechowującej takie dane. Konieczne więc było stworzenie nazwy dla kolumny kwerendy, która będzie zwracała zaokrągloną cenę płyt — tą nazwą jest właśnie Wyr1. 17. Po uruchomieniu kwerendy przeanalizuj zwracane przez nią dane. 18. Zwróć uwagę, że ponieważ niemożliwe jest zamienienie na liczbę całkowitą wartości nieznanej lub nieistniejącej dla płyt, których cen nie znaliśmy, funkcja CInt zwróciła błąd. Ponadto nazwą trzeciej kolumny kwerendy jest nic nam niemówiące Wyr1. Aby wyeliminować oba te problemy: a) Ponownie wyświetl widok projektu kwerendy. b) Zmień nazwę ostatniej kolumny kwerendy z Wyr1 na =DRNUÈJORQDFHQD. c) Dodaj do wyrażenia funkcję IIf) Pozwala ona określić warunek, pod którym nasze oryginalne wyrażenie będzie obliczone2 — jeżeli cena będzie nieokreślona, wyrażenie w tym wypadku zwróci 0: =DRNUÈJORQDFHQD ,,I>&HQD@,V1XOO&,QW>&HQD@ . 19. Kolejna kolumna kwerendy będzie zwracała czas trwania płyty zaokrąglony do kwadransów. Aby to osiągnąć: a) Dodaj kolumnę pobierającą dane z kolumny CzasTrwania. b) Skoro czas trwania ma być wyrażony w kwadransach, to do nazwy kolumny dopiszmy /15. 1
2
Funkcja CInt konwertuje dane przekazane jako argument jej wywołania na liczby całkowite (dane typu ,QWHJHU). Funkcja IIF zwraca wartość drugiego argumentu w przypadku, gdy pierwszy argument jest prawdą, w przeciwnym razie zwraca ona wartość trzeciego argumentu. Poszczególne argumenty oddziela się średnikami.
Porządkowanie pobranych danych
c) Skoro dane mają być zaokrąglane, wyrażenie &]DV7UZDQLD powinno być argumentem wywołania funkcji CInt. 18
19
d) Zmień nazwę kolumny Wyr1 na .ZDGUDQVH i dodaj tę samą obsługę wartości NULL co dla poprzedniego wyrażenia.
20. Na końcu zmień pierwszą kolumnę kwerendy, tak aby zwracała nie tylko tytuł, ale również uwagi o płycie: a) Ustaw kursor w polu Tytuł. b) Dopisz do nazwy kolumny następujące wyrażenie ĵĽĵ 8ZDJL.
i
Znak & jest operatorem łączenia ciągów znaków (konkatenacji).
c) Wyrażenie to można odczytać następująco: do tytułu płyty należy dołączyć ciąg znaków ” — ”, a następnie do otrzymanego ciągu zawartość pola kolumny Uwagi. d) Zmień nazwę kolumny z Wyr1: na 3ï\WD. 21. Uruchom kwerendę i sprawdź, czy zwraca ona prawidłowe dane. 22. Zamknij okno kwerendy i zapisz ją pod nazwą N:\UDĝHQLD.
Porządkowanie pobranych danych Zwracane przez kwerendy dane mogą być uporządkowane na kilka sposobów. Możemy: 1. Określić kolejność kolumn wyniku. 2. Zmienić nazwy poszczególnych kolumn (utworzyć dla nich aliasy). 3. Dodać do wyniku kwerendy dodatkowe kolumny zawierające we wszystkich polach tę samą wartość (taką wartość nazywa się stałą lub literałem). 4. Dodać do wyniku kwerendy dodatkowe kolumny z wyrażeniami odwołującymi się do kolumn tabeli bazowej.
157
158
Porządkowanie pobranych danych
Aby utworzyć kwerendę zwracającą informacje o osobach uzupełnione o frazę telefon/ e-mail i numery telefonów połączone z adresami e-mail: 1. Utwórz nową kwerendę w widoku projektu. 2. Jako tabelę źródłową wybierz tabelę Osoba. 3. Pierwsza kolumna kwerendy powinna zwracać dane odczytane z kolumny Nazwisko tabeli źródłowej.
2
3
4
5
4. Dodaj drugą kolumnę pobierającą dane z kolumny Imię tabeli źródłowej.
5. W trzeciej kolumnie kwerendy wpisz /LWHUDïĵWHOHIRQHPDLOĵ. Po wykonaniu poprzedniego zadania wiemy, że słowo /LWHUDï będzie nazwą trzeciej kolumny kwerendy (jej aliasem), natomiast podany ciąg znaków będzie zwracany przez wszystkie pola tej kolumny (w programie Access ciągi znaków muszą być umieszczane w cudzysłowach, w innym przypadku będą traktowane jak identyfikatory obiektów, nazwy zmiennych lub zastrzeżone słowa kluczowe). 6. Uruchom kwerendę i zapoznaj się ze zwracanymi przez nią danymi. 7. Wróć do widoku projektu kwerendy.
8
8. Dodaj ostatnią kolumnę kwerendy, która będzie zwracać dane odczytane z kolumn Telefon i Email. Aby poprawić czytelność wyniku, pomiędzy numerem telefonu a adresem e-mail dodaj pojedynczą spację i nazwij kolumnę Złączenie. W tym celu wystarczy wpisać w polu Pole: =ïÈF]HQLHWHOHIRQ ĵĵ HPDLO. 9. Raz jeszcze uruchom kwerendę i zapisz ją pod nazwą N3RU]ÈGNRZDQLH'DQ\FK.
Sortowanie danych
Sortowanie danych Dotychczas utworzone kwerendy zwracały dane w takim porządku, w jakim były one zapisane w tabelach źródłowych. Natomiast użytkownicy bazy spodziewają się informacji posortowanych według określonych kryteriów, np. tytułów płyt czy nazwisk osób. Wykonując to ćwiczenie, nauczymy się sortować zwracane przez kwerendy dane: 1. Utwórz nową kwerendę w widoku projektu. 2. Jako źródłową wybierz tabelę Zespół. 3. Dodaj do kwerendy kolumnę Nazwa. 4. Poniżej wiersza Tabela: znajduje się wiersz Sortuj:. Ustaw w nim kursor. 5. Kliknij znajdującą się z prawej strony pola strzałkę skierowaną w dół. Zostanie wyświetlona lista możliwych porządków sortowania danych.
3 4 5
6. Lista zespołów może być posortowana rosnąco (jako pierwsze będą zwrócone zespoły, których nazwa zaczyna się od litery A, następnie B itd.) albo malejąco (w przypadku ciągu znaków oznacza to, że jako pierwsze zwrócone będą dane znajdujące się na końcu alfabetu). Wybierz rosnący porządek sortowania. 7. Dodaj do kwerendy kolumnę Opinia. 8. Dla tej kolumny określ malejący porządek sortowania. W rezultacie, jeżeli w tabeli Zespół zostaną zapisane dane kilku zespołów o identycznych nazwach, kwerenda zwróci dane dodatkowo uporządkowane według naszej opinii o tych zespołach. 9. Po uruchomieniu kwerendy zapisz ją pod nazwą N6RUWRZDQLH:LHUV]\.
159
160
Ograniczanie liczby zwracanych wierszy
Ograniczanie liczby zwracanych wierszy SZBD Access umożliwia nie tylko sortowanie danych zwracanych przez kwerendy, ale również ograniczenie wyników kwerendy do określonej liczby wierszy. Co więcej, liczba wierszy zwracanych przez kwerendę może być określona albo w sposób bezwzględny (np. 4 wiersze), albo względny (np. 10% wierszy tabeli źródłowej). Aby utworzyć kwerendę zwracającą ograniczoną liczbę wierszy, np. wyświetlić tytuł najdłuższej płyty: 1. Utwórz nową kwerendę w widoku projektu. 2. Jako źródłową tabelę wybierz tabelę Płyta.
5
3. Dodaj dwie kolumny kwerendy: a) Pierwsza będzie zwracać dane z kolumny Tytuł tabeli źródłowej.
2
b) Druga — z kolumny CzasTrwania.
3a
4. Rozwiń pole Sortuj: kolumny CzasTrwania i wybierz z listy pozycję Malejąco.
3b
4
i
5. W liście rozwijanej Zwróć znajdującej się na pasku narzędzi PROJEKTOWANIE wpisz 1.
W praktyce zawsze ogranicza się liczbę wcześniej posortowanych danych — ograniczanie liczby zwracanych wierszy bez ich posortowania powoduje, że za każdym razem kwerenda może zwracać inne wyniki. W tym przypadku SZBD Access zwróciłby informację o jednej, ale niekoniecznie najdłuższej płycie.
6. Teraz możesz uruchomić kwerendę. Niezależnie od tego, ile wierszy liczy tabela Płyta, kwerenda będzie zwracać informację o jednej, najdłuższej płycie. 7. Przełącz się do widoku projektu kwerendy. 8. W polu Zwróć wpisz . W ten sposób kwerenda będzie zwracała informację o najdłuższych płyt. 9. Uruchom kwerendę. Po przeanalizowaniu zwracanych przez nią danych zamknij okno kwerendy i zapisz ją pod nazwą N1DMGïXĝV]H3ï\W\.
Wyszukiwanie duplikatów
Wyszukiwanie duplikatów Jednym z obowiązków administratora bazy danych jest dbanie o poprawność przechowywanych w niej informacji. I chociaż starannie zaprojektowane tabele i dopracowany interfejs użytkownika mogą zapobiec zapisywaniu w bazie błędnych danych (np. podawaniu numeru telefonu składającego się z liter i cyfr), to po pewnym czasie znajdą się w niej duplikaty danych. Aby utworzyć kwerendę, która wyszuka powtarzające się rekordy, np. dwukrotnie wpisane do bazy osoby (te, które mają takie samo imię i nazwisko jak inna wpisana do tej samej bazy osoba): 1
1. Przejdź do zakładki TWORZENIE. 2
2. Kliknij ikonę Kreator kwerend.
3
3. Wybierz z listy Kreator kwerend wyszukujących duplikaty. 4. Kliknij przycisk OK.
4
5. Pierwsze pytanie kreatora będzie dotyczyć tabeli źródłowej. Z listy tabel wybierz Osoba. 6. Kliknij przycisk Dalej.
5
6
7. Następnie należy wybrać kolumny, które mogą przechowywać duplikaty danych. W tym przypadku należy wybrać dwie kolumny: Imię i Nazwisko. Dzięki temu kwerenda zwróci informacje wyłącznie o tych osobach, które mają identyczne zarówno imię, jak i nazwisko.
161
162
Wyszukiwanie duplikatów
8. Kliknij przycisk Dalej.
7
8
9. Kolejne pytanie kreatora będzie dotyczyć dodatkowych, zwracanych przez kwerendę danych. W tym przypadku należy dodać do kwerendy kolumny: a) IdOsoby — po znalezieniu zduplikowanych danych będziemy chcieli je usunąć; żeby jednak to zrobić, musimy znać identyfikator tej osoby (klucz główny tabeli Osoba).
9a 10
b) Email — prawdopodobnie dane tej samej osoby zostały wpisane kilkakrotnie, dlatego że podała ona kilka adresów e-mail; przed skasowaniem rekordu warto sprawdzić, czy nie usuniemy informacji o nowym adresie e-mail tej osoby. 10. Kliknij przycisk Dalej.
11. Zmień nazwę kwerendy na N'XSOLNDW\ i zakończ pracę kreatora, uruchamiając kwerendę. 12. Aby się przekonać, czy kwerenda rzeczywiście zwróciła dane o osobach, które mają to samo imię i nazwisko, wyświetl widok arkusza danych tabeli Osoba, nie zamykając okna kwerendy. 13. Zauważ, że kwerenda zwróciła wyłącznie dane osób o tym samym imieniu i nazwisku, ignorując osoby o takich samych imionach, ale różnych nazwiskach.
Wybieranie danych na podstawie prostego warunku logicznego
Wybieranie danych na podstawie prostego warunku logicznego Dotychczas utworzone kwerendy zwracały wszystkie wiersze tabel źródłowych (wyjątkiem była kwerenda kNajdłuższePłyty zwracająca określoną liczbę danych). Tymczasem użytkowników baz danych stosunkowo rzadko interesuje cały komplet informacji przechowywanych w tabelach. Zamiast tego chcieliby np. dowiedzieć się, kto pożyczył płytę o określonym tytule, lub poznać listę płyt danego zespołu. Zrealizowanie tego zadania wymaga selekcjonowania (wybierania) danych. Operacja ta przeprowadzana jest za pomocą zdefiniowanego dla kwerendy warunku logicznego, który może składać się z kilku warunków, połączonych operatorami AND lub OR. Wykonując to ćwiczenie, nauczymy się filtrować wiersze zwracane przez kwerendę: 1. Utwórz nową kwerendę w widoku projektu. 2. Jako tabelę źródłową wybierz tabelę Płyta. 3. Na kolejne kolumny kwerendy wybierz kolumny: Tytuł, Cena, Zespoły.
4
4. W polu Kryteria: kolumny Tytuł wpisz warunek logiczny: /LNH ĵ VNïDGDQND ĵ. Operator /LNH jest operatorem sprawdzania zgodności ciągu znaków z podanym wzorcem. W naszym przypadku będzie on sprawdzał, czy w tytule płyty znajduje się słowo „składanka”:. Żeby to osiągnąć, szukane słowo należy poprzedzić i zakończyć symbolem wieloznacznym (zastępującym dowolny ciąg znaków) — w programie Access jest nim znak gwiazdki.
5. Uruchom kwerendę i przekonaj się, że zwraca ona tylko wybrane płyty. 6. Przełączmy się do widoku projektu kwerendy.
163
164
Wybieranie danych na podstawie prostego warunku logicznego
7. W polu Kryteria: kolumny Cena wpisz warunek logiczny !. 2
3 4
i
Możemy wybierać dane na podstawie dowolnej liczby warunków logicznych, z których każdy może dotyczyć innej kolumny tabeli źródłowej.
8. Ponownie uruchom kwerendę. Ponieważ jedna z przykładowych płyt kosztowała mniej niż 30 złotych, nie została dołączona do wyniku zmodyfikowanej kwerendy. 9. Ponownie przełącz się do widoku projektu kwerendy. 10. Zmień warunek logiczny zapisany w kolumnie Cena na !$QG. W ten sposób kwerenda zwróci informacje wyłącznie o płytach, których cena jest większa niż 30 i mniejsza niż 60 złotych. 11. Po uruchomieniu kwerendy zobaczysz, że kolejne płyty zostały usunięte z wyniku kwerendy, dlatego iż nie spełniły podanych kryteriów wyboru (kosztowały więcej niż 60 zł). 12. Zamknij okno kwerendy i zapisz ją pod nazwą N6NïDGDQNL.
Operatory porównania
Operatory porównania W poprzednim ćwiczeniu zbudowaliśmy kwerendę wybierającą wiersze. Powinieneś wiedzieć, że warunki logiczne używane do wybierania wierszy buduje się za pomocą standardowych operatorów porównania, takich jak: t = (równy) — operator zwraca prawdę, jeżeli porównywane wartości są takie same; t !,!= (różny) — operator zwraca prawdę, jeżeli porównywane wartości są różne; t (mniejszy niż) — operator zwraca prawdę, jeżeli pierwsza (umieszczona po jego lewej stronie) wartość jest mniejsza od drugiej (umieszczonej po prawej stronie operatora); t (mniejszy lub równy) — operator zwraca prawdę, jeżeli pierwsza wartość nie jest większa od drugiej; t > (większy niż) — operator zwraca prawdę, jeżeli pierwsza wartość jest większa od drugiej; t >= (większy lub równy) — operator zwraca prawdę, jeżeli pierwsza wartość nie jest mniejsza od drugiej. Ponadto SZBD Access pozwala wybierać wiersze przy użyciu specyficznych dla języka SQL operatorów IN, BETWEEN ... AND, LIKE oraz IS NULL: t Operator IN pozwala sprawdzić, czy szukana wartość należy do podanego zbioru, np. czy cena produktu wynosi 5 lub 10 albo czy nazwą miasta jest Katowice lub Kraków. t Operator BETWEEN ... AND pozwala sprawdzić, czy szukana wartość należy do określonego przedziału domkniętego. Dzięki niemu możemy na przykład poznać nazwy towarów o cenach nie niższych niż 10 i nie wyższych niż 20. t Za pomocą operatora LIKE możemy przeszukiwać dane tekstowe pod kątem ich zgodności z podanym wzorcem. Do tworzenia wzorca można użyć dwóch symboli o specjalnym znaczeniu: – Symbol * zastępuje dowolny ciąg znaków. – Symbol _ (podkreślenie) zastępuje jeden dowolny znak. t Chociaż nie możemy porównać wartości NULL z innymi wartościami, to możemy sprawdzić, czy dana wartość jest nieokreślona. Do tego właśnie służy operator IS NULL.
165
166
Wybieranie danych na podstawie złożonego warunku logicznego
Wybieranie danych na podstawie złożonego warunku logicznego SZBD Access umożliwia również wybieranie danych na podstawie złożonych warunków logicznych, czyli warunków zawierających operatory logiczne AND, OR oraz NOT. Operatory logiczne można porównać do spójników zdań — możemy dzięki nim połączyć kilka prostych warunków logicznych w jeden złożony. Rolę operatorów logicznych przedstawimy na kilku przykładach: 1. Operator AND (logiczne I, czyli koniunkcja) może być użyty do połączenia następujących warunków logicznych: FHQD$1'NRORU QLHELHVNL. Otrzymany w ten sposób złożony warunek logiczny będzie prawdziwy tylko wtedy, jeżeli cena jest niższa niż 500, a kolor to niebieski. 2. Operator OR (logiczne LUB, czyli alternatywa) może być użyty do połączenia następujących warunków logicznych: NRORU QLHELHVNL25NRORU F]HU ZRQ\25NRORU ĝöïW\. Otrzymany w ten sposób złożony warunek logiczny będzie prawdziwy, jeżeli kolor to niebieski, czerwony lub żółty. 3. Operatory AND, OR i NOT (logiczne NIE, czyli negacja) mogą być użyte do połączenia kilku prostych warunków logicznych: FHQD$1'NRORU 127F]DUQ\25PDUND127)RUG . Otrzymany w ten sposób złożony warunek logiczny będzie prawdziwy tylko wtedy, jeżeli cena jest niższa niż 500 i albo kolor nie jest czarny, albo marką nie jest Ford. Aby utworzyć kwerendę wybierającą dane na podstawie złożonego warunku logicznego: 1. Utwórz nową kwerendę w widoku projektu. 2. Jako tabelę źródłową wybierz tabelę Płyta. 2
3. Pierwsza kolumna kwerendy będzie pobierać dane zapisane w kolumnie Tytuł tabeli źródłowej. Dodatkowo posortuj dane zwracane przez kwerendę alfabetycznie według tytułów. 4a
3 4b
4c
4. Załóżmy, że chcemy poznać tytuły płyt, których cena zakupu nie przekracza czasu ich trwania (innymi słowy, interesują nas płyty, których minuta muzyki kosztowała mniej niż złotówkę):
Zwracanie danych z dwóch połączonych tabel za pomocą kreatora
a) Dodaj kolumnę pobierającą dane z kolumny Cena tabeli źródłowej. b) Usuń zaznaczenie pola wyboru Pokaż: dla nowo dodanej kolumny.
i
Kolumna przechowująca dane, na podstawie których wybieramy dane źródłowe, nie musi być zwracana przez kwerendę — możemy wybierać wiersze na podstawie kolumn, które nie znajdują się w wyniku kwerendy.
c) Skoro chcesz wybrać płyty, których cena jest mniejsza od czasu ich trwania lub mu równa, w polu Kryteria: wpisz >&]DV7UZDQLD@. 5. Po uruchomieniu kwerendy przekonaj się, czy wyświetlone zostały wyłącznie tytuły płyt o współczynniku ceny do czasu trwania mniejszym niż 1. W tym celu w osobnym oknie wyświetl widok arkusza danych tabeli Płyta. 6. Wróć do widoku projektu tworzonej kwerendy. 7. Przypuśćmy, że kwerenda ma dodatkowo zwracać tytuły płyt o nieznanej cenie — żeby to osiągnąć, w polu Kryteria kolumny Cena dopisz warunek 2Ub,V1XOO (cały warunek powinien wyglądać następująco: >&]DV7UZDQLD@ 2U,V1XOO). 8. Przekonaj się, że od teraz kwerenda zwraca również tytuły płyt o nieznanej cenie. Zamknij okno kwerendy i zapisz ją pod nazwą N=ïRĝRQ\:DUXQHN.
Zwracanie danych z dwóch połączonych tabel za pomocą kreatora Potrafimy już wybierać nie tylko kolumny, ale również wiersze kwerend. Wiemy też, jak można otrzymać wyliczone na podstawie innych wartości dane, a także jak je porządkować. Kolejnym zadaniem będzie wybieranie informacji zapisanych w połączonych ze sobą tabelach. Pierwszą kwerendę pobierającą dane z połączonych tabel utworzymy za pomocą kreatora. 1. Przejdź do zakładki TWORZENIE i kliknij ikonę Kreator kwerend. 2. Upewnij się, że zaznaczona jest pozycja Kreator prostych kwerend, i kliknij OK. 3. Z listy tabel wybierz tabelę Płyta. 4. Dodaj do kwerendy kolumnę Tytuł.
167
168
Zwracanie danych z wielu połączonych tabel
5. Raz jeszcze rozwiń listę tabel bazy danych i wybierz tabelę Gatunek. 3 5
6. Z listy kolumn tej tabeli wybierz Nazwa.
4
7. Kliknij przycisk Dalej.
6 7
8. Zmień domyślną nazwę kwerendy na N3ï\WD*DWXQHN i zakończ pracę kreatora, wyświetlając okno arkusza danych utworzonej kwerendy. 9. Zauważ, że kwerenda zwróciła informacje o powiązanych ze sobą rekordach (czyli nazwy gatunków muzycznych, do których zaklasyfikowaliśmy konkretne płyty), a nie wszystkie możliwe kombinacje wierszy tabel Płyta i Gatunek.
i
Dzięki kwerendom pobierającym dane z połączonych tabel użytkownik może zdobyć komplet interesujących go w danej chwili informacji bez konieczności jednoczesnego wyświetlania zawartości wielu tabel.
Zwracanie danych z wielu połączonych tabel Utworzenie projektu kwerendy pobierającej dane z kilku połączonych tabel bez pomocy kreatora również nie jest trudne. Co więcej, tylko w widoku projektu kwerendy możemy uporządkować zwracane przez nią dane. 1. Utwórz nową kwerendę w widoku projektu. 2. Na liście tabel bazy danych zaznacz tabele Osoba, Płyta oraz Pożyczka (trzymając naciśnięty klawisz &WUO, możemy zaznaczyć jednocześnie kilka tabel).
2
3. Kliknij przycisk Dodaj. 4 3
4. Zamknij okno Pokazywanie tabeli.
Zwracanie danych z wielu połączonych tabel
5. W górnym oknie projektu kwerendy pokazane zostaną wybrane tabele i łączące je relacje. Natomiast dolna część okna nie ulegnie zmianie.
5
6
6. Zwróć uwagę, że wszystkie trzy tabele są ze sobą połączone relacjami. Gdyby jakakolwiek widoczna w tym oknie tabela nie była połączona (bezpośrednio lub poprzez inne tabele) z wszystkimi innymi tabelami źródłowymi, kwerenda zwróciłaby błędne wyniki3. W takim wypadku należy dodać do kwerendy brakujące tabele (tabele, poprzez które wcześniej wybrane tabele zostały połączone). 7. Utwórz pierwszą kolumnę kwerendy pobierającą dane z kolumny Tytuł tabeli Płyta.
i
Jeżeli dodajesz kolumny do kwerendy za pomocą pola z nazwami kolumn znajdującego się w dolnej części okna jej projektu, listę tych kolumn możesz ograniczyć, wybierając w pierwszej kolejności tabelę zawierającą interesujące Cię kolumny.
8. Druga kolumna kwerendy będzie zwracać nazwisko i imię osoby, która pożyczyła od nas płytę. W polu Pole: wpisz 3Rĝ\F]\ïD 1D]ZLVNR ĵĵ ,PLÚ. 6
8
3
9
10
9. Trzecia kolumna kwerendy będzie zwracać dane zapisane w kolumnie DataPożyczki tabeli Pożyczka. Zwracane przez kwerendę dane posortuj malejąco według daty pożyczki.
Odczytując dane z kilku niepowiązanych ze sobą tabel, uzyskalibyśmy w wyniku kombinację wszystkich wierszy tych tabel, czyli każdy wiersz jednej tabeli zostałby powtórzony tyle razy, ile wierszy liczyła druga tabela. Taki wynik nazywa się iloczynem kartezjańskim.
169
170
Zwracanie danych z tabel połączonych za pośrednictwem pól wielowartościowych
10. Czwarta kolumna zwróci datę zwrotu odczytaną z tej samej tabeli. 11. Teraz możesz uruchomić kwerendę. 12. Zapoznaj się ze zwracanymi przez nią wynikami, a następnie zamknij okno kwerendy i zapisz ją pod nazwą N3Rĝ\F]RQH3ï\W\.
Zwracanie danych z tabel połączonych za pośrednictwem pól wielowartościowych Do tej pory pobieraliśmy dane z tabel połączonych za pośrednictwem tabeli łącznikowej, np. tabel Płyta i Osoba czy bezpośrednio z połączonych tabel, tak jak miało to miejsce w przypadku tabel Płyta i Gatunek. W bazie danych Płytoteka znajdują się jednak również tabele Płyta i Zespół, które są połączone za pośrednictwem pola wielowartościowego. Aby pobrać dane z tabel połączonych za pośrednictwem pola wielowartościowego: 1. Utwórz nową kwerendę w widoku projektu. 2. Na tabele źródłowe kwerendy wybierz tabele Płyta i Zespół. 3. Kwerenda będzie się składać z czterech kolumn: a) Pierwsza kolumna będzie pobierać dane z kolumny Nazwa tabeli Zespół. b) Druga będzie odczytywać dane z wielowartościowego pola Zespoły tabeli Płyta. c) Trzecia będzie powiązana z kolumną Tytuł tabeli Płyta (według tej kolumny posortujemy wyniki kwerendy).
2
3a
3b
3c
3d
d) Czwarta będzie powiązana z kolumną Uwagi tej samej tabeli.
Uwzględnianie niepasujących wierszy z połączonych tabel
4. Po uruchomieniu kwerendy zwróć uwagę, że: a) Tytuł każdej płyty został zwrócony tyle razy, ile zespołów ją nagrało. b) Każdy wiersz wyniku kwerendy zawiera informację o tytule płyty i nazwie zespołu, który ją nagrał (pole Płyta.Zespoły). c) Ponadto w polu Uwagi zwracana jest dodatkowa informacja o płycie. Uwagi o płycie również są powtórzone tyle razy, ile zespołów nagrało daną płytę. 5. Zapisz kwerendę pod nazwą N3ï\WD=HVSöï i wyświetl widok jej projektu. Aby się przekonać, jak ważną rolę odgrywa połączenie wszystkich użytych w kwerendach tabel: 1. W oknie projektu kwerendy kPłytaZespół zaznacz relację łączącą obie tabele i naciśnij klawisz 'HO. 2. Uruchom kwerendę — tym razem zamiast kilku zwróciła ona kilkadziesiąt wierszy będących wszystkimi możliwymi kombinacjami wierszy tabel Płyta i Zespół (czyli iloczyn kartezjański obu zbiorów). 3. Zamknij okno kwerendy. Na pytanie, czy zapisać zmiany, odpowiedz kliknięciem przycisku Nie.
Uwzględnianie niepasujących wierszy z połączonych tabel Utworzone do tej pory kwerendy pobierające dane z wielu tabel zwracały tylko te wiersze, dla których istniały powiązane rekordy we wszystkich tabelach. Taki typ złączenia tabel nazywa się złączeniem wewnętrznym i jest on najczęściej stosowanym złączeniem w bazach danych. Aby zapoznać się z innym typem złączeń tabel (złączeniem zewnętrznym), utworzymy kolejną kwerendę, tym razem zwracającą dane z tabel Typ i Płyta. 1. W widoku projektu utwórz kwerendę zwracającą nazwy nośników i tytuły płyt (na tabele bazowe wybierz tabele Nośnik i Płyta i wybierz z nich kolumny Nazwa i Tytuł). 2. Uruchom tę kwerendę — zwróć uwagę, że kwerenda zwraca tylko kilkanaście wierszy (a więc nie wszystkie tytuły płyt i typy nośników zostały przez nią zwrócone). 3. Aby je uwzględnić, musimy zmienić typ złączenia obu tabel. Przełącz się do widoku projektu kwerendy.
171
172
Uwzględnianie niepasujących wierszy z połączonych tabel
4. Dwukrotnie kliknij lewym przyciskiem myszy relację łączącą obie tabele. 5. Zostanie wyświetlone okno dialogowe pozwalające dodać do wyniku kwerendy niepasujące wiersze: a) Domyślnie zwracane są nazwy tylko tych nośników, na których mamy nagraną przynajmniej jedną płytę, i tytuły tylko tych płyt, które mają określony nośnik. b) Zaznaczmy drugie pole wyboru. W ten sposób do wyniku kwerendy dołączymy wszystkie wiersze tabeli Nośnik, również te niepasujące do tabeli Płyta. c) Zaznaczając trzecią opcję, dołączylibyśmy do wyniku kwerendy wszystkie wiersze tabeli Płyta, czyli kwerenda zwróciłaby również tytuły płyt o nieokreślonym nośniku.
5a 5b 5c 6
i
6. Kliknij OK i raz jeszcze uruchom kwerendę.
Złączenia zewnętrzne dzielą się na lewostronne, które dołączają do wyniku kwerendy wszystkie wiersze pierwszej (lewej) tabeli, prawostronne, które dołączają do wyniku kwerendy wszystkie wiersze drugiej (prawej) tabeli, oraz obustronne (nieobsługiwane przez graficzne narzędzia programu Access).
7. Tym razem kwerenda zwróci więcej wierszy, a na liście wyników zobaczymy wszystkie nazwy typów nośników zapisane w tabeli Nośnik. 8. Zamknij okno kwerendy, zapisując ją pod nazwą N=ïÈF]HQLH=HZQÚWU]QH.
Dodawanie podsumowań
Dodawanie podsumowań Każdy system zarządzania bazami danych (SZBD), również program Access, pozwala na korzystanie z wbudowanych funkcji grupujących — funkcji, które na podstawie zbioru argumentów (wielu wierszy) zwracają jedną wartość. Do najczęściej używanych funkcji grupujących należą: SUMA (funkcja zwraca sumę przekazanych wartości), MAKSIMUM (funkcja zwraca największą z przekazanych wartości), MINIMUM (funkcja zwraca najmniejszą z przekazanych wartości), ¥5('1,$ (funkcja zwraca wartość średnią przekazanych wartości), POLICZ (funkcja zwraca liczbę przekazanych wartości). Wykonując bieżące ćwiczenie, utworzymy kwerendę, która pogrupuje wiersze i podsumuje cenę wszystkich płyt: 1. Utwórz nową kwerendę w widoku projektu. 3
2. Na tabelę źródłową kwerendy wybierz tabelę Płyta.
2
3. W zakładce PROJEKTOWANIE kliknij ikonę Sumy. W dolnej części okna projektu kwerendy zostanie wyświetlony nowy wiersz Suma:. 4. Jedyną kolumną kwerendy będzie kolumna Cena. Dodaj ją do kwerendy, ustaw kursor w polu Podsumowanie: tej kolumny i z listy dostępnych funkcji grupujących wybierz SUMA.
4
5. Po uruchomieniu kwerendy w jej wyniku zobaczymy jedną wartość, wyliczoną na podstawie zbioru danych. Właśnie dowiedzieliśmy się, jak używać funkcji grupujących, czyli funkcji, które dla zbioru argumentów (pól wielu wierszy) zwracają pojedyncze wartości. 6. Zamknij okno kwerendy i zapisz ją pod nazwą N6XPD.
173
174
Zliczanie danych
Zliczanie danych Możemy nie tylko podsumować wartości liczbowe, ale także policzyć informacje dowolnego typu. Kolejna kwerenda policzy, ile wierszy (danych o kolejnych płytach) znajduje się w tabeli Płyta, dla ilu płyt nie określiliśmy gatunku i dodatkowo zwróci różnicę pomiędzy otrzymanymi wynikami. Wykonując to ćwiczenie, przekonamy się, że funkcji grupujących można używać w wyrażeniach w taki sam sposób jak wartości pojedynczych pól. W tym celu: 1. Utwórz nową kwerendę w widoku projektu. 2. Na tabelę źródłową kwerendy wybierz tabelę Płyta.
3
3. Na wstążce kliknij ikonę Sumy. 4. Pierwsza kolumna kwerendy będzie zliczała pola kolumny IdPłyty (każda płyta musi mieć identyfikator, dzięki czemu podczas zliczania identyfikatorów mamy pewność, że w wyniku otrzymamy poprawną liczbę wszystkich płyt). W tym celu:
2
a) Nazwę kolumny IdPłyty przeciągnij do pola Pole:. b) Ustaw kursor w polu Podsumowanie: i wybierz z listy funkcję Policz.
4a
4b
5
5. Druga kolumna kwerendy zwróci policzone pola kolumny Gatunek (jeżeli płyta nie została zaklasyfikowana do jednego z gatunków, to pole będzie puste, a wiersz nie zostanie dodany do wyniku funkcji Policz).
6a 6b
Grupowanie danych
6. Skoro trzecia kolumna kwerendy ma zawierać różnicę pomiędzy liczbą wszystkich płyt: a) W polu Pole: wpisz 5öĝQLFD3ROLF],G3ï\W\ Ľ3ROLF]*DWXQHN . Różnica będzie nazwą kolumny zwracającej wynik odejmowania od liczby wszystkich pól tych wypełnionych przez pola kolumny Gatunek. b) Ustaw kursor w polu Podsumowanie: nowej kolumny i z listy dostępnych opcji wybierz Wyrażenie. 7. Po uruchomieniu kwerendy zwróć uwagę, że tak jak poprzednia, zwraca ona jeden wiersz, którego wartość została wyliczona na podstawie wszystkich wierszy tabeli źródłowej. 8. Zamknij okno kwerendy i zapisz ją pod nazwą N3ROLF].
Grupowanie danych W poprzednich ćwiczeniach wykorzystywaliśmy funkcję grupującą do wyliczenia jednej wartości dla wszystkich danych zapisanych w tabeli. Teraz dowiemy się, jak możemy wyliczyć jedną wartość dla określonej grupy danych, np. dla płyt nagranych przez ten sam zespół lub należących do tego samego gatunku muzycznego. Aby policzyć, ile płyt przypisanych jest do poszczególnych gatunków muzycznych: 1. Utwórz nową kwerendę w widoku projektu. 2. Jako tabelę źródłową wybierz tabelę Płyta. 3. Na pasku narzędzi PROJEKTOWANIE kliknij ikonę Sumy. 4. Pierwsza kolumna kwerendy będzie pobierała dane z kolumny Gatunek. 5. Zwróć uwagę na domyślną wartość pola Podsumowanie:. Wyrażenie Grupuj według oznacza, że wartości poszczególnych pól kolumny nie będą argumentami funkcji grupującej, ale dane zwracane przez kwerendę będą pogrupowane według wspólnych wartości atrybutu Gatunek. Innymi słowy, kwerenda zwróci jeden wiersz dla każdego gatunku. 6. Po uruchomieniu kwerendy zostanie wyświetlona lista gatunków muzycznych. Zauważ, że z tej listy zostały usunięte wszystkie duplikaty (mimo że ta kwerenda pobrała dane z tabeli Płyta, a nie z tabeli Gatunek).
i
Pogrupowanie danych według wspólnych wartości pól wybranej kolumny powoduje automatyczne usunięcie wszystkich duplikatów (powtarzających się wierszy) z wyniku kwerendy.
175
176
Kwerendy krzyżowe
7. Przełącz się do widoku projektu kwerendy.
4
8
8. Druga kolumna kwerendy będzie zliczała pola kolumny IdPłyty. Dodatkowo dane zwracane przez kwerendę będą posortowane malejąco według wartości pól tej kolumny.
5
9. Po uruchomieniu kwerendy możemy się przekonać, że kwerenda policzyła płyty należące do poszczególnych gatunków, ale jakakolwiek próba modyfikacji danych za jej pomocą jest niemożliwa.
i
Modyfikowanie danych za pośrednictwem kwerend zawierających jakąkolwiek funkcję grupującą jest niemożliwe. Tego typu kwerendy zwracają mniej wierszy, niż zawierają ich tabele bazowe, a więc zmiana wiersza kwerendy byłaby niejednoznaczna — SZBD Access nie wiedziałby, które wiersze tabeli bazowej mają być zmienione.
10. Zamknij okno kwerendy i zapisz ją pod nazwą N*UXSRZDQLH.
Kwerendy krzyżowe Często dane zwracane przez kwerendy są grupowane według nie jednej, ale dwóch kolumn tabel źródłowych. Ponieważ dane tego typu zwracane przez kwerendy wybierające są mało czytelne (ich wyniki liczą wiele wierszy), do takich operacji powinniśmy wykorzystywać kwerendy krzyżowe. O ich zaletach przekonamy się, porównując te same dane zwrócone przez kwerendę wybierającą i przez kwerendę krzyżową. Aby wyświetlić liczbę płyt poszczególnych zespołów pogrupowaną dodatkowo według gatunków muzycznych: 1. Utwórz nową kwerendę w widoku projektu. 2. Jako tabele źródłowe wybierz Płyta, Gatunek i Zespół.
Kwerendy krzyżowe
3. Kliknij ikonę Sumy.
2
4. Pierwsza kolumna kwerendy będzie grupowała nazwy zespołów. 5. Druga — nazwy gatunków.
4
5
6
7
6. Trzecia natomiast będzie zliczała identyfikatory płyt. 7. Po uruchomieniu kwerendy zobaczysz, że dane są mało czytelne. Pierwsza kolumna zwraca nazwy zespołów, druga — nazwy gatunków muzycznych, a trzecia — liczbę płyt danego zespołu, które należą do określonych gatunków. Wyobraźmy sobie, jak wyglądałby wynik działania kwerendy dla bazy, w której zapisanych jest kilkaset płyt przypisanych do kilkunastu różnych gatunków muzycznych i nagranych przez kilkadziesiąt różnych zespołów. 8. Wróć do widoku projektu kwerendy. 9. Zmień typ kwerendy na kwerendę krzyżową. W tym celu kliknij ikonę Krzyżowa.
9
10. W dolnej części widoku projektu kwerendy wyświetlony został nowy wiersz — Krzyżowe:. Ustaw kursor w pierwszej kolumnie (w kolumnie Nazwa tabeli Zespół) tego wiersza i z listy dostępnych wartości wybierz Nagłówek wiersza. 11. W polu Nazwa tabeli Gatunek wiersza Krzyżowe: z listy dostępnych opcji wybierz Nagłówek kolumny.
177
178
Kwerendy krzyżowe
12. W polu IdPłyty tego wiersza z listy opcji wybierz Wartość.
10
11
12
13
13. Po uruchomieniu kwerendy zobaczysz, że tym razem dane zostały zwrócone w postaci tabeli, której kolumny odpowiadają kolejnym zespołom, a wiersze poszczególnym gatunkom. Na przecięciu wierszy i kolumn znajdują się liczby płyt danych zespołów należących do określonych gatunków muzycznych.
14. Zamknij okno kwerendy i zapisz ją pod nazwą N.U]\ĝRZD.
i
Kwerendy krzyżowe przekształcają wiersze na kolumny, tworząc w ten sposób tabele przestawne. W polach tabel przestawnych wyświetlane są wyniki dowolnej funkcji grupującej, a więc takie tabele zwracają nie poszczególne wiersze tabel bazowych, tylko podsumowania wyliczone dla grup zdefiniowanych w nagłówkach ich kolumn i wierszy.
Usuwanie wybranych danych
Usuwanie wybranych danych Opisane do tej pory kwerendy zwracały dane — niektóre z nich zwracały wybrane kolumny bądź wiersze, a jeszcze inne wyliczały czy przekształcały zwracane dane. Ich działanie polegało na odczytywaniu informacji z tabel źródłowych. Nadszedł czas, aby zapoznać się z kwerendami, które usuwają, dodają bądź modyfikują zawartość tabel.
i
Przed wykonaniem dalszych ćwiczeń należy się upewnić, że uruchamiając bazę danych, zezwoliliśmy na uruchamianie zawartości aktywnej. Aby kwerenda mogła usunąć wiersze tabeli, należy włączyć zawartość aktywną bazy danych, czyli zezwolić jej na wykonywanie potencjalnie niebezpiecznych operacji. W przeciwnym razie na Pasku stanu zobaczymy komunikat Akcja lub zdarzenie zostało zablokowane przez tryb wyłączony.
Aby za pomocą kwerendy usunąć z tabeli wybrane dane, np. płyty o cenie niższej niż 30 zł: 1. Utwórz nową kwerendę w widoku projektu. 2. Na tabelę źródłową kwerendy wybierz tabelę Płyta. 3. Zmień typ kwerendy na kwerendę usuwającą dane. W tym celu kliknij widoczną na wstążce ikonę Usuń.
3
4. Jako pierwszą kolumnę kwerendy wybierz symbol * tabeli Płyta (usunąć można wyłącznie cały wiersz, a nie wybrane pola tabeli). Zwróć uwagę, że w polu Usuwanie: tej kolumny pojawił się napis Skąd. 5. Jako drugą kolumnę kwerendy wybierz kolumnę Cena. Zwróć uwagę, że w polu Usuwanie: tej kolumny pojawił się napis Gdzie. 5 4
i
6
6. W polu Kryteria: kolumny Cena wpisz .
Jeżeli nie określimy kryterium wyboru dla kwerendy usuwającej, to z tabeli źródłowej zostaną usunięte wszystkie wiersze.
179
180
Dodawanie danych
7. Aby sprawdzić, które płyty spełniają podane kryterium (w tym przypadku ich cena jest niższa niż 30 zł), możemy przełączyć kwerendę do widoku arkusza danych. 8. Wróć do widoku projektu kwerendy i uruchom ją. Pamiętaj, że uruchomienie jej i potwierdzenie decyzji spowoduje automatyczne i nieodwracalne usunięcie danych o płytach, których cena jest niższa niż 30 zł. 9. Aby się przekonać, że dane o płytach zostały usunięte, raz jeszcze wyświetl widok arkusza danych kwerendy. 10. Zamknij okno kwerendy i zapisz ją pod nazwą N8VXñ.
Dodawanie danych Za pośrednictwem kwerend możemy nie tylko usuwać, ale również dodawać dane odczytane z innych tabel. Aby utworzyć kwerendę dopisującą do tabeli DoZałatwienia nazwiska i numery telefonów osób, które pożyczyły więcej niż trzy płyty: 1. Utwórz nową kwerendę w widoku projektu. 2. Jako tabele źródłowe wybierz tabele Osoba, Pożyczka i Płyta. 2
4
5
3. Zmień typ kwerendy na kwerendę dołączającą dane. W tym celu kliknij widoczną na wstążce ikonę Dołącz. 4. Jako tabelę docelową wybierz tabelę DoZałatwienia. 5. Kliknij przycisk OK.
6. Na pasku narzędzi Projekt kwerendy kliknij ikonę Sumy. 7. Jako pierwszą kolumnę kwerendy wybierz kolumnę Imię tabeli Osoba. Zwróć uwagę, że w polu Dołączanie do: tej kolumny automatycznie wyświetlona została nazwa kolumny Imię tabeli DoZałatwienia.
i
SZBD Access zakłada, że chcemy dołączyć dane do kolumn o takiej samej nazwie jak kolumny tabel źródłowych.
8. Do kwerendy kolumny dodaj kolejno pobierające dane z kolumn Nazwisko, Telefon, Email.
Dodawanie danych
8
9 10
7
9. Ponieważ do tabeli DoZałatwienia mają być dopisane dane tylko o wybranych, a nie wszystkich osobach, jako ostatnią kolumnę kwerendy wybierz kolumnę IdPłyty tabeli Płyta. Tym razem w polu Dołączanie do: nie została wyświetlona żadna nazwa kolumny (w tabeli DoZałatwienia nie ma kolumny o nazwie IdPłyty).
10. W polu Podsumowanie: kolumny IdPłyty wybierz funkcję Policz, a w polu Kryteria: wpisz warunek >2. W ten sposób do tabeli docelowej dopisane zostaną dane tylko tych osób, które wypożyczyły więcej niż dwie płyty. 11. Uruchom kwerendę. Jeżeli zostanie wyświetlone pytanie, czy zmodyfikować dane, kliknij przycisk Tak. 12. Zamknij okno kwerendy i zapisz ją pod nazwą N'RGDM. 13. Otwórz widok arkusza danych tabeli DoZałatwienia. Wykonanie kwerendy spowodowało zapisanie w niej danych o osobach, które pożyczyły więcej niż dwie płyty. Dotychczas modyfikowanie bądź usuwanie danych wiązało się z koniecznością potwierdzania podjętych decyzji. Potwierdzanie wykonania kwerend akcji przez SZDB Access możemy wyłączyć. W tym celu: 1. Rozwiń menu PLIK. 2. Kliknij przycisk Opcje. 3. Przejdź do zakładki Ustawienia klienta. 3
4
4. Usuń zaznaczenie pola wyboru Potwierdzanie Kwerend funkcjonalnych. Od teraz wykonanie kwerend funkcjonalnych (kwerend aktualizujących, dopisujących lub usuwających) nie będzie wymagało potwierdzania. 5. Zatwierdź zmiany przyciskiem OK.
181
182
Modyfikowanie wybranych danych
Modyfikowanie wybranych danych Ostatnie ćwiczenie przedstawia kwerendy modyfikujące dane, czyli zmieniające wartości wybranych pól tabeli bazowej. Co więcej, ponieważ kwerenda modyfikująca dane potrafi odczytywać zawartość wielu tabel, możemy dzięki niej zmienić wartość wybranych pól na podstawie danych zapisanych w powiązanych tabelach. Aby obniżyć o 10% cenę wszystkich płyt wybranego zespołu: 1. Utwórz nową kwerendę w widoku projektu. 2. Na tabele źródłowe wybierz tabele Płyta i Zespół. 3. Zmień typ kwerendy na kwerendę aktualizującą. W tym celu kliknij ikonę Aktualizuj. 4. Jako pierwszą kolumnę kwerendy wybierz kolumnę Cena i w polu Aktualizacja do: tej kolumny wpisz wyrażenie >&HQD@ . W rezultacie cena płyt zostanie zmniejszona o 10%. 5. Jako drugą kolumnę kwerendy wybierz kolumnę Nazwa tabeli Zespół i w polu Kryteria: tej kolumny wpisz nazwę zespołu, którego płyty zostaną przecenione (ĵ=QLĝNRZLĵ). W rezultacie zmieniona zostanie cena tylko płyt nagranych przez wybrany zespół.
4
i
5
Jeżeli nie określimy kryterium wyboru dla kwerendy aktualizującej, zostaną zmodyfikowane wszystkie wiersze tabeli źródłowej.
6. Przed wykonaniem kwerendy możesz sprawdzić, których płyt będzie dotyczyła zmiana ceny. W tym celu wyświetl kwerendę w widoku arkusza danych. 7. Powróć do widoku projektu kwerendy, aby ją uruchomić (każdorazowe uruchomienie kwerendy spowoduje obniżenie ceny płyt wybranego zespołu o 10%). 8. Zamknij okno kwerendy i zapisz ją pod nazwą N=PLHñ.
Podsumowanie
Podsumowanie Po przeczytaniu bieżącego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi może mieć pewne kłopoty, mają mu pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Do czego służy ikona ! ? 2. Czy konieczne jest tworzenie nazw dla kolumn kwerend? 3. Co to są operatory AND i OR? Kiedy ich używamy? 4. Jak przełączyć kwerendę pobierającą dane do widoku arkusza danych? 5. Co to jest argument funkcji grupującej?
183
184
ľ :MDNLPFHOXWZRU]\P\IRUPXODU]H"ľ
6]\ENLVWDUW]JRWRZ\PLF]ÚĂFLDPLDSOLNDFMLľ $XWRPDW\F]QLHWZRU]\P\IRUPXODU]H]ZLÈ]DQH ]Z\EUDQÈWDEHOÈľ%XGRZDIRUPXODU]\ SRZLÈ]DQ\FK]WDEHODPLľ:\V]XNXMHP\ğOWUXMHP\ LXVXZDP\GDQHľ.UHDWRUIRUPXODU]\ĽWZRU]\P\ IRUPXODU]SRZLÈ]DQ\]Z\EUDQÈWDEHOÈľ.UHDWRU IRUPXODU]\ĽWZRU]\P\IRUPXODU]]ZLÈ]DQ\ ]SRïÈF]RQ\PLWDEHODPLľ3R]QDMHP\PRW\Z\ LbIRUPXODU]HQDZLJDF\MQHľ=PLDQDZïDĂFLZRĂFL IRUPXODU]Dľ)RUPXODU]GRSU]HJOÈGDQLDGDQ\FK ľ7ZRU]\P\IRUPXODU]]SRGIRUPXODU]HPľ .RU]\VWDQLH]IRUPXODU]D]SRGIRUPXODU]HPľ 3DQHOSU]HïÈF]DQLDMDNRSU]\NïDGIRUPXODU]D QLH]ZLÈ]DQHJR]ĝDGQÈWDEHOÈXĝ\WNRZQLNDľ 3R]QDMHP\]DOHĝQRĂFLSRPLÚG]\RELHNWDPLED]\ GDQ\FKľ3RGVXPRZDQLH
7
Formularze, czyli jak ułatwić użytkownikom dostęp do danych W jakim celu tworzymy formularze? Podstawowymi obiektami relacyjnej bazy danych są tabele wraz z łączącymi je relacjami oraz kwerendy pobierające z nich dane. Natomiast formularze, raporty i związane z nimi makropolecenia tworzą interfejs użytkownika bazy. Jednak w programie Access podział na bazę danych i interfejs użytkownika nie tylko nie jest tak wyraźny, ale wręcz w każdej kolejnej wersji coraz bardziej się zaciera. Zintegrowanie bazy i jej interfejsu jest wyjątkową zaletą SZBD Access, ponieważ znacznie upraszcza tworzenie obiektów bazy danych. W tym i dwóch kolejnych rozdziałach utworzymy interfejs użytkownika bazy danych, pamiętając (po zapoznaniu się z rozdziałem 2.), że Access pozwala podzielić bazę na dwa pliki — plik danych (w którym znajdują się tabele) i plik interfejsu (w którym znajdują się pozostałe obiekty).
186
Szybki start z gotowymi częściami aplikacji
Podstawowym elementem interfejsu użytkownika (programu klienckiego) są formularze. To za ich pośrednictwem użytkownik przegląda i modyfikuje przechowywane w tabelach dane, uruchamia raporty czy wykonuje prace administracyjne (np. tworzy kopię zapasową bazy danych). Formularze dzielą się na związane (tzn. zawierające pola, w których wyświetlane są dane z dowolnej tabeli) oraz niezwiązane (czyli te, które nie prezentują żadnych danych, a jedynie umożliwiają wykonywanie określonych operacji). Przykładem formularza związanego jest taki formularz, za pośrednictwem którego użytkownik może odczytywać, modyfikować czy dodawać dane zapisane w wybranej tabeli. Natomiast panel przełączania, czyli główny formularz bazy danych pozwalający na uruchomienie pozostałych formularzy oraz raportów, jest przykładem formularza niezwiązanego.
i
Użytkownicy nie powinni mieć możliwości bezpośredniego modyfikowania danych zapisanych w tabelach. Wszystkie operacje powinni przeprowadzać za pośrednictwem kwerend, formularzy i raportów — tylko w ten sposób można kontrolować operacje użytkowników.
Wykonując ćwiczenia z tego rozdziału, nauczymy się tworzyć i modyfikować formularze związane z jedną oraz wieloma tabelami. Utworzymy także główny formularz bazy danych — formularz, który będzie automatycznie uruchamiany podczas otwierania bazy i za jego pośrednictwem użytkownicy będą mogli otwierać inne formularze lub kwerendy.
Szybki start z gotowymi częściami aplikacji Każdorazowe tworzenie bazy danych od podstaw jest skomplikowane i czasochłonne. Na szczęście Access 2013 pozwala wstawić do bazy gotowe części aplikacji (tabele i powiązane z nimi formularze). Predefiniowana lista gotowych części aplikacji startu zawiera Komentarze, Kontakty, Problemy, Użytkownicy i Zadania. W tym ćwiczeniu do przykładowej bazy danych dodamy część aplikacji Problemy. 1. W folderze Rozdział07\Starter otwórz bazę danych Rozdział7. Zawiera ona tabele i kwerendy utworzone w poprzednich rozdziałach. 2. Przejdź do zakładki TWORZENIE.
Szybki start z gotowymi częściami aplikacji
3. Z lewej strony wstążki znajduje się ikona Części aplikacji — kliknij ją. 4. Wyświetlone zostanie okno zawierające szablony pustych formularzy (w górnej części) i listę gotowych części aplikacji (w dolnej części).
3
5. Kliknij ikonę Problemy. 4
5
6. Uruchomiony zostanie kreator importowania szablonów części aplikacji: a) Odpowiadając na pierwsze pytanie kreatora, możemy powiązać automatycznie utworzoną tabelę problemów z istniejącą tabelą bazy danych — wybierz tabelę Osoba i kliknij Dalej.
6a
b) Powiąż tabele na podstawie kolumny Nazwisko. 6b
c) Zmień nazwę kolumny odnośnika na Osoba. d) Kliknij przycisk Utwórz.
6c
6d
187
188
Szybki start z gotowymi częściami aplikacji
7. Do bazy danych zostaną dodane: a) tabela Problemy. (W opisywanej wersji programu Access projekt tej tabeli zawiera błąd — kolumna DataOtwarcia jest wymagana, ale na formularzu nie ma pola pozwalającego ją podać. Aby naprawić ten błąd, wyświetl widok projektu tej tabeli i zmień właściwość Wymagane kolumny DataOtwarcia na Nie), b) formularze NowyProblem oraz SzczegółyProblemu. 8. Rozwiń Okienko nawigacji i dwukrotnie kliknij formularz NowyProblem. 9. Wprowadź opis nowego problemu: a) W polu Podsumowanie wpisz 1LH]JRGQRĂÊ]RSLVHP. b) Rozwiń listę priorytetów i wybierz 3 — Mniej istotny. 9a
9b
9c
c) Rozwiń listę kategorii — domyślnie zawiera ona trzy przykładowe kategorie. d) Kliknij widoczną poniżej listy kategorii ikonę Edytuj elementy listy.
9d
e) Dostosuj listę kategorii problemów do własnych potrzeb, zmieniając istniejące kategorie, dopisując nowe i wybierając domyślną kategorię problemów. 9e
f) Zatwierdź zmiany przyciskiem OK.
9f
g) Z utworzonej listy kategorii wybierz 2 — Towar. h) Wprowadź opis problemu ('RïÈF]RQDGRSï\W\%ODFN0RRQZNïDGNDMHVW QLHNRPSOHWQD) i kliknij przycisk Zapisz i zamknij. i) Zatwierdź zmiany wprowadzone do formularza (to pytanie zostało wyświetlone, ponieważ zmieniliśmy listę kategorii problemów).
Automatycznie tworzymy formularze związane z wybraną tabelą
10. Wyświetl formularz SzczegółyProblemu. 11. Zwróć uwagę, że ten formularz pozwala podać przewidywaną datę ukończenia prac nad rozwiązaniem problemu, ale nie umożliwia zmiany statusu problemu. 12. Wpisz przewidywaną datę ukończenia prac i kliknij przycisk Zapisz i zamknij. 13. Otwórz okno arkusza danych tabeli Problemy. 14. Ustaw kursor w polu Rozwiązanie i wybierz z listy sposób rozwiązania tego problemu (Naprawiono). Zwróć uwagę, że również w tym przypadku możliwa jest edycja elementów listy. 15. Zamknij okno tabeli Problemy. 16. Wyświetl formularz SzczegółyProblemu i zwróć uwagę, że pozwala on wyszukiwać rekordy zapisane w tabeli Problemy oraz że poprzez ten formularz można zmienić tylko niektóre dane. Właśnie utworzyliśmy dwa w pełni funkcjonalne formularze powiązane z tabelami.
Automatycznie tworzymy formularze związane z wybraną tabelą SZBD Access pozwala tworzyć formularze różnego typu: 1. Kolumnowe, które wyświetlają jednocześnie jeden rekord (formularze tego typu zawierają wyjustowane pola). 2. Kolumnowe, które wyświetlają jednocześnie wiele rekordów (formularze tego typu również zawierają wyjustowane pola). 3. Okna dialogowe (takie formularze pozwalają podać dane niezbędne do dalszego działania programu i są powszechnie używane np. do zalogowania się użytkowników). 4. Podzielone (formularze tego typu podzielone są na dwie sekcje — w górnej, w poszczególnych polach widoczny jest wybrany rekord, w dolnej znajduje się podformularz zawierający jednocześnie wiele rekordów powiązanej tabeli lub tabel). 5. Arkusze danych (formularze tego typu przedstawiają dane w postaci arkusza, którego wygląd przypomina arkusz programu Excel). Najprostszym sposobem samodzielnego utworzenia formularza związanego z wybraną tabelą jest utworzenie autoformularza — w ten sposób program Access automatycznie utworzy w pełni funkcjonalny formularz. Niestety, użytkownik bazy danych nie ma większego wpływu na funkcjonalność tak stworzonego formularza.
189
190
Automatycznie tworzymy formularze związane z wybraną tabelą
Aby automatycznie utworzyć formularz powiązany z tabelą Płyta: 1. W Okienku nawigacji zaznacz tabelę źródłową formularza (tabelę Płyta).
2
2. Przejdź do zakładki TWORZENIE i kliknij ikonę Więcej formularzy.
3
3. Wybierz formularz typu Wiele elementów. 4. Utworzony formularz zostanie wyświetlony w widoku układu pozwalającym rozmieszczać jego elementy. Przełącz go do widoku formularza (ten widok pozwala pracować z formularzem). 5
4
5. Zapoznaj się z funkcjonalnością tak utworzonego formularza (jak widać, formularz działa, ale jego wygląd pozostawia nieco do życzenia) i zapisz go pod nazwą 3ï\WD.
Następnie utworzymy formularz podzielony, ale zamiast skorzystać z gotowego szablonu, tym razem sami dodamy odpowiedni formularz. W tym celu: 1. Przejdź do zakładki TWORZENIE. 2. W Okienku nawigacji zaznacz tabelę Osoba. 3. W sekcji Formularze znajduje się ikona Formularz — kliknij ją. 4. Formularz zostanie utworzony i wyświetlony na ekranie w widoku układu. 5. Przełącz się do widoku formularza. 6. Kolumnowy układ pól formularza powoduje, że jednocześnie wyświetlany jest w nim pojedynczy rekord (wiersz) tabeli źródłowej — w tym przypadku dane jednej osoby. Zwróć uwagę na: a) Znajdujące się w dolnej części formularza przyciski nawigacyjne, które umożliwiają zmianę aktywnego (wyświetlanego w górnej sekcji) rekordu.
Automatycznie tworzymy formularze związane z wybraną tabelą
6b
6c
6a
b) Dodane do wszystkich pól tekstowych pola etykiety; etykietami pól są nie nazwy kolumn tabeli źródłowej, a ich tytuły. c) Wyświetlane na pasku stanu opisy poszczególnych kolumn tabeli źródłowej formularza.
7. Aby w dolnej części formularza wyświetlić informacje o pożyczonych poszczególnym osobom płytach, czyli żeby dodać do automatycznie utworzonego formularza kolumnowego podformularz w układzie arkusza danych: a) Przełącz formularz do widoku układu. 7b
7c
b) W Okienku nawigacji zaznacz tabelę Pożyczka. c) Przeciągnij ją myszką w lewy dolny róg formularza — w miejscu, w którym puścisz lewy przycisk myszki, zostanie wstawiony odpowiedni podformularz.
8. Przełącz się do widoku formularza i zwróć uwagę na: a) Znajdujące się w dolnej części podformularza przyciski nawigacyjne, które umożliwiają zmianę aktywnego rekordu. b) Możliwość modyfikowania, wstawiania i usuwania informacji o tym, jakie płyty pożyczyła wybrana osoba. 9. Przekonaj się, jaki będzie efekt usunięcia informacji o jednej z płyt pożyczonych przez wybraną osobę — dane nie zostaną usunięte z tabeli Płyta, tylko z tabeli Pożyczka. Innymi słowy, usunęliśmy z bazy informację, że dana osoba pożyczyła określoną płytę, a nie informację o samej płycie. Właśnie utworzyliśmy formularz z podformularzem powiązany z dwiema tabelami. 10. Zamknij okno formularza i zapisz go pod nazwą Osoba.
191
192
Budowa formularzy powiązanych z tabelami
Budowa formularzy powiązanych z tabelami Utworzone w poprzednich ćwiczeniach autoformularze pozwalają nie tylko przeglądać dane o osobach, ale również modyfikować istniejące informacje i wprowadzać nowe dane do powiązanych z nimi tabel źródłowych. W tym ćwiczeniu przyjrzymy się budowie takich formularzy: 1. Dwukrotnie kliknij formularz Osoba. 2. Główny formularz zawiera sześć pól tekstowych: w jednym wyświetlane są imiona, w drugim nazwiska itd. Z lewej strony tych pól znajdują się pola etykiet. W przeciwieństwie do pól tekstowych pola te nie umożliwiają wpisywania czy modyfikowania wyświetlanych danych. 3. Na pasku stanu formularza (jest on wyświetlany w dolnej części okna) znajduje się zbiór pięciu przycisków nawigacyjnych oraz pole tekstowe, w którym wyświetlany jest numer bieżącego rekordu (czyli tego, który jest wyświetlany w polach formularza), uzupełnione o liczbę wszystkich rekordów powiązanej tabeli. 4. Aby przejść do ostatniego rekordu tabeli (wyświetlić dane ostatnio wprowadzonej osoby), kliknij ikonę . Aby wrócić do pierwszego rekordu, kliknij ikonę . 5. Jeżeli aktywny rekord nie jest ostatnim ze zbioru rekordów, możliwe jest wyświetlenie danych kolejnej osoby. W tym celu kliknij ikonę . 6. Jeżeli aktywny rekord nie jest pierwszym ze zbioru rekordów, możliwe jest wyświetlenie danych poprzedniej osoby. W tym celu kliknij ikonę . 7. Aby zmienić nazwisko osoby, należy wyświetlić jej dane w formularzu, a następnie w polu tekstowym powiązanym z kolumną Nazwisko wpisać nowe dane. Po kliknięciu jakiegokolwiek aktywnego przycisku nawigacyjnego nasza zmiana zostanie na stałe wprowadzona do bazy. 8. Aby dodać dane nowej osoby, należy kliknąć ikonę . W ten sposób aktywnym rekordem zostanie nowy rekord, a powiązane pola tekstowe będą puste. Teraz wystarczy wpisać nazwisko osoby, a następnie przejść do innego rekordu.
i
Wszystkie określone podczas tworzenia tabeli źródłowej warunki poprawności danych, takie jak automatyczne generowanie kluczy podstawowych, maksymalna długość informacji zapisanych w poszczególnych kolumnach, typ wprowadzanych danych czy konieczność podania pewnych informacji, obowiązują również wtedy, gdy modyfikujemy zawartość tabeli źródłowej za pomocą formularza.
Wyszukujemy, filtrujemy i usuwamy dane
9. Przekonaj się, że: a) Niemożliwe jest wpisanie lub zmiana danych w polu Identyfikator osoby — o błędzie informuje nie tylko sygnał dźwiękowy, ale również komunikat wyświetlany na Pasku stanu formularza. b) Niemożliwe jest zapisanie danych niewłaściwego typu, np. numeru telefonu składającego się z liter. c) Niemożliwe jest zapisanie danych przekraczających rozmiar kolumny powiązanej tabeli, np. nazwisk liczących ponad 20 znaków. d) Próba zapisania danych nowej osoby bez podania jej imienia i nazwiska spowoduje wyświetlenie komunikatu o błędzie. Po jego wyświetleniu kliknij przycisk OK, aby wrócić do widoku formularza. Następnie cofnij wprowadzone informacje, naciskając klawisz ESC tyle razy, aż wszystkie pola aktywnego rekordu zostaną puste, a w polu Identyfikator osoby zostanie wyświetlony tekst 1RZ\ . 10. Aby przejść do rekordu o określonym numerze, wpisz jego numer w polu tekstowym, które znajduje się pomiędzy przyciskami nawigacyjnymi, a następnie kliknij klawisz Enter lub Tab. 11. Ponieważ tabela Osoba jest tabelą nadrzędną (czyli jest powiązana związkiem typu jeden do wielu, co oznacza, że jednemu rekordowi z tabeli Osoba może odpowiadać wiele rekordów powiązanej tabeli) dla tabeli Pożyczka, w dolnej sekcji autoformularza znajduje się arkusz danych tej tabeli. Za jego pomocą możemy, jak to już sprawdziliśmy, odczytywać, modyfikować, dodawać i usuwać rekordy tej tabeli. Ta sekcja ma również własny Pasek stanu z umieszczonymi na nim przyciskami nawigacyjnymi.
Wyszukujemy, filtrujemy i usuwamy dane Program Access ma wbudowane narzędzia ułatwiające korzystanie z formularzy. Znajdują się one w zakładce NARZĘDZIA GŁÓWNE wstążki, o ile tylko w głównym oknie programu otwarty jest dowolny formularz. Sekcja Sortowanie i filtrowanie pozwala m.in. na ograniczenie liczby rekordów do tych, które spełniają podane kryteria (czyli na filtrowanie danych, wyszukiwanie rekordu na podstawie danych oraz kasowanie bieżącego rekordu). 1. Jeżeli formularz Osoba został zamknięty, uruchom go. 2. Kliknij ikonę Nowy rekord, a następnie wpisz imię i nazwisko osoby. Na potrzeby tego ćwiczenia podaj imię, które już znajduje się w bazie.
193
194
Wyszukujemy, filtrujemy i usuwamy dane
3. Ustaw kursor w polu Imię i na wstążce w sekcji Sortowanie i filtrowanie kliknij ikonę Zaznaczanie. 4. Z listy możliwych do przeprowadzenia operacji wybierz Równa się „Eleonora” (gdzie „Eleonora” jest wpisanym imieniem użytkownika).
3 4
5. Lista wszystkich rekordów zostanie ograniczona do danych o osobach noszących imię, które znajdowało się w polu Imię w momencie kliknięcia ikony Filtruj według wyboru. 6. Zwróć uwagę na wyświetlony na pasku narzędzi komunikat Filtr świadczący o ograniczeniu liczby rekordów tabeli źródłowej. 7. Aby wyłączyć filtr, kliknij podświetloną ikonę wstążki o nazwie Przełącz filtr. Zwróć uwagę, że ta ikona nie jest już podświetlona, a kolejne jej kliknięcie z powrotem włączy zdefiniowany filtr.
8
8. Podobny efekt możemy uzyskać, klikając ikonę Filtruj. Jeżeli w tym momencie kursor ustawiony był w polu Imię, wyświetlone zostanie menu kontekstowe pozwalające na zaznaczenie imion osób, których dane ma zawierać formularz. 9. Usuń zaznaczenie pola wyboru widoczne przy dwóch ostatnich imionach i kliknij OK.
9
10. Wyłączyć filtr możemy w ten sam sposób co poprzednio, klikając ikonę Usuń filtr. 11. Możemy filtrować wyświetlane dane również za pomocą ikony Zaawansowane/Filtruj według formularza. Po jej kliknięciu zmieniony zostanie wygląd formularza. 12. Aby ograniczyć listę osób do Maurycych lub Eleonor: a) Z prawej strony pola tekstowego Imię kliknij ikonę strzałki skierowanej w dół i z listy imion wybierz Maurycy. b) Kliknij znajdującą się na dole formularza zakładkę Lub.
Wyszukujemy, filtrujemy i usuwamy dane
c) Raz jeszcze rozwiń listę imion wszystkich osób i wybierz z niej imię Eleonora.
d
c
d) Kliknij ikonę Przełącz filtr znajdującą się na wstążce.
b
13. Wyłącz utworzony filtr. 14. Aby znaleźć określony rekord (np. osobę na podstawie adresu e-mail): a) Ustaw kursor w polu e-mail dowolnej osoby. b) W sekcji Znajdowanie wstążki kliknij ikonę Znajdź; zostanie wyświetlone okno dialogowe Znajdowanie i Zamienianie. c) W polu Znajdź: wpisz adres e-mail szukanej osoby, w polu Szukaj w: określ, które kolumny pola będą przeszukiwane, w polu Uwzględnij: określ, czy ma być znaleziony tekst odpowiadający adresowi e-mail, czy jedynie zawierający podany adres i ewentualnie w polu Wyszukaj: określ porządek wyszukiwania. d) Po kliknięciu przycisku Znajdź następny SZBD Access wyszuka rekordy spełniające podane kryterium; jeżeli w tabeli Osoba znajdowały się poszukiwane przez nas osoby o podanym adresie e-mail, dane te zostaną wyświetlone w formularzu, a z lewej strony paska stanu zostanie wyświetlony komunikat Wyszukiwanie udane. W takim przypadku aby zamknąć okno dialogowe Znajdowanie i Zamienianie, kliknij przycisk Anuluj; ponowne kliknięcie przycisku Znajdź następny spowoduje wyszukanie kolejnej osoby o danym adresie e-mail. e) Jeżeli szukany rekord nie zostanie znaleziony, wyświetlone będzie okno dialogowe informujące o tym fakcie. 15. Aby usunąć z bazy dane wybranej osoby, wyświetl informacje o niej na ekranie (wykorzystaj w tym celu zdobyte umiejętności filtrowania bądź wyszukiwania danych), a następnie kliknij znajdującą się na wstążce ikonę Usuń rekord. Jeżeli zostanie wyświetlone okno dialogowe zawierające prośbę o potwierdzenie tej decyzji, kliknij przycisk Tak. 16. Zamknij okno formularza Osoba.
195
196
Kreator formularzy — tworzymy formularz powiązany z wybraną tabelą
Kreator formularzy — tworzymy formularz powiązany z wybraną tabelą Jeżeli chcemy mieć większy wpływ na wygląd i funkcjonalność formularza, a jednocześnie nie chcemy tworzyć formularza od podstaw, możemy utworzyć go za pomocą kreatora formularzy. W ten sposób będziemy mogli m.in. wybrać kolumny tabeli (autoformularz umożliwiał pobieranie danych tylko z całej tabeli).Ta metoda tworzenia formularzy również nie wymaga znajomości jakiegokolwiek języka programowania.
i
Przedstawienie najbardziej uniwersalnej metody tworzenia formularzy od podstaw w widoku projektu wykracza poza zakres tej książki.
1. Przejdź do zakładki TWORZENIE. 2. Kliknij ikonę Kreator formularzy. 3. Określ tabelę źródłową formularza — tabelę Płyta. 4. Z listy pól tabeli wybierz kolumny Tytuł, CzasTrwania, Gatunek, Nośnik, Okładka i Uwagi.
3 4
5. Kliknij przycisk Dalej. 5
6
6. Jako układ pól formularza wybierz Wyjustowany. Zwróć uwagę, że w lewej części okna wyświetlany jest podgląd wyglądu formularza wybranego typu. 7. Kliknij przycisk Dalej.
7
8. Zmień domyślną nazwę utworzonego formularza na 3ï\WD.UHDWRU i zakończ pracę kreatora, otwierając formularz.
Kreator formularzy — tworzymy formularz związany z połączonymi tabelami
9. Utworzony formularz zawiera wybrane informacje o poszczególnych płytach. Zwróć uwagę, że typ i gatunek płyty są wyświetlane na listach rozwijanych, a nie polach tekstowych. Właśnie zbudowaliśmy w pełni funkcjonalny formularz pozwalający odczytywać i modyfikować dane w powiązanej z nim tabeli. 10. Zamknij utworzony formularz.
Kreator formularzy — tworzymy formularz związany z połączonymi tabelami Dzięki kreatorowi tworzenie formularzy związanych zarówno z jedną tabelą, jak i z połączonymi tabelami jest tak samo łatwe — w tym drugim przypadku wystarczy jedynie wskazać odpowiednie pola połączonych tabel. Tak zbudowany formularz będzie zawierał wszystkie potrzebne w danym momencie informacje, i to niezależnie od tego, w ilu tabelach zostały one zapisane. Aby się o tym przekonać: 1. Utwórz nowy formularz za pomocą kreatora. 2. Jako pierwszą tabelę źródłową wybierz tabelę Płyta i zaznacz pola Tytuł, Cena, DataWydania, CzasTrwania i Uwagi.
3
2 4
3. Na drugą tabelę źródłową wybierz tabelę Zespół i dodaj pola Nazwa i Opinia. 4. Kliknij przycisk Dalej. 5. Zaakceptuj sposób prezentowania danych na przez Płyta.
5
6. Kliknij przycisk Dalej.
6
197
198
Kreator formularzy — tworzymy formularz związany z połączonymi tabelami
7. Wybierz tabelaryczny układ formularza. 8. Kliknij przycisk Dalej. 9. W ten sposób utworzyliśmy formularz prezentujący dane z dwóch powiązanych tabel. Zmień jego domyślną nazwę na 3ï\WD=HVSöï i kliknij przycisk Zakończ. 10. Zwróć uwagę, że tabelaryczny układ formularza pobierającego dane z połączonych tabel przypomina trochę tabelę programu Word lub arkusz programu Excel. Niektóre dane powtarzają się wielokrotnie, a na ekranie wyświetlanych jest jednocześnie wiele rekordów. 11. Przełącz formularz do widoku układu i zmień jego wygląd (widok układu pozwala w prosty sposób dostosowywać wielkość i położenie poszczególnych kontrolek formularza, umożliwia także zmianę niektórych ich właściwości, np. tekstów wyświetlanych w polach etykiet):
i
Access 2013 pozwala formatować (zmieniać wygląd i rozmieszczenie elementów) formularze i raporty w taki sam sposób jak inne programy pakietu Office, takie jak Word czy PowerPoint — czyli za pomocą galerii motywów oraz standardowego paska formatowania.
c
b
a
a) Za pomocą myszki rozmieść jego pola tak, żeby nie zachodziły na siebie. b) Zmniejsz też wysokość pól Uwagi. c) Zmień ich etykiety na 8ZDJLRSï\FLH oraz 8ZDJLR]HVSROH. 12. Przełącz się do widoku formularza, zapoznaj się z jego nowym wyglądem i zamknij okno formularza, zapisując wprowadzone w nim zmiany.
Poznajemy motywy i formularze nawigacyjne
Poznajemy motywy i formularze nawigacyjne Szablony formularzy nawigacyjnych to najprostszy sposób, żeby nauczyć się samodzielnego tworzenia formularzy. Dzięki gotowym do zastosowania motywom i predefiniowanym szablonom o określonym układzie pól (w programie Access nazwanych formatami) tworzenie formularzy przypomina tworzenie prezentacji programu PowerPoint — wystarczy przeciągnąć w wybrane miejsce formularza odpowiednie pola i ustawić ich właściwości. Aby dodać do bazy danych formularz nawigacyjny: 1. Przejdź do zakładki TWORZENIE.
2
2. Rozwiń znajdującą się w sekcji Formularze listę Nawigacja.
3
3. Wybierz formularz Karty pionowe, z lewej.
4. Wyświetlone zostanie okno układu formularza nawigacji. Dodatkowo z prawej strony wyświetlone będzie okienko Lista pól pozwalające (za pomocą odnośnika Pokaż wszystkie tabele) wyświetlić listę tabel bazy danych i ich kolumn. Kliknij ten odnośnik. 5. Rozwiń listę kolumn tabeli Płyta i kolejno kliknij pola Tytuł, Gatunek, Zespoły, Nośnik, Cena, DataWydania, CzasTrwania, Okładka i Uwagi. 6. Wybrane pola zostaną automatycznie dodane do tworzonego formularza. 7. Zwróć uwagę, że w dolnej części okienka Lista pól pojawiły się dwie sekcje: Pola dostępne w tabelach pokrewnych (dane z tych tabel można umieścić na formularzu i będzie on działał prawidłowo) oraz Pola dostępne w innych tabelach (dodanie którejś z tych tabel spowoduje, że formularz zwróci kombinację wszystkich rekordów — ten problem omawialiśmy w poprzednim rozdziale podczas tworzenia kwerend).
199
200
Zmiana właściwości formularza
8. Przełącz się do widoku formularza i zwróć uwagę, że choć pozwala on modyfikować dane o płytach, to brak przycisków nawigacyjnych uniemożliwia ich przeglądanie (zawsze widoczne są dane tylko pierwszej płyty). 9. Wróć do widoku układu. 10. Przejdź do zakładki NARZĘDZIA UKŁADÓW FORMULARZY/PROJEKTOWANIE i rozwiń listę dostępnych motywów znajdującą się w sekcji Motywy. 11. Ustaw kursor myszki nad dowolnym motywem. 12. Zwróć uwagę, że wygląd formularza automatycznie się zmienił i odzwierciedla wybrany przez Ciebie motyw. 13. Zastosuj odpowiadający Ci motyw. 14. Zmień tytuł formularza na 6]F]HJöï\3ï\W\ i zamknij okno formularza, zapisując go pod nazwą 6]F]HJöï\3ï\W\.
i
Motywy można stosować do zmiany wyglądu wszystkich formularzy, niezależnie od sposobu, w jaki zostały one utworzone.
Zmiana właściwości formularza Większość dotychczas utworzonych formularzy była bardzo uniwersalna. Pozwalały one zarówno przeglądać, wprowadzać, usuwać, jak i modyfikować informacje. W bazach danych uprawnienia do wykonywania tych operacji są często podzielone pomiędzy różnych użytkowników. Przykładowo pracownicy administracji mogą jedynie wprowadzać nowe dane, pracownicy księgowości przeglądać i modyfikować istniejące informacje, a kierownicy — usuwać je. Jednym ze sposobów na wprowadzenie zabezpieczeń dla tak wykorzystywanej bazy danych jest utworzenie oddzielnych formularzy (każdy z nich będzie umożliwiał wykonanie wyłącznie operacji określonego typu), a następnie przygotowanie kilku wersji programu klienckiego (każda będzie zawierała inny zbiór formularzy). Aby utworzyć formularz, który pozwoli jedynie na wprowadzanie danych do tabeli Gatunek: 1. Utwórz nowy formularz za pomocą kreatora. 2. Jako źródłową tabelę wybierz tabelę Gatunek. 3. Z listy dostępnych pól tej tabeli wybierz tylko kolumnę Nazwa. 4. Jako układ formularza wybierz Wyjustowany.
Zmiana właściwości formularza
5. Podaj nazwę formularza (*DWXQHN) i zaznacz pole wyboru Modyfikuj projekt formularza. W efekcie po zakończeniu pracy kreatora formularz zostanie otwarty w widoku projektu. 6. Zwróć uwagę, że formularz Gatunek jest bardzo prosty. W sekcji Szczegóły zawiera tylko jedno pole tekstowe i jedno pole etykiety. 7. Powiększ sekcję szczegółów formularza. W tym celu: 7a
a) Dostosuj wielkość okna projektu formularza. b) Ustaw kursor tuż poniżej linii Stopka formularza, przytrzymaj lewy przycisk myszy i przesuń ją w dół.
7c
c) Ustaw kursor na prawej krawędzi formularza, przytrzymaj lewy przycisk myszy i przesuń ją w prawo.
7b
8. Z prawej strony ekranu wyświetlony zostanie arkusz właściwości (jeżeli nie został on automatycznie wyświetlony, kliknij prawym przyciskiem myszy wolny obszar formularza i z menu kontekstowego wybierz opcję Właściwości).
10
9
9. Arkusz właściwości pozwala ustawić dowolne właściwości formularza, jego sekcji (np. nagłówka) oraz wszystkich umieszczonych na formularzu obiektów (takich jak pola tekstowe). 10. Ponieważ chcemy zmodyfikować właściwości całego formularza, a nie wybranej jego sekcji, rozwiń listę obiektów i wybierz Formularz.
11. Przejdź do zakładki Format, a następnie: a) W polu Paski przewijania wybierz pozycję Żaden (skoro za pomocą formularza możliwe będzie wyłącznie wstawianie nowych danych, a nie ich przeglądanie, to paski przewijania są zbędne). b) Wyłącz przyciski nawigacyjne (nie będą potrzebne z tych samych powodów). c) Wyłącz również selektory rekordów (nie ma powodu wyróżniać aktywnego rekordu, skoro i tak wyświetlany będzie tylko jeden rekord).
201
202
Zmiana właściwości formularza
12. Następnie przejdź do zakładki Dane i zmień wartość atrybutu Wprowadzanie danych na Tak. W ten sposób użytkownicy będą mogli jedynie wprowadzać nowe dane do tabeli źródłowej formularza. Właśnie dowiedzieliśmy się, że SZBD Access umożliwia bardzo dokładne dostosowanie formularza do naszych potrzeb — twórca bazy danych może ustawić kilkadziesiąt właściwości nie tylko formularza, ale również poszczególnych jego sekcji (np. nagłówków) i wszystkich znajdujących się na nim pól (np. pola tekstowego Gatunek). 13. Zamknij arkusz właściwości i wyświetl widok formularza. 14. Przekonaj się, że możemy wpisać nazwę nowego gatunku, ale jedynym sposobem na zapisanie tych danych w powiązanej tabeli jest zamknięcie formularza. 15. W widoku formularza możemy w prosty sposób dopasować jego rozmiar do umieszczonych na nim pól, klikając w sekcji Okno ikonę Dopasuj do rozmiaru formularza. Aby zapisać nowy rozmiar formularza, wystarczy kliknąć znajdującą się z lewej strony wstążki ikonę Zapisz. 16. Raz jeszcze wyświetl widok projektu formularza. 17. Zauważ, że po przełączeniu formularza do tego widoku na wstążce wyświetlany jest zestaw formantów (kontrolek). Pozwala on na dodawanie do formularza dodatkowych obiektów, np. pól tekstowych czy przycisków polecenia. Zanim dodamy pierwszą kontrolkę, rozszerz formularz tak, aby po prawej stronie pola tekstowego znalazło się miejsce na nowy przycisk polecenia. 17 18. W sekcji Formanty kliknij ikonę Przycisk. 19. W pustym obszarze znajdującym się po prawej stronie pola tekstowego narysuj myszą obrys przycisku polecenia dodawanego do formularza. Uruchomiony zostanie Kreator przycisków poleceń: a) Na liście kategorii wybierz Operacje na rekordach. b a
c
b) Z listy dostępnych czynności wybierz Dodaj nowy rekord. c) Kliknij przycisk Dalej.
Zmiana właściwości formularza
d) Wybierz ikonę lub opis dla dodawanego przycisku i zakończ pracę kreatora. Ostatnie pytanie kreatora będzie dotyczyło nazwy tworzonego przycisku polecenia. Nazwy kontrolek, takich jak przyciski polecenia czy pole tekstowe, nie powinny być zmieniane. Właśnie poznaliśmy sposób umieszczania na formularzach działających przycisków najróżniejszych poleceń. 20. Po uruchomieniu formularza (przełączeniu go do widoku formularza) przetestuj jego działanie: a) Wpisz nazwę nowego gatunku. b) Kliknij przycisk polecenia. c) Zamknij okno formularza i zapisz wprowadzone w nim zmiany. d) Otwórz tabelę Gatunek i sprawdź, czy znajdują się w niej nowe dane. Ponieważ nie pozwoliliśmy na zapisywanie w tabeli Gatunek powtarzających się nazw gatunków muzycznych, a nasz formularz nie został wyposażony w program obsługi błędów, próba kilkakrotnego zapisania takich samych danych zakończy się wyświetleniem standardowego komunikatu o błędzie SZBD Access.
i
21. O ile widok projektu pozwala konfigurować i dodawać obiekty formularza, to rozmieszczać je i formatować najwygodniej jest w znanym nam już widoku układu. Wyświetl w tym widoku formularz Gatunek.
22
22. Zaznacz pola etykiety i tekstowe (żeby zaznaczyć jednocześnie kilka kontrolek, podczas ich klikania przytrzymaj wciśnięty klawisz Shift). 23. Przejdź do zakładki FORMATOWANIE i zmień kolor czcionki obu kontrolek na czerwony. Okazuje się, że formatowanie pól formularza niczym nie różni się od formatowania np. tekstu w edytorze Word.
24. Zaznacz wszystkie trzy kontrolki formularza i przejdź do zakładki ROZMIESZCZANIE. 25. Kliknij ikonę Kotwiczenie i wybierz opcję U dołu z lewej. Właśnie poznaliśmy prosty sposób automatycznego rozmieszczania pól na formularzach. 26. Uruchom formularz i sprawdź, jak zachowują się kontrolki podczas zmieniania jego wielkości. 27. Zamknij formularz Gatunek i zapisz wprowadzone w nim zmiany.
203
204
Formularz do przeglądania danych
Formularz do przeglądania danych Poprzedni formularz pozwalał tylko na dodawanie danych. Wykonując bieżące ćwiczenie, projekt formularza utworzonego za pomocą kreatora zmienimy w taki sposób, aby umożliwiał jedynie przeglądanie znajdujących się w tabeli źródłowej danych. 1. Za pomocą kreatora utwórz nowy formularz powiązany z tabelą Osoba. 2. Na liście dostępnych pól zaznacz wszystkie kolumny (za wyjątkiem kolumny IdOsoby). 3. Wybierz tabelaryczny układ pól formularza i kliknij Dalej. 4. Zmień domyślną nazwę formularza na 2VRED2GF]\W i otwórz go w widoku projektu. 5. Dostosuj rozmiar formularza i poszczególnych pól do wyświetlanych w nich danych.
i
Aby jednocześnie zaznaczyć kilka pól formularza (np. w celu zmiany rozmiaru pola tekstowego i związanego z nim pola etykiety), podczas zaznaczania kolejnych kontrolek należy trzymać wciśnięty klawisz Shift.
6. Wyświetl właściwości formularza (całego formularza, a nie sekcji Szczegóły) i przejdź do zakładki DANE. Arkusz właściwości można wyświetlić klawiszem F4, a jednym ze sposobów wyświetlenia właściwości całego formularza jest kliknięcie kwadratowej ikony znajdującej się w jego lewym górnym rogu.
Tworzymy formularz z podformularzem
7. Zablokuj możliwość modyfikowania, usuwania i dodawania danych przez ten formularz. W tym celu: a) Wartość atrybutu Edycja dozwolona zmień na Nie. b) Wartość atrybutu Usuwanie dozwolone zmień na Nie. c) Wartość atrybutu Dodawanie dozwolone zmień na Nie. 8. Zamknij okno właściwości formularza i wyświetl go w widoku formularza. 9. Uruchom formularz i zauważ, że wyświetlane dane o poszczególnych osobach nie mogą być w żaden sposób modyfikowane. Niemożliwe jest też usuwanie istniejących rekordów i dodawanie nowych. 10. Zamknij okno formularza i zapisz wprowadzone w nim zmiany.
Tworzymy formularz z podformularzem Wiemy już, że tabele bazy danych połączone są często związkiem typu jeden do wielu (np. jedna płyta może należeć do jednego gatunku muzycznego, ale do tego samego gatunku możemy zaklasyfikować dowolną liczbę płyt) lub wiele do wielu (np. jeden zespół może nagrać wiele płyt i jedna płyta może być nagrana przez wiele zespołów). Wygodnym sposobem na zaprezentowanie danych zapisanych w połączonych relacją tych typów tabelach jest utworzenie formularza z podformularzem. Ten dodatkowy formularz będzie zawierał informacje z tabeli podrzędnej. Aby utworzyć formularz prezentujący dane o zespołach i płytach, które zostały nagrane przez te zespoły: 1. Utwórz nowy formularz za pomocą kreatora. 2. Jako tabele źródłowe określ tabele Płyta i Zespół. Tym razem wybierz wszystkie kolumny obu tabel, łącznie z kolumnami przechowującymi identyfikatory wierszy. Za ich pomocą zobaczymy, w jaki sposób podformularz zostanie powiązany z formularzem głównym.
i
Podformularz powinien być automatycznie synchronizowany z formularzem głównym, np. po wybraniu zespołu Walk Away użytkownik powinien zobaczyć tylko dane o płytach tego zespołu. W tym celu oba formularze muszą zawierać pola jednoznacznie identyfikujące wiersze tabel źródłowych.
205
206
Tworzymy formularz z podformularzem
3. Odpowiadając na kolejne pytanie kreatora, określ sposób prezentowania danych (przez Zespół) i typ powiązania formularzy (Formularz z podformularzem(ami)).
3
4. Kliknij przycisk Dalej. 4
5. Jako układ pól formularza wybierz Tabelaryczny. 6. Podaj nazwy obu utworzonych formularzy: =HVSöï i 3ï\WD3RGIRUPXODU].
i
Tworząc formularz z podformularzem, w rzeczywistości tworzymy dwa formularze, z których jeden (w tym wypadku formularz PłytaPodformularz) wyświetlany jest w obrębie drugiego (formularza Zespół).
7. Po uruchomieniu formularza przekonasz się, że chociaż jest on w pełni funkcjonalny (umożliwia przeglądanie oraz modyfikowanie danych o zespołach i płytach nagranych przez te zespoły), to jednak wymaga jeszcze dopracowania. 8. Wyświetl formularz w widoku projektu. 9. W pierwszej kolejności usuniemy pola zawierające identyfikatory wierszy: a) Zaznacz pole tekstowe Identyfikator zespołu. 9a
9c
b) Zaznacz również odpowiadające mu pole etykiety. c) Usuń obie kontrolki, naciskając klawisz Del albo wybierając Wytnij bądź Usuń z menu kontekstowego (menu wyświetlanego po naciśnięciu prawego przycisku myszy).
Tworzymy formularz z podformularzem
d) Dwukrotnie kliknij pole podformularza — zostanie on wyświetlony w widoku projektu. e) W ten sam sposób usuń z podformularza pola Identyfikator Płyty i IdPłyty. 10. Zmniejsz wysokość pól Okładka i Uwagi, tak aby mniej więcej odpowiadała ona wysokości pozostałych pól podformularza. 11. Ponieważ kolumna Uwagi jest typu Długi Tekst, użytkownicy będą mogli formatować wprowadzane uwagi o zespołach. W tym celu: a) Kliknij to pole lewym przyciskiem myszy. Wyświetlony zostanie arkusz właściwości pola tekstowego Uwagi.
a
b) Zmień typ pola ze Zwykły tekst na Tekst sformatowany. b
c) Jeżeli zmienimy typ pola, zostanie wyświetlone ostrzeżenie — poprzez formularz użytkownicy będą mogli formatować tekst (np. zmieniać czcionkę czy kolor części tekstu), jednak tego typu zmiany na razie nie mogą być zapisywane w tabeli. Kliknij przycisk Tak. d g
d) Zamknij (zapisując zmiany) projekt obu formularzy i wyświetl projekt tabeli Płyta. e) Właściwość Format tekstu kolumny Uwagi zmień na Tekst sformatowany.
f
e
f) Zostanie wyświetlony Tag inteligentny pozwalający na przeprowadzanie zmian we wszystkich obiektach, które odwołują się do tej tabeli — kliknij go.
g) W oknie dialogowym zostanie wyświetlona lista obiektów, które będą zmodyfikowane. Kliknij Tak, potwierdzając swoją decyzję. Zapisz wprowadzone zmiany i zamknij okno projektu tabeli. 12. Ponownie wyświetl projekt formularza PłytaPodformularz.
207
208
Korzystanie z formularza z podformularzem
13. Pozostało nam dopracować wygląd formularza i jego kontrolek, tak aby poprawić ich czytelność: a) Pogrub czcionkę w polach etykiet podformularza. b) Usuń obie kontrolki (pole tekstowe i etykietę) Zespoły.Value. c) Zmniejsz szerokość etykiet podformularza, przesuń je wszystkie w lewo, a następnie zmniejsz szerokość samego podformularza, tak aby mieścił się w całości na formularzu głównym. d) Zmniejsz wysokość sekcji szczegółów i stopki podformularza, a następnie zamknij widok projektu, zapisując wprowadzone zmiany. 14. Wyświetl projekt formularza nadrzędnego (formularza Zespół), skasuj pole etykiety Płyta, rozszerz ten formularz, a następnie rozszerz okno podformularza, tak aby widoczne były wszystkie jego pola. 15. Uruchom formularz i zwróć uwagę na pola pozwalające na wybór gatunku i typu. Zamiast pól tekstowych SZBD Access wykorzystał listy rozwijane. Za ich pomocą nie można co prawda dodać nowych danych do tabel powiązanych, ale wybór istniejących danych jest o wiele prostszy niż w przypadku każdorazowego ich wpisywania. 16. Zamknij okno formularza i zapisz wszystkie zmiany.
Korzystanie z formularza z podformularzem W poprzednim ćwiczeniu utworzyliśmy dwa powiązane ze sobą formularze: główny Zespół i podrzędny PłytaPodformularz. Jak mogliśmy zauważyć, Access automatycznie synchronizuje dane wyświetlane w podformularzu, dzięki czemu po zmianie zespołu automatycznie zmieniła się lista płyt. Użytkownicy bazy danych korzystający z formularza z podformularzem powinni wiedzieć, że skoro na ekranie wyświetlane są jednocześnie dwa formularze, to każdy z nich ma własne przyciski nawigacyjne i paski przewijania. Wstążka i pasek narzędzi programu Access jest jednak jeden, a efekt kliknięcia np. ikony Usuń rekord zależy od tego, który formularz jest formularzem aktywnym, czyli w polu którego formularza ustawiony jest kursor myszy. 1. Otwórz formularz Zespół. 2. Korzystając z przycisków nawigacyjnych formularza głównego, wyświetl dane jednego zespołu.
Panel przełączania jako przykład formularza niezwiązanego z żadną tabelą użytkownika
9
3 4
5
2
3. Korzystając z przycisków nawigacyjnych podformularza, wyświetl informacje o kolejnych płytach tego zespołu. 4. Zmień cenę wybranej płyty. 5. Ustaw kursor w polu tytułu wybranej płyty. 6. Kliknij ikonę Znajdź i wyszukaj płytę wybranego zespołu. 7. Zamknij okno wyszukiwania. 8. Ustaw kursor w polu Nazwa zespołu. 9. Kliknij ikonę Znajdź i wyszukaj dane o zespole Pink Floyd. 10. Zamknij okno wyszukiwania. 11. Ustaw kursor w dowolnym polu płyty Animals i skasuj ją, klikając ikonę Usuń rekord. 12. Zamknij formularz Zespół.
Panel przełączania jako przykład formularza niezwiązanego z żadną tabelą użytkownika Każda baza danych powinna mieć formularz główny. Pozwala on na wyświetlanie pozostałych formularzy i raportów bez konieczności wyświetlania użytkownikom głównego okna bazy danych programu Access. W ten sposób możemy ukryć przed innymi użytkownikami strukturę bazy danych i ułatwić im korzystanie z programu. W przygotowaniu takiego formularza pomoże Menedżer panelu przełączania.
209
210
Panel przełączania jako przykład formularza niezwiązanego z żadną tabelą użytkownika
Ponieważ w najnowszej wersji programu Accesss Menedżer panelu przełączania nie znajduje się już na wstążce, w pierwszej kolejności musimy dodać jego ikonę do paska narzędzi Szybki dostęp: 1. Rozwiń menu PLIK. 2. Kliknij przycisk Opcje. 3. Przejdź do zakładki Pasek narzędzi Szybki dostęp. 4. Z listy kategorii poleceń wybierz Polecenia, których nie ma na Wstążce. 5. Znajdź Menedżer panelu przełączania i kliknij przycisk Dodaj. 6. Zatwierdź zmiany, klikając OK.
4
5
3
6
Aby utworzyć panel przełączania: 1. Kliknij dodaną do paska narzędzi Szybki dostęp ikonę Menedżer panelu przełączania. 2. Ponieważ w bazie nie istnieje żaden panel przełączania, na pytanie, czy utworzyć nowy, odpowiedz Tak. 3. Zostanie wyświetlone okno z listą stron panelu przełączania. Na panelu sterowania można umieścić tylko określoną liczbę przycisków, dlatego aby umożliwić uruchamianie wszystkich formularzy, kwerend czy raportów, został on podzielony na kilka stron. Zależnie od wybranej strony kliknięcie tego samego przycisku spowoduje inną akcję programu.
i
Zmieniając wygląd lub wielkość przycisków panelu przełączania, pamiętaj, że zmiana będzie widoczna na wszystkich panelach tego formularza.
Panel przełączania jako przykład formularza niezwiązanego z żadną tabelą użytkownika
3
5 4
4. Dodaj nową stronę panelu przełączania, klikając przycisk Nowa… i wpisując jej nazwę (5DSRUW\ED]\3ï\WRWHND). 5. Kliknij przycisk OK. 6. Aby zmodyfikować wygląd głównej (domyślnej) strony panelu przełączania, zaznacz ją i kliknij przycisk Edytuj…. 7. Zmień nazwę głównej strony panelu przełączania na )RUPXODU]HED]\3ï\WRWHND. 8. W ten sposób utworzyliśmy dwie strony panelu przełączania. Następnym etapem będzie dodanie do nich przycisków poleceń. 9. Nie zamykając edytora głównej strony panelu przełączania, dodaj przycisk polecenia, klikając pole Nowy…: d
a b c
a) Wpisz nazwę nowego przycisku polecenia (3U]HïÈF] GRZLGRNXUDSRUWöZ).
b) Określ typ akcji wykonywanej po jego kliknięciu (Przejdź do panelu przełączania). c) Wpisz nazwę strony wyświetlanej po jego kliknięciu (Raporty bazy Płytoteka). d) Kliknij przycisk OK. W ten sposób przycisk polecenia zostanie dodany do panelu przełączania.
i
Aby w przyszłości zmodyfikować istniejący formularz panelu przełączania, np. dodać kolejne przyciski poleceń, nie trzeba wyświetlać widoku projektu tego formularza. Wystarczy jedynie ponownie uruchomić Menedżera panelu przełączania.
211
212
Panel przełączania jako przykład formularza niezwiązanego z żadną tabelą użytkownika
10. Dodaj kolejny przycisk do głównej strony panelu przełączania: a) Tym razem jako nazwę przycisku wpisz 3U]HJOÈGDQLHLQIRUPDFMLRRVREDFK, jako typ polecenia wybierz Otwórz formularz w trybie edycji i z listy formularzy wybierz formularz OsobaOdczyt. b) Kliknij przycisk OK. 11. Zamknij stronę formularzy bazy danych Płytoteka. 12. Wyświetl stronę Raporty bazy Płytoteka i dodaj do niej nowy przycisk polecenia: a) Jako nazwę przycisku wpisz 3U]HïÈF]GRZLGRNXIRUPXODU]\, określ typ akcji wykonywanej po jego kliknięciu (Przejdź do panelu przełączania) i wybierz nazwę strony wyświetlanej po jego kliknięciu (Formularze bazy Płytoteka). b) Zatwierdź zmiany przyciskiem OK. 13. Zamknij wszystkie otwarte okna Menedżera panelu przełączania i w Okienku nawigacji na liście wszystkich formularzy znajdź Panel przełączania. 14. Po uruchomieniu tego formularza przetestuj jego działanie. 15. Zamknij okno głównego formularza bazy danych. Wiemy już, jak tworzyć niepowiązane z tabelami formularze, które pozwolą użytkownikom na pracę z obiektami naszej bazy danych. Program Access umożliwia również automatyczne wyświetlenie wybranego formularza po otwarciu bazy danych. Aby użytkownik nie musiał samodzielnie uruchamiać głównego formularza bazy danych i aby ukryć przed nim listę obiektów bazy: 1. Rozwiń menu PLIK. 2. Kliknij przycisk Opcje. 3. Przejdź do zakładki Bieżąca baza danych. 4. Wpisz tytuł aplikacji (3ï\WRWHND) 5. Korzystając z listy rozwijanej Wyświetl formularz, z listy formularzy bazy danych wybierz Panel przełączania. 6. Po zakończeniu prac nad bazą danych należałoby ponownie wyświetlić to okno dialogowe i usunąć zaznaczenie pola wyboru Wyświetl okienko nawigacji. W ten sposób nie tylko automatycznie będzie wyświetlony formularz Panel przełączania, ale lista obiektów bazodanowych zostanie ukryta przed innymi użytkownikami programu.
Poznajemy zależności pomiędzy obiektami bazy danych
3
7. Kliknij przycisk OK i zamknij bazę danych. Następnie raz jeszcze ją otwórz — spowoduje to uruchomienie bazy danych i wyświetlenie na ekranie głównego formularza bazy danych.
4 5
6
7
Poznajemy zależności pomiędzy obiektami bazy danych Skoro baza danych składa się z powiązanych obiektów różnego typu, powinniśmy poznać istniejące między nimi zależności. Wiedza o nich przyda się, gdy będziemy chcieli np. szybko znaleźć formularz pobierający dane z wybranej tabeli czy uniknąć usunięcia kwerendy lub tabeli, która zwraca dane wykorzystywane w kilku raportach.
i
Zanim usuniesz obiekt bazy danych, sprawdź, czy poprawne działanie innych obiektów bezpośrednio lub pośrednio nie zależy od jego istnienia.
Aby wyświetlić listę obiektów zależnych od danego obiektu: 1. Kliknij widoczną w Okienku nawigacji ikonę strzałki skierowanej w dół. 2. Zaznacz pozycję Tabele i powiązane widoki. 3. Po chwili zostanie wyświetlona lista wszystkich obiektów bazy danych pogrupowanych według istniejących między nimi zależności. 4. Aby wyświetlić informacje o obiektach zależnych od konkretnej tabeli, raz jeszcze kliknij widoczną na pasku nawigacyjnym strzałkę i zaznacz nazwę tabeli Gatunek. 5. W Okienku nawigacji wyświetlone zostaną dwie kwerendy i formularz, których działanie zależy od tabeli Gatunek.
213
214
Podsumowanie
Podsumowanie Po przeczytaniu bieżącego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi może mieć pewne kłopoty, mają mu pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Co to są sekcje formularza? 2. Co umieszcza się na stronach panelu przełączania? 3. Co to znaczy, że pola formularza są wyjustowane? 4. Czy możemy utworzyć formularz z więcej niż jednym podformularzem? 5. Czy tworząc formularz z podformularzem w Accessie 2013, należy ukrywać przed użytkownikami pola zawierające identyfikatory wierszy?
ľ'RF]HJRVïXĝÈUDSRUW\"ľ,QVWDODFMD GUXNDUNLZV\VWHPLH:LQGRZVľ7ZRU]\P\ DXWRUDSRUWľ.UHDWRUUDSRUWöZĽWZRU]\P\ UDSRUWSRZLÈ]DQ\]Z\EUDQÈWDEHOÈľ.UHDWRU UDSRUWöZĽWZRU]\P\UDSRUWSRZLÈ]DQ\ ]ZLHORPDWDEHODPLľ.UHDWRUUDSRUWöZ ĽWZRU]\P\UDSRUWSRZLÈ]DQ\]NZHUHQGÈľ 'RGDMHP\SRGVXPRZDQLDGRVWRSNLUDSRUWX ľ5DSRUWJUXSXMÈF\GDQHľ'RGDMHP\ GRGDWNRZHSR]LRP\JUXSRZDQLDGDQ\FKľ :L]XDOL]DFMHLIRUPDWRZDQLHZDUXQNRZHľ 7ZRU]HQLHğOWUöZRJUDQLF]DMÈF\FK SUH]HQWRZDQHGDQHľ3RGVXPRZDQLH
8
Raporty, czyli jak zaprezentować dane Do czego służą raporty? Tabele służą do przechowywania danych i użytkownicy nie powinni mieć do nich bezpośredniego dostępu. Kwerendy upraszczają dostęp do danych i tworzą warstwę abstrakcji — jeżeli formularze i raporty odwołują się do nich, a nie do tabel, zmiana definicji tabeli będzie wymagać jedynie odpowiedniej zmiany kwerendy, a nie przebudowy wszystkich obiektów. Formularze ułatwiają użytkownikom wyszukiwanie, przeglądanie i modyfikowanie danych przechowywanych w bazie. Raporty są natomiast najlepszym sposobem ich prezentowania — zarówno tych zapisanych w bazie, jak i tych wyliczonych na ich podstawie. Access 2013 pozwala m.in. przedstawiać dane w postaci graficznej, czyli zamieniać niewiele mówiące cyfry w łatwe do zinterpretowania informacje. Ponieważ domyślnie raporty są drukowane, przed ich utworzeniem należy zainstalować drukarkę — w ten sposób na podglądzie wydruku zobaczymy rzeczywisty wygląd raportów.
216
Instalacja drukarki w systemie Windows 7
i
Do zainstalowania drukarki w systemie operacyjnym nie jest wymagane fizyczne jej podłączenie do komputera — wystarczy zainstalować dowolny z dołączonych do systemu Windows sterowników drukarki.
Bardzo często raporty pobierają informacje za pośrednictwem kwerend, które nie tylko zwracają dane zapisane w połączonych tabelach, ale również pozwalają na określenie kryteriów wyboru informacji prezentowanych przez raport. Umożliwiają ponadto zaprezentowanie odpowiednich zestawień i statystyk. Możliwe jest np. utworzenie raportu zawierającego dane personalne wybranego lekarza, średnią liczbę przeprowadzonych przez niego zabiegów w ostatnich kilku miesiącach (z uwzględnieniem typów tych zabiegów), a także informacje na temat liczby przepisanych przez niego leków. W dobrze zaprojektowanej bazie danych generowanie dowolnie wybranych informacji za pomocą raportów nie jest skomplikowane. W efekcie początkujący użytkownik bazy programu Access może jednym kliknięciem myszy wykonać operacje niedostępne nawet dla bardzo doświadczonego użytkownika programu Excel. Wykonując ćwiczenia z bieżącego rozdziału, poznamy sposoby tworzenia coraz bardziej skomplikowanych raportów, które nie wymagają napisania nawet jednej linijki kodu w jakimkolwiek języku programowania.
Instalacja drukarki w systemie Windows 7 Aby zainstalować drukarkę: 1. Podłącz komputer do internetu — Windows 7 automatycznie wyszukuje i pobiera sterowniki urządzeń (w tym drukarek) z witryny Windows Update. 2. Jeżeli drukarka nie jest podłączona do komputera, a wykorzystuje port USB (mała, prostokątna wtyczka), podłącz ją do komputera.
i
Porty USB tylko wyglądają na identyczne. Po podłączeniu drukarki do jednego z nich i zainstalowaniu sterowników urządzenie będzie działało poprawnie, ale jak tylko przepniesz kabel drukarki do innego portu USB, konieczna będzie jej ponowna instalacja.
3. W przypadku gdy system Windows 7 prawidłowo rozpozna urządzenie, zobaczysz powiadomienie o instalowaniu i konfigurowaniu urządzenia. Po chwili drukarka będzie gotowa do użycia.
Instalacja drukarki w systemie Windows 7
Jeżeli Twoja drukarka nie została automatycznie zainstalowana: 1. W pierwszej kolejności sprawdź, czy drukarka jest włączona i podłączona do komputera. Jeżeli jest to drukarka USB, spróbuj podłączyć ją do innego portu — zdarza się, że nie wszystkie porty USB są aktywne. 2. Jeżeli system Windows 7 nadal nie wykrył drukarki, z menu Start wybierz Urządzenia i drukarki. 3. Na pasku narzędzi kliknij przycisk Dodaj drukarkę. 4. Uruchomiony zostanie kreator dodawania drukarek. Wybierz opcję Dodaj drukarkę lokalną. 5. Jeśli drukarka nie została automatycznie zainstalowana, to prawdopodobnie podłączona jest do portu LPT. Upewnij się, że wybrany port jest prawidłowy, i kliknij Dalej. 6. Jeżeli dysponujesz sterownikami do drukarki: a) Kliknij przycisk Z dysku i wskaż lokalizację sterowników urządzenia. b) Jeżeli chcesz, możesz zmienić nazwę drukarki, udostępnić ją w sieci oraz określić ją jako domyślną. c) Po zainstalowaniu drukarki będziesz mógł wydrukować stronę testową. Kliknięcie Zakończ kończy pracę kreatora. 7. W przeciwnym razie skorzystaj ze sterowników systemowych (tę opcję należy wybrać, jeżeli nie mamy drukarki): a) Wybierz producenta i model drukarki. b) Kliknij Dalej.
7a
7b
c) Ewentualnie zmień nazwę drukarki. d) Kliknij Dalej.
217
218
Tworzymy autoraport
e) Jeżeli chcesz, żeby inni użytkownicy sieci lokalnej mogli z niej korzystać, wybierz opcję Udostępnij tę drukarkę. f) Kliknij Dalej. g) Nowo dodana drukarka zostanie domyślną drukarką — nie zmieniając tego ustawienia, wydrukuj stronę testową i zakończ działanie kreatora (jeżeli masz zainstalowanych kilka drukarek, wszystkie dokumenty będą drukowane na domyślnej, chyba że przed wydrukowaniem dokumentu wskażesz inną drukarkę).
Tworzymy autoraport Najprostszym i najszybszym sposobem na utworzenie formularza było zbudowanie autoformularza. W przypadku raportów prezentujących dane zapisane w tabeli lub informacje zwracane przez kwerendę najłatwiejszą metodą ich budowania jest w pełni automatyczne tworzenie autoraportów. Aby utworzyć autoraport wyświetlający listę wszystkich osób: 1. Otwórz bazę danych Rozdział08\Starter\Rozdział8 (baza ta zawiera wyniki wszystkich wykonanych do tej pory ćwiczeń plus jeden dodatkowy raport) i zamknij wyświetlony automatycznie panel przełączania. 2. W Okienku nawigacji zaznacz tabelę Osoba. 3. Przejdź do zakładki TWORZENIE. 4. Kliknij ikonę Raport.
3 4
2
5. Raport zostanie utworzony i wyświetlony na ekranie w widoku układu. Jeżeli wyświetlone zostaną pytania o wartości parametrów Date i Time, skasuj dwa pola z nagłówka raportu, w których wyświetlany jest komunikat #Nazwa?.
Kreator raportów — tworzymy raport powiązany z wybraną tabelą
6. Zwróć uwagę, że raport nie mieści się na stronie. Żeby naprawić ten błąd: a) Przejdź do zakładki USTAWIENIA STRONY. b) Zmień orientację strony na poziomą. c) Zmień etykietę pierwszej kolumny na ID i zmniejsz szerokość tej kolumny.
b
a
c
d
d) W miarę potrzeby zmień szerokość pozostałych kolumn raportu.
7. Właśnie utworzyliśmy i dostosowaliśmy do zainstalowanej drukarki pierwszy raport. Zamknij okno raportu i zapisz go pod domyślną nazwą Osoba.
Kreator raportów — tworzymy raport powiązany z wybraną tabelą Utworzenie autoraportu — jak mogliśmy się przekonać w poprzednim ćwiczeniu — jest wyjątkowo łatwe. Nie mieliśmy jednak specjalnego wpływu na liczbę i uporządkowanie danych zwracanych przez ten autoraport, dlatego tworząc raport powinniśmy skorzystać z pomocy kreatora. Z tą metodą tworzenia raportów zapoznamy się, wykonując kolejne ćwiczenia z tego rozdziału. Trzecia metoda, która daje użytkownikowi największą swobodę (jaką jest tworzenie raportów w widoku projektu) i możliwości w dostosowaniu raportu do jego potrzeb, wykracza poza zakres tematyczny tej książki. 1. Przejdź do zakładki TWORZENIE. 2. Kliknij ikonę Kreator raportów. 3. Jako źródłową tabelę wybierz tabelę Zespół.
3 4
4. Z listy dostępnych pól tabeli wybierz kolumny Nazwa i Opinia.
219
220
Kreator raportów — tworzymy raport powiązany z wybraną tabelą
5. Kolejne pytanie kreatora będzie dotyczyło poziomów grupowania prezentowanych danych. W przypadku tego raportu nie dodawaj żadnych poziomów grupowania.
5
6. Kliknij przycisk Dalej. 6
7. Zwracane przez raport dane powinny być uporządkowane. SZBD Access umożliwia ich posortowanie według wartości czterech różnych kolumn. Na pierwszoplanowe pola, według wartości których będą sortowane dane, wybierz kolumnę Nazwa i upewnij się, że porządek sortowania został ustalony na Rosnąco. Właśnie przekonaliśmy się, że niemożliwe jest sortowanie danych według wartości kolumn typu Długi tekst. 8. Kliknij przycisk Dalej. 9. Wybierz tabelaryczny układ raportu.
7
8
10. Ponieważ liczba danych o poszczególnych zespołach nie jest zbyt duża (w przykładowej bazie danych przechowywane są tylko nazwy zespołów i nasza o nich opinia), zaakceptuj domyślną, pionową orientację raportu.
9
11. Ponieważ nie planujemy modyfikowania projektu tego raportu, upewnij się, że zaznaczone jest pole wyboru Dostosuj szerokość pól tak, aby wszystkie pola były widoczne na stronie.
11
12. Kliknij przycisk Dalej.
10
12
13. Zaakceptuj domyślną nazwę raportu (Zespół) i otwórz raport w widoku Podgląd raportu.
Kreator raportów — tworzymy raport powiązany z wieloma tabelami
14. Aby wydrukować raport, kliknij znajdującą się z lewej strony wstążki ikonę Drukuj. 15. Zwróć uwagę, że dane źródłowe raportu mogą być wyeksportowane do arkuszy Excela i plików tekstowych. 16. Zwróć również uwagę na możliwość zapisania raportu: a) w formacie PDF lub XPS b) oraz jako dokumentu programu Word lub dokumentu HTML. 17. Zamknij okno raportu.
14
15
a
b
15
Kreator raportów — tworzymy raport powiązany z wieloma tabelami Po utworzeniu prostego raportu pobierającego dane z jednej tabeli przygotowanie za pomocą kreatora raportu pobierającego dane z połączonych tabel nie powinno być żadnym problemem. Ponieważ w praktyce duża część raportów zawiera dane odczytane z kilku tabel, w tym ćwiczeniu nauczymy się tworzyć tego typu raporty: 1. Utwórz nowy raport za pomocą kreatora. 2. Z listy tabel bazy danych wybierz kolejno: a) Tabelę Płyta i zaznacz pole Tytuł. b) Tabelę Pożyczka i zaznacz pola Osoba, DataPożyczki i DataZwrotu.
b
a
3
3. Kliknij przycisk Dalej.
221
222
Kreator raportów — tworzymy raport powiązany z kwerendą
4. Ponieważ raport pobiera informacje z tabel połączonych związkiem typu jeden do wielu, dane mogą być prezentowane albo według osób (to uniemożliwi ich grupowanie), albo według płyt (w ten sposób tytuły płyt będą pogrupowane według danych osób, które je pożyczyły). Wybierz opcję przez Pożyczka i kliknij przycisk Dalej. 5. Tym razem również nie dodawaj żadnych poziomów grupowania danych i kliknij przycisk Dalej. 6. Dane zwracane przez raport malejąco posortuj według wartości pól kolumny DataPożyczki. 7. Kliknij przycisk Dalej. 8. Wybierz układ kolumnowy oraz pionową orientację raportu i kliknij przycisk Dalej. 9. Odpowiadając na ostatnie pytanie kreatora, zaakceptuj jego domyślną nazwę (Pożyczka). Następnie wyświetl raport w widoku podglądu wydruku. 10. Zwróć uwagę, że w prawej części paska stanu znajduje się suwak pozwalający płynnie zmieniać wielkość wyświetlanego raportu. 11. Po przeanalizowaniu zwracanych przez raport danych i ich układu zamknij okno raportu. Okazuje się, że budowanie raportów pobierających dane z powiązanych tabel nie różni się od tworzenia raportów bazujących na pojedynczych tabelach.
Kreator raportów — tworzymy raport powiązany z kwerendą Skoro kwerendy zwracają zapisane w tabelach informacje, to nie ma żadnej różnicy, czy raport będzie pobierał dane bezpośrednio z tabel, czy z kwerend. Dzięki temu do przygotowania raportu możemy wykorzystać zdobyte w rozdziale 6. umiejętności wybierania i porządkowania danych — raport będzie zawierał nie tylko odczytane z tabel informacje, ale również wyliczone na ich podstawie dane pochodne. 1. Utwórz za pomocą kreatora nowy raport. 2. Jako obiekt źródłowy wybierz kwerendę kGrupowanie. 3. Dodaj obie kolumny kwerendy.
Kreator raportów — tworzymy raport powiązany z kwerendą
4. Ponieważ kwerenda grupuje dane według wspólnych wartości atrybutu Gatunek, a następnie dla poszczególnych gatunków wylicza liczbę płyt, tworzony raport powinien zawierać poziom grupowania, który odzwierciedla strukturę danych źródłowych. Zaakceptuj domyślne grupowanie danych według wartości pola Gatunek i kliknij przycisk Dalej. Właśnie przekonaliśmy się, że jeżeli dane zostaną pogrupowane w kwerendach, Access automatycznie uwzględni to grupowanie w raportach.
i
Raporty grupujące dane często zawierają dodatkowe podsumowania — dodawanie takich podsumowań zostało przedstawione w dalszej części rozdziału.
4
5. Posortuj dane malejąco według wyliczonej liczby płyt dla poszczególnych gatunków i kliknij przycisk Dalej. 6. Ponieważ ten raport zawiera poziom grupowania, na liście możliwych stylów raportu pojawiły się pozycje umożliwiające prezentowanie pogrupowanych danych: a) Wybierz opcję Blokowy. b) Kliknij przycisk Dalej. 6a
6b
223
224
Dodajemy podsumowania do stopki raportu
7. Zaakceptuj domyślną nazwę raportu (kGrupowanie) i otwórz go w widoku podglądu strony. 8. Przejrzyj dane zwrócone przez raport i zamknij okno raportu. Zwróć uwagę, że zamiast nazw gatunków raport zawiera ich identyfikatory. 9. Spróbuj samodzielnie utworzyć raport, który będzie prawidłowo wyświetlał nazwy gatunków muzycznych. Podpowiedź — raport powinien pobierać dane z kwerendy kGrupowanie połączonej z tabelą Gatunek i wyświetlać dane przez Gatunek. Gotowy raport zapisany jest w bazie \Rozdział08\Rozwiązanie\Rozdział8.accdb pod nazwą kGatunekĆwiczenie.
Dodajemy podsumowania do stopki raportu Dotychczas utworzone raporty prezentowały dane zapisane w bazie. Z reguły użytkownicy oczekują nie tylko listy danych, ale również informacji otrzymanych na ich podstawie, np. zliczenia płyt pożyczonych przez poszczególne osoby czy wyliczenia łącznego czasu trwania płyt danego zespołu. W tym ćwiczeniu nauczymy się modyfikować istniejące raporty. Aby utworzyć i następnie rozbudować raport, dodając do niego, oprócz podstawowych informacji o płytach, także liczbę wszystkich znajdujących się w bazie płyt i ich łączną cenę: 1. Utwórz nowy raport za pomocą kreatora. 2. Jako tabelę źródłową określ tabelę Płyta i z listy pól wybierz kolumny: IdPłyty (jedynym stuprocentowo dokładnym sposobem policzenia wierszy tabeli jest policzenie pól jej klucza podstawowego), Tytuł i Cena. 3. Kliknij przycisk Dalej. 4. Nie dodając żadnych poziomów grupowania danych, kliknij przycisk Dalej. 5. Posortuj dane zwracane przez raport według wartości pól kolumny Tytuł. 6. Wybierz układ tabelaryczny i pionową orientację raportu. 7. Kliknij przycisk Dalej. 8. Zmień domyślną nazwę raportu na 3ï\WD3RGVXPRZDQLH. 9. Tym razem zaznacz opcję Modyfikuj projekt raportu. 10. I zakończ pracę kreatora
Dodajemy podsumowania do stopki raportu
11. Raport zostanie wyświetlony w widoku projektu. Raporty, tak jak formularze, składają się z kilku sekcji. Ich liczba wzrasta wraz z dodawaniem kolejnych poziomów grupowania. Każdy raport powinien jednak zawierać: a) Nagłówek i stopkę raportu — dane nagłówka wyświetlane są na początku raportu, a dane stopki na jego końcu. b) Nagłówek i stopkę strony — dane nagłówka strony wyświetlane są na początku każdej strony raportu, natomiast dane stopki strony na końcu każdej strony raportu.
a b c b
c) Sekcję Szczegóły — dane znajdujące się w tej sekcji zostaną wyświetlone tyle razy, ile informacji zostanie zwróconych przez raport.
a
12. Zwróć uwagę na widoczną w lewym górnym rogu raportu ikonę ostrzeżenia — po jej kliknięciu dowiesz się, że szerokość raportu jest większa niż szerokość strony. Napraw ten błąd, wybierając opcję Usuń wolne miejsce z raportu. 13. Ponieważ planujemy policzyć płyty, nie możemy skasować z raportu pola IdPłyty i IdentyfikatorPłyty, ale możemy je ukryć. W tym celu: a) Zaznacz oba ukrywane pola i kliknij prawy przycisk myszy. e c d
b) Jeżeli arkusz właściwości nie został wyświetlony, z menu kontekstowego wybierz opcję Właściwości. c) Zostanie wyświetlony arkusz wspólnych właściwości zaznaczonych kontrolek. Przejdź do zakładki Format. Okazuje się, że możemy jednocześnie ustawić właściwości wielu obiektów. d) Zmień wartość atrybutu Widoczny na Nie oraz ustaw szerokość obu kontrolek na FP. e) Zwróć uwagę, że razem z polem etykiety ukryte zostało pole tekstowe.
225
226
Dodajemy podsumowania do stopki raportu
14. Przesuń pozostałe kontrolki (kontrolki Cena) raportu w prawo, w miejsce, które zajmowały wcześniej ukryte kontrolki identyfikatorów płyt. 15. Powiększ wielkość stopki raportu (ustaw kursor myszy na końcu raportu i przytrzymując naciśnięty lewy przycisk myszy, przesuń ją w dół). 16. Przejdź do sekcji PROJEKTOWANIE. 17. Zaznacz ikonę Pole tekstowe i „narysuj” myszą jego obrys w sekcji stopki raportu. 18. Zmień tytuł automatycznie dodanej etykiety na :V]\VWNLFKSï\W (można to zrobić w oknie arkusza właściwości etykiety lub po prostu wpisując nowy tytuł w etykiecie) oraz dopasuj wielkość i układ pola etykiety do zapisanego w nim tekstu.
17
14
18
17
15
19. Następnym krokiem będzie powiązanie dodanego do stopki pola tekstowego z danymi: a) Zaznacz nowo dodane pole tekstowe i wyświetl arkusz jego właściwości (jeżeli został zamknięty). b) Przejdź do zakładki Dane arkusza właściwości tej kontrolki.
a
c) Ustaw kursor w polu Źródło formantu. c b d
d) Kliknij wielokropek znajdujący się z prawej strony pola.
Dodajemy podsumowania do stopki raportu
20. Wyświetlone zostanie okno znanego nam konstruktora wyrażeń. Za jego pomocą utworzymy wyrażenie zliczające płyty: a) Rozwiń listę wbudowanych funkcji programu Access. Jako typ funkcji wybierz Agregat SQL i z listy funkcji grupujących wybierz Policz.
c b
b) Aby mogły być zliczone identyfikatory płyt, jako argument funkcji wpisz nazwę pola tekstowego IdPłyty (lub wybierz ją z listy pól aktywnego raportu). c) Kliknij przycisk OK. Właśnie dowiedzieliśmy się, jak umieszczać na raportach dodatkowe kontrolki, jak łączyć te kontrolki z danymi i jak konstruować wyrażenia bazujące na tych danych.
a
21. Umiejętność dodawania kontrolek wykorzystamy, umieszczając w stopce raportu informacje o sumie cen płyt. W tym celu do stopki raportu dodaj drugie pole tekstowe. 22. Umieść nowo dodane pola (tekstowe i etykiety) pod kolumną Cena. 23. Zmień tytuł automatycznie dodanej etykiety na :DUWRĂÊZV]\VWNLFKSï\W. 24. W nowo dodanym polu tekstowym policz sumę wartości wszystkich płyt. W tym celu: a) Kliknij prawym przyciskiem myszy nowo dodane pole tekstowe i z menu kontekstowego wybierz Właściwości.
e c
d
b) Przejdź do zakładki DANE, ustaw kursor w polu Źródło formantu i kliknij wielokropek znajdujący się z prawej strony pola. c) Za pomocą Konstruktora wyrażeń zbuduj następujące wyrażenie: 6XPD>&HQD@ . W rezultacie w polu tekstowym wyświetlona zostanie suma cen wszystkich płyt.
227
228
Raport grupujący dane
d) Przy okazji zwróć uwagę, że Konstruktor wyrażeń pozwala tworzyć dowolne wyrażenia, np. wstawiać do raportu numery stron czy bieżącą datę. e) Kliknij przycisk OK i zamknij okno właściwości pola tekstowego. 25. Wyświetl raport w widoku podglądu wydruku — jest on już prawie gotowy, należy tylko jeszcze sformatować policzoną sumę jako walutę: a) Przełącz się do widoku układu. b) Zaznacz pole z sumą. c) W zakładce FORMATOWANIE kliknij ikonę Zastosuj format waluty. 26. Wyświetl podgląd wydruku raportu, a następnie zapisz go, akceptując wprowadzone zmiany.
Raport grupujący dane Dane przechowywane w bazie mogą być logicznie pogrupowane według wartości wybranego atrybutu, np. płyty mogą być pogrupowane według gatunków muzycznych, nazw zespołów czy dat wydania, a towary według dostawców, grup towarowych itp. Z reguły układ raportów powinien odzwierciedlać poziom pogrupowania danych. Aby utworzyć raport zawierający listę płyt wypożyczonych przez poszczególne osoby: 1. Utwórz nowy raport za pomocą kreatora. 2. Na obiekt źródłowy wybierz kwerendę kPożyczonePłyty. 3. Dodaj do raportu wszystkie pola kwerendy. 4. Skoro raport ma zawierać informacje o płytach pożyczonych przez poszczególne osoby, jako sposób prezentowania danych wybierz przez Osoba. 5. Kliknij przycisk Dalej. 4
5
Raport grupujący dane
6. Tworzony raport będzie zawierał tylko jeden (wynikający ze sposobu prezentowania danych) poziom grupowania. Tak więc w odpowiedzi na kolejne pytanie kreatora — nie dodając kolejnego poziomu grupowania — kliknij przycisk Dalej. 7. Posortuj dane malejąco według dat pożyczki i kliknij przycisk Dalej. 8. Jako format raportu wybierz Krokowy, a jako orientację — Pionowa. 9. Kliknij przycisk Dalej. 10. Podaj nazwę (3ï\WD2VRED) tworzonego raportu i wyświetl go w widoku projektu. 11. Zmień domyślny tytuł raportu na /LVWDSï\WSRĝ\F]RQ\FKSU]H]SRV]F]HJöO QHRVRE\.
11
12 13
12. Zwróć uwagę, że ten raport zawiera dodatkową sekcję Pożyczył(a) - nagłówek. Dane zapisane w tej sekcji zostaną wyświetlone tyle razy, ile osób pożyczyło od nas płyty. Czyli sekcje raportu odpowiadają poziomom grupowania danych. 13. Natomiast dane z sekcji Szczegóły zostaną wyświetlone tyle razy, ile płyt zostało wypożyczonych (ta sekcja odpowiada poziomowi poszczególnych wierszy). 14. Niestety, domyślnie raporty nie zawierają sekcji stopki wyświetlanej dla sekcji poszczególnych osób. Aby ją dodać: a) Kliknij prawym przyciskiem myszy pasek tytułowy dowolnej sekcji (np. pasek Nagłówek strony). b) Z menu kontekstowego wybierz opcję Sortowanie i grupowanie. W dolnej części okna wyświetlone zostanie okienko Grupowanie, sortowanie i sumowanie. Właśnie to okienko pozwala definiować poziomy grupowania dla istniejących raportów.
229
230
Dodajemy dodatkowe poziomy grupowania danych
c
d
e
c) Ustaw kursor w polu Grupuj według Pożyczył(a). d) Kliknij ikonę Więcej i zmień wartość Bez sekcji stopki na Z sekcją stopki. e) Zwróć uwagę, że do raportu dodana została nowa sekcja, i zamknij okno dialogowe Grupowanie, sortowanie i sumowanie. 15. Do utworzonej sekcji Pożyczył (a) stopka dodaj pole tekstowe: a) Zmień tytuł automatycznie dodanego pola etykiety na /LF]EDSï\W. b) W polu tekstowym wpisz (możesz też skorzystać z pomocy konstruktora) wyrażenie 3ROLF]>'DWD3Rĝ\F]NL@ i wyrównaj zawartość tego pola do lewej (aby to zrobić, zaznacz pole tekstowe i w zakładce NARZĘDZIA GŁÓWNE kliknij ikonę Wyrównaj do lewej). 16. Wyświetl gotowy raport w widoku podglądu wydruku, a następnie zamknij okno raportu i zapisz wprowadzone w nim zmiany. Właśnie nauczyliśmy się dodawać do raportów sekcje nagłówków i stopek dla różnych poziomów grupowania danych.
Dodajemy dodatkowe poziomy grupowania danych SZBD Access umożliwia połączenie różnych poziomów grupowania (np. możemy utworzyć sekcję, w której informacje o wszystkich płytach danego zespołu zostaną podzielone pomiędzy odrębne gatunki, przy czym pola zawierające podsumowania będą znajdować się w stopce zarówno sekcji IdZespołu, jak i sekcji IdGatunku), a także automatyczne grupowanie danych według przedziałów czasu. Aby utworzyć raport zawierający informacje o wydawanych w kolejnych latach płytach z uwzględnieniem ich gatunków: 1. Utwórz nowy raport za pomocą kreatora. 2. Na dane źródłowe: a) Z tabeli Płyta wybierz kolumny IdPłyty, Tytuł, DataWydania. b) Z tabeli Gatunek wybierz kolumnę Nazwa. c) Kliknij przycisk Dalej.
Dodajemy dodatkowe poziomy grupowania danych
3. Tym razem dane powinny być prezentowane przez tabelę Płyta, gdyż samodzielnie dodamy własne poziomy grupowania. 4. Kliknij przycisk Dalej. 5. Jako pierwszy poziom grupowania wybierz kolumnę DataWyd (domyślnie informacje zostaną pogrupowane według miesięcy, ale za chwilę zmienimy poziom ich grupowania).
5 6
6. Jako drugi poziom grupowania wybierz kolumnę Nazwa (płyty wydane w tych samych latach zostaną dodatkowo pogrupowane według nazw gatunków).
7
7. Domyślnie dane grupowane według wartości kolumn typu Data/Godzina są grupowane według miesięcy. Aby pogrupować je według lat, zaznacz sekcję DataWydania według Miesiąc i kliknij przycisk Opcje grupowania…: a) Rozwiń listę Interwały grupowania dla grupy DataWydania i wybierz wartość Rok. Okazuje się, że Access potrafi automatycznie grupować dane typu Data/Czas według różnych interwałów. b) Kliknij przycisk OK. b a
8. Kliknij przycisk Dalej i posortuj płyty według ich tytułów. 9. Jako format raportu wybierz Krokowy, jako orientację — Pionowa. 10. Określ nazwę raportu (3ï\WD/DWD) i wyświetl go w widoku podglądu. W opisywanej w książce polskiej wersji programu Access 2013 występował błąd powodujący, że użyta przez kreatora funkcja Format$ nie odczytywała prawidłowo części dat. Jeżeli przy wyświetlaniu raportu zostanie wyświetlona
231
232
Wizualizacje i formatowanie warunkowe
prośba o podanie wartości parametru, oznacza to, że błąd ten nie został jeszcze usunięty w Twojej wersji programu. Na szczęście, żeby samodzielnie rozwiązać ten problem, wystarczy: a) Wyświetlić raport w widoku projektu. b) Zastąpić użyte przez kreatora wyrażenie )RUPDW>'DWD:\GDQLD@ĵ\\\\ĵ równoważnym (ale działającym również w polskiej wersji programu) wyrażeniem 'DWD:\GDQLD@ — należy je wpisać (samodzielnie lub za pomocą kreatora wyrażeń) w polu tekstowym DataWydania według Rok. 11. Zwróć uwagę, że wszystkie płyty o nieznanej dacie wydania trafiły do tej samej grupy, i zamknij okno raportu.
Wizualizacje i formatowanie warunkowe Jedną z ciekawszych funkcji SZBD Access 2013 jest warunkowe formatowanie danych za pomocą pasków danych. Ten sposób przedstawiania danych (znany z programu Excel) ułatwia porównywanie wartości poszczególnych rekordów, np. wartości sprzedaży poszczególnych produktów. 1. Otwórz w widoku układu raport PłytaPodsumowanie. 2. Zaznacz pola z cenami płyt. 3. W zakładce NARZĘDZIA UKŁADÓW RAPORTÓW kliknij sekcję FORMATOWANIE. 4. Kliknij ikonę Formatowanie warunkowe — wyświetlone zostanie okienko menedżera reguł formatowania warunkowego. 5. Upewnij się, że w polu Pokaż reguły formatowania dla: znajduje się nazwa pola Cena. 5
6
6. Dodaj regułę, klikając przycisk Nowa reguła.
Tworzenie filtrów ograniczających prezentowane dane
7. Jako typ reguły wybierz Porównaj z innymi rekordami.
7
8. Wybierz kolor paska danych. 9. Kliknij przycisk OK.
8
9
10. Zamknij okno menedżera reguł formatowania warunkowego, klikając przycisk OK. 11. Wybrane formatowanie zostanie zastosowane i obok cen pojawią się reprezentujące je kolorowe paski. Właśnie nauczyliśmy się prezentować dane za pomocą formatów graficznych, takich jak paski danych. 12. Wyświetl podgląd raportu i zapisując wprowadzone zmiany, zamknij raport.
Tworzenie filtrów ograniczających prezentowane dane Najbardziej uniwersalnym sposobem wybierania zawartych w raporcie danych jest wskazanie na obiekt źródłowy odpowiedniej kwerendy, a nie tabeli. W ten sposób raport będzie zawierał wyłącznie informacje zwrócone przez kwerendę. Czasami jednak chcemy, aby w raporcie znalazły się tylko dane na temat wybranej płyty, osoby czy gatunku. Wtedy wystarczy utworzyć filtr raportu. 1. Utwórz nowy raport za pomocą kreatora. 2. Na dane źródłowe: a) Z tabeli Płyta wybierz kolumny IdPłyty, Tytuł. b) Z tabeli Nośnik wybierz kolumnę Nazwa. c) Z tabeli Pożyczka wybierz kolumny Osoba, DataPożyczki. d) Z tabeli Osoba wybierz kolumny Imię, Nazwisko. 3. Ponieważ dane zostaną ograniczone do informacji o płytach wypożyczonych przez wybraną osobę, to odpowiadając na kolejne pytanie kreatora, jako sposób ich prezentowania wybierz przez Osoba. 4. Kliknij przycisk Dalej. 5. Nie dodawaj żadnych poziomów grupowania i kliknij przycisk Dalej.
233
234
Tworzenie filtrów ograniczających prezentowane dane
6. Posortuj dane według dat pożyczki. 7. Kliknij przycisk Dalej. 8. Jako układ raportu wybierz Konspekt, jako orientację — Pionowa. 9. Podaj nazwę tworzonego raportu (2VRED3ï\WD) i wyświetl go (teraz raport zwraca dane o wszystkich osobach, które pożyczyły płyty, i o pożyczonych przez nie płytach). Przełącz się do widoku układu raportu. 10. Skasuj lub zmniejsz pola Identyfikator Płyty i IDPłyty. 12
10
11
11. W sekcji Szczegóły skasuj pola Osoba. 12. Pola DataPożyczki przesuń w lewo — na tym etapie raport powinien wyglądać następująco:
13. Pora dodać do niego filtr. W tym celu wyświetl okno właściwości raportu i przejdź do zakładki Dane.
13
14. Kliknij prawym przyciskiem myszy pole Filtr i z menu kontekstowego wybierz opcję Powiększ.
14
15 16
15. Wpisz wyrażenie 1D]ZLVNR >3RGDMQD]ZLVNR@ i kliknij OK. W ten sposób raport będzie zawierał wyłącznie dane o płytach pożyczonych przez osoby o podanym nazwisku (nie można wykluczyć, że kilka osób nosi to samo nazwisko).
Tworzenie filtrów ograniczających prezentowane dane
16. Wartość atrybutu Filtruj przy ładowaniu zmień na Tak. 17. Zamknij okno właściwości i wyświetl raport w widoku raportu. Przed jego wyświetleniem na ekranie pojawi się standardowe okno dialogowe systemu Windows umożliwiające podanie nazwiska osoby. 18. Podaj nazwisko wybranej osoby i kliknij przycisk OK. Wyświetlony raport będzie zawierał wyłącznie dane osób o podanym nazwisku i tytuły wypożyczonych przez nie płyt.
17 18
19. Wyświetl projekt raportu. 20. Zmień jego tytuł (wartość pola etykiety znajdującej się w sekcji Nagłówek raportu) na 3ï\W\SRĝ\F]RQHSU]H], a następnie: a) Dodaj do sekcji nagłówka raportu pole tekstowe. b) Dopasuj jego wielkość, rozmiar czcionki i położenie do pola, które zawiera tytuł raportu. c) Wpisz w nim wyrażenie >3RGDMQD]ZLVNR@ i zmień wielkość czcionki na 20 punktów (zwróć uwagę, że ten sam tekst został wpisany w filtrze raportu). d) Skasuj automatycznie dodane pole etykiety.
a 20
20
b
21. Wyświetl raport w widoku raportu. Po podaniu istniejącego w tabeli Osoba nazwiska wyświetlone zostaną dane wszystkich osób noszących to nazwisko wraz z tytułami płyt, które zostały przez te osoby pożyczone. 22. Zamknij okno raportu i zapisz wprowadzone w nim zmiany.
235
236
Podsumowanie
Podsumowanie Po przeczytaniu bieżącego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi może mieć pewne kłopoty, mają mu pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Co to jest standard PnP? 2. Co umożliwiają funkcje agregatu SQL? Do czego służą inne funkcje programu Access? 3. Czy na raportach tworzonych za pomocą kreatora etykiet programu Access 2013 możemy umieszczać zdjęcia i inne pliki graficzne? 4. Czy typ związków łączących tabele ma wpływ na tworzenie raportów grupujących? 5. Czy istnieje możliwość wybierania danych raportu w inny niż opisany powyżej sposób, np. poprzez wybieranie nazwiska osoby z listy wszystkich osób?
ľ-DN]DXWRPDW\]RZDÊSUDFÚXĝ\WNRZQLND ]DSRPRFÈPDNU"ľ7ZRU]\P\QDMSURVWV]H PDNURSROHFHQLHľ0DNURVNïDGDMÈFHVLÚ ]GZöFKDNFMLľ0DNURVNïDGDMÈFHVLÚ]ZLHOX DNFMLľ0RG\ğNRZDQLHPDNUDľ0DNUDGDQ\FK 8UXFKDPLDP\PDNUR]SR]LRPXIRUPXODU]D ľ:\NRQ\ZDQLHPDNUDNURNSRNURNXľ 0DNURHNVSRUWXMÈFHGDQH]Z\EUDQHMWDEHOL ľ3U]\NïDGRZHPDNURZ\V\ïDMÈFHZLDGRPRĂFL HPDLOľ3RGVXPRZDQLH
9
Makra, czyli jak zautomatyzować regularnie wykonywane operacje Jak zautomatyzować pracę użytkownika za pomocą makr? Chociaż program Access pozwala utworzyć w pełni funkcjonalną bazę danych (w tym program klienta) bez konieczności napisania choćby jednej linijki kodu, to osoby, które znają język VBA, mogą (a nawet powinny, ze względu na wydajność i możliwość programowej obsługi błędów) wykorzystać swoje umiejętności do zautomatyzowania często powtarzanych operacji (np. otwarcia formularza z jednoczesnym wyświetleniem wybranych danych czy wysłania wiadomości e-mail zawierającej listę zmian cen towarów), pisząc własne procedury i funkcje języka VBA. Procedury i funkcje języka VBA mogą być zapisywane w modułach kodu. Tworzenie obiektów tego typu wykracza jednak poza zakres tematyczny tej książki.
238
Tworzymy najprostsze makropolecenie
Natomiast tym czytelnikom, którzy nie znają ani języka Visual Basic, ani jego odmiany — języka VBA — pozostaje tworzenie makr. Makra (makropolecenia) to grupy poleceń, które mogą być automatycznie wykonane jako jedna instrukcja, np. poprzez kliknięcie dodanego do formularza przycisku zostanie uruchomione makro, które w arkuszu programu Excel zapisze dane o wybranych klientach, o firmach, w których pracują, i liczbie przeprowadzonych z nimi transakcji, a potem wyśle taki arkusz jako załącznik wiadomości e-mail.
i
Charakterystyczną cechą programu Access 2013 jest możliwość powiązania makr z tabelami, a nie tylko z formularzami. Tego typu makra odpowiadają znanym z innych serwerów bazodanowych wyzwalaczom, czyli procedurom automatycznie uruchamianym podczas modyfikowania danych.
Wykonując ćwiczenia z bieżącego rozdziału, nauczysz się samodzielnie tworzyć i modyfikować makropolecenia programu Access.
Tworzymy najprostsze makropolecenie Działanie pierwszego samodzielnie utworzonego makra będzie sprowadzało się do wyświetlenia podglądu wydruku raportu PłytaLata i ograniczenia prezentowanych informacji do płyt wydanych w podanym okresie. 1. W folderze Rozdział9\Starter otwórz bazę Rozdział9 (zawiera ona wyniki wszystkich omówionych w poprzednich rozdziałach ćwiczeń) i zamknij okno panelu przełączania. 2. Przejdź do zakładki TWORZENIE i kliknij ikonę Makro. Zostanie wyświetlone okno projektu makra. 3. Makra tworzymy, określając kolejno wykonywane przez nie akcje — w kolumnie Akcja z listy dostępnych akcji wybierz OtwórzRaport. W SZBD Access makra składają się z kolejno wykonywanych akcji. 4. Wyświetlone zostanie okno właściwości wybranej akcji. Umożliwiają one dookreślenie akcji wykonywanej w ramach makra, np. podanie nazwy otwieranego raportu: 3
a) Ustaw kursor w polu Nazwa raportu i z listy dostępnych raportów wybierz PłytaLata.
Tworzymy najprostsze makropolecenie
b) Wartość atrybutu Widok zmień na Podgląd wydruku. a b c
e d
c) Ustaw kursor w polu Warunek WHERE i kliknij znajdującą się z prawej strony pola ikonę kreatora. Zostanie uruchomiony znany z wcześniejszych ćwiczeń Konstruktor wyrażeń. d) Zbuduj warunek logiczny, na podstawie którego dane źródłowe raportu zostaną ograniczone do płyt wydanych w określonym przedziale czasu: [DataWydania] %HWZHHQ>'DWDSRF]ÈWNRZD@$QG >'DWDNRñFRZD@.
e) Zamknij okno konstruktora wyrażeń.
i
Poznany w rozdziale 6. operator Between … And służy do sprawdzania, czy wartość należy do określonego przedziału.
5. Zamknij okno projektu makra i zapisz makro pod nazwą 3ï\WD. 6. W okienku nawigacji wyświetl wszystkie obiekty bazy danych. Jednym z nich będzie właśnie utworzone makro. Dwukrotnie kliknij nazwę makra Płyta lewym przyciskiem myszy. 7. Na ekranie zostaną kolejno wyświetlone dwa okna dialogowe: w pierwszym należy wpisać początkową datę interesującego nas okresu, w drugim — jego datę końcową. Po podaniu tych danych na ekranie wyświetlony zostanie raport Płyta. Będzie on zawierał dane o płytach wydanych w określonym przez nas czasie.
8
8. Zamknij okna podglądu raportu i projektu makra. Właśnie utworzyliśmy pierwsze działające makropolecenie.
239
240
Makro składające się z dwóch akcji
Makro składające się z dwóch akcji W praktyce bardzo rzadko tworzy się makra składające się z pojedynczego polecenia akcji. W programie Access taki sam efekt możemy osiągnąć bez makra, np. dodając do formularza przycisk wyświetlający podgląd raportu i określając filtr tego raportu. Jednak po samodzielnym utworzeniu prostego makra budowanie złożonych, wykonujących kilka czy kilkanaście akcji makr nie będzie już trudne. Kolejne makro będzie nie tylko otwierało wybrany formularz, ale dodatkowo ustawiało jako aktywny ostatni rekord tabeli źródłowej tego formularza (w naszym przypadku użytkownik zobaczy na ekranie dane ostatnio zapisanej płyty). 1. W ten sam sposób jak poprzednio utwórz nowe makro. 2. Pierwszą akcją makra będzie akcja OtwórzFormularz: a) Określ nazwę formularza: Płyta. a c b
i
b) Upewnij się, że sposób wyświetlania formularza nie został zmieniony (atrybut Tryb okna ma wartość Normalny). c) Wartości pozostałych atrybutów akcji nie wymagają zmiany.
Ustawienie wartości Tryb okna na Okno dialogowe spowoduje wyświetlenie formularza w trybie modalnym, tj. w oknie, które nie może być oknem nieaktywnym. W rezultacie działanie programu zostanie wstrzymane do momentu zamknięcia przez użytkownika tak wyświetlonego formularza.
3. Jako drugą akcję makra określ PrzejdźDoRekordu: a) Z listy typów obiektów wybierz Formularz. b) Wybierz nazwę formularza (Płyta). a b c
c) Ustaw wartość atrybutu Rekord na Ostatni.
Makro składające się z wielu akcji
4. Zamknij okno projektu makra i zapisz je pod nazwą 2VWDWQLD3ï\WD. 5. Przetestuj działanie makra i zamknij okno uruchomionego przez nie formularza. Łączenie regularnie razem wykonywanych operacji w makra pozwala je zautomatyzować i w efekcie uprościć korzystanie z bazy danych. Dodatkową korzyścią ze stosowania makr jest zmniejszenie ryzyka popełnienia przez użytkownika błędu.
Makro składające się z wielu akcji Kolejne makro będzie składało się z trzech kolejno wykonywanych akcji. Jako pierwszy wyświetlony będzie komunikat informujący o uruchomieniu makra, następnie otwarta zostanie tabela Osoba umożliwiająca tylko odczyt danych, a na końcu lista prezentowanych danych zostanie ograniczona do osób o nazwisku Nowak. 1. Utwórz nowe makro. 2. Pierwszą akcją makra będzie OknoKomunikatu. Ustaw następujące argumenty tej akcji: a) w polu Komunikat wpisz Lista osób zostanie ograniczona GR1RZDNöZ,
a b
b) Typ — Informacje,
c
c) Tytuł — 0DNUR2VRED.
3. Kolejną akcją makra będzie otwarcie tabeli. Kliknij przycisk Dodaj nową akcję i z listy dostępnych akcji wybierz OtwórzTabelę: a) Ustaw kursor w polu Nazwa tabeli i wybierz tabelę Osoba.
a b
b) Wartość atrybutu Tryb danych zmień na Tylko do odczytu.
241
242
Makro składające się z wielu akcji
4. Ostatnią akcją będzie włączenie filtru eliminującego z widoku tabeli wszystkie osoby o nazwisku innym niż Nowak. W tym celu: a) Kliknij przycisk Dodaj nową akcję i z listy akcji wybierz ZastosujFiltr. b) Wpisz nazwę filtru (Ogranicza OLVWÚRVöEGR1RZDNöZ). b a
c
c) W polu Warunek WHERE wpisz test logiczny, który będzie podstawą do ograniczenia listy osób: >1D]ZLVNR@/LNHĵ 1RZDN ĵ.
5. Zapisz makro pod nazwą Osoba i uruchom je. 6. Zwróć uwagę, że wyświetlone zostały wyłącznie dane osób o nazwisku Nowak (zaznaczona ikona filtru i napis na pasku stanu przypominają o włączonym filtrze). Zauważ też, że dane te nie mogą być w żaden sposób modyfikowane.
6
7. Zamknij okno widoku arkusza danych tabeli. Okazuje się, że dzięki makropoleceniom możemy tworzyć miniprogramy odwołujące się do dowolnych obiektów bazy danych.
Modyfikowanie makra
Modyfikowanie makra Utworzone makra (makropolecenia), podobnie jak inne obiekty bazy danych, mogą być modyfikowane. W przypadku makr modyfikacja polega na dodaniu, usunięciu lub zmienieniu jego akcji. Możemy również zmienić kolejność akcji makra. Aby zmodyfikować projekt makra OstatniaPłyta: 1. Kliknij prawym przyciskiem myszy makro OstatniaPłyta i z menu kontekstowego wybierz opcję Widok projektu.
1
2. Dodaj nową, trzecią akcję makra: a) Z listy dostępnych akcji wybierz OknoKomunikatu1. b) Wpisz treść wyświetlanego komunikatu: 3RNOLNQLÚFLX2. DNW\ZQ\PUHNRUGHP]RVWDQLH RVWDWQLUHNRUGWDEHOL2VRED. b
a
c
3
c) Jako typ okienka komunikatu wybierz Ostrzeżenie!. d) Wpisz jeszcze tytuł okna komunikatu: Uwaga.
d
3. W tym momencie dodana akcja jest ostatnią akcją makra. Przesuń ją o jedną pozycję do góry, tak żeby została wykonana przed akcją PrzejdźDoRekordu. 4. Zapisz zmiany wprowadzone w makropoleceniu i uruchom je. 1
Zwróć uwagę na możliwość tworzenia akcji warunkowych — takie akcje są wykonywane tylko wtedy, jeżeli zdefiniowany dla bloku warunkowego warunek jest prawdziwy. Tego typu makropolecenie utworzymy w ćwiczeniu Makra danych.
243
244
Makra danych
5. Zamknij okno formularza Płyta. 6. Wyświetl projekt makra OstatniaPłyta i usuń akcję OknoKomunikatu. Możesz to zrobić na dwa sposoby:
b
a) klikając prawym przyciskiem myszy tę akcję i z menu kontekstowego wybierając opcję Usuń, b) klikając znajdującą się w zakładce projektu makra ikonę Usuń.
a
7. Zamknij okno projektu makra i zapisz wprowadzone zmiany.
Makra danych Makra danych mogą być automatycznie uruchamiane przez SZBD przed zmianą (lub po zmianie) danych w tabeli, z którą są one powiązane. Dzięki temu mogą one np. automatycznie wysłać wiadomości e-mail z podziękowaniami do klientów, którzy złożyli zamówienia o wartości przekraczającej 1000 zł, albo sprawdzić, czy towar został odpowiednio przeceniony, np. czy nowa cena towaru nie jest dwukrotnie niższa od jego oryginalnej ceny. Tworząc makra danych, nauczymy się pracować z oknem Wykaz akcji i poznamy kolejną funkcję Accessa 2013 — technologię automatycznego uzupełniania wyrażeń IntelliSense. 1. Otwórz projekt tabeli Pożyczka.
2
2. W zakładce PROJEKTOWANIE kliknij przycisk Utwórz makra danych. 3
Makra danych
3. Zauważ, że makra danych mogą być uruchamiane za pomocą wstawienia nowych wierszy do tabeli, usunięcia istniejących wierszy lub ich aktualizacji. Jeżeli pożyczka trwała dłużej niż dwa miesiące, nasze makro będzie automatycznie wstawiało uwagę: „Płyta oddana po terminie”. Najprościej wykonać to zadanie za pomocą makra uruchamianego Przed zmianą. 4. Wyświetlone zostanie znane nam już okno projektu makra. Natomiast z prawej strony powinno się wyświetlić okno Wykaz akcji. Jeżeli tak się nie stało, kliknij jego ikonę znajdującą się w sekcji Pokazywanie/ukrywanie. 5. Makro ma wstawić uwagę, jeżeli pożyczka trwała ponad dwa miesiące, a więc jako pierwszy należy dodać do niego blok Jeżeli: a) W oknie Wykaz akcji kliknij dwukrotnie blok Jeżeli lub przeciągnij go myszką do okna projektu makra. b) Wybrany warunek zostanie dodany do tworzonego makra. 4 b
a
6. W polu Jeżeli wyrażenie wpisz >'DWD=ZURWX@>'DWD3Rĝ\F]NL@! i zwróć uwagę, jak SZBD Access ułatwia konstruowanie wyrażeń poprzez ich uzupełnianie w trakcie pisania. Ta powszechnie stosowana w różnych narzędziach programistycznych (m.in. w Visual Studio) technologia nazywa się IntelliSense.
6
245
246
Makra danych
7. Blok Jeżeli pozwala warunkowo wykonać akcje — w tym przypadku chcemy ustawić wartość pola Uwagi: a) W polu Dodaj nową akcję wybierz Ustaw pole.
a
b
b) Możesz też przeciągnąć lub dwukrotnie kliknąć lewym przyciskiem myszy tę akcję widoczną w oknie Wykaz akcji.
8. Akcja UstawPole zostanie dodana do bloku Jeżeli. Pozostało nam określenie nazwy ustawianego pola i podanie wstawianej do niego wartości: a) W polu Nazwa wpisz Uwagi. b) W polu Wartość — ij3ï\WD RGGDQDSRWHUPLQLHij.
a b
c
c) Zwróć uwagę, że SZBD Access pozwala tworzyć rozbudowane warunki i wykonywać wiele akcji w blokach warunkowych.
9. Zamknij okno projektu makra i zapisz wprowadzone w nim zmiany. 10. Przełącz tabelę Pożyczka do widoku arkusza danych i zapisz zmiany. 11. Wpisz dla jednej z pożyczek datę oddania płyty późniejszą o kilka dni od daty jej pożyczenia — uwaga nie zostanie automatycznie wstawiona. 12. Wpisz datę oddania późniejszą o więcej niż dwa miesiące od daty jej pożyczenia — makro zostanie uruchomione, a w polu Uwagi pojawi się odpowiednia uwaga.
11 12
Uruchamiamy makro z poziomu formularza
i
W innych SZBD odpowiednikiem makr danych są wyzwalacze — specjalne procedury składowane uruchamiane automatycznie w wyniku zmiany danych w tabelach, z którymi są powiązane. O ile jednak wyzwalacze muszą być tworzone w odpowiedniej dla danego serwera wersji języka SQL, makra danych można tworzyć za pomocą narzędzi graficznych. Makra danych (tak jak wyzwalacze) są proceduralnym (w przeciwieństwie do deklaratywnych właściwości kolumn i reguł sprawdzania poprawności) sposobem zapewnienia integralności danych.
Uruchamiamy makro z poziomu formularza Do tej pory uruchamialiśmy utworzone makra z głównego okna bazy danych programu Access. Inni użytkownicy naszej bazy danych nie powinni jednak mieć w ogóle dostępu do tego okna. W zamian powinni oni korzystać z przycisków panelu przełączania i innych formularzy. Wykonując bieżące ćwiczenie, do panelu przełączania i jednego powiązanego z tabelą formularza dodamy przyciski polecenia, których kliknięcie spowoduje uruchomienie wybranego makra.
i
Panel przełączania, tak jak inne formularze, możemy ręcznie modyfikować w widokach projektu i układu. Jeżeli jednak chcemy dodać lub usunąć jego sekcje czy przyciski, łatwiej będzie skorzystać z opisanego w rozdziale 7. menedżera panelu przełączania.
1. Kliknij dodaną w rozdziale 7. do paska szybkiego dostępu ikonę Menedżer panelu przełączania. 2. Zaznacz stronę Formularze bazy Płytoteka (Domyślna).
2
3. Kliknij przycisk Edytuj…. 3
4. Kliknij przycisk Nowy…. W ten sposób zostanie wyświetlone okno pozwalające m.in. dodać do wybranej sekcji nowy przycisk polecenia. 5. W polu Tekst: wpisz etykietę nowego przycisku: :\ĂZLHWOGDQH1RZDNöZ. 6. Jako typ polecenia wybierz Uruchom makro.
247
248
Uruchamiamy makro z poziomu formularza
5
8 6 7
7. Z listy dostępnych makr wybierz makro Osoba. 8. Kliknij przycisk OK i zamknij wszystkie otwarte okna menedżera panelu przełączania. 9. W Okienku nawigacji na liście formularzy bazy danych znajdź i otwórz formularz Panel przełączania. 10. Na głównej stronie tego formularza pojawi się nowy przycisk. Po jego kliknięciu zostanie uruchomione utworzone przez nas makro.
10
11. Zamknij wyświetlone za pomocą makra okna tabeli Osoba oraz okno formularza Panel przełączania. 12. Makropolecenia można też umieszczać na standardowych formularzach. Sposób ich umieszczania jest jednak inny — wyświetl projekt formularza Płyta. 13. W zakładce PROJEKTOWANIE wstążki zaznacz ikonę kontrolki Przycisk.
13
14
14. Do wolnego obszaru nagłówka formularza dodaj nowy przycisk polecenia.
Uruchamiamy makro z poziomu formularza
15. Domyślnie ustawiona opcja Użyj kreatorów kontrolek spowoduje uruchomienie kreatora ułatwiającego skonfigurowanie dodawanej kontrolki. Odpowiadając na pierwsze pytania tego kreatora: a) Wybierz kategorię uruchamianej przez kliknięcie przycisku akcji — Różne. b) Wybierz akcję Uruchom makro.
a
b
c) Kliknij przycisk Dalej.
c
16. Z listy makr wybierz makro Osoba i kliknij przycisk Dalej.
16
17. Wskaż ikonę dodawanego przycisku i zakończ pracę kreatora. 18. Teraz możesz uruchomić formularz. 19. Kliknij nowo dodany przycisk polecenia i podaj początkową oraz końcową datę określającą czas wydania interesujących Cię płyt. 20. Zamknij okno podglądu raportu. 21. Zamknij okno formularza i zapisz wprowadzone zmiany.
249
250
Wykonywanie makra krok po kroku
Wykonywanie makra krok po kroku W przypadku rozbudowanych, liczących kilka lub kilkanaście akcji makr najprostszym sposobem na zlokalizowanie problemu jest kolejne uruchomienie poszczególnych akcji makra (taki tryb działania nazywa się krokowym). Aby uruchomić krok po kroku makro Osoba: 1. Wyświetl widok projektu makra Osoba. 2. Zaznacz znajdującą się na wstążce ikonę Pojedynczy krok.
2
3. Uruchom makro.
3
4
5
4. Po uruchomieniu makra zostanie wyświetlone okno dialogowe Praca krokowa makra zawierające informacje o pierwszej akcji makra. 5. Aby wykonać akcję przedstawioną w oknie dialogowym, kliknij przycisk Krok.
6. Zostanie wyświetlone okno komunikatu. Aby kontynuować pracę makra, kliknij przycisk OK. 7. Wykonanie drugiej akcji makra spowoduje otwarcie widoku arkusza danych tabeli Osoba w trybie tylko do odczytu. Kliknij przycisk Krok. 8. W tle została otwarta tabela Osoba, a na pierwszym planie wyświetlone zostały informacje o kolejnej akcji makra. Wykonanie tego kroku spowoduje włączenie zdefiniowanego 8 filtru (zwróć uwagę, że w tym momencie w oknie tabeli Osoba wyświetlane 8 są wszystkie rekordy). 8
Makro eksportujące dane z wybranej tabeli
251
9. Kliknij przycisk Krok i wykonaj ostatnią akcję makra. 10. Zamknij okno tabeli Osoba. 11. Przejdź do zakładki PROJEKTOWANIE i wyłącz krokowe wykonywanie makr. Właśnie się dowiedzieliśmy, jak wykrywać i rozwiązywać problemy z makrami poprzez ich uruchomienie w trybie krokowym (taki tryb nazywa się trybem debugowania). 12. Zamknij okno tabeli makra Osoba.
Makro eksportujące dane z wybranej tabeli Eksport danych (zapisanie znajdujących się w bazie informacji w pliku innego formatu, np. w pliku tekstowym albo w arkuszu programu Excel) to jedno z zadań często wykonywanych przez administratorów i użytkowników baz danych. Eksportowanie informacji może być zautomatyzowane poprzez utworzenie odpowiedniego makra, które będzie uruchamiane przez użytkowników bazy danych. Aby utworzyć makro, które wyeksportuje do pliku dane zapisane w tabeli DoZałatwienia: 1. Wyświetl okno projektu nowego makra i upewnij się, że przycisk Wykaz akcji jest zaznaczony. 2. Zaznacz również przycisk Pokaż wszystkie akcje — w ten sposób w okienku wykazu akcji pojawią się również rzadziej używane akcje. 1
2
3. Jako pierwszą akcję makra wybierz Echo (skorzystaj w tym celu z pola wyszukiwania okna Wykaz akcji): a) Upewnij się, że wartością atrybutu Echo włączone jest Tak.
3
a
b
b) W polu Tekst paska stanu wpisz (NVSRUW GDQ\FK]WD EHOL'R=DïD twienia.
252
Przykładowe makro wysyłające wiadomości e-mail
4. Usuń zaznaczenie przycisku Pokaż wszystkie akcje (to właśnie Echo było tą niestandardową akcją, którą chcieliśmy użyć w tym makropoleceniu). 5. Jako drugą akcję wybierz EksportZFormatowaniem: a) Określ typ eksportowanego obiektu (Tabela). b) Podaj nazwę tabeli źródłowej (DoZałatwienia). a b c d
c) Jako format danych wybierz Skoroszyt programu Excel (*.xlsx). d) Jeżeli chcesz, aby po zapisaniu plik został automatycznie otwarty w programie Excel, zmień wartość atrybutu Autostart z Nie na Tak.
6. Kliknij przycisk Uruchom i zapisz makro pod nazwą Eksport. Zwróć uwagę na widoczny z lewej strony paska stanu komunikat — efekt akcji Echo. 7. Zostanie wyświetlone standardowe okno dialogowe zapisywania plików. Po podaniu nazwy arkusza programu Excel (o ile ten składnik pakietu Microsoft Office jest zainstalowany na komputerze użytkownika) arkusz zostanie zapisany na dysku i ewentualnie automatycznie otwarty w programie Excel. 8. Jeżeli arkusz został automatycznie otwarty, zamknij okno programu Excel, a następnie okno projektu makra.
Przykładowe makro wysyłające wiadomości e-mail Jednym z ciekawszych zastosowań makropoleceń jest automatyczne wysyłanie wiadomości e-mail zawierających dane odczytane z bazy.
i
Do pomyślnego wykonania ćwiczenia niezbędne jest wcześniejsze zainstalowanie i skonfigurowanie programu klienta pocztowego, np. programu Outlook 2013 wchodzącego w skład pakietu Microsoft Office.
Przykładowe makro wysyłające wiadomości e-mail
Aby utworzyć makro, którego uruchomienie spowoduje wysłanie pod wskazany adres e-maila z tytułami płyt wypożyczonych przez wybraną osobę: 1. Utwórz kwerendę zwracającą tytuły płyt pożyczonych przez osobę o podanym nazwisku. W tym celu: a) Utwórz nową kwerendę w widoku projektu. b) Na tabele źródłowe wybierz tabele Płyta, Osoba i Pożyczka. a
c
c) Pierwsza kolumna kwerendy powinna zwracać posortowane dane z kolumny Tytuł tabeli Płyta.
8
d
d) Druga kolumna kwerendy powinna zawierać daty wypożyczenia poszczególnych płyt.
e
e) Trzecia kolumna powinna zawierać warunek ograniczający zwracane przez kwerendę dane do tytułów płyt pożyczonych przez wybraną osobę. W tym celu w polu Kryteria kolumny Nazwisko wpisz /,.(>3RGDMQD]ZLVNR@. Ponieważ nie chcemy, aby podane nazwisko było zwracane przez kwerendę, usuń zaznaczenie pola wyboru Pokaż. 2. Zamknij okno kwerendy i zapisz ją pod nazwą N7\WXï\. 3. Utwórz nowe makro. 4. Jedyną akcją makra będzie akcja WyślijObiektBazyDanychPocztąEmail. Ustaw następujące atrybuty tej akcji:
a b c d
a) Typ obiektu — Kwerenda, b) Nazwa obiektu — kTytuły,
e f
c) Format docelowy — Pliki tekstowe ( *.txt) (plik załącznika będzie nosił nazwę Tytuły.txt),
253
254
Podsumowanie
d) Do — adres e-mail odbiorcy wiadomości (np. [email protected]), e) Temat — /LVWDSRĝ\F]RQ\FKğOPöZ, f) Edytuj wiadomość — Nie. 5. Uruchom makro, zapisując je pod nazwą (PDLO. 6. Jeżeli tylko program pocztowy został poprawnie skonfigurowany, to na ekranie wyświetli się pytanie o nazwisko adresata, a po jego podaniu — standardowe okienko wiadomości e-mail.
6 8 7
7. Zwróć uwagę na automatycznie dołączony plik tekstowy. Otwórz go i przekonaj się, że zawiera on tytuły i daty płyt pożyczonych przez wskazaną osobę.
8. Aby wysłać wiadomość z automatycznie wygenerowanym załącznikiem, kliknij przycisk Wyślij.
Podsumowanie Po przeczytaniu bieżącego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi może mieć pewne kłopoty, mają mu pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Do czego służy warunek WHERE? 2. Czy za pomocą uruchamiania makra krok po kroku możemy usuwać problemy, czy tylko je lokalizować? 3. Jak skonfigurować program klienta pocztowego? 4. Czy istnieje możliwość jednoczesnego wysłania za pomocą makra tej samej wiadomości e-mail do kilku osób?
ľ-DN]DSHZQLÊZ\GDMQÈSUDFÚXĝ\WNRZQLNRP SURJUDPX$FFHVV"ľ7ZRU]\P\GRNXPHQWDFMÚ ED]\ľ.RQğJXUXMHP\V\VWHP]DU]ÈG]DQLD ED]DPLGDQ\FK$FFHVVľ:ïDĂFLZRĂFLSOLNX ED]\GDQ\FKľ.RPSDNWRZDQLHED]\GDQ\FK 7ZRU]\P\NRSLÚED]\GDQ\FKľ2GWZDU]DP\ ED]ÚSRDZDULLľ2SW\PDOL]DFMDZ\GDMQRĂFL ED]\ľ=DEH]SLHF]DP\GDQHSU]HFKRZ\ZDQH ZED]LHľ3RGVXPRZDQLH
10
Zarządzanie bazą, czyli na czym polega praca administratora baz danych Jak zapewnić wydajną pracę użytkownikom programu Access? Praca z własnoręcznie utworzoną bazą danych nie kończy się w momencie jej przygotowania. W trakcie korzystania z niej użytkownicy nie tylko będą zauważali kolejne błędy i niedociągnięcia w konfiguracji programu, ale również będą zmieniali swoje wymagania dotyczące funkcjonalności samej bazy. W bieżącym rozdziale zamiast opisu czynności związanych z testowaniem i uaktualnianiem działającej wersji bazy danych zostały przedstawione obowiązki administratora baz danych. W przypadku baz danych, które przechowują megabajty informacji i działają 24 godziny na dobę przez siedem dni w tygodniu, obowiązki administratora często wypełniane są przez kilka osób. Oczywiście, zarządzanie bazą danych działającą w środowisku SZBD Access i wykorzystywaną do celów domowych lub na potrzeby małej firmy nie wymaga zatrudniania specjalistów na pełen etat. Lista obowiązków admini-
256
Tworzymy dokumentację bazy
stratora jest o wiele krótsza, a ich wypełnienie nie zajmuje więcej niż kilkanaście minut tygodniowo. Aby jednak umiejętnie zarządzać bazą danych, użytkownicy muszą nauczyć się zabezpieczać przechowywane w niej informacje przed awarią bądź przed ujawnieniem ich niepowołanym osobom. Wykonując ćwiczenia z bieżącego rozdziału, poznasz metody wykonywania typowych zadań administratora baz danych, takich jak konfiguracja bazy danych, tworzenie i odtwarzanie kopii zapasowej danych czy optymalizacja wydajności programu.
Tworzymy dokumentację bazy Nikogo z tych, którzy musieli modyfikować lub rozwijać przygotowany przez inne osoby program (np. bazę danych), nie trzeba chyba przekonywać, jak ważna i przydatna jest jego dokładna dokumentacja. To samo dotyczy naszych własnych programów, szczególnie tych, które powstały jakiś czas temu. Uaktualnienie ich bez jakiejkolwiek dokumentacji jest operacją nie tyle czasochłonną, co wyjątkowo stresującą. Z tych powodów warto więc poświęcić trochę czasu na przygotowanie odpowiedniej dokumentacji gotowej bazy danych. Dzięki temu, jeżeli my sami (lub ktokolwiek inny) będziemy chcieli rozbudować w przyszłości nasz program, to operacja ta będzie krótsza o kilkanaście czy nawet kilkadziesiąt godzin. 1. W folderze Rozdział10\Starter otwórz bazę danych Rozdział11a i zamknij okno panelu przełączania. 2. Przejdź do zakładki NARZĘDZIA BAZY DANYCH i kliknij ikonę Dokumentator bazy danych. 2
3. Wyświetlone okno dialogowe Dokumentator umożliwia wybranie obiektów, dla których chcemy utworzyć dokumentację. Obiekty bazy danych podzielone są według typów, aby więc wyświetlić listę kwerend, wystarczy kliknąć zakładkę Kwerendy, formularzy — zakładkę Formularze itp. Natomiast zakładka Bieżąca baza danych pozwala na dodanie do dokumentacji właściwości bazy danych i opisu relacji łączących tabele. 4. W naszym przypadku planujemy utworzenie pełnej dokumentacji bazy danych, a zatem: a) Kliknij zakładkę Wszystkie typy obiektów.
Tworzymy dokumentację bazy
a
b) Aby wybrać wszystkie obiekty, możesz kliknąć przycisk Zaznacz wszystkie.
b
c) Kliknij przycisk Opcje.
c
i
SZBD Access umożliwia również określenie opcji charakterystycznych dla poszczególnych typów dokumentowanych obiektów, np. odrębnych opcji dla tabel i dla formularzy. Aby je ustawić, należy wybrać odpowiednią zakładkę (tj. Tabele lub Formularze) i kliknąć przycisk Opcje.
5. Tabele bazy danych mogą być opisane w dokumentacji z określoną dokładnością: a) Zaznaczając pole wyboru Właściwości, dodasz do dokumentacji takie informacje jak data utworzenia i ostatniej modyfikacji tabeli, liczba jej wierszy itp. b) Zaznaczając pole wyboru Relacje, dodasz do dokumentacji informacje o wzajemnych powiązaniach tabel bazy danych. c) Zaznaczając pole wyboru Uprawnienie według użytkowników i grup, dodasz informacje o uprawnieniach nadanych poszczególnym użytkownikom, np. o uprawnieniu do odczytu danych z tabeli czy uprawnieniu do modyfikowania informacji zapisanych w danej tabeli1.
f
a b
c
d
e
d) Lista wyboru Przy polach uwzględnij pozwala określić, ile danych dotyczących poszczególnych kolumn tabeli zostanie dołączonych do dokumentacji. e) Lista wyboru Przy indeksach uwzględnij pozwala określić, ile danych dotyczących poszczególnych indeksów zostanie dołączonych do dokumentacji. f) Kierując się rysunkiem, zmień domyślne ustawienia dokumentatora programu Access i kliknij przycisk OK.
1
Nadawanie uprawnień wykracza poza zakres tej książki i nie zostało w niej opisane.
257
258
Tworzymy dokumentację bazy
6. Aby utworzyć raport zawierający dokumentację bazy danych, kliknij przycisk OK. 7. Po pewnym czasie (dla skomplikowanych baz danych uruchomionych na starszych komputerach tworzenie dokumentacji może trwać nawet kilkanaście minut) wyświetlone zostanie okno podglądu raportu o nazwie Definicja obiektu. Raport ten będzie zawierał pełną dokumentację naszej bazy danych2. 8. Za pomocą przycisków nawigacyjnych wyświetl ostatnią stronę raportu. Zwróć uwagę, że dokumentacja prostej bazy danych, pomimo nieuwzględnienia wszystkich szczegółów, liczy kilkaset (prawie 500) stron. 9. Aby określić format raportu, możesz skorzystać z przycisków znajdujących się w sekcjach Rozmiar strony i Układ strony. Pozwalają one m.in. na: a) określenie szerokości marginesów, b) określenie wielkości strony, c) zmianę orientacji strony, d) wybór drukarki. d
b
a
c
10. Dopasuj ustawienia raportu do swoich potrzeb. 11. Aby zapisać utworzony raport jako dokument tekstowy programu Microsoft Word: a) W sekcji Dane kliknij ikonę Więcej i wybierz Word. b) Podaj lokalizację i nazwę tworzonego pliku.
b
c) Kliknij przycisk OK.
c
2
Pierwsza (opisywana w książce) polska wersja programu Access zawierała jeszcze błędy uniemożliwiające wygenerowanie tego raportu.
Konfigurujemy system zarządzania bazami danych Access
12. Rozpocznie się stosunkowo długotrwały proces konwertowania kolejnych stron raportu do jednego pliku .rtf. Po jego zakończeniu dokumentacja może być wyświetlona w oknie automatycznie uruchomionego programu Word i za jego pomocą skonwertowana do dokumentu .docx (aby opcja ta była dostępna na komputerze, musimy wcześniej zainstalować program Microsoft Word). 13. Zamknij okno eksportowania raportu do pliku, nie zapisując kroków wykonanych przez kreatora.
Konfigurujemy system zarządzania bazami danych Access Na działanie utworzonych przez nas baz danych w środowisku SZBD Access wpływa konfiguracja tego programu. W bieżącym ćwiczeniu poznasz kilka najważniejszych opcji konfiguracyjnych, których ustawienie zmieni bezpośrednio funkcjonalność samej bazy danych. 1. Rozwiń menu PLIK i kliknij przycisk Opcje. Lista możliwych do skonfigurowania opcji programu Access została podzielona na 11 kategorii. 2. Zakładka Ogólne pozwala m.in. na: a) włączenie podglądu wpływu wprowadzanych zmian (np. formatowania), b) skonfigurowanie sposobu automatycznego wyświetlania etykiet, c) wyłączenie funkcji sprzętowego przyspieszania wyświetlania, d) zmianę domyślnego formatu baz danych, e) zmianę domyślnej lokalizacji plików baz danych,
b a c d e
f g h
f) zmianę porządku sortowania (domyślnie Access korzysta z ustawień regionalnych systemu operacyjnego), g) zmianę danych użytkownika, h) zmianę koloru tła i domyślnego motywu graficznego.
259
260
Konfigurujemy system zarządzania bazami danych Access
i
Po kliknięciu ikony pomocy lub klawisza F1 będziemy mogli zapoznać się z dokładniejszymi opisami opcji konfiguracyjnych programu Access i uruchamianych w nim baz danych.
3. Zakładka Bieżąca baza danych pozwala skonfigurować wygląd i działanie aktualnie otwartej bazy danych, która umożliwia m.in.: a) określenie nazwy bazy danych i jej ikony, b) wybranie formularza automatycznie wyświetlanego podczas uruchamiania bazy danych, c) zmianę sposobu wyświetlania okienek poszczególnych obiektów bazy danych (tabel, formularzy lub kwerend) — zamiast w osobnych okienkach mogą być one wyświetlane w kolejnych zakładkach tego samego okna, d) automatyczne uporządkowanie (kompaktowanie) zamykanych baz danych (więcej informacji na ten temat znajduje się w dalszej części rozdziału), e) automatyczne usuwanie z zamykanych baz danych personalnych informacji o jej autorze, f) zmianę sposobu przechowywania plików graficznych w tabelach; jeżeli nie planujemy korzystania z naszej bazy we wcześniejszych wersjach SZBD Access, należy zmienić tę opcję na Zachowaj format obrazu źródłowego, g) ukrycie i skonfigurowanie Okienka nawigacji, h) dostosowanie do własnych potrzeb wstążki i pasków narzędzi programu Access,
a b c d
f
e
i) zapisywanie informacji o zmianie nazw obiektów bazy danych (dzięki tym informacjom zmiana nazwy np. tabeli zostanie zapisana w tabeli systemowej i może być wykorzystana do uaktualnienia wszystkich obiektów pobierających z niej dane),
Konfigurujemy system zarządzania bazami danych Access
j) automatyczne uwzględnianie zmian nazw obiektów w definicji powiązanych obiektów (np. po zmianie nazwy tabeli źródłowej zostanie automatycznie zmieniona definicja kwerendy).
i
Autokorekta nazw chroni przed uszkodzeniem działającej bazy danych w wyniku przypadkowej lub nieprawidłowej zmiany nazw powiązanych obiektów, ale niekorzystnie wpływa na wydajność SZBD Access.
4. Zakładka Arkusz danych pozwala m.in. na: a) ukrycie poziomych linii oddzielających poszczególne wiersze tabeli,
a b c
b) ukrycie pionowych linii oddzielających poszczególne kolumny tabeli, c) zmianę wyglądu komórek,
d
d) zmianę domyślnej czcionki. 5. Zakładka Projektanci obiektu pozwala m.in. na: a) określenie domyślnego typu nowo tworzonych kolumn,
a
b
b) określenie domyślnego rozmiaru pól tekstowych i liczbowych,
c
d
ei
eii
c) wskazanie kolumn, dla których automatycznie tworzone będą indeksy, d) wymuszenie stosowania podczas tworzenia kwerend składni języka SQL zatwierdzonej przez organizację ANSI jako standard SQL-92,
261
262
Konfigurujemy system zarządzania bazami danych Access
e) określenie, czy podczas pracy z widokiem projektu formularza lub raportu do zaznaczenia obiektu konieczne będzie: i. jego całkowite obrysowanie, ii. objęcie dowolnej części obiektu. f) wyłączenie mechanizmu automatycznej kontroli błędów, g) wyłączenie wykrywania błędów polegających na: i. zerwaniu powiązania obiektów formularzy i raportów, ii. dodaniu niepowiązanych etykiet do projektu formularza lub raportu, iii. izarejestrowaniu błędnego skrótu klawiszowego, iv. próbie niewłaściwego odwołania się do atrybutów obiektów, v. zgłaszaniu typowych błędów w projektach raportów, takich jak utworzenie raportu, który nie mieści się na stronie lub jest niewłaściwie posortowany. 6. Zakładka Sprawdzanie dotyczy sposobu automatycznego poprawiania danych tekstowych i pozwala m.in. na: a) skonfigurowanie mechanizmu autokorekty wprowadzanych danych (czyli automatyczne poprawianie nieprawidłowo wprowadzanych słów), b) określenie wyjątków, których poprawność gramatyczna nie będzie sprawdzana (np. ignorowanie błędów wynikających z przypadkowego naciśnięcia klawisza Caps Lock),
a b
c
d
c) wybór pliku słownika bazy danych, d) wybór języka słownika. 7. Zakładka Język pozwala m.in. na:
a
b
a) wybór języków edycji dokumentów i ustalenie języka domyślnego, b) wybór języków wyświetlania i pomocy oraz ustalenie języka domyślnego.
Konfigurujemy system zarządzania bazami danych Access
8. Zakładka Ustawienia klienta pozwala m.in. na: a) wybór akcji wywoływanej naciśnięciem klawisza Enter. Możliwe jest: i. nieprzenoszenie kursora z aktywnego pola, ii. przenoszenie kursora do następnego pola aktywnego rekordu, iii. przenoszenie kursora do pierwszego pola kolejnego rekordu.
a b c
b) określenie domyślnej akcji podejmowanej przy zmianie aktywnego rekordu — domyślnie zaznaczana jest cała zawartość wybranego pola, c) uniemożliwienie zmiany aktywnego rekordu za pomocą klawiszy strzałek,
d
d) zmianę domyślnej opcji wyszukiwania informacji w bazie danych: i. opcja Wyszukiwanie szybkie oznacza, że domyślnie porównywana będzie zawartość całego pola z wzorcem, ii. opcja Wyszukiwanie ogólne oznacza, że domyślnie porównywana będzie zawartość dowolnej części pola z wzorcem, iii. opcja Wyszukiwanie od początku pola oznacza, że domyślnie porównywana będzie zawartość początkowych znaków pola z wzorcem; e) wyświetlanie pytania z prośbą o potwierdzenie decyzji przy każdorazowej zmianie istniejących danych, f) wyświetlanie pytania z prośbą o potwierdzenie decyzji przy każdorazowym usuwaniu istniejących obiektów bazy danych, g) wyświetlanie pytania z prośbą o potwierdzenie decyzji przy każdorazowym wykonaniu kwerendy modyfikującej, usuwającej lub dodającej dane,
263
264
Konfigurujemy system zarządzania bazami danych Access
h) ukrycie paska stanu programu Access (na tym poziomym pasku, który znajduje się w dolnej części okna programu, wyświetlane są komunikaty dotyczące działania programu),
h
j
lii m
i
i) określenie domyślnych marginesów raportów,
k
j) zapisywanie w bieżącej bazie danych informacji o latach za pomocą czterech (a nie dwóch) cyfr,
li
k) zapisywanie we wszystkich bazach danych informacji o latach za pomocą czterech (a nie dwóch) cyfr,
l) określenie, czy bazy danych będą otwierane w trybie: i. jednego użytkownika (oprócz nas nikt inny nie będzie mógł uruchomić tej samej bazy danych aż do zakończenia przez nas pracy), ii. wielu użytkowników (mimo że baza danych zostanie przez nas otwarta, inni użytkownicy również będą mogli ją otworzyć w tym samym czasie). m) określenie opcji blokowania rekordów (SZBD Access odpowiada za spójność przechowywanych w bazie informacji, tak więc w przypadku bazy jednocześnie otwartej przez wielu użytkowników opcja jednoczesnego modyfikowania tych samych danych musi być uniemożliwiona): i. na poziomie modyfikowanych rekordów (inni użytkownicy nie mają dostępu tylko do modyfikowanych wierszy tabel), ii. na poziomie modyfikowanych tabel (inni użytkownicy nie mają dostępu do wszystkich wierszy tabel źródłowych), iii. wyłączenie blokad (inni użytkownicy mają dostęp nawet do tych danych, które właśnie modyfikujemy).
Konfigurujemy system zarządzania bazami danych Access
9. Zakładka Dostosowywanie Wstążki pozwala na dodawanie, usuwanie i rozmieszczanie na wstążce przycisków i zakładek.
9
10. Zakładka Pasek narzędzi Szybki dostęp pozwala na dodawanie, usuwanie i rozmieszczanie przycisków na pasku szybkiego dostępu (domyślnie pasek ten znajduje się nad wstążką). Praca z tą zakładką nie różni się od konfiguracji wstążki. 11. Zakładka Dodatki pozwala: a) Zobaczyć wszystkie dodatkowe biblioteki (komponenty COM lub dodatki programu Access).
a
b
b) Włączać, wyłączać i usuwać wybrane dodatki.
265
266
Konfigurujemy system zarządzania bazami danych Access
12. Zakładka Centrum zaufania zawiera: a) odnośniki do stron WWW opisujących politykę firmy Microsoft dotyczącą ochrony prywatności użytkowników,
a
b
b) przycisk pozwalający skonfigurować opcje zabezpieczeń i ochrony prywatności, w tym: i. wskazać zaufane lokalizacje (foldery, z których otwierane bazy danych nie będą sprawdzane, czyli np. wszystkie makra takiej bazy będą automatycznie, bez pytania o pozwolenie użytkowników, odblokowywane), ii. zmienić domyślny poziom bezpieczeństwa makr (domyślnie użytkownik musi zgodzić się na uruchamianie wszystkich makropoleceń), iii. ukryć pasek z pytaniem, czy odblokować potencjalnie niebezpieczną zawartość bazy danych. 13. Po dostosowaniu opcji programu Access do swoich potrzeb kliknij przycisk OK.
Właściwości pliku bazy danych
Właściwości pliku bazy danych Plik bazy danych, tak jak wiele plików innych typów, może być dodatkowo opisany przez autora lub użytkownika. Aby to zrobić: 1. Rozwiń menu PLIK i kliknij odnośnik Wyświetl i edytuj właściwości bazy danych. 2. Pamiętaj, że zakładka Ogólne zawiera informacje tylko do odczytu, m.in. lokalizację i wielkość pliku. 3. Jeżeli chcesz dokładniej opisać plik: a) Przejdź do zakładki Niestandardowe. b) Zaznacz jeden z dodatkowych atrybutów (np. Klient). c) Wpisz jego wartość (np. firma Czytelnik). d) Kliknij przycisk Dodaj. 4. Przejdź do zakładki Statystyka — znajdują się w niej informacje o dacie utworzenia, ostatniej modyfikacji, ostatniego otwarcia i wydrukowania bazy danych. 5. Przejdź do zakładki Zawartość — zawiera ona podzieloną na kategorie listę nazw wszystkich obiektów bazy danych. 6. Zamknij okienko właściwości bazy przyciskiem OK.
Kompaktowanie bazy danych Pliki baz danych programu Access w krótkim czasie osiągają rozmiar, który przekracza wielkość wynikającą z liczby zapisanych w bazie informacji. W pewnym stopniu jest to związane z automatycznym tworzeniem obiektów systemowych. Głównym jednak powodem takiego stanu rzeczy jest wzrastające nieuporządkowanie zapisanych informacji. Aby temu zapobiec, bazy danych SZBD Access powinny być regularnie kompaktowane. Ten w pełni automatyczny proces pozwala na uporządkowanie zapisanych w pliku danych i tym samym zmniejszenie jego rozmiaru.
267
268
Tworzymy kopię bazy danych
Aby uporządkować fizyczną strukturę bazy danych: 1. Rozwiń menu PLIK i przejdź do zakładki Informacje. 2. Kliknij przycisk Kompaktuj i napraw bazę danych. 1
2
3. Baza danych zostanie uporządkowana, zamknięta i ponownie otwarta. 4. Sprawdź wielkość pliku bazy danych — jego rozmiar uległ zmniejszeniu.
Tworzymy kopię bazy danych W przypadku SZBD Access najprostszym, wykorzystywanym od lat sposobem na wykonanie kopii zapasowej bazy danych jest zamknięcie bazy, a następnie skopiowanie pliku z danymi. Dla bazy danych zapisanej w postaci jednego, w dodatku niewielkiego pliku jest to metoda nieskomplikowana i skuteczna. Użytkownicy wersji 2013 programu Access mogą również wykonać kopię bazy danych bez konieczności zamykania programu — ta opcja jest szczególnie przydatna, gdy z bazą pracuje wiele osób. Aby z poziomu programu Access wykonać kopię bieżącej bazy danych: 1. Rozwiń menu PLIK i przejdź do zakładki Zapisz jako. 2. Zaznacz opcję Wykonaj kopię zapasową bazy danych. 3. Kliknij przycisk Zapisz jako. 4. Zostanie wyświetlone standardowe okno dialogowe systemu Windows umożliwiające podanie nazwy (domyślnie będzie to nazwa kopiowanej bazy uzupełniona o bieżącą datę) i lokalizacji pliku kopii zapasowej. Wskaż lokalizację pliku kopii (pamiętaj, że przechowywanie kopii na tym samym dysku, na którym jest oryginał, nie gwarantuje jego bezpieczeństwa) i kliknij przycisk Zapisz. 5. Kopia zostanie wykonana, a baza danych ponownie uruchomiona.
Odtwarzamy bazę po awarii
Odtwarzamy bazę po awarii Przechowywane w bazie informacje mogą być utracone w efekcie: 1. Awarii dysku, na którym plik bazy danych był zapisany. 2. Złośliwej lub błędnej modyfikacji danych przez użytkowników. 3. Działania wirusów komputerowych. 4. Wystąpienia błędu systemu operacyjnego lub programu Access. Jeśli tylko dysponujemy aktualną kopią bazy danych, to utrata samej bazy z tragedii zmienia się jedynie w niedogodność. 1. O ile to możliwe, wykonaj kopię pliku uszkodzonej bazy danych. 2. Jeśli uszkodzeniu uległa część komputera, to wymień ją i skonfiguruj dodane urządzenie. 3. Jeżeli system operacyjny uległ awarii, to postaraj się ją usunąć lub zainstaluj system od nowa. 4. Gdy program Access uległ awarii, spróbuj go naprawić za pomocą jego instalatora lub odinstaluj i zainstaluj program od nowa. 5. Skopiuj do oryginalnej lokalizacji plik kopii zapasowej bazy danych. 6. Zmień nazwę pliku kopii na nazwę pliku utraconej bazy. 7. Upewnij się, że plik nie ma ustawionego atrybutu Tylko do odczytu. 8. Upewnij się, że wszyscy użytkownicy mają nadane uprawnienia do pliku. 9. Po uruchomieniu bazy danych przetestuj jej działanie. 10. Jeżeli kopia zapasowa była wykonana kilka dni temu, prawdopodobnie będzie w niej brakowało pewnych danych, a inne będą nieaktualne. Uaktualnij dane (spróbuj wykorzystać do tego uszkodzony plik bazy danych).
Optymalizacja wydajności bazy Wydajność jest jednym z kluczowych (obok niezawodności i bezpieczeństwa) atrybutów dobrze zaprojektowanej i zaprogramowanej bazy danych. Na wydajność programu składają się dwa czynniki: 1. Czas oczekiwania klienta na pierwszy wynik zwrócony przez bazę danych (czas reakcji, który powinien być jak najkrótszy) oraz 2. Liczba operacji wykonanych w jednostce czasu (moc obliczeniowa systemu, która powinna być jak największa).
269
270
Optymalizacja wydajności bazy
Aby przeprowadzić automatyczną analizę wydajności bazy danych Rozdział11a: 1. Przejdź do zakładki NARZĘDZIA BAZY DANYCH. 2. Kliknij przycisk Analizuj wydajność.
1 2
3. Uruchomiony zostanie Analizator wydajności. Ponieważ chcemy przeanalizować całą bazę danych, przejdź do zakładki Wszystkie typy obiektów i kliknij przycisk Zaznacz wszystkie. 4. Po kliknięciu przycisku OK rozpocznie się analiza wydajności wszystkich obiektów bazy danych. Po jej zakończeniu wyświetlony zostanie raport.
3 4
3
5. W przypadku bazy danych Rozdział11a optymalizator zgłosił jedną rekomendację oraz kilka sugestii i pomysłów. Rekomendacja (zaznaczona wykrzyknikiem) dotyczy utworzenia indeksu dla kolumny Osoba tabeli Problemy. Po zaznaczeniu każdej z uwag w dolnej części okna zostanie wyświetlony krótki opis problemu oraz sugerowany sposób jego rozwiązania. 6. Niektóre rekomendacje, sugestie i pomysły mogą być wdrożone automatycznie — dotyczy to m.in. brakującego indeksu. Aby je zastosować, wystarczy kliknąć przycisk Optymizuj. 7. Po zapoznaniu się z sugestiami optymalizatora i zastosowaniu wybranych kliknij przycisk Zamknij.
Zabezpieczamy dane przechowywane w bazie
Zabezpieczamy dane przechowywane w bazie W bazach danych z reguły przechowywane są ważne i poufne informacje, tak więc chcielibyśmy mieć pewność, że nie wpadną w niepowołane ręce. Chociaż skuteczne zabezpieczenie tych danych jest dość skomplikowane, to SZBD Access umożliwia podniesienie poziomu bezpieczeństwa bazy danych poprzez zaszyfrowanie pliku i wymuszenie podania hasła podczas jej otwierania. 1. Rozwiń menu PLIK i zamknij bieżącą bazę danych. 2. Kliknij przycisk Otwórz. 3. Wskaż bazę danych, która ma być zabezpieczona (np. bazę Rozdział11b — ta baza jest dokładną kopią bazy Rozdział11a i zawiera dokładnie te same dane).
2
4. Z prawej strony przycisku Otwórz kliknij strzałkę skierowaną w dół.
3
4 5
5. Wybierz opcję Otwórz z wyłącznością. Właśnie dowiedzieliśmy się, że można ograniczać dostęp do bazy danych — baza może być otworzona w trybie pojedynczego użytkownika, w trybie tylko do odczytu lub z oboma tymi ograniczeniami jednocześnie. 6. Rozwiń menu PLIK i przejdź do zakładki Informacje. 7. Kliknij przycisk Szyfruj przy użyciu hasła.
271
272
Zabezpieczamy dane przechowywane w bazie
8. Wpisz hasło, którego podanie będzie wymagane do otwarcia bazy — takie hasło powinno składać się z przynajmniej ośmiu znaków i nie powinno być wyrazem jakiegokolwiek języka (bezpiecznym hasłem jest np. 7DMQHB+DVï).
8 9
9. Potwierdź podane hasło i kliknij przycisk OK. 10. Jeżeli zostanie wyświetlona informacja o niezgodności użytego szyfrowania z poziomem blokowania wierszy, kliknij OK. 11. Zamknij i ponownie otwórz bazę Rozdzial11b. Tym razem do jej otwarcia wymagane będzie podanie prawidłowego hasła. Domyślnie dane zapisywane są w pliku bazy danych w jawnej postaci, co umożliwia niepowołanym osobom ich odczytanie. Aby temu zapobiec, Access 2013 automatycznie zaszyfrował podanym hasłem plik bazy danych. Aby się przekonać, że plik bazy danych Rozdzial11b został zaszyfrowany: 1. Uruchom Eksploratora Windows. 2. Kliknij prawym przyciskiem myszy plik Rozdział11a, z menu kontekstowego wybierz opcję Otwórz za pomocą i wyświetl zawartość pliku w Notatniku.
i
Otwarcie pliku bazy danych w Notatniku może trwać dość długo.
3. Ponieważ pliki baz danych SZBD Access nie są plikami tekstowymi, w Notatniku zobaczymy chaotyczne ciągi znaków. Nadal jednak możemy przeszukać tak otwarty plik. Aby się o tym przekonać: a) Naciśnij kombinację klawiszy Ctrl+F. b) Wpisz część nazwy jakiegoś zespołu (np. Floyd). b
c
c) Po kliknięciu przycisku Znajdź następny nazwa zespołu zostanie wyszukana, a w tym samym bloku tekstu znajdziemy nazwy pozostałych zespołów zapisanych w tabeli Zespół.
Podsumowanie
4. Zamknij plik Rozdział11a i w ten sam sposób wyświetl zawartość pliku Rozdział11b.
5
5. Spróbuj raz jeszcze wyszukać nazwę tego samego zespołu. Ponieważ plik bazy danych Rozdział11b zawiera zaszyfrowane dane, nazwa tym razem nie zostanie znaleziona.
6. Zamknij okno Notatnika.
Podsumowanie Po przeczytaniu bieżącego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi może mieć pewne kłopoty, mają mu pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Co to są obiekty systemowe? 2. Do czego służą tagi inteligentne? 3. W jaki sposób możemy zapoznać się z dokładniejszymi opisami opcji konfiguracyjnych programu Access 2013? 4. W jaki sposób możemy się dowiedzieć, czy awarii uległ system operacyjny, czy program Access? 5. We wcześniejszych wersjach programu Access możliwe było przeniesienie bazy danych do SZBD SQL Server. Co się stało z tą opcją? I dlaczego nowy Access nie pozwala tworzyć projektów typu ADP (Access Data Projects)?
273
274
ľ8VïXJD2IğFHľ=DNïDGDP\ VXEVNU\SFMÚ2IğFHľ$SOLNDFMH 6KDUH3RLQWľ7ZRU]\P\SXVWÈDSOLNDFMÚVLHFL :HEľ7ZRU]\P\WDEHOÚQDSRGVWDZLHV]DEORQX ľ7ZRU]\P\WDEHOHSRSU]H]LPSRUWGDQ\FKľ 7ZRU]\P\ZïDVQÈWDEHOÚľ7ZRU]\P\UHODFMH 7ZRU]\P\NZHUHQG\ľ0RG\ğNXMHP\ZLGRNLľ 'RGDMHP\NRQWURONLGRZLGRNöZED]\GDQ\FK VLHFL:HEľ.RQğJXUXMHP\ED]ÚGDQ\FKVLHFL :HEľ3RGVXPRZDQLH
11
Aplikacje sieci Web i Office 365, czyli jak udostępnić bazy danych Usługa Office 365 Zadaniem serwera SharePoint jest udostępnianie danych i aplikacji w sieci oraz umożliwienie użytkownikom korzystania z tych zasobów. Wśród możliwych do udostępnienia zasobów znajdują się arkusze Excel, najróżniejsze rodzaje dokumentów oraz bazy danych programu Access 2013 utworzone jako aplikacje sieci Web. Co ciekawe, praca z tego typu bazami danych nie wymaga instalacji programu Access na komputerach klienckich — użytkownik musi mieć jedynie dostęp do serwera SharePoint, aby móc korzystać z udostępnionych przez niego zasobów za pośrednictwem przeglądarki internetowej. Opis instalacji i konfiguracji serwera SharePoint wykracza poza zakres tej książki. Co więcej, serwery te są najczęściej używane w dużych firmach. Na szczęście dzięki usłudze Office 365 indywidualni użytkownicy programu Access 2013 oraz małe i średnie firmy również mogą pracować z bazami danych nowego typu. Subskrybenci tej usługi mają bowiem dostęp nie tylko do programów pakietu Office 365, ale również do serwera SharePoint 2013 działającego w chmurze Microsoft.
276
Zakładamy subskrypcję Office 365
Usługa Office 365 dostępna jest w różnych wersjach. Przed zakupieniem dowolnej z nich można ją za darmo przetestować: t Przeznaczona dla użytkowników domowych wersja Office 365 Premium dostępna jest pod adresem http://office.microsoft.com/pl-pl/products/o365-home-premium-suite-page-FX102853961.aspx (ta wersja nie może być używana do celów komercyjnych i nie zawiera pełnej wersji programu Access 2013). t Wersja Office 365 ProPlus (http://office.microsoft.com/pl-pl/business/office-365-proplus-wirtualne-biuro-online-FX103213513.aspx) umożliwia jedynie pracę z bazami danych, nie pozwala jednak na ich samodzielne tworzenie. t Do średniej wielkości firm adresowana jest wersja Office 365 Small Business Premium (http://office.microsoft.com/pl-pl/business/office-onlinemicrosoft-office-365-dla-maych-firm-FX103037625.aspx). t Duże przedsiębiorstwa powinny zainteresować się wersją Office 365 Enterprise (http://office.microsoft.com/pl-pl/business/office-365-dlaprzedsiebiorstw-udostepnianie-dokumentow-FX103030346.aspx). Obie przeznaczone dla firm wersje zawierają zarówno program Access 2013, jak i serwer SharePoint 2013.
Zakładamy subskrypcję Office 365
i
Jeżeli nie posiadasz pakietu Office 2013, do tworzenia baz danych sieci Web programu Access będziesz potrzebował co najmniej subskrypcję wersji Small Business Premium (lub dostęp do serwera SharePoint). Osoby, które dysponują pakietem Office, mogą, choć z pewnymi utrudnieniami, wykorzystać w tym celu subskrypcję Premium1.
Aby założyć subskrypcję usługi Office 365 Small Business Premium (na potrzeby tej książki skorzystamy z jej darmowej, 1-miesięcznej wersji próbnej): 1. Połącz się ze stroną WWW tej usługi (w trakcie powstawania książki była ona dostępna pod adresem http://office.microsoft.com/pl-pl/products/office-365-dla-srednich-firm-wydajnosc-FX103037683.aspx) i kliknij odnośnik Rozpocznij bezpłatny okres próby.1 1
Utrudnienia polegają na tym, że bazy danych będą tworzone na podstawie dostępnych, predefiniowanych szablonów, a następnie otwierane i modyfikowane w zainstalowanym na komputerze programie Access.
Zakładamy subskrypcję Office 365
2. Załóż konto. W tym celu podaj swoje dane (takie jak imię czy adres) oraz kilka ważnych informacji2: a) Nazwę organizacji (np. SQLExpertPL). Ta nazwa, uzupełniona o sufiks .onmicrosoft.com, będzie adresem WWW Twojej witryny SharePoint. b) Nazwę użytkownika, który będzie administratorem tej usługi (np. Marcin). Nazwa ta stanie się pierwszą częścią identyfikatora użytkownika. Cały identyfikator będzie przypominał adres e-mail, np. Marcin@SQLExpertPL. onmicrosoft.com. 3. Po kliknięciu przycisku Załóż konto i podaniu danych kontaktowych (te dane będą przydatne, gdy zapomnisz hasła do swojego konta) wyświetlona zostanie strona Centrum administracyjne usługi Office 365. Pozwala ona m.in.: a) Skonfigurować usługę. b) Założyć konta jej użytkowników i zarządzać tymi kontami. c) Zapoznać się z bieżącym stanem usługi. d) Skorzystać z pomocy online w postaci artykułów, poradników i krótkich filmów. 4. Usługa Office 365 pozwala też pobrać i zainstalować pakiet Office. Wersja tego pakietu dostępna po kliknięciu odnośnika Pobierz oprogramowanie zależy od wykupionej subskrypcji. Przed przejściem do dalszych ćwiczeń upewnij się, że subskrypcja Office 365 jest poprawnie założona i że na komputerze został zainstalowany program Access 2013.
a
d 4 b
b c
d d d
2
Najważniejsze dane rejestracyjne zostaną Ci wysłane na podany adres e-mail.
277
278
Aplikacje SharePoint
Aplikacje SharePoint Pierwszą miniaplikację sieci Web utworzymy z poziomu przeglądarki WWW, wybierając jeden z dostępnych szablonów. W tym celu: 1. Połącz się z witryną . sharepoint.com (np. https://sqlexpertpl.sharepoint.com). 2. Kliknij kafelek Dodaj listy, biblioteki i inne aplikacje.
2
3. Wyświetlona zostanie długa lista obiektów możliwych do umieszczenia na portalu SharePoint. Wybierz aplikację Śledzenie problemów (wcześniej tworzyliśmy tabelę na podstawie klasycznej wersji tego szablonu). 4. Podaj nazwę tworzonej aplikacji (np. Problemy) i kliknij Utwórz. 5. Zwróć uwagę, że z lewej strony znajduje się odpowiednik znanego nam już okienka nawigacji — w sekcji Ostatnie kliknij nazwę utworzonej właśnie aplikacji. 6. Wybierz opcję edycji danych i wyświetl zakładkę LISTA. 7. Zwróć uwagę, że w głównym okienku wyświetlony został webowy odpowiednik widoku arkusza danych tabeli, a na wstążce znajdują się przyciski znane nam z poprzednich rozdziałów. Przekonaj się, że praca z aplikacjami sieci Web nie różni się specjalnie od pracy z klasycznymi bazami danych programu Access. 8
6 7
5
7
Tworzymy pustą aplikację sieci Web
8. Aby się przekonać, jak bardzo podobne są do siebie bazy danych obu typów, kliknij przycisk Otwórz w programie Access. 9. Wybierz opcję Eksportuj kopię danych — w ten sposób na podstawie aplikacji Web utworzona zostanie klasyczna baza danych programu Access. 10. Podaj lokalizację zapisywanego pliku .accdb i kliknij OK. 11. Po chwili uruchomiony zostanie Access 2013. Ze względów bezpieczeństwa zostaniesz poproszony o zalogowanie się na konto użytkownika usługi Office 365: a) Wpisz utworzony w poprzednim ćwiczeniu login. b) Podaj chroniące go hasło. a b c
c) Upewnij się, że pole Nie wylogowuj mnie jest zaznaczone (w ten sposób łatwiej Ci będzie wykonać kolejne ćwiczenia). d) Kliknij Zaloguj się.
d
12. Wyświetl widok arkusza danych tabeli Problemy. Właśnie nauczyliśmy się tworzyć klasyczne bazy danych programu Access na podstawie aplikacji sieci Web.
Tworzymy pustą aplikację sieci Web Po zapoznaniu się z aplikacjami sieci Web i przekonaniu się, że przypominają one znane nam już tabele i połączone z nimi formularze, pora samodzielnie utworzyć tego typu aplikację. W tym celu: 1. Jeżeli program Access 2013 został zamknięty, uruchom go. 2. Upewnij się, że jesteś zalogowany na konto administratora witryny Office 365 (nazwa aktualnie używanego konta wyświetlana jest w prawym górnym rogu programu). Jeżeli tak nie jest:
279
280
Tworzymy pustą aplikację sieci Web
a) Kliknij nazwę aktualnie używanego konta lub znajdujący się w tym samym miejscu ekranu odnośnik Przełącz konto. b) Wybierz właściwe konto lub je dodaj.
b
3. Z listy szablonów baz danych wybierz Niestandardowa aplikacja sieci Web. 4. Ponieważ zalogowaliśmy się na konto użytkownika usługi Office 365, wyświetlone okno dialogowe będzie już zawierało adres naszej witryny. Pozostanie nam jedynie podać: a) nazwę tworzonej aplikacji (3ï\WRWHND), b) lokalizację (miejsce na witrynie, w którym aplikacja zostanie udostępniona).
a b
5. Po kliknięciu przycisku Utwórz Access połączy się z witryną SharePoint, sprawdzi, czy mamy odpowiednie uprawnienia, i utworzy pustą bazę danych sieci Web.
4
5
6. Po chwili aplikacja będzie utworzona, a na ekranie wyświetlone zostanie okienko pozwalające dodać do niej pierwszą tabelę.
Tworzymy tabelę na podstawie szablonu
Tworzymy tabelę na podstawie szablonu Najszybszym i najprostszym sposobem tworzenia tabel jest ich budowanie na podstawie predefiniowanych szablonów. Biblioteka szablonów jest dość obszerna, a więc prawdopodobnie znajdziemy w niej przynajmniej jeden szablon spełniający nasze wymagania. Wykonując to ćwiczenie, nauczymy się przeszukiwać szablony i dostosowywać utworzone na ich podstawie tabele do naszych potrzeb. 1. Pierwszym oknem wyświetlanym po utworzeniu nowej aplikacji sieci Web jest okienko pozwalające dodać nową tabelę. Jeżeli zostało ono zamknięte, wróć do poprzedniego ćwiczenia. 2. Preferowanym sposobem tworzenia tabel jest użycie szablonu. W pierwszej kolejności musimy więc znaleźć odpowiedni szablon. Przypuśćmy, że chcemy utworzyć tabelę z danymi naszych znajomych: a) W polu wyszukiwania wpisz Osoba. b) Kliknij przycisk wyszukiwania lub naciśnij Enter. c) Wyświetlona zostanie lista odpowiednich szablonów — wybierz z niej szablon Kontakty.
b a
c
3. Access utworzy nie tylko tabelę, ale również trzy związane z nią widoki (formularze). Widokom przyjrzymy się za chwilę, na razie chcielibyśmy zmodyfikować wybraną tabelę. W tym celu należy przede wszystkim wyświetlić okienko nawigacji (odpowiedni przycisk znajduje się w zakładce NARZĘDZIA GŁÓWNE).
281
282
Tworzymy tabelę na podstawie szablonu
4. Dwukrotnie kliknij lewym przyciskiem myszy widoczną w okienku nawigacji tabelę Kontakty — zostanie wyświetlony widok jej projektu. Wykorzystaj wiadomości z rozdziałów 3., 4. oraz 9. i zmodyfikuj projekt tej tabeli: a) dodając lub usuwając kolumny, b) ustawiając odpowiednie właściwości poszczególnych pól,
a
c
c) tworząc reguły sprawdzania poprawności,
d
4 b
d) dodając makra danych.
b
5. Okazuje się, że praca z projektami tabel aplikacji sieci Web nie różni się od tworzenia i modyfikowania tabel klasycznych baz danych programu Access. Przełącz tabelę do widoku arkusza danych. 6. Ten widok jest nieco inny niż jego odpowiednik w klasycznych bazach danych SZBD Access. Przede wszystkim pozwala on odczytywać i modyfikować jedynie dane, a nie strukturę samej tabeli. Mimo to praca z nim jest intuicyjna: a) Wpisz przykładowe dane znajomego. b) Zapisz je w tabeli. c) Aby usunąć zaznaczony rekord, kliknij przycisk Usuń.
b
c a
7. Zamknij okno widoku tabeli. Zwróć uwagę, że tabele baz sieci Web nazywają się dokumentami.
Tworzymy tabelę poprzez import danych
Tworzymy tabelę poprzez import danych Drugim sposobem szybkiego utworzenia tabeli (dokumentu) jest zaimportowanie do bazy sieci Web istniejących już danych. W ten sposób możemy zaimportować do bazy dane zapisane w pliku tekstowym, w arkuszu Excel, w tabeli klasycznej bazy danych SZBD Access, a nawet dane odczytane z innej bazy danych (np. bazy danych SQL Server czy MySQL). Aby utworzyć tabelę poprzez import danych: 1. W lewym dolnym rogu głównego okna bazy danych sieci Web kliknij przycisk Dodaj nową tabelę.
i
Główne okno bazy danych sieci Web składa się z dwóch sekcji — w lewej znajduje się lista tabel tej bazy, w prawej (głównej) podgląd formularzy (widoków) wybranej tabeli.
2. W tym wypadku importowane dane zapisane są w pliku tekstowym, a więc żeby je zaimportować, kliknij przycisk Tekst/SCV. 3. Uruchomiony zostanie znany nam już kreator importu danych tekstowych. Odpowiadając na jego pierwsze pytanie, w folderze Przykłady\Rozdział11\ Starter wskaż plik PRACOWNICY.txt i kliknij OK. 4. Upewnij się, że wybranym znakiem rozdzielającym pola jest średnik, zaznacz pole wyboru Pierwszy wiersz zawiera nazwy pól i zakończ działanie kreatora. 5. Tabela zostanie utworzona i wypełniona danymi. Nasza baza danych zawiera już dwie tabele. Pora przekonać się, jak wygląda praca z tą bazą danych na portalu SharePoint. W tym celu: 1. W lewym rogu wstążki kliknij przycisk Uruchom aplikację. 2. Uruchomiona zostanie przeglądarka internetowa i po chwili wyświetlona będzie w niej nasza baza sieci Web. 3. Z listy tabel (dokumentów) wybierz PRACOWNICY. 4. Dla tej tabeli Access automatycznie utworzył dwa formularze (widoki): a) Jeden prezentuje dane w postaci listy. b) Drugi występuje jako arkusz danych. 5. Wyszukaj dowolną osobę. 6. Zmodyfikuj jej dane. 7. Zapisz zmiany w bazie sieci Web.
283
284
Tworzymy własną tabelę
2 4a
4b
6
7
b 3
8. Zamknij okno przeglądarki. Okazuje się, że aby udostępnić w internecie bazę danych sieci Web, wystarczy utworzyć tabele — resztą (czyli utworzeniem formularzy i publikacją bazy na serwerze SharePoint) zajmie się program Access.
Tworzymy własną tabelę Trzeci sposób tworzenia tabel polega na samodzielnym dodaniu jej poszczególnych kolumn, ustawieniu ich właściwości i ewentualnym zdefiniowaniu indeksów oraz reguł sprawdzania poprawności. Metoda ta niczym się nie różni od sposobu opisanego w rozdziale 3. w punkcie „Tworzenie tabel w widoku projektu”, dlatego jej opis nie zostanie tu powtórzony.
Tworzymy relacje Pierwsza utworzona przez nas baza sieci Web zawierała jedynie dwie niepołączone ze sobą tabele. My tymczasem wiemy z poprzednich rozdziałów, że główną zaletą relacyjnych baz jest przechowywanie danych o obiektach różnego typu w osobnych, ale powiązanych ze sobą tabelach. Pora więc się dowiedzieć, jak tworzyć i modyfikować relacje w bazach sieci Web. 1. Utwórz nową bazę danych sieci Web o nazwie 6SU]HGDĝ. 2. Z listy szablonów tabel wybierz Zamówienia zakupu (żeby znaleźć ten szablon, w polu wyszukiwania można wpisać m.in. 6SU]HGDĝ). 3. Tym razem Access utworzył nie jedną, a sześć powiązanych ze sobą tabel. Okazuje się, że niektóre szablony tabel są w rzeczywistości szablonami funkcjonalnych modułów baz danych.
Tworzymy relacje
4. Zwróć uwagę, że tabela Szczegóły zamówienia w głównym oknie bazy wygląda na nieaktywną. Ta tabela istnieje (choć została ukryta) i można w niej zapisywać rekordy za pośrednictwem powiązanych z nią formularzy (widoków).
3
5. Zaznacz tę tabelę. Wyświetlone zostaną dwa przyciski polecenia — pierwszy z nich pozwala wyświetlić menu kontekstowe tabeli, a drugi menu formatowania.
5 4 6
6. Kliknij pierwszy przycisk polecenia. Wyświetlone w ten sposób menu kontekstowe pozwala m.in. ukryć lub pokazać tabele. Właśnie poznaliśmy sposób modyfikowania tabel baz danych sieci Web.
7. Wyświetl widok projektu tabeli Produkty. 8. Dwie ostatnie kolumny tej tabeli są kolumnami odnośników (kluczy obcych łączących tę tabelę z innymi). Definiowanie relacji w bazach sieci Web wygląda nieco inaczej niż w przypadku klasycznych baz danych programu Access. Ponieważ nie mamy dostępnego okienka relacji, musimy je utworzyć i skonfigurować w oknie właściwości tabeli. 9. Aby zobaczyć, jak wygląda tworzenie relacji w tego typu bazach danych, z listy typów danych kolumny Dostawca wybierz Odnośnik — wyświetlone zostanie okno kreatora odnośników.
10 8
9
285
286
Tworzymy kwerendy
10. Zwróć uwagę, że chociaż w bazach sieci Web wszystkie opcje relacji wyświetlane są w jednym okienku, są to dokładnie te same opcje, które poznaliśmy w rozdziale 5. Okazuje się, że tworzenie i konfigurowanie relacji, w tym: wskazywanie powiązanej tabeli, określanie sposobu prezentowania danych w powiązanych rekordach oraz określanie więzów integralności danych zapisanych w połączonych tabelach, przebiega tak samo w obu typach baz danych. 11. Zamknij okno projektu tabeli Produkty.
Tworzymy kwerendy W bazach danych sieci Web też można tworzyć kwerendy. Co więcej, widok projektu kwerendy niczym nie różni się od widoku poznanego w rozdziale 6. Żeby się o tym przekonać, utworzymy kwerendę zwracającą liczbę aktualnie sprzedawanych produktów (które dostarczamy w ramach aktywnych zamówień) z rozbiciem na kategorie, do których należą te produkty: 1. Przełącz się do głównego okienka bazy danych Sprzedaż. 2. W sekcji Tworzenie kliknij przycisk Zaawansowane i wybierz Kwerenda. 3. Dodaj do kwerendy tabele Zamówienia zakupu, Szczegóły zamówień, Produkty i Kategorie. 4. W zakładce PROJEKTOWANIE kliknij przycisk Sumy. 5. Dodaj do kwerendy kolumnę Tytuł i pogrupuj według niej zwracane przez tę kwerendę wiersze.
3
5
6
7
Modyfikujemy widoki
6. Jako drugą dodaj tabelę Identyfikator tabeli produkty i policz zapisane w niej identyfikatory. 7. Ostatnią kolumną kwerendy (użytą wyłącznie do wybierania wierszy) będzie kolumna W toku tabeli Zamówienia zakupu. W polu Suma wybierz dla niej Gdzie, ukryj tę kolumnę i w polu Kryteria wpisz Tak. 8. Przekonaj się, że tworzenie kwerend odczytujących dane wygląda identycznie jak w przypadku klasycznych baz programu Access. Zwróć również uwagę, że bazy sieci Web nie pozwalają na tworzenie kwerend modyfikujących dane, i zamknij okno projektu kwerendy.
Modyfikujemy widoki Widoki są odpowiednikiem formularzy w klasycznych bazach danych programu Access i tak jak formularze udostępniają one użytkownikom zapisane w tabelach dane. W bazach sieci Web możemy tworzyć widoki czterech typów: t Szczegóły listy. Tego typu widoki są automatycznie tworzone dla tabel (nazwą automatycznie utworzonego widoku tego typu jest Lista). Prezentują one szczegółowe informacje na temat jednego rekordu tabeli, dla której zostały stworzone, i ewentualnie listę powiązanych rekordów z tabeli podrzędnej. t Arkusz danych. Tego typu widoki również są automatycznie tworzone dla tabel (nazwą automatycznie utworzonego widoku tego typu jest Arkusz danych). Prezentują one jednocześnie wiele rekordów tabeli, dla której zostały stworzone, i przypominają trochę arkusze programu Excel. t Podsumowanie. Tego typu widoki są automatycznie tworzone tylko dla niektórych tabel (tabel nadrzędnych lub tabel zawierających kolumny z powtarzającymi się wartościami). Ich domyślną nazwą jest Według , np. Według kategorii. Z lewej strony widoku znajdziemy listę użytych do grupowania wartości (np. nazw kategorii) oraz liczbę wierszy w każdej z tych kategorii (np. listę produktów sklasyfikowanych jako Napoje). Z prawej strony znajdziemy listę rekordów należących do wybranej kategorii, np. dane napojów. t Pusty. Taki widok początkowo nie zawiera żadnych kontrolek, więc musimy je do niego dodać samodzielnie. Niezależnie od typu widoki zawierają też przyciski akcji pozwalające modyfikować dane.
287
288
Modyfikujemy widoki
Widoki wszystkich typów edytuje się w taki sam sposób. Żeby go poznać: 1. Zaznacz tabelę Produkty — w prawej części głównego okna bazy danych wyświetlone zostaną jej widoki. 2. Pośrodku widoku Lista kliknij przycisk Edytuj — widok zostanie wyświetlony w widoku projektu. 3. Zwróć uwagę, że: a) Na górze formularza znajduje się kilka standardowych przycisków akcji oraz przycisk + pozwalający dodawać własne akcje. b) Aby przenieść kontrolkę (kontrolki) lub zmienić jej wielkość, wystarczy ją zaznaczyć i przeciągnąć myszką. c) Po zaznaczeniu kontrolki wyświetlane są trzy przyciski pozwalające powiązać ją z kolumnami tabel, sformatować oraz przypisać jej makropolecenie. d) W okienku Lista pól znajdują się dodatkowe pola danych — żeby je umieścić na widoku, wystarczy przeciągnąć je myszką.
a d c b
4. Dostosuj wygląd widoku do własnych potrzeb i przekonaj się, że chociaż widok projektu widoków jest nieco inny niż widok formularzy, umiejętności zdobyte w rozdziale 7. w zupełności wystarczają do pracy z widokami. 5. Zamknij okno projektu widoku, zapisując wprowadzone w nim zmiany.
Dodajemy kontrolki do widoków bazy danych sieci Web
Dodajemy kontrolki do widoków bazy danych sieci Web Opublikowane w witrynie SharePoint bazy danych sieci Web można modyfikować, np. dodawać do nich kolejne tabele (dokumenty) czy formularze (widoki). Możliwa jest też zmiana już istniejących obiektów. Wykonując to ćwiczenie, nauczysz się otwierać w programie Access 2013 opublikowaną bazę danych i poznasz jedną z charakterystycznych dla baz danych sieci Web kontrolek — kontrolkę autouzupełniania. 1. Połącz się z witryną, w której znajduje się modyfikowana baza danych (jeżeli korzystasz z usługi Office 365, domyślnie jej adresem będzie nazwa Twojej organizacji uzupełniona o sharepoint.com, np. https://sqlexpertpl.sharepoint.com). 2. Znajdź modyfikowaną bazę danych i kliknij jej nazwę. 3. W prawym rogu paska narzędzi zostanie wyświetlony przycisk ustawień — kliknij go. 2
3
4. Wybierz opcję Dostosuj w programie Access.
4
5. Na pytanie, co zrobić z plikiem App.accdw, odpowiedz, klikając przycisk Otwórz — program Access zostanie uruchomiony, a wybrana baza danych otwarta. Przypuśćmy, że chcemy ułatwić użytkownikom wyszukiwanie pracowników na podstawie ich nazwisk. W tym celu do widoku listy pracowników dodamy kontrolkę autouzupełniania: 1. Wyświetl widok projektu widoku Pracownicy lista. 2. W zakładce PROJEKTOWANIE znajduje się lista możliwych do umieszczenia w tym raporcie kontrolek. Kliknij Kontrolka autouzupełniania. 3. Domyślnie nowe kontrolki umieszczane są na dole raportu — przesuń nowo dodaną kontrolkę bezpośrednio poniżej przycisków akcji. 4. Po zaznaczeniu kontrolki z jej prawej strony zostały wyświetlone trzy przyciski poleceń — wybierz pierwszy z nich, czyli przycisk Dane.
289
290
Dodajemy kontrolki do widoków bazy danych sieci Web
2 4
3
5
5. Powiąż kontrolkę z kolumną nazwisko tabeli PRACOWNICY. Pamiętaj, aby postawić puste pole Źródło kontrolki — w przeciwnym razie zostanie w niej wyświetlone nazwisko pierwszego pracownika odczytane z tabeli i użytkownik nie będzie mógł sam wpisać nazwiska szukanej osoby. Właśnie nauczyliśmy się dodawać kontrolki do widoków. 6. Zamknij okno projektu widoku i uruchom aplikację. 7. Wyświetl zmodyfikowany widok i w dodanym do niego polu zacznij wpisywać dowolne nazwisko.
7 8
8. Zwróć uwagę, że wyświetlona została lista nazwisk dopasowanych do wpisanego przez Ciebie wzorca — żeby wybrać z niej nazwisko, wystarczy je kliknąć.
9. Wybranie nazwiska nie powoduje jednak przejścia do odpowiedniego rekordu tabeli — osiągnięcie tego, wydawałoby się prostego efektu, jest w tej wersji programu Access 2013 zaskakująco trudne3. Zamknij okno bazy danych sieci Web. 3
Akcje (makra) kontrolek pozwalają jedynie przejść do następnego czy też pierwszego rekordu. Co gorsza, nie można powiązać filtrów widoków z kontrolkami. Pozostaje więc jedynie bardzo nieeleganckie rozwiązanie wykorzystujące tabele tymczasowe, które są automatycznie (przy użyciu makra danych) wypełnione właściwymi wierszami.
Konfigurujemy bazę danych sieci Web
Konfigurujemy bazę danych sieci Web Ostatnie ćwiczenie poświęcone zostało administrowaniu bazami danych sieci Web. Ponieważ tego typu bazy danych znajdują się na serwerach SharePoint (w przypadku usługi Office 365 w chmurze Microsoft, a więc na serwerach tej firmy), zarządzanie nimi wygląda inaczej niż zarządzanie klasycznymi bazami programu Access. W większości przypadków obowiązki administratora baz danych sieci Web sprowadzają się do konfiguracji połączenia z tą bazą. Aby skonfigurować połączenia z poziomu programu Access 2013: 1. Otwórz w tym programie konfigurowaną bazę danych. 2. Wyświetl menu PLIK. 3. Wszystkie opcje konfiguracyjne dostępne są w sekcji Informacje po kliknięciu przycisku Połączenia. 4. Wyświetlone w ten sposób okno dialogowe pozwoli m.in.: a) Skonfigurować chroniącą bazę danych zaporę w taki sposób, aby można się było z nią połączyć wyłącznie z używanego w danym momencie komputera. 3
4 a b
b) Skonfigurować chroniącą bazę danych zaporę w taki sposób, aby można się było z nią połączyć z dowolnego komputera. c) Zablokować wszystkie połączenia z bazą danych.
c
5. Skonfiguruj połączenia z bazą danych i wyłącz program Access.
291
292
Podsumowanie
Podsumowanie Po przeczytaniu bieżącego rozdziału i wykonaniu znajdujących się w nim ćwiczeń czytelnik powinien samodzielnie odpowiedzieć na prawie wszystkie z poniższych pytań. Pozostałe, z którymi może mieć pewne kłopoty, mają mu pomóc w poszerzeniu opisanego materiału (odpowiedzi znajdują się w dodatku A). 1. Co się stało z raportami w bazach sieci Web? 2. Czy można powiązać ze sobą poszczególne formularze? 3. Dlaczego w rozdziale nie zostały przedstawione akcje baz danych sieci Web?
ľ2GSRZLHG]LGRUR]G]LDïXľ2GSRZLHG]L GRUR]G]LDïXľ2GSRZLHG]LGRUR]G]LDïX 2GSRZLHG]LGRUR]G]LDïXľ2GSRZLHG]LGR UR]G]LDïXľ2GSRZLHG]LGRUR]G]LDïXľ 2GSRZLHG]LGRUR]G]LDïXľ2GSRZLHG]LGR UR]G]LDïXľ2GSRZLHG]LGRUR]G]LDïXľ 2GSRZLHG]LGRUR]G]LDïXľ2GSRZLHG]LGR UR]G]LDïX
A
Odpowiedzi do zadań Odpowiedzi do rozdziału 1. Tak, obie wersje programu Access mogą być jednocześnie zainstalowane i używane na tym samym komputerze. Możliwe jest nawet jednoczesne używanie wersji 2003 i 2013. Jednak użytkownikom, którzy pracują z bazami stworzonymi w wersji 2003, zalecalibyśmy jak najszybszą aktualizację. Natomiast użytkownicy wersji 2007 i 2010 mogliby do czasu dokładnego przetestowania uaktualnionych baz danych używać jednocześnie obu wersji Accessa, gdyby nie problem licencyjny — żeby legalnie korzystać z wersji 2013 i wcześniejszej, trzeba kupić dwie licencje Accessa: jedną na wersję 2013 i drugą na wersję 2007/2010. 1. Tak — każda baza danych zapisana jest w osobnym pliku (np. Northwind.accdb, Rozdział5.accdb itd.). Jednak system zarządzania bazami danych Access pozwala na jednoczesne uruchomienie tylko jednej bazy danych. Aby jednocześnie uruchomić kilka baz danych, należy: a) albo uruchomić kolejną kopię programu Access, b) albo zamknąć jedną bazę danych i otworzyć inną.
i
Program Access 2013, podobnie jak Word 2013, jest programem jednodokumentowym — w jednej kopii programu może być uruchomiona tylko jedna baza danych.
294
Odpowiedzi do rozdziału 1.
2. Podstawowym źródłem informacji na temat aktywacji jest artykuł Aktywacja i rejestracja produktu firmy Microsoft (http://support.microsoft.com/kb/326851/pl). 3. Pod adresem http://www.microsoft.com/pl-pl/office365/online-software.aspx znajdziemy nie tylko opis tej usługi, ale również filmy instruktażowe. 4. Tak, ale może się to okazać dość skomplikowane i będzie wymagać specjalistycznych narzędzi. Z tego powodu należy regularnie wykonywać kopię bazy danych i przechowywać ją w bezpiecznym miejscu. Wykonywanie kopii bazy danych zostało opisane w rozdziale 10. W większości przypadków, o ile tylko plik bazy danych nie został całkowicie utracony (np. z powodu poważnej awarii dysku twardego), możliwe jest odczytanie zapisanych w nim danych nawet wtedy, jeżeli dane te zostały częściowo uszkodzone.
6c
5. Informację o wielkości pliku bazy danych możemy odczytać albo w programie Access, albo w oknie Eksploratora Windows. W pierwszym przypadku należy: a) Uruchomić wybraną bazę danych. b) Rozwinąć menu PLIK, wybrać opcję Informacje i kliknąć odnośnik Wyświetl i edytuj właściwości bazy danych. c) Kliknąć zakładkę Ogólne.
6. Rozmiar pliku bazy danych (tak jak każdego innego pliku) możemy też odczytać przed jego skopiowaniem, bez konieczności uruchamiania Accessa: a) Kliknij prawym przyciskiem myszy plik bazy danych. b) Z menu kontekstowego wybierz opcję Właściwości. 7. Tak. Kompilując bazę danych, tworzymy jej kopię — plik skompilowanej wersji bazy może mieć zupełnie inną nazwę, a na pewno będzie miał inne rozszerzenie (.accde zamiast .accdb). Co więcej, kompilacja jest procesem nieodwracalnym. Dlatego należy przechowywać wersję nieskompilowaną, niezbędną w przypadku rozbudowywania lub modyfikowania bazy danych, natomiast użytkownikom powinna być udostępniona wyłącznie wersja skompilowana i wykorzystywana do codziennej pracy z bazą danych.
Odpowiedzi do rozdziału 2.
Odpowiedzi do rozdziału 2. 1. Pola załączników pozwalają zapisać w bazie danych dowolne pliki, np. zdjęcia znajomych, elektroniczną dokumentację produktu, stronę WWW itp. W ten sposób wszystkie dane znajdą się w jednym pliku i łatwiejsze będzie: a) ich przechowywanie, b) tworzenie i odtwarzanie kopii zapasowych, c) ich udostępnianie innym użytkownikom. 2. Kolejne wersje programu Access są wprawdzie zgodne z poprzednimi wersjami, czyli w nowszej wersji programu można otworzyć bazę zapisaną we wcześniejszej wersji (użytkownicy najnowszej wersji programu będą mogli korzystać z baz danych zapisanych w każdej wersji), dotyczy to jednak wyłącznie baz danych zapisanych w formacie Access 2000 lub późniejszych. Przy próbie otwarcia bazy danych zapisanej w formacie Access 97 wyświetlone zostanie okno dialogowe z informacją o błędzie. Żeby dalej pracować z bazą w wersji Access 97, należy najpierw otworzyć ją w programie Access 2000 lub 2007, a następnie przekonwertować do nowszej wersji. 3. Warto wykonać kopię bazy danych przed jej podzieleniem. W programie Access nie ma kreatora, który automatycznie połączyłby podzieloną bazę z powrotem w jeden plik. Złączenie podzielonej bazy danych jest możliwe, ale wymaga samodzielnego zaimportowania połączonych tabel do pliku z kwerendami, formularzami i raportami. 4. W domyślnej konfiguracji SZBD Access każdy użytkownik, który otworzył bazę danych, jest jej administratorem i może wykonać wszystkie operacje nie tylko na danych (np. usunąć dane z tabeli), ale również na obiektach bazy danych (np. usunąć tabelę). Dlatego m.in. przed użytkownikami z reguły ukrywane jest okienko nawigacji programu Access, a z bazy pozwala się im korzystać za pośrednictwem formularzy. Żadna z operacji przeprowadzanych poprzez formularze nie zmieni struktury bazy, natomiast w oknie bazy danych możemy usuwać i modyfikować obiekty bazy danych. 5. Tak. System zarządzania bazami danych Access umożliwia nawet nadanie określonych uprawnień różnym użytkownikom bazy danych. Najprostszym zabezpieczeniem przed otwarciem bazy danych przez niepowołane osoby jest ochrona bazy za pomocą hasła, którego podanie będzie wymagane do jej otwarcia (identyczny mechanizm pozwala na chronienie dokumentów programu Word czy arkuszy programu Excel), oraz zaszyfrowanie pliku bazy danych. Te metody ochrony są skuteczne tylko wtedy, jeśli zostały zastosowane razem. Ochrona bazy danych przed otwarciem przez niepowołane osoby została opisana w rozdziale 10.
295
296
Odpowiedzi do rozdziału 3.
Odpowiedzi do rozdziału 3. 1. Ze wszystkich popularnych typów plików tekstowych — tak. Jeżeli tylko plik ma określoną strukturę (np. poszczególne pola oddzielane są zawsze przecinkiem albo tabulacją), Access 2013 może odczytać tę strukturę i na jej podstawie utworzyć odpowiednią tabelę, w której zapisane zostaną zaimportowane dane. 2. Niezależnie od sposobu utworzenia tabeli możemy zmienić jej definicję, wyświetlając widok projektu. Niemożliwe jest wykorzystanie do tego celu kreatora czy widoku arkusza danych tabeli. Tak więc, skoro zmiana istniejącej tabeli wymaga pracy w widoku projektu, najlepszym rozwiązaniem jest tworzenie tabel w ten właśnie sposób. Metody modyfikowania tabel zostały opisane w rozdziale 4. 3. Indeks w bazie danych programu Access pomaga w szybszym znajdowaniu i sortowaniu rekordów. SZBD Access używa indeksów w tabeli w taki sam sposób, w jaki używa się indeksu w książce: aby znaleźć dane, w indeksie sprawdzane jest ich położenie. Jeżeli nie istnieją indeksy, wyszukanie pojedynczego wiersza tabeli wiąże się z koniecznością odczytania całej tabeli — brak indeksu może oznaczać odczytanie megabajtów danych tylko po to, aby np. znaleźć numer czyjegoś telefonu. Jeżeli natomiast istnieją indeksy powiązane z tabelą, znalezienie żądanych danych sprowadza się do odszukania w indeksie (który z reguły jest obiektem wielokrotnie mniejszym niż tabela) wierszy tabeli, które spełniają podane kryteria, i odczytania z nich potrzebnych informacji.
i
Odpowiednikiem indeksu programu Access jest skorowidz znajdujący się na końcu niektórych książek. Ponieważ poszczególne hasła indeksu zapisane są w określonym (alfabetycznym) porządku, znalezienie żądanych danych nie trwa długo i sprowadza się do przeszukania indeksu, wybrania hasła i zapoznania się z umieszczonymi przy nim odnośnikami, a następnie odczytania szukanych informacji na wskazanej stronie.
4. Każda osoba ma swój ulubiony format danych — wyraźnie widać to na przykładzie dat i walut: tę samą informację można zapisać następująco: Sobota, 3 kwietnia 1993, 3-kwi-93 lub 93-04-03. Chociaż jest to ta sama informacja (a więc w polu tabeli zapisana jest we wszystkich przypadkach tak samo), to wyświetlana jest w sposób określony przez użytkownika: w formacie daty długiej, średniej lub krótkiej. Ten sam mechanizm, który pozwala użytkownikowi na dostosowanie formatu prezentowanych danych do jego potrzeb, umożliwia wyświetlanie (w zależności od ustawień regionalnych systemu Windows) tych samych cyfr i walut jako:
Odpowiedzi do rozdziału 4.
a) 123 456 789,00; 123 456 789,00 zł (układ charakterystyczny dla Polski), b) 123,456,789.00; $123,456,789.00 USD (układ charakterystyczny dla USA), c) 123.456.789,00, 123.456.789,00 € (układ charakterystyczny dla Niemiec).
Podobny efekt można osiągnąć dzięki masce wprowadzania danych. W tym przypadku w tabeli możemy zapisywać wyłącznie wprowadzone dane i zrezygnować z zapisywania znaków rozdzielających, np. myślników. Ponieważ po określeniu maski wiadomo, gdzie te myślniki należy wstawić, dane mogą być prezentowane w innej formie, niż są zapisane. 5. Przede wszystkim reguła sprawdzania poprawności musi być poprawnym wyrażeniem programu Access, zwracającym albo prawdę, albo fałsz. Dodatkowo wyrażenie to nie może zawierać: a) funkcji zdefiniowanych przez użytkownika, b) funkcji grupujących, c) funkcji Eval, d) metody CurrentUser, e) odwołań do formularzy, kwerend lub innych tabel. Reguły sprawdzania poprawności pola nie mogą też odwoływać się do pól innych tabel.
Odpowiedzi do rozdziału 4. 1. Tak. Najłatwiejsze jest ukrycie nie tylko danej tabeli, ale również okienka nawigacji bazy danych. W tym celu wystarczy z menu PLIK wybrać Opcje/ Bieżąca baza danych i usunąć zaznaczenie pola wyboru Wyświetl okienko nawigacji. Jednak wyświetlenie tak ukrytego okna też jest bardzo proste. Lepsza metoda zabezpieczenia bazy danych poprzez jej zaszyfrowanie i wymaganie hasła opisana została w rozdziale 10. SZBD Access pozwala również na nadawanie różnych uprawnień poszczególnym użytkownikom bazy danych (np. użytkownik Marcin będzie mógł modyfikować projekt tabeli i zapisane w niej dane, a Danuta — jedynie odczytywać te dane). 2. Każdą pojedynczą informację możemy zaklasyfikować do określonego typu: imię Wojtek jest ciągiem znaków, wartość 20021 — liczbą całkowitą, cena nowego komputera — daną walutową. Istotne jest to, że wykonywanie operacji na danych różnych typów jest bezsensowne, gdyż nie znamy ani wyniku dodania do liczby 12 ciągu znaków Kot, ani porównania, czy data #2002-02-12#
297
298
Odpowiedzi do rozdziału 5.
jest większa od 250 zł. System zarządzania bazami danych Access przeprowadza jednak (o ile to jest możliwe) niejawną konwersję typów danych, tak więc wynikiem dodania do liczby 12 ciągu znaków „500” będzie liczba 512. Niejawna (przeprowadzana automatycznie przez program bez informowania o tym użytkownika) konwersja ułatwia tworzenie bazy danych, ale może być przyczyną różnych błędów: np. wynikiem operacji „10” + „50” będzie ciąg znaków „1050”, a nie liczba 60, a próba dodania do liczby ciągu znaków, który nie może być automatycznie zamieniony na liczbę, spowoduje błąd. 3. Tak — wystarczy utworzyć kwerendę pobierającą dane tylko z wybranej kolumny tabeli i wyeksportować nie tabelę, a utworzoną kwerendę. W ten sam sposób możemy uporządkować eksportowane dane oraz zapisać w jednym pliku dane zapisane w połączonych tabelach. Tworzenie kwerend zostało opisane w rozdziale 6. 4. Tak — po zaimportowaniu dowolnych danych i zapisaniu ich w tabeli możemy przeprowadzać na nich wszystkie operacje dozwolone w systemie zarządzania bazami danych Access, i to niezależnie od tego, czy wcześniej były one zapisane w pliku tekstowym, arkuszu programu Excel, czy innej bazie danych. 5. Niestety, nie. Ta funkcjonalność została wycofana — zastąpiła ją integracja z serwerem SharePoint i usługa Access Services. Więcej informacji na temat tych rozwiązań znajduje się w rozdziale 11.
Odpowiedzi do rozdziału 5. 1. Kolumna przechowująca wartości klucza podstawowego innej tabeli (kolumna klucza obcego) nazywana jest kolumną odnośnika. Przykładowo w tabeli Towary odnośnikiem do tabeli Firmy jest kolumna Identyfikator firmy. Dzięki temu możliwe jest przypisanie poszczególnych towarów do jednej z firm, których nazwy znajdują się w powiązanej tabeli. 2. Uporządkować, w tym posortować dane możemy za pomocą opisanych w rozdziale 6. kwerend. Jedynym sposobem uporządkowania danych podczas tworzenia tabeli jest określenie indeksu grupującego dane tej tabeli — w ten sposób wymusimy zapisywanie danych w określonym przez ten indeks porządku. Modyfikowanie fizycznej struktury danych wykracza jednak poza zakres tematyczny tej książki. 3. Wcześniejsze wersje SZBD Access automatycznie tworzyły wartość domyślną dla wszystkich pól liczbowych. Jednak kolumna odnośnika przechowuje wyłącznie klucze podstawowe połączonej tabeli, a nie dowolne wartości.
Odpowiedzi do rozdziału 6.
Z reguły wartości kluczy podstawowych są automatycznie generowane przez program Access, a pierwszą wygenerowaną wartością jest jeden, a nie zero. W rezultacie, gdybyśmy nie usunęli wartości domyślnej kolumny odnośnika, użytkownik musiałby ją zmienić, wpisując do zawierającej tę kolumnę tabeli odpowiednią wartość — próba pozostawienia wartości domyślnej spowodowałaby błąd naruszenia spójności danych. Na przykład pozostawienie wartości domyślnej kolumny Identyfikator firmy tabeli Towar uniemożliwiłoby wpisanie towaru nieprzypisanego do jakiejkolwiek firmy. 4. Wtedy, gdy planujemy przechowywać w bazie dodatkowe informacje o związku pomiędzy różnymi obiektami, np. tabela łącznikowa będzie potrzebna, jeżeli chcemy zapisać datę pożyczenia płyty przez osobę albo naszą opinię o zajęciach prowadzonych przez wykładowcę ze wskazaną klasą. 5. Musimy usunąć tylko te relacje, które związane są z usuwaną tabelą.
Odpowiedzi do rozdziału 6. 1. Kliknięcie tej ikony spowoduje uruchomienie kwerendy, czyli przełączenie widoku projektu lub widoku SQL kwerendy pobierającej do widoku arkusza danych lub wykonanie akcji kwerendy modyfikującej, która usuwa lub dodaje dane. 2. Nie. W przypadku pobierania danych z kolumn tabel źródłowych nazwy kolumn kwerendy będą takie same jak nazwy odpowiednich kolumn tabel, natomiast dla kolumn zwracających wyliczone lub zmodyfikowane dane system zarządzania bazami danych automatycznie utworzy odpowiednie nazwy. 3. AND oraz OR są podstawowymi operatorami dwuargumentowymi tzw. algebry Boole’a (jest to dziedzina z pogranicza logiki i matematyki, która pozwala określić prawdziwość lub fałszywość zdań). Operator AND nazywany jest operatorem koniunkcji (mnożenia logicznego) i zwraca wartość Prawda tylko wtedy, gdy oba jego argumenty są prawdziwe. Przykładowo koniunkcja dwóch zdań: 2=2 AND 3>1 jest prawdziwa, ponieważ oba zdania są prawdziwe, natomiast koniunkcja dwóch zdań: 2=5 AND 3>1 jest fałszywa, ponieważ pierwszy argument jest fałszywy. Operator OR nazywany jest operatorem alternatywy (dodawania logicznego) i zwraca wartość Fałsz tylko wtedy, gdy oba jego argumenty są fałszywe. Przykładowo alternatywa dwóch zdań: 2<>2 OR 1>2 jest fałszywa, ponieważ oba zdania są fałszywe, natomiast alternatywa dwóch zdań: 2=5 OR 3>1 jest prawdziwa, ponieważ drugi argument jest prawdziwy.
299
300
Odpowiedzi do rozdziału 7.
4. Kwerendę wyświetloną w widoku projektu możemy przełączyć do widoku arkusza danych w dwojaki sposób: a) wybierając Widok arkusza danych b) lub klikając ikonę Uruchom. Natomiast otworzyć kwerendę w widoku arkusza danych możemy, klikając dwukrotnie jej nazwę w głównym oknie bazy danych programu Access. 5. Argumentem funkcji nazywamy wyrażenie (liczbę 4, nazwę towaru itp.), dla którego zostanie zwrócony wynik tej funkcji, np. funkcja kwadratowa dla argumentu równego 4 zwróci wartość 16, a funkcja LEN dla nazwy towaru zwróci liczbę liter tej nazwy. Natomiast funkcje grupujące zwracają jedną wartość wyliczoną dla grupy argumentów, np. funkcja SUM wywołana z argumentami {1,2,3,4,5,6,7,8,9} zwróci wartość 45, a tak samo wywołana funkcja COUNT — wartość 9.
Odpowiedzi do rozdziału 7. 1. Każdy formularz składa się z kilku części — sekcji, z których każda ma swoje własne właściwości: a) nagłówka formularza zawierającego dane wyświetlane tylko raz, b) opcjonalnej sekcji nagłówka strony zawierającej dane wyświetlane na górze każdego ekranu formularza, c) szczegółów, głównej sekcji formularza, d) opcjonalnej stopki strony, e) stopki formularza. 2. Przyciski poleceń umożliwiające użytkownikowi bazy danych wykonywanie określonych operacji, np. wyświetlanie formularza związanego z określoną tabelą, wygenerowanie raportu czy uruchomienie makropolecenia. Ponieważ liczba przycisków na stronie jest ograniczona, z reguły dodaje się też przyciski umożliwiające użytkownikowi przełączanie stron panelu sterowania. 3. Tekst w polach może być wyrównany do lewej, do prawej, do środka lub właśnie wyjustowany, czyli wyrównany do obu krawędzi pola. 4. Tak. Do formularza można dodać dowolną liczbę podformularzy. 5. Nie jest to obowiązkowe, ale jeżeli identyfikatory rekordów są sztucznymi kluczami podstawowymi, to nie ma potrzeby wyświetlania ich użytkownikom — będą dla nich nic nieznaczącymi cyframi, których i tak nie będą w stanie zmodyfikować.
Odpowiedzi do rozdziału 8.
Odpowiedzi do rozdziału 8. 1. Plug and Play (PnP) to standard urządzeń działających w systemie Windows, który pozwala na łatwe instalowanie kart rozszerzeń (np. karty dźwiękowej, wideo) i innego sprzętu (np. drukarek, modemów). Wszystko, co musisz zrobić w przypadku takiego sprzętu, to podłączyć go i uruchomić komputer. Windows sam skonfiguruje przerwania, DMA i inne ustawienia sprzętowe. 2. Wbudowane funkcje systemu zarządzania bazami danych Access zostały podzielone na kilkanaście kategorii, np. funkcje tekstowe umożliwiające modyfikowanie ciągów znaków, funkcje matematyczne znane z lekcji matematyki czy funkcje agregatu SQL umożliwiające wyliczenie jednej wartości dla zbioru argumentów. Do najczęściej wykorzystywanych funkcji agregatu SQL należą: a) funkcja Maksimum («wyrażenie») — zwracająca największą z przekazanych wartości, b) funkcja Minimum («wyrażenie») — zwracająca najmniejszą z przekazanych wartości, c) funkcja Policz («wyrażenie») — zliczająca liczbę przekazanych wartości, d) funkcja Suma («wyrażenie») — zwracająca sumę przekazanych wartości, e) funkcja Średnia («wyrażenie») — zwracająca średnią przekazanych wartości. 3. Tak, możemy. Wystarczy zapisać pliki graficzne w kolumnie typu OLEDB lub kolumnie załącznika tabeli, z której odczytujemy pozostałe dane do raportu. Od tego momentu umieszczenie na raporcie zdjęcia będzie równie łatwe jak umieszczanie na nim danych tekstowych, np. imion i nazwisk znajomych. 4. Tak. Grupowanie polega na wyliczaniu wartości dla grupy takich samych danych, np. zliczenie płyt pożyczonych przez tę samą osobę, podsumowanie wartości płyt tego samego zespołu itp. 5. Tak. Wystarczy utworzyć formularz zawierający pole listy powiązane z kolumną Nazwisko tabeli Osoba i dodać do niego przycisk polecenia wyświetlający raport zawierający wyłącznie dane wybranych osób.
301
302
Odpowiedzi do rozdziału 9.
Odpowiedzi do rozdziału 9. 1. Warunek WHERE jest jednym z elementów instrukcji SELECT (instrukcji zwracającej dane) strukturalnego języka zapytań. Dzięki niemu możemy wybrać wiersze tabeli źródłowej, np. wyświetlić wyłącznie imiona osób mieszkających w Katowicach (WHERE miasto LIKE ’Katowice’) czy tytuły płyt wybranego zespołu (:+(5(]HVSRO >3RGDMQD]ZÚ]HVSRïX@). 2. Krokowy tryb uruchamiania makra ułatwia prześledzenie kolejnych jego akcji, szczególnie znalezienie akcji, której wykonanie przynosi rezultaty inne od zaplanowanych. Niestety, po znalezieniu błędu nadal musimy samodzielnie go naprawić. 3. Klientami poczty elektronicznej są m.in. programy Poczta systemu Windows, Microsoft Outlook, Kurier Poczty lub Opera. Konfiguracja każdego z tych programów wygląda nieco inaczej, za każdym razem należy jednak podać: a) nazwę konta pocztowego ([email protected]), b) nazwę użytkownika (w przypadku darmowych serwerów nazwa użytkownika odpowiadać będzie pierwszej części nazwy konta, np. osoba), c) adres serwera SMTP, za pomocą którego wysyłamy wiadomości (poczta. firma.com), d) adres serwera POP3 lub IMAP4, za pomocą którego odbieramy wiadomości (często jest to ten sam serwer, co serwer SMTP). 4. Tak. Makra programu Access mogą składać się z wielu skomplikowanych kroków i wykonywać najróżniejsze zadania, np. tworzyć wykresy programu Excel lub uruchamiać ulubioną grę komputerową. Jeżeli jednak planujemy tworzenie rozbudowanych makr, należy zastanowić się nad ich zastąpieniem programem napisanym w języku Visual Basic for Applications, który wchodzi w skład SZBD Access.
Odpowiedzi do rozdziału 10. 1. Każdy system zarządzania bazami danych tworzy pewną liczbę tabel, w których przechowywane są dane niezbędne do jego prawidłowego działania. SZBD Access również tworzy takie obiekty systemowe.
i
Tabele systemowe domyślnie nie są widoczne w głównym oknie bazy danych, można je jednak wyświetlić. Trzeba tylko pamiętać, że nieumiejętne modyfikowanie zapisanych w nich danych może spowodować uszkodzenie całej bazy danych.
Odpowiedzi do rozdziału 10.
2. Tagi inteligentne to osobne programy, które rozszerzają możliwości programów pakietu Office 2013, w tym Accessa. Każdy taki program realizuje jedną funkcję, np. umożliwia przeliczanie walut wg aktualnego, odczytanego ze strony NBP kursu, wysyłanie wiadomości e-mail poprzez kliknięcie nazwiska prawym przyciskiem myszy itp. 3
3
3. W prawym górnym rogu okna Opcji programu Access znajduje się ikona znaku zapytania. Po jej kliknięciu wyświetlona zostanie pomoc dotycząca wszystkich opcji dostępnych w wybranej zakładce.
4. Każda wersja systemu Windows ma pewną liczbę narzędzi diagnostycznych, ich omówienie wykracza jednak poza zakres tematyczny tej książki. Przyjmijmy, że jeżeli system uruchamia się bez jakichkolwiek błędów i można w nim uruchomić inne programy, to działa poprawnie. Natomiast błędy programu Access możemy naprawić, uruchamiając Panel sterowania, wybierając zadanie Programy i funkcje, zaznaczając pakiet Office 2013 lub program Access 2013 i klikając przycisk Zmień. Uruchomiony w ten sposób instalator programu pozwoli wybrać opcję Napraw. 5. Możliwość przeniesienia tabel do bazy SZBD Microsoft SQL Server została zastąpiona opcją pozwalającą zapisać bazę jako listę serwera SharePoint. Jest to związane z ogólną strategią firmy Microsoft, w ramach której za wymianę i współdzielenie danych ma odpowiadać właśnie ten serwer. Z tego samego powodu zostały wycofane projekty typu ADP (projekty, w których interfejsem użytkownika był Access, a dane były przechowywane w serwerze SQL). Oznacza to również, że firma Microsoft nie planuje umożliwienia użytkownikom uaktualnienia istniejących projektów ADP do nowszych wersji serwera SQL (ostatnią wspieraną wersją jest SQL Server 2008 R2). Zalecanym rozwiązaniem jest przekonwertowanie projektów ADP do nowego typu baz danych programu Access 2013, czyli aplikacji sieci Web.
303
304
Odpowiedzi do rozdziału 11.
Odpowiedzi do rozdziału 11. 1. Bazy sieci Web zadebiutowały w programie Access 2013 i pierwsza ich wersja nie zawiera raportów. Jedyne, co możemy na razie zrobić, to utworzyć odpowiednie widoki i skorzystać z funkcji drukowania przeglądarki internetowej. 2. Tak. Co więcej, powiązanie ze sobą formularzy jest proste. Jeżeli na przykład dodamy do formularza kontrolkę i powiążemy ją z danymi, wyświetlane w niej wartości (np. nazwiska) staną się odnośnikami. Kliknięcie takiego odnośnika spowoduje wyświetlenie widoku zawierającego szczegółowe dane wybranej osoby. 3. W przeciwieństwie do makr dostępnych w klasycznych bazach danych programu Access tworzenie akcji baz sieci Web, szczególnie w polskiej wersji programu Access 2013, jest dość skomplikowane. Przede wszystkim wymaga to samodzielnego podawania nazw obiektów (tabel, kolumn, widoków oraz kontrolek), do których akcja się odwołuje. Po drugie, funkcjonalność tych akcji jest dość ograniczona. W rezultacie przedstawienie sposobu utworzenia jednej konkretnej akcji nie pozwoliłoby na samodzielne tworzenie innych akcji. Z tego powodu w książce adresowanej do początkujących twórców baz danych zdecydowaliśmy się pominąć ten typ obiektów.