CAL Access 2 zajęcia 5 Relacje Kwerendy 5.1. Relacje w bazie danych 1) 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. 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. 2) Rodzaje relacji 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. - 1 -
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. 3) Prawidłowo zdefiniowane relacje pomiędzy poszczególnymi tabelami projektu: 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 nieusunięte, złe powiązania będą się pojawiać przy wykorzystywaniu poszczególnych tabel w kwerendach. 5.2. 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. 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. - 2 -
3) Większe możliwości kontroli danych przy sortowaniu lub filtrowaniu można uzyskać wskazując polecenie Filtr w menu Rekordy i 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. 5.3. 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. 5.4. Utworzenie kwerendy wybierającej od podstaw Wybierz: 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ę QBE Query By Example) 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. Nazwij kwerendę inaczej niż tabela Produkty 1 Można uruchomić kwerendę wybierając menu Widok lub Uruchom. (aby powrócić do widoku Projekt kwerendy, ponownie kliknij Widok). 1 Kwerendy nie mogą mieć takich samych nazw, jak tabele, ale można kwerendę opartą np. na tabeli Produkty nazwać KwProdukty, lub ProduktyKw - 3 -
5.5. Utworzenie kwerendy łączącej tabele: Produkty, Dostawcy i Kategorie za pomocą kreatora Wybierz: 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. 5.6. 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) 2 Zapisz zmiany i uruchom kwerendę. W polu 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 np. w polu StanMagazynu: Between [Podaj liczbę początkową] And [Podaj liczbę końcową] Używaj sortowania np. według 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 w polu Kryteria wykorzystać operator Like i gwiazdkę jako symbol globalny: 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 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. 2 Treść 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. - 4 -
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. 5.7. Kwerenda podsumowująca (zbiorcza) Aby uzyskać podsumowania w kwerendzie otwórz np. kwerendę Produkty w widoku Projekt i kliknij przycisk Σ na Pasku narzędzi. Przeciągnij z tabeli widocznej w górnym panelu kwerendy pole zawierające wartości liczbowe lub walutowe 3, które chcesz podsumować, np.: cena, stan magazynu czy ilość zamówionych produktów (jeżeli już jest takie pole, nie trzeba go dublować). W siatce QBE (czyli u dołu ekranu) pojawi się nowa pozycja podsumowania. 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 siatce projektu wybierz z rozwijanej listy opcję Suma 4 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 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ść. 5.8. Wyrażenia i funkcje w kwerendach 1) Wyrażenia obliczające (pola wyliczeniowe) 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 3 Można również dokonać niektórych obliczeń dla pól tekstowych i in., np. zliczyć wszystkie wystąpienia określonego tekstu, daty itp. 4 Można wybrać także średnią i in. zob. p. 5.6-5 -
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ń. 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ć też 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 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. 2) Funkcja IIF() Kolejność argumentów funkcji IIF to (analogicznie do funkcji IF()/JEŻELI() w arkuszu Excel): 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]. Oblicz WartośćBrutto w projektowanej kwerendzie. - 6 -
3) 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, miesiącach czy zestawienia dla faktur. Zaprojektowane w punkcie 5.8 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 zatem 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ć nową pozycję w szablonie QBE (podsumowanie). 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. 5.9. Tworzenie kwerend 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 - 7 -
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. 5.10. 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ż jeden 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ż jedno zamówienie. Wybierz: 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ę Stworzone przez kreatora zapytanie w projekcie kwerendy 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ż jeden raz. 5.11. Kwerenda wyszukująca niedopasowane 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 nieposiadają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. Wybierz Kwerendy/ Nowy/ Kreator kwerend wyszukujących niedopasowane 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. - 8 -