MS Access 2003

33
MS Access 2003 Paweł Górczyński Kwerendy

description

MS Access 2003. Paweł Górczyński. Kwerendy. Spis treści. Wstęp Tworzenie kwerendy Edycja projektu kwerendy Otwieranie kwerendy Definiowanie warunków Grupowanie Funkcje agregujące Zagnieżdżanie kwerend Kwerenda z parametrem. Wstęp. - PowerPoint PPT Presentation

Transcript of MS Access 2003

Page 1: MS Access 2003

MS Access 2003

Paweł Górczyński

Kwerendy

Page 2: MS Access 2003

Spis treści

WstępTworzenie kwerendyEdycja projektu kwerendyOtwieranie kwerendyDefiniowanie warunkówGrupowanieFunkcje agregująceZagnieżdżanie kwerendKwerenda z parametrem

Page 3: MS Access 2003

Wstęp

Kwerendy służą do wybierania z tabel informacji spełniających określone warunki

Kwerendy mogą wybierać dane bezpośrednio z tabel lub z innych kwerend

Każda kwerenda ma nazwę

Page 4: MS Access 2003

Tworzenie kwerend - krok 1 z 6

W oknie projektu bazy danych w widoku obiektów Kwerendy (Query) pokazane są wszystkie kwerendy w bazie danych. Aby utworzyć nową klikamy dwukrotnie Utwórz kwerendę w widoku projektu (Create query in Design view)

Page 5: MS Access 2003

Tworzenie kwerend - krok 2 z 6

Automatycznie otwiera się dodatkowe okno Pokaż tabelę (Show Table), w którym wybieramy tabele/kwerendy, z których chcemy wybrać informacje. Po zaznaczeniu tabeli/kwerendy naciskamy guzik Dodaj (Add) - spowoduje to pojawienie się tabeli/kwerendy w oknie w tle. Zamykamy okno.

Jeśli pomylimy się lub chcemy usunąć to, co dodaliśmy, można to zrobić później.

Tabele/Kwerendy pojawiają się wraz z relacjami zdefiniowanymi w oknie relacji tabel.

Page 6: MS Access 2003

Dodawanie tabel/kwerend - krok 3 z 6

1. Okno pokazywanie tabeli można wywołać w każdej chwili z menu Kwerendy (Query) polecenie Dodaj tabelę (Add table) lub klikając na pasku narzędzi guzik

2. W oknie Pokaż tabelę (Show table) wybieramy tabelę/kwerendę i naciskamy guzik Dodaj (Add)

Page 7: MS Access 2003

Usuwanie tabel/kwerend - krok 4 z 6

Aby usunąć tabelę/kwerendę z okna relacji:

1. Wybieramy ją klikając na pasek tytułowy (w środku tabeli jedno z pól zostanie zaznaczone).

2. Naciskamy klawisz Delete.

Page 8: MS Access 2003

Dodawanie/usuwanie pól - krok 5 z 6

Aby dodać pole należy wykonać jedną z opcji Dwukrotnie kliknąć pole w tabeli/kwerendzie w oknie

relacji - pole pojawi się w oknie selekcji na dolePrzeciągnąć pole z tabeli/kwerendy w oknie relacji

do okna selekcji na doleW oknie selekcji na dole wybrać tabelę i pole

Aby usunąć pole należy:Skasować (wyczyścić) nazwę polaZaznaczyć kolumnę, klikając w nagłówku kolumny i

nacisnąć klawisz Delete

Page 9: MS Access 2003

Zapisywanie kwerendy - krok 6 z 6

1. Po wprowadzeniu wszystkich pól wybieramy z menu Plik (File) polecenie Zapisz (Save) lub naciskamy na pasku narzędzi guzik

2. W oknie Zapisz jako (Save As) wpisujemy nazwę kwerendy (proponowana jest Kwerenda1)

3. Naciskamy guzik OK

Page 10: MS Access 2003

Edycja projektu kwerendy

1. Klikamy kwerendę, której projekt chcemy zmienić

2. Klikamy guzik Projekt (Design)

3. W następnych krokach postępujemy tak samo jak podczas tworzenia kwerendy.

Page 11: MS Access 2003

Otwieranie kwerendy

W oknie projektu bazy danych w widoku obiektów Kwerendy (Query) pokazane są wszystkie kwerendy w bazie danych. Aby otworzyć kwerendę, należy ją zaznaczyć i nacisnąć guzik Otwórz (Open) lub kliknąć kwerendę dwukrotnie myszą.

Jeśli chcemy szybko zmienić widok projekt na dane lub odwrotnie to można skorzystać z przycisku zmiany widoku

Page 12: MS Access 2003

Sortowanie

Dane zwracane przez kwerendę można posortować. Sortowanie można ustawić dla wielu kolumn jednocześnie – dane będą wtedy sortowane w takiej kolejności jak ułożone są kolumny, od lewej do prawej strony

Page 13: MS Access 2003

Definiowanie warunków

Kryteria wpisujemy w wierszu Kryteria (Criteria)

W kryteriach możemy używać: operatorów porównania: >,<,=,<=,>= sprawdzania istnienia wartości w polu: IS

NULL (jest puste) , IS NOT NULL (nie jest puste)

Znaku * zastępującego dowolny ciąg znaków

Przykład po prawej: warunek >100 powoduje, że zostaną wybrane tylko rekordy, których wartość w polu Ilosc jest większa niż 100

Page 14: MS Access 2003

Przykłady definiowania warunków

Warunek Opis działania

>100 Rekordy, których pole ma wartość większą niż 100

Is Not Null Rekordy, których pole nie jest puste

"Ala" Rekordy, których pole jest równe "Ala"

"Kow*" Rekordy, których pole jest równe "Kow" i jakikolwiek ciąg znaków np: "Kowalski", "Kowalewski", "Kowal"

Page 15: MS Access 2003

Warunek logiczny I (AND)

Warunki wpisane w tym samym wierszu muszą być spełnione wszystkie naraz, czyli łączy je operator logiczny I (AND)

W przykładzie po prawej zapisano warunek, że:pole Ilosc ma być większe niż 100Ipole IDTowaru ma być równe "DELX"

Page 16: MS Access 2003

Warunek logiczny LUB (OR)

Warunki wpisane w różnych wierszach muszą być spełnione alternatywnie, czyli łączy je operator logiczny LUB (OR)

W przykładzie po prawej zapisano warunek, że:pole Ilosc ma być większe niż 1000LUBpole Ilosc ma być mniejsze niż 20

Page 17: MS Access 2003

Warunek logiczny I (AND) dla jednego pola

Warunek logiczny I (AND) dla jednego pola można zapisać:

W oddzielnych kolumnach dla tego samego pola używając prostych operatorów:

>20<30

W jednej kolumnie używając wyrażeń z operatorami logicznymi

>20 AND <30 W przykładzie powyżej obie definicje są

równoważne

Page 18: MS Access 2003

Lab 7 – Kwerendy

1. Proszę otworzyć bazę lab2 z dysku c:\access

2. Proszę utworzyć kwerendę K_Odbiorcy zwracającą NipOdbiorcy, Nazwę

3. Proszę utworzyć kwerendę K_OdbiorcyMiasta zwracającą NipOdbiorcy, Nazwę, Miasto, Kraj posortowaną wg Kraju i Miasta

4. Proszę utworzyć kwerendę K_WybraneMiasta zwracającą NIPOdbiorcy, Nazwę Odbiorcy, Miasto z miast Warszawa i Zakopane (proszę zapisać warunek na dwa sposoby)

Page 19: MS Access 2003

Lab 7 – Kwerendy cd

5. Proszę utworzyć kwerendę K_OdbiorcyAB zwracającą NipOdbiorcy, NazwęProszę wybrać tylko Odbiorców z Polski których nazwa rozpoczyna się na literę A lub B(proszę zapisać warunek na dwa sposoby)

Page 20: MS Access 2003

Grupowanie

Grupowanie (inaczej agregowanie) dotyczy zawsze pewnych wybranych pól i polega na pogrupowaniu rekordów o takich samych wartościach wybranych pól

Kwerenda w której jest grupowanie mogą pojawić się tylko:

pola według których odbywa się grupowanie

funkcje agregujące Przykład: dane w tabeli zostały w

kwerendzie pogrupowane według pola Kraj (GROUP BY Kraj). Jak widać wartości puste (NULL) też są uznawane za oddzielną grupę i znajdują się w wyniku kwerendy. Ostatecznie otrzymujemy wszystkie unikalne wartości pola Kraj, które znajdują się w tabeli.

Kraj

Czeska RepublikCzeska RepublikLitwaLitwaLitwaLitwaNiemcyNiemcyNiemcyNiemcyNiemcyNiemcyNiemcyPolskaPolskaPolska

Kraj

Czeska RepublikLitwaNiemcyPolska

GROUP BY Kraj

Page 21: MS Access 2003

Przykład

Przykład: dane w tabeli zostały pogrupowane według pola Kraj i WojewodztwoRegion (GROUP BY Kraj, WojewodztwoRegion). W wyniku kwerendy otrzymujemy wszystkie unikalne kombinacje wartości pola Kraj i WojewodztwoRegion, które znajdują się w tabeli.

Wniosek: kwerenda w której jest grupowanie według wszystkich pól tabeli spowoduje wybranie wszystkich unikalnych kombinacji wartości tabeli, czyli – jeśli tabela ma klucz – zostaną wybrane wszystkie rekordy z tabeli.

Kraj WojewodztwoRegionLitwa WilnoNiemcy Detmold-LippeNiemcy BayernLitwa WilnoLitwa WilnoLitwa WilnoNiemcy BayernNiemcy SachsenCzeska Republik OstravaNiemcy NiedersachsenNiemcy NiedersachsenNiemcy BayernCzeska Republik Brno

Kraj WojewodztwoRegionCzeska Republik BrnoCzeska Republik OstravaLitwa WilnoNiemcy BayernNiemcy Detmold-LippeNiemcy NiedersachsenNiemcy Sachsen

GROUP BY Kraj,WojewodztwoRegion

Page 22: MS Access 2003

Tworzenie kwerendy z grupowaniem

1. Tworzymy kwerendę i dodajemy pola według których chcemy grupować

2. Naciskamy na pasku narzędzi guzik lub wybieramy z menu Widok (View) polecenie Podsumowanie (Totals)

3. Na dole okna kwerendy pojawia się nowy wiersz Podsumowanie (Totals), w którym dla każdego wybranego pola pojawia się domyślnie wartość Grupuj według (Group By).

Aby wyłączyć grupowanie trzeba ponownie wykonać punkt 2.

Page 23: MS Access 2003

Funkcje agregujące

Funkcje agregujące są to funkcje, których argumentami są wartości jednego wybranego pola ze wszystkich lub z grupy rekordów.

Notacja: nazwa_funkcji(nazwa_pola). Przykład: MIN(Cena) Funkcje agregujące mogą być używane razem z grupowaniem.

Ich argumenty są wtedy ograniczone do rekordów z jednej grupy.

SugerowanaCena20,75 zł19,00 zł18,00 zł27,75 zł34,00 zł23,00 zł32,25 zł15,75 zł21,00 zł33,25 zł17,50 zł27,75 zł18,25 zł16,25 zł35,00 zł

MIN(SugerowanaCena)MinOfSugerowanaCena

15,75 zł

Page 24: MS Access 2003

Przykład

Przykład: dane w tabeli zostały pogrupowane według pola VAT (GROUP BY Vat) i funkcja agregująca MIN dla pola SugerowanaCena ograniczona jest do rekordów z każdej grupy oddzielnie.

VAT SugerowanaCena7,00% 20,75 zł7,00% 19,00 zł7,00% 18,00 zł7,00% 27,75 zł7,00% 34,00 zł7,00% 23,00 zł7,00% 32,25 zł7,00% 15,75 zł7,00% 21,00 zł

22,00% 33,25 zł22,00% 17,50 zł22,00% 27,75 zł22,00% 18,25 zł22,00% 16,25 zł22,00% 35,00 zł

VAT MinOfSugerowanaCena7,00% 15,75 zł

22,00% 16,25 zł

GROUP BY VATMIN(SugerowanaCena)

Page 25: MS Access 2003

Wybrane funkcje agregujące

Nazwa Opis działania

SUM Suma

COUNT Policz

MIN Minimum

MAX Maksimum

WHERE Pozwala zdefiniować kryteria wyboru rekordów

AVG Średnia

STDEV Odchylenie standardowe

Page 26: MS Access 2003

Tworzenie kwerendy z funkcjami agregującymi

1. Tworzymy kwerendę i dodajemy pola, dla których chcemy użyć funkcji agregujących

2. Naciskamy na pasku narzędzi guzik lub wybieramy z menu Widok (View) polecenie Podsumowanie (Totals)

3. Na dole okna kwerendy pojawia się nowy wiersz Podsumowanie (Totals), w którym dla każdego wybranego pola pojawia się domyślnie wartość Group By.

4. Zmieniamy wartość tego pola klikając na nie i wybierając z listy rozwijanej nazwę funkcji, której chcemy użyć.

Page 27: MS Access 2003

Przykład

Przykład: funkcja COUNT(SugerowanaCena) zwraca ilość niepustych pól SugerowanaCena (13) ze wszystkich rekordów (15)

COUNT(SugerowanaCena)

SugerowanaCena

18,00 zł27,75 zł34,00 zł23,00 zł32,25 zł15,75 zł21,00 zł33,25 zł17,50 zł27,75 zł18,25 zł16,25 zł35,00 zł

CountOfSugerowanaCena13

Page 28: MS Access 2003

Zagnieżdżanie kwerend

Zagnieżdżona kwerenda jest to kwerenda, która jako źródło rekordów używa kwerendy.

Przykład: kwerenda qryKraje zwraca kraje. Kwerenda qryPoliczKraje zwraca za pomocą funkcji COUNT liczbę rekordów z kwerendy qryKraje o niepustym polu Kraj.

Page 29: MS Access 2003

Kwerenda z parametrem

Załóżmy, że istnieje potrzeba stworzenia kwerendy, która powinna zwracać rekordy spełniające jakiś warunek, który musi być formułowany za każdym razem. Możemy powiedzieć, że warunek ten będzie zdefiniowany za pomocą parametru, który musi być podany przez użytkownika.

Przykładem takiej kwerendy jest kwerenda zwracająca wszystkie dane z faktury o konkretnym numerze. Zamiast zmieniać za każdym razem kryteria wyboru faktury, lepiej zdefiniować parametr odpowiadający numerowi faktury, którego podania komputer będzie żądał przy każdym uruchomieniu kwerendy. Jeżeli stworzymy raport w formie wydruku faktury oparty na tej kwerendzie, to przy każdym uruchomieniu raportu Access też będzie żądał podania numeru faktury. Dzięki temu możemy w prosty sposób stworzyć funkcjonalność do drukowania faktur.

Page 30: MS Access 2003

Tworzenie kwerendy z parametrem

Jeżeli w definicji kwerendy umieścimy jakikolwiek ciąg znaków w nawiasach kwadratowych [], którego Access nie może powiązać z istniejącymi elementami zapytania, to będzie traktował ten ciąg znaków jako parametr i żądał jego podania przy każdym uruchomieniu kwerendy

W przykładzie zdefiniowano parametr [Podaj numer faktury:] jako kryterium dla pola NumerFaktury z tabeli Faktura. Przy uruchomieniu kwerendy Access pokazuje okno dialogowe, w którym żąda wprowadzenia wartości dla tego parametru. Wynikiem zapytania będą dane dotyczące faktury o numerze podanym w tym oknie.

Page 31: MS Access 2003

Pola wyliczane

Z reguły w kwerendach występują tylko pola z tabel np.: NIPOdbiorcy, Nazwa itd.

Jednak zdarza się, że trzeba zwrócić inne wartości, np., zamiast wyświetlać oddzielnie kolumny ilosc i cene, lepiej wyświetlić wartośćW kwerendzie możemy w kolumnie zamiast nawy pola wpisać dowolne wyrażenienp. Wartość: Ilosc * Cenagdzie Wartość stanie się aliasem dla kolumny, a Ilosc i Cena to nazwy pól z Tabeli

Page 32: MS Access 2003

Lab 8 – kwerendy grupujące

1. Proszę otworzyć bazę lab2 z dysku c:\access

2. Proszę utworzyć kwerendę K_Kraje zwracającą Unikalne Nazwy Krajów

3. Proszę utworzyć kwerendę K_LiczbaOdbiorcow zwracającą Liczbę Odbiorców

4. Proszę utworzyć kwerendę K_LiczbaOdbiorcowMiasta zwracającą Nazwę Kraju, Nazwę Miasta i Liczbę Odbiorców w danym MieścieDane mają być posortowane malejąco wg liczby odbiorców.

5. Proszę utworzyć kwerendę K_StatystykaTowarów zwracającą Liczbę towarów, Cenę min, max i średnią z podziałem na Stawkę VAT

Page 33: MS Access 2003

Lab 8 – kwerendy grupujące cd.

6. Proszę utworzyć kwerendę K_NajlepszeMiasta zwracającą Nazwę Miasta i Liczbę Odbiorców w danym mieście.Dane mają być posortowane wg Liczby Odbiorców malejąco.Proszę wybrać tylko te Miasta w których jest co najmniej 10 Odbiorców

7. Proszę utworzyć kwerendę K_Suma_Faktur która dla każdego Odbiorcy zwróci NipOdbiorcy, Nazwę, liczbę Faktur, oraz sumaryczną wartość wszystkich faktur.Dane mają być posortowane wg sumarycznej wartości faktur malejąco.