Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 2 1

Transkrypt

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 2 1
Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 2
1) Uzupełnienie poprzednich zajęć
1) Dodać do tabeli Produkty następujące pola
Tabela: Produkty
Pola
Nazwa
DataProdukcji
StawkaVAT
Typ
Data/ Godzina
Liczba
Rozmiar
Podwójna precyzja
(format procentowy)
2) Wypełnić pola odpowiednimi wartościami
W polu StawkaVAT o formacie procentowym wprowadza się wartości procentowe w odniesieniu do
jedności, wpisując np. 0,22 dla 22%, czy 0,07 dla 7% lub wpisujemy 7% (ze znakiem %)
Relacje w bazie danych
3) Określenie relacji (sprzężeń) między tabelami
Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do
programu Microsoft Access informacje na temat sposobu poprawnego łączenia powiązanych danych w
logiczną całość. W tym celu definiuje się relacje między tabelami. Gdy się to zrobi, można tworzyć
kwerendy, formularze i raporty pozwalające wyświetlać za jednym razem informacje z różnych tabel.
Poniższy formularz, na przykład, zawiera informacje z pięciu tabel:
Relację definiuje się przez dodanie tabel, które mają być powiązane relacją do okna Relacja, a
następnie przeciągnięcie pola kluczowego z jednej tabeli do pola kluczowego w drugiej tabeli.
Jeżeli przeciągnie się pole, które nie jest kluczem podstawowym i nie ma indeksu unikatowego do
innego pola, które również nie jest kluczem podstawowym i nie posiada indeksu unikatowego, to
tworzona jest relacja nieokreślona. W kwerendach zawierających tabele z nieokreślonymi relacjami
zostanie wyświetlona domyślna linia sprzęgająca pomiędzy tabelami, ale nie zostanie wymuszona
integralność referencyjna i nie będzie gwarancji, że rekordy w tabelach są unikatowe.
a) Relacja jeden-do-wielu
Relacja jeden-do-wielu jest najbardziej powszechnym typem relacji. W relacji jeden-do-wielu rekord
w tabeli A może mieć wiele dopasowanych do niego rekordów z tabeli B, ale rekord w tabeli B ma tylko
jeden dopasowany rekord w tabeli A.
Do stworzenia relacji między dwiema tabelami trzeba określić, które pola mają być w nich wspólne.
W relacji jeden do wielu pole to, w tabeli „rodzica” jest nazywane kluczem podstawowym i musi być
kluczem podstawowym tabeli, albo unikalnym indeksem. Pole w tabeli „dziecka” jest nazywane
kluczem obcym i nie musi zawierać unikalnej wartości.
b) Relacja jeden-do-jednego
W relacji jeden-do-jednego każdy rekord w tabeli A może mieć tylko jeden dopasowany rekord z
tabeli B, i tak samo każdy rekord w tabeli B może mieć tylko jeden dopasowany rekord z tabeli A. Ten
typ relacji spotyka się rzadko, ponieważ większość informacji powiązanych w ten sposób byłoby
zawartych w jednej tabeli. Relacji jeden-do-jednego można używać do podziału tabeli z wieloma
polami, do odizolowania części tabeli ze względów bezpieczeństwa, albo do przechowania informacji
odnoszącej się tylko do podzbioru tabeli głównej. Na przykład, można by utworzyć tabelę do
wyszukiwania pracowników uczestniczących w rozgrywkach piłkarskich.
W relacji jeden do jednego obydwa pola są kluczami podstawowymi lub unikalnymi indeksami w
swoich tabelach.
c) Relacja wiele-do-wielu
W relacji wiele-do-wielu, rekord w tabeli A może mieć wiele dopasowanych do niego rekordów z
tabeli B i tak samo rekord w tabeli B może mieć wiele dopasowanych do niego rekordów z tabeli A.
Jest to możliwe tylko przez zdefiniowanie trzeciej tabeli (nazywanej tabelą łącza), której klucz
podstawowy składa się z dwóch pól ľ kluczy obcych z tabel A i B. Relacja wiele-do-wielu jest w istocie
dwiema relacjami jeden-do-wielu z trzecią tabelą. Na przykład, tabele "Zamówienia" i "Produkty" są
powiązane relacją wiele-do-wielu zdefiniowaną przez utworzenie dwóch relacji jeden-do-wielu z tabelą
"Opisy zamówień".
Relacja wiele do wielu jest w rzeczywistości dwoma relacjami typu jeden do wielu, w której trzecia
tabela ma klucz podstawowy będący kombinacją kluczy w obydwu tabelach
4) Prawidłowo zdefiniowane relacje pomiędzy poszczególnymi tabelami projektu powinny wyglądać tak:
Aby usunąć nieprawidłowe powiązania nie wystarczy tylko usunąć danej tabeli z widoku Relacje.
Należy wcześniej zaznaczyć każdą relację, która dotyczy usuwanej tabeli i wcisnąć Delete lub z menu
podręcznego wybrać Usuń. W przeciwnym wypadku nie usunięte, złe powiązania będą się pojawiać
przy wykorzystywaniu poszczególnych tabel w kwerendach.
Stosowanie filtrów
1) Można sortować wiersze arkusza danych według danych w jednej lub więcej przylegających kolumnach.
Kliknij pole, według którego chcesz sortować, a następnie kliknij na pasku narzędzi przyciski Rosnąco lub
Malejąco. Program Microsoft Access będzie sortował od lewej do prawej.
2) Możesz ograniczyć ilość rekordów wyświetlanych w arkuszu danych, filtrując je na następujące sposoby:
a) Kliknij dane, według których chcesz filtrować, a następnie kliknij na pasku narzędzi przycisk Filtruj według
wyboru.
b) Kliknij na pasku narzędzi przycisk Filtruj według formularza, aby wybrać, które dane mają być wyświetlane z listy
wartości w jednym lub więcej pól.
3) Większe możliwości kontroli danych przy sortowaniu lub filtrowaniu można uzyskać wskazując polecenie Filtr w menu
Rekordy, a następnie wybierając polecenie Zaawansowany filtr/sortowanie.
4) Aby zastosować metodę filtrowania zaawansowanego lub filtrowania według formularza, kliknij na pasku narzędzi
przycisk Zastosuj filtr.
5) Możesz znajdować, a także znajdować i zamieniać wartości na następujące sposoby:
a) Kliknij na pasku narzędzi przycisk Znajdź, aby znaleźć wartość w polu w każdym rekordzie, w którym się ona
pojawia.
b) Kliknij polecenie Zamień w menu Edycja, aby zamienić znalezione wartości.
Wybór między filtrem a kwerendą
Filtry i kwerendy wybierające wydobywają podzbiór rekordów z tabeli lub innej kwerendy. Zwykle
używamy filtru, aby chwilowo edytować lub przeglądać część rekordów w arkuszu lub danych w
formularzu. Jeżeli zaś chcemy operować na tym zestawie rekordów trwale, często się do nich
odwołując, należy użyć kwerendy. Kwerendy są oddzielnymi obiektami w bazie danych, które pojawiają
się w oknie Baza danych, podczas gdy filtr utożsamiamy z tabelą.
Jeżeli używamy kwerendy, nie musimy otwierać najpierw tabeli, ponieważ jest to oddzielny obiekt.
Używając filtru najpierw musimy otworzyć tabelę, by następnie korzystać z filtru już istniejącego, lub
zaprojektować nowy.
Z kwerendy należy korzystać, gdy chcemy wydobyć dane z wielu tabel, kontrolować, które pola
będą widoczne, lub przeprowadzać obliczenia na wartościach pól. Żadna z tych operacji nie jest
dostępna przy użyciu filtru.
Utworzenie kwerendy wybierającej od podstaw
♦ Kwerendy\ Nowy\ Widok Projekt
♦ Z okna Pokaż tabelę wybierz Produkty i kliknij Dodaj
♦ Przeciągnij wybrane pola z tabeli w górnej części projektu kwerendy na siatkę projektu poniżej (tzw.
szablon, siatkę QBE1)
♦ Wybierz w siatce przeciągniętych pól te, które chcesz sortować wg określonej kolejności i w wierszu Sortuj
zaznacz opcję Rosnąco lub Malejąco
♦ Możesz teraz zdefiniować kryteria wyszukiwania w kwerendzie wg tabeli w punkcie Błąd! Nie można
odnaleźć źródła odwołania. tematu Błąd! Nie można odnaleźć źródła odwołania..
♦ Nazwij kwerendę inaczej niż tabela Produkty2
♦ Można uruchomić kwerendę klikając przycisk Widok
na pasku narzędzi lub Uruchom
powrócić do widoku Projekt kwerendy, ponownie kliknij przycisk Widok).
1
, (aby
Query By Example grid
Kwerendy nie mogą mieć takich samych nazw, jak tabele, ale można kwerendę opartą np. na tabeli Produkty
nazwać KwProdukty, lub ProduktyKw
2
Utworzenie kwerendy łączącej tabele: Produkty, Dostawcy i Kategorie za pomocą kreatora
♦ Kwerendy\ Nowy\ Kreator prostych kwerend
♦ Wybierz tabelę Produkty i dodaj wszystkie pola
♦ Wybierz tabelę Dostawcy i dodaj wszystkie pola oprócz IDdostawcy (pole to znajduje się już w tabeli
Produkty)
♦ Wybierz tabelę Kategorie i dodaj pole NazwaKategorii (pole IDKategorii znajduje się już w tabeli Produkty)
♦ Dalej wybierz Kwerenda szczegółowa (wyświetla wszystkie rekordy)
♦ Nazwij kwerendę Asortyment
Zastosowanie kryteriów wyboru w kwerendzie - parametry
Wykonanie kwerendy parametrycznej powoduje wyświetlenie okna dialogowego, w którym należy
podać informacje, takie jak kryteria wyszukiwania rekordów czy wartości, które mają być wstawione w
polach. Kwerendę można tak zaprojektować, aby użytkownik był pytany o kilka różnych informacji, na
przykład o dwie daty. W takim przypadku zostaną znalezione wszystkie te rekordy, które znajdują się
między dwoma podanymi datami.
♦ Otwórz kwerendę Asortyment w widoku Projekt
♦ W Kryteria pola IDdostawcy wpisz tekst komunikatu (monitu): [Podaj kod dostawcy] (w nawiasach
kwadratowych)3
Inny przykład pokazano na rysunku:
♦ Zapisz zmiany i uruchom kwerendę
♦ W pole okna dialogowego wpisz kod istniejącego dostawcy – parametr ograniczający ilość rekordów. W
rezultacie kwerenda wyświetli tylko te produkty, których dostawcę wybraliśmy (podając kod). Zmodyfikuj
kwerendę stosując inne kryteria wyszukiwania podane w tabeli (zob. p. Błąd! Nie można odnaleźć źródła
odwołania. tematu Błąd! Nie można odnaleźć źródła odwołania.), np.: Between [Podaj liczbę
początkową] And [Podaj liczbę końcową] w polu StanMagazynu itp.
♦ Używaj sortowania np. wg NazwiskaDostawcy lub Miasta w polu Sortuj dla większej przejrzystości
otrzymywanych wyników.
♦ Zapisz kwerendę
Do wyświetlenia np. wszystkich dostawców z określonej miejscowości można użyć kryterium
wywołującego komunikat: [Podaj miejscowość]. Aby jednak wyświetlić wszystkie miejscowości
zaczynające się na określoną literę lub człon literowy można do zapisu warunku wykorzystać operator
Like
i
gwiazdkę
jako
symbol
globalny:
Kryteria:
Like [Podaj miejscowość]&*
Kwerendy parametryczne są również przydatne do tworzenia formularzy i raportów. Na przykład na
podstawie kwerendy parametrycznej można utworzyć miesięczny wykaz pensji. Przy drukowaniu
3
Treśc polecenia jest dowolna (tekst musi różnić się od nazwy pola, ale może tą nazwę zawierać), ważne
tylko, aby była ujęta w kwadratowe nawiasy.
♦
♦
♦
♦
raportu, jest wyświetlane okno dialogowe, w którym użytkownik jest proszony o podanie miesiąca,
którego raport ma dotyczyć. Po podaniu miesiąca jest drukowany odpowiedni raport.
Można określić typ danych w zapytaniu z parametrami (np. w celu uniknięcia błędu przez
użytkownika, wprowadzającego tekst zamiast danych liczbowych czy daty)
W widoku Projekt kwerendy z Menu Zapytanie wybierz polecenie Parametry. Zostanie wyświetlone pole
dialogowe Parametry zapytania
Do pierwszej komórki Parametr wprowadź pierwszy komunikat, jaki został wprowadzony do siatki
zapytania
Wpisuj treść komunikatu dokładnie w takiej postaci, w jakiej pojawia się w siatce zapytania.
Po prawej stronie komunikatu zaznacz typ danych
Kontynuuj dodawanie komunikatów i zaznaczanie typu danych, jeśli zapytanie zawiera więcej niż jeden
parametr.
Po uruchomieniu zapytania komunikaty żądające podania parametrów pojawią się w kolejności, w
jakiej były wprowadzone do pola dialogowego Parametry zapytania.
Zamiast korzystania z okna dialogowego kwerendy parametrycznej, można utworzyć
niestandardowy formularz lub okno dialogowe, w których będą umieszczone odpowiednie pytania i
komunikaty (patrz punkt 0).
Kwerenda podsumowująca (zbiorcza)
♦ Aby uzyskać podsumowania w kwerendzie otwórz np. kwerendę Produkty w widoku Projekt:
Menu Widok\ Podsumowania lub przycisk na Pasku narzędzi.
Σ
♦ Przeciągnij z tabeli widocznej w górnym panelu kwerendy pole zawierające wartości liczbowe lub
walutowe4, które chcesz podsumować, np.: cena, stan magazynu czy ilość zamówionych produktów.
(Jeżeli już jest takie pole, nie trzeba go dublować)
♦ Wybierz Menu Widok\ Podsumowania. W siatce QBE pojawi się nowy wiersz Podsumowanie
♦ Standardowo Access wybiera dla każdego pola w zapytaniu pozycję Grupuj według z rozwijalnej listy
funkcji zbiorczych
♦ W kolumnach, które chcemy podsumować, w wierszu Podsumowanie siatki projektu wybierz z rozwijanej
listy opcję Suma5 inne dla wartości liczbowych lub walutowych, dla których chcesz je uzyskać lub wartość
Grupuj według dla pól tekstowych, dla których chcesz uzyskać podsumowane wartości.
W kwerendzie podsumowującej wszystkie pola obiektów źródłowych umieszczone w siatce QBE
muszą być użyte jako argumenty dowolnej funkcji agregującej (w tym także Grupuj). W przeciwnym
razie Access zgłasza błąd i nie pozwala uruchomić zapytania.
♦ Uruchom kwerendę aby zobaczyć wynik modyfikacji, jeśli trzeba - zmień opcję podsumowania
♦ Zapisz kwerendę
Można podsumować wartość poszczególnych produktów wg ich kategorii; w tym celu należy do
okna projektu kwerendy dodać jeszcze tabelę Kategorie
♦ W widoku Projekt wybierz Menu Kwerenda/ Pokaż tabelę
♦ Wybierz tabelę Kategorie i kliknij dodaj. W oknie projektu pojawi się również zdefiniowane wcześniej
powiązanie między dwiema wybranymi tabelami
♦ Przeciągnij pole NazwaKategorii na siatkę QBE i wybierz dla niego w wierszu Podsumowanie wartość z
listy rozwijalnej Grupuj według
W ten sam sposób można również utworzyć osobne kwerendy zliczające ilość produktów w
poszczególnych kategoriach lub podające ich średnią wartość.
Wyrażenia i funkcje w kwerendach
1) Wyrażenia obliczające (pola wyliczeniowe) (312-2k)
W polach obliczeniowych można dokonywać działań na wartościach różnych pól tego samego
rekordu lub pól odpowiadających sobie rekordów z różnych tabel. W dobrze zaprojektowanej bazie
danych przechowuje się jedynie dane elementarne, z których dzięki obliczeniom można otrzymać nowe
dane. Zaoszczędzamy w ten sposób nie tylko miejsce na dysku, ale również za każdym razem
podczas uruchomienia kwerendy (lub opartego na niej raportu) otrzymujemy aktualne wyniki naszych
obliczeń.
4
Można również dokonać niektórych obliczeń dla pól tekstowych i in., np. zliczyć wszystkie wystąpienia
określonego tekstu, daty itp.
5
Można wybrać także średnią i in. zob. p. 0
♦
♦
♦
♦
♦
2)
♦
♦
3)
W tabeli Opisy zamówień nie przechowujemy żadnych informacji nt. stawki i wartości podatku VAT
od sprzedanych produktów. Informacja ta musi jednak widnieć na fakturze, potrzebna jest też do
dalszych rozliczeń z Urzędem Skarbowym. Konieczne jest zatem utworzenie zapytania obliczającego
wartość netto i wartość podatku VAT dla każdego sprzedanego produktu.
Zakładka Kwerendy/ Nowy/ Widok projekt
Dodaj tabele Produkty, Zamówienia i Opisy zamówień. W oknie projektu pojawią się tabele wraz ze
zdefiniowanymi wcześniej powiązaniami.
Przeciągnij na siatkę kwerendy pola IDZamówienia, IDProduktu, Ilość, CenaJednostkowa (będąca ceną
netto), StawkaVAT i zapisz kwerendę pod nazwą Sprzedaż ogółem
Oprócz tego w zestawieniu musi być także wyszczególniona wartość każdego sprzedanego
produktu oraz wartość podatku VAT. Pierwsza kwota będzie wynikiem zwykłego mnożenia, którego
czynnikami będą wartości pól Ilość i CenaJednostkowa, z uwzględnieniem ewentualnego rabatu.
Dzięki określeniu związków pomiędzy tabelami mamy pewność, że Access będzie mnożył zawsze ilość
danego towaru przez cenę tego towaru a nie przez jakąkolwiek inną cenę.
Aby otrzymać dodatkową kolumnę, należy w rubrykę Pole siatki QBE wpisać iloczyn
[Ilość]*[CenaJednostkowa]*(1-[Rabat]).
Ponieważ po przejściu do dowolnej innej rubryki wpisane wyrażenie zostanie uzupełnione automatyczną
nazwą Wyr1:, lepiej od razu wpisać własną, znaczącą nazwę, np. WartośćNetto:
[Ilość]*[CenaJednostkowa]*(1-[Rabat]).
Wynik, którym jest wartość netto obliczona przez kwerendę jest wyświetlany w arkuszu danych jako
zwykła liczba, a nie kwota. Wynika to z obecności w wyrażeniu członu 1-[Rabat], który nie jest typu
kwotowego. Można to skorygować używając funkcji do konwersji wyników wyrażeń CCur().
WartośćNetto: CCur([Ilość]*[CenaJednostkowa]*(1-[Rabat]))
Zamiast komplikowania wyrażenia można także użyć atrybutu Format dla tego pola i wybrać z
rozwijalnej listy format kwotowy z atrybutem Miejsca dziesiętne o wartości Auto.
Ponieważ Access pozwala odwoływać się w wyrażeniach do wartości sąsiednich pól wyliczeniowych,
wartość podatku VAT można obliczyć prostym wyrażeniem
Podatek VAT:[WartośćNetto]*[StawkaVAT]
Wyrażenie to jednak generuje błąd w przypadku towarów i usług zwolnionych z VAT-u, dla których
pole StawkaVAT jest puste. Dla Accessa bowiem 0 i Null to nie to samo. Procedura, która wpisze 0
jako wartość podatku od produktu zwolnionego z VAT-u to funkcja IIF.
Funkcja IIF()
Kolejność argumentów funkcji IIF to:
a) wyrażenie logiczne;
b) liczba lub wyrażenie będące rezultatem funkcji w przypadku, gdy wyrażenie logiczne ma wartość
logicznej prawdy;
c) liczba lub wyrażenie będące rezultatem funkcji w przypadku, gdy wyrażenie logiczne ma wartość
logicznego fałszu
W opisanym powyżej przypadku warunkiem logicznym jest zwolnienie produktu z VAT-u, co
zapiszemy [StawkaVAT] Is Null. Dwa logiczne wyniki to 0 lub wartość iloczynu
[StawkaVAT]*[WartośćNetto]. Całość powinna wyglądać tak:
Podatek VAT:Iif([StawkaVAT] Is Null;0;[WartośćNetto]*[StawkaVAT])
Czyli jeśli pole StawkaVAT jest puste, to w pole Podatek VAT wpisz 0, w przeciwnym przypadku
wpisz w nie wynik iloczynu [StawkaVAT]*[WartośćNetto].
Funkcja IIF() w Accessie odpowiada funkcji Jeżeli() stosowanej w arkuszu kalkulacyjnym Excel.
Oblicz WartośćBrutto w projektowanej kwerendzie
Funkcje agregujące
Służą one do działań na wartościach tego samego pola w grupie rekordów. Wartości danego pola w
tabeli lub kwerendzie tworzą kolumnę a funkcje agregujące pozwalają np. na zliczanie wierszy o danej
wartości w kolumnie lub ich zsumowanie. Możliwe są także obliczenia statystyczne w rodzaju średniej,
wariancji lub odchylenia standardowego liczb w kolumnie, a także wybranie wiersza z zawartością
najmniejszą lub największą czy takiego, w którym dana wartość występuje jako pierwsza lub ostatnia.
W zwykłej kwerendzie wybierającej funkcje agregujące dotyczą wszystkich wierszy wybranych przez
kwerendę. Często zachodzi jednak potrzeba obliczania wartości zbiorczych dla grup wierszy, np. sumy
sprzedaży w poszczególnych miejscowościach lub miesiącach czy zestawienia dla faktur.
Zaprojektowane w punkcie 0 podpunkt 1) i 2) zapytanie Sprzedaż ogółem sporządza zestawienie
wszystkich sprzedanych towarów wraz z wartością netto i podatkiem VAT. Na jego podstawie można
zbudować kolejne zapytanie, które policzy wartość brutto każdej faktury. Trzeba tylko podzielić wiersze
zapytania źródłowego na grupy odpowiadające poszczególnym fakturom (zamówieniom), dodać
wartość i podatek dla każdej pozycji i zsumować otrzymane kwoty w każdej grupie.
♦ Ponieważ źródłem kwerendy może być również inna kwerenda, utwórz projekt nowej kwerendy i jako
źródło wybierz Sprzedaż ogółem.
♦ Przeciągnij do szablonu QBE pola IDZamówienia, WartośćNetto, Podatek VAT i WartośćBrutto
♦ Zapisz kwerendę pod nazwą Sprzedaż wg zamówień
Aby pogrupować wiersze wg numerów zamówień i dla każdej grupy (czyli każdego zamówienia)
zsumować wartości pozostałych trzech kolumn musimy dodać nowy wiersz w szablonie QBE,
nazywany Podsumowanie
♦ Menu Widok/ Podsumowanie lub przycisk ze znakiem Σ na pasku narzędzi
♦ Pozycja Grupuj według wybierana standardowo przez Accessa dla każdego pola w tym przypadku
właściwa jest tylko dla pierwszego pola. Dla pozostałych pól wybieramy pozycję o nazwie Suma
W kwerendzie zbiorczej wszystkie pola obiektów źródłowych umieszczone w siatce QBE muszą
być użyte jako argumenty dowolnej funkcji agregującej (w tym także Grupuj). W przeciwnym razie
Access zgłasza błąd i nie pozwala uruchomić zapytania.
Utwórz kwerendy
1) Używając tabeli Produkty utwórz kwerendę:
a) wyszukującą takie produkty, których StanMagazynu jest mniejszy lub równy wartości w polu StanMinimum.
b) obliczającą łączną liczbę produktów (wykorzystaj w podsumowaniu funkcję Zlicz, np. dla pola IDProduktu) i ich
średnią cenę jednostkową (funkcja Średnia)
2) Wykorzystując tabelę Opisy zamówień utwórz kwerendy podsumowujące, które obliczą:
a) wartość sprzedanych produktów dla każdego zamówienia
b) średnią wartość zamówienia
c) wartość konkretnego zamówienia (należy w kryteriach dotyczących pola IDzamówienia wpisać parametr np.
[Podaj ID zamówienia] lub o podobnej treści, który wywoła okienko dialogowe.
3) Wykorzystując tabelę Zamówienia utwórz kwerendę wybierającą zamówienia, dla których upłynął wymagany termin:
a) Wykorzystaj w kryteriach dla pola DataWymagana formułę Date(), zwracającą bieżącą datę
4) Korzystając w kwerendzie z tabel Opisy zamówień, Zamówienia i Pracownicy oblicz:
a) wartość wszystkich zamówień dokonanych przez każdego pracownika
b) średnią wartość zamówienia dla każdego pracownika
Po utworzeniu zapytania i dodaniu dwóch lub więcej tabel można zauważyć, że jedna tabela nie jest
połączona z żadną inną tabelą oraz że nie ma ona pola odpowiedniego do powiązania z pozostałymi
tabelami. W takim przypadku należy dodać następną tabelę, wyłącznie w tym celu, aby umożliwić
połączenie wszystkich tabel. W powyższym przykładzie wystąpiłaby taka sytuacja po dodaniu tylko
tabeli Pracownicy i Opisy zamówień, w których występują wszystkie potrzebne nam pola. Tabela
Zamówienia jest tylko łącznikiem.
5) Korzystając z tabeli Dostawcy, Produkty i Opisy zamówień oblicz w kwerendzie:
a) który dostawca sprzedaje najwięcej swoich produktów
6) Korzystając z tabeli Kategorie, Produkty i Opisy zamówień utwórz kwerendę obliczającą:
a) w jakiej kategorii sprzedaż produktów osiągnęła największą wartość
b) liczbę produktów w każdej kategorii
7) Korzystając z tabeli Spedytorzy, Zamówienia i Opisy zamówień oblicz w kwerendzie:
a) jaki spedytor rozprowadził produkty o najwyższej wartości
Kwerenda żądająca wprowadzenia kryteriów z formularza
♦
♦
♦
♦
♦
♦
Podobnie jak w kwerendzie Asortyment opisanej w punkcie 0 zastosowano parametry, można
wykorzystać niestandardowy formularz, który umożliwi wprowadzenie lub wybranie wielu parametrów
od razu, i wyświetlenie na ich podstawie wyniku zapytania.
Utwórz kwerendę wybierającą opartą na tabelach Zamówienia i Pracownicy lub Zamówienia i Klienci która
wyświetli określone zamówienia po podaniu odpowiednich parametrów
Zapisz kwerendę i utwórz formularz wybierając w oknie bazy danych zakładkę Formularze/ Nowy/ Widok
projekt
Klikając na Przyborniku umieść na formularzu tyle pól tekstowych (lub pól kombi), ile kryteriów chcesz
określić w kwerendzie. Będą to elementy sterujące wybieraniem rekordów w kwerendzie
Nazwij pola w sposób umożliwiający ich poprawną identyfikację (np. pole, w którym będzie określana data
nazwij po prostu Data, a nie Tekst1).
Wybierz pole tekstowe/ menu Właściwości/ zakładka Inne/ Nazwa
Dodaj do formularza przycisk polecenia (z Przybornika) uruchamiający kwerendę, dla której został on
zaprojektowany
Ustaw właściwości formularza w taki sposób, aby zachowywał się on jak pole dialogowe:
Właściwość
Paski przewijania
Przyciski nawigacyjne
Selektory rekordów
Styl krawędzi
Menu podręczne
Ustawienie
Żaden
Nie
Nie
Dialog
Nie
Opis
Formularz zawsze pokazuje jeden cały rekord, wobec czego
paski przewijania są zbędne.
Zbędne
Zbędne
Powoduje wyświetlenie formularza z grubą ramkę, której
rozmiary nie mogą być zmieniane. W ramce brak przycisków
„Do ikony” i „Pełny ekran”. Jest to standardowy styl krawędzi
dla pola dialogowego.
Zbędne
♦ Zapisz formularz pod nazwą np. PodajDane
♦ Ogólny format odwoływania się do elementów sterujących w formularzu jest następujący:
[Forms]![NazwaFormularza]![NazwaElementuSterującego]
♦ Jeżeli chcemy zobaczyć wszystkie zamówienia złożone przez konkretnego klienta, musimy w polu Kryteria
projektowanej kwerendy wpisać odwołanie do pola (elementu sterującego) KodKlienta umieszczonego w
formularzu PodajDane:
[Forms]![PodajDane]![KodKlienta]
♦ Jeżeli chcemy zobaczyć wszystkie zamówienia złożone pomiędzy dwiema podanymi datami, musimy w
polu Kryteria projektowanej kwerendy wpisać odwołanie do 2 pól - DataPoczątkowa i DataKońcowa
umieszczonych wcześniej w formularzu PodajDane:
Between [Forms]![PodajDane]![DataPoczątkowa] And [Forms]![PodajDane]![DataKońcowa]
♦ Zapisz i zamknij kwerendę.
♦ Uruchom formularz PodajDane. Nigdy nie uruchamiaj tej kwerendy bezpośrednio klikając na niej, gdyż nie
uruchomi się bez otwartego wcześniej formularza PodajDane.
Kwerendy krzyżowe
1)
♦
♦
♦
♦
♦
♦
♦
♦
2)
Aby zwięźle przedstawić dane w postaci arkusza kalkulacyjnego, można utworzyć kwerendę
krzyżową, która może prezentować znaczną liczbę danych w bardzo czytelnej postaci, ułatwiającej
porównania i umożliwiającej zauważenie trendów. Zapytanie krzyżowe jest także użyteczne jako
podstawa dla raportu.
Powstaje ono przez skrzyżowanie dwóch kolumn pochodzących z tej samej tabeli albo dwóch
różnych tabel (kwerend). Oznacza to, że wartości jednej z kolumn tabeli zostaną użyte jako nagłówki
kolumn kwerendy krzyżowej.
Utwórz kwerendę krzyżową do przedstawienia kwot podatku VAT dla każdej faktury, z rozbiciem na
poszczególne stawki podatku.
Użyj poprzednio utworzonej kwerendy Sprzedaż ogółem jako źródła tworzonej kwerendy krzyżowej
Wybierz pola IDzamówienia, StawkaVAT i Podatek VAT
Z menu Kwerenda wybierz opcję Krzyżowa. Do szablonu QBE zostaną dodane 2 wiersze: wiersz
podsumowań, obligatoryjny w zapytaniu krzyżowym i wiersz Krzyżowe.
W wierszu Krzyżowe mamy możliwość wybrania z rozwijalnej listy pozycji, określających, które pole będzie
Nagłówkiem wiersza, Nagłówkiem kolumny, Wartością i nie będzie wyświetlane.
Dla pola IDzamówienia wybieramy Nagłówek wiersza, dla StawkaVAT pozycję Nagłówek kolumny a dla
pola Podatek VAT pozycję Wartość.
Każda kwerenda krzyżowa może mieć kilka pól zadeklarowanych jako nagłówki wierszy, ale tylko po
jednym na nagłówki kolumn i wartości
W wierszu Podsumowania pierwsze dwa pola muszą pozostać polami grupującymi (Grupuj według), dla
trzeciego pola musi być wybrana funkcja agregująca Suma, gdyż w jednym zamówieniu (na jednej
fakturze) może być kilka produktów objętych tą samą stawką podatku
Można również utworzyć kwerendę krzyżową za pomocą kreatora
Zakładka Kwerendy w oknie bazy danych/ przycisk Nowy
Wybierz Kreator kwerend krzyżowych i postępuj zgodnie z poleceniami w polach dialogowych Kreatora
Utwórz kwerendę krzyżową ukazującą całkowitą sprzedaż przypadającą na jednego sprzedawcę dla
każdej kategorii produktów.
Kwerenda wyszukująca powtarzające się dane (w tabelach lub innych kwerendach)
Kwerenda, której zadaniem jest wybór z obiektu źródłowego grup wierszy o identycznych
wartościach w wybranych polach, np.: pozwala wyszukać miasta w których jest więcej niż 1 klient,
♦
♦
♦
♦
zestawić wszystkie przypadki, kiedy tego samego dnia ta sama osoba wystawiła więcej niż jedną
fakturę, lub wszystkich klientów, którzy złożyli więcej niż 1 zamówienie
Kwerendy/ Nowy/ Kreator kwerend wyszukujących duplikaty
Po wskazaniu odpowiedniej tabeli lub kwerendy wybierz to pole (te pola), których wartości posłużą do
wyboru duplikatów. Za duplikaty zostaną uznane tylko te wiersze, dla których kombinacja wartości
wszystkich wybranych pól będzie identyczna.
Wybierz pozostałe pola, które chcesz mieć w zestawieniu
Zapisz kwerendę
Jak się można przekonać w projekcie kwerendy stworzone przez kreatora zapytanie jest zapytaniem
zagnieżdżonym (subquery), czyli wyrażeniem w języku SQL, definiującym zapytanie wybierające. W
tym przypadku wybiera ono dla zestawienia wszystkie pola rekordów, które występują więcej niż 1 raz.
Kwerenda wyszukująca nie pasujące dane
♦
♦
♦
♦
♦
Kwerenda ta tworzona przy pomocy Kreatora tworzy zapytania wybierające budowane na dwóch
tabelach, pozostających w związku jeden-do-wielu. Zadaniem zapytania jest zestawienie wierszy z
tabeli głównej nie posiadających odpowiedników w tabeli powiązanej. Można się nim posłużyć np. do
znalezienia klientów, którzy nie złożyli żadnego zamówienia.
Kwerendy/ Nowy/ Kreator kwerend wyszukujących nie pasujące dane
W pierwszym kroku należy wybrać tabelę ze strony jeden, tabelę główną
Krok drugi to wybór tabeli ze strony wiele
Teraz należy wskazać odpowiadające sobie pola z obydwu tabel. Wystarczy kliknąć nazwę pola na jednej
liście, nazwę odpowiadającego mu pola na drugiej liście a na końcu przycisk oznaczony
Kolejna czynność to wybór pól, które mają się znaleźć w zestawieniu.
Rozbudowanie projektu bazy danych – przykłady
1) Dodaj tabelę Klienci, i połącz ją relacją jeden-do-wielu z tabelą Zamówienia
a) Umożliwi to zbudowanie kwerend obliczających wartość produktów zakupionych przez poszczególnych
klientów
2) Utwórz kwerendy wybierające wg różnych, własnych kryteriów, np. daty sprzedaży, miejscowości klienta,
najczęściej kupowanych produktów itp.