1. Kwerendy
W bazie danych istotną rolę pełnią narzędzia służące do wyszukiwania
poszczególnych danych bądź rekordów. Można wykorzystać do tego standardową
opcję polecenia „Znajdź”, jednakże istotną funkcją w programie jest wykorzystanie w
tym celu kwerend (ang. query).
Kwerendy można podzieli na kilka typów:
1. kwerendy wybierające,
2. kwerendy krzyżowe,
3. kwerendy funkcjonalne:
kwerenda aktualizująca,
kwerenda dołączająca,
kwerenda tworząca tabelę,
kwerenda usuwająca.
1.1 Tworzenie kwerend
1.1.1 Tworzenie za pomocą kreatora
Kwerendy tworzyć można zarówno samodzielnie jak i poprzez użycie kreatora
kwerend. W celu jej stworzenia można użyć jednej z dwóch opcji:
za pomocą opcji Utwórz kwerendę za pomocą kreatora, widocznej w oknie
bazy danych,
klikając klawisz Nowy na pasku narzędzi okna bazy danych a następnie
wybranie opcji Kreator prostych kwerend.
Do prostych kwerend zaliczają się kwerendy wybierające. Ten typ kwerend jest
stosowany najczęściej w celu zbierania oraz wyświetlania określonych informacji z
tabeli lub kilku tabel, sumowania, wyliczania średnich oraz grupowania rekordów.
Na rys. 1. pokazany został sposób uruchomienia kreatora w celu utworzenia kwerendy.
Rysunek 1. Uruchamiane kreatora do tworzenia kwerend
Po wybraniu odpowiedniej opcji, ukazuje się okienko, w którym należy wybrać pola,
które mają być umieszczone w kwerendzie. Można je wybrać spośród wcześniej już
utworzonych tabel oraz kwerend. W tym przypadku zostały wybrane pola z tabeli
Towary oraz pola z kwerend Zestawienie zakupów i Zestawienie sprzedaży. Na rys. 7.
widać okienko do wyboru pól, które zostaną umieszczone w kwerendzie.
Rysunek 2. Wybór pól do umieszczenia w kwerendzie
Następne okienko służy do wyboru, czy kwerenda będzie szczegółowa czy
podsumowująca. W tym wypadku będzie to kwerenda szczegółowa, która pokazywać
będzie wszystkie pola każdego rekordu.
Po zatwierdzeniu ustawień, ukazuje się ostatnia strona kreatora, służąca do
ewentualnej zmiany nazwy kwerendy. Dostępne są także opcje do otwarcia kwerendy
w celu przejrzenia danych oraz do modyfikacji projektu kwerendy – po ustawieniu tej
opcji, uruchamia się kwerenda w widoku projektu
1.1.2 Indywidualne tworzenie kwerend
W przypadku samodzielnego tworzenia kwerend należy wybrać opcję Utwórz
kwerendę w widoku projektu (znajdującą się w oknie bazy danych) bądź klikając
przycisk Nowy (na pasku narzędzi bazy).
Po wyborze opcji utworzenia kwerendy w widoku projektu pokazuje się okienko,
gdzie należy wybrać tabele bądź kwerendy które będzie zawierała nowoutworzona
kwerenda. Efektem wyboru będzie widok projektu kwerendy wraz z wybranymi
tabelami (rys. 8).
Rysunek 3. Widok projektu kwerendy po wyborze tabel
Ostatnim krokiem jest wybór pól, które będzie zawierała utworzona kwerenda.
Można je wybrać poprzez dwukrotne kliknięcie na pole zawarte w tabeli bądź poprzez
odpowiedni wybór w komórkach Pole oraz Tabela. Gdy siatka kwerendy zostanie
wypełniona wszystkimi niezbędnymi nagłówkami kolumn, można przejść do
określania pozostałych opcji w siatce kwerend.
1.1.3 Pola obliczeniowe w kwerendach
W widoku projektu kwerendy można utworzyć pola, które będą wyświetlać wyniki
obliczeń ustalonych przy pomocy wyrażenia bądź wyniki zmieniające wartość pól. W
celu utworzenia pola obliczeniowego należy:
w pustej komórce, w wierszu Pole wpisać dane wyrażenie,
gdy wyrażenie zawiera nie tylko liczby, ale także nazwy pól, z których będą
pobierane dane, należy podać te pola w nawiasach kwadratowych,
warto również przed wyrażeniem wpisać nazwę, jaka ma się wyświetlać w
nagłówku kolumny obliczanego pola.
Poniższy rysunek przedstawia część projektu kwerendy Cennik dla klienta (zawartej w
utworzonej aplikacji), w której wartość netto oraz wartość brutto obliczone zostały za
pomocą skonstruowanych wyrażeń.
Rysunek 4. Pola obliczeniowe w kwerendzie tworzącej cennik
Dane dla określonego rekordu można posortować rosnąco bądź malejąco, ustawiając
dla niego w komórce, w wierszu Sortuj odpowiednią wartość.
Wiersz Kryteria pozwala na ograniczenie rekordów przed ich pogrupowaniem i
wykonaniem obliczeń. Poprzez określenie kryterium kwerendy identyfikowane są te
rekordy, które mają być uwzględnione w wyniku kwerendy. Wybór kryteriów nie jest
konieczny dla każdej kwerendy, jednakże, gdy ma ona wyświetlać tylko określone
dane, należy w projekcie dodać kryteria do kwerendy.
Dla przykładu, w utworzonej aplikacji, w kwerendzie Towary brakujące dla pola
kryterium, dla kolumny stanu magazynu, ustawiona jest wartość zero. Oznacza to, iż
po uruchomieniu kwerendy, pokaże ona tylko te towary w magazynie, których wartość
jest równa zero, zaś dla kwerendy pokazującej towary w magazynie kryterium
ustawione jest w kolumnie obliczającej stan magazynu na wartość >0, oznacza to, iż
kwerenda wybiera do wyświetlenia tylko te pozycje, których stan jest większy od zera.
Rysunek 5. Ustawione kryterium dla kwerendy Towary brakujące
Rysunek 6. Ustawione kryterium dla kwerendy Towary w magazynie
Istnieje również możliwość wybrania określonych danych z kwerendy, poprzez
wpisanie odpowiedniej wartości parametru w kolumnie, co do której będzie pobierane
zapytanie. Wartość ta powinna być wpisana w kwadratowe nawiasy, tak jak na
rysunku poniżej.
Rysunek 7. Ustawione kryterium w kwerendzie Wydruk faktury sprzedaży
Uruchomienie kwerendy powoduje otwarcie okna dialogowego do wprowadzania
wartości parametru, dzięki któremu kwerenda wyświetli tylko te rekordy, które
spełniają kryteria w niej określone. W tym przykładzie kwerenda wyświetli dane
dotyczące faktury numer 2. Jak widać na załączonym rysunku, zestawienie wygląda
jak zwykła tabela, jednakże jest to teraz dynamiczny widok kilku tabel.
Rysunek 8. Po wpisaniu wartości parametru, kwerenda pokazuje wybrane dane
1.1.4 Relacje między tabelami w siatce QBE
Kwerendy głównie oparte są o kilka źródeł danych, takich jak tabele bądź kwerendy.
Podczas dodawania w kwerendzie kilku źródeł danych, kwerenda dziedziczy po nich
wszystkie relacje, które zostały utworzone w widoku relacji tabel. Zobrazowane jest to
w projekcie kwerendy za pomocą linii sprzężenia.
Rysunek 9. Kwerenda z liniami sprzężenia w widoku projektu
Powyższe relacje są relacjami jeden do wielu, utworzone zostały automatycznie
podczas dodawania tabel. Jednakże istnieje możliwość ich modyfikacji bądź dodania
nowych poprzez dwukrotne kliknięcie na linię sprzężenia. Powoduje to otwarcie
okienka zawierającego ustawienia właściwości sprzężeń.
Rysunek 10. Ustawienia właściwości sprzężeń
W przypadku ustawienia innej opcji sprzężenia, zmienia się także wygląd jej linii w
widoku projektu. Dla przykładu, w kwerendzie zawartej w aplikacji Zliczenie zakupów
i sprzedaży we właściwościach została ustawiona opcja numer dwa.
Rysunek 11. Efekt zmiany właściwości sprzężenia
Jak widać na powyższym rysunku, zmianie uległy linie sprzężenia. Również kwerenda
zwraca inne dane podczas uruchamiania, a mianowicie zlicza dla każdego towaru jego
ilość zakupioną oraz sprzedaną.
3.2 Tworzenie kwerend krzyżowych
Kwerendy krzyżowe dają szerokie możliwości tworzenia akcji na danych z kilku tabel
bądź kwerend a także dają możliwość gromadzenia danych. Dla przykładu, można
obejrzeć sprzedaż towarów w różnych miesiącach, jako spis grup towarów, jakie
zostały sprzedane w danym miesiącu oraz w jakich ilościach.
Tego typu kwerenda została utworzona w aplikacji (opisanej w ostatnim rozdziale). W
przypadku braku sprzężenia między tabelami, program nie jest w stanie skojarzyć ze
sobą rekordów, dlatego też wyświetla każdą kombinację rekordów (tzw. iloczyn
kartezjański) wszystkich tabel. Załóżmy, że każda z tabel zawiera po 5 rekordów, daje
to razem 125 rekordów w kwerendzie krzyżowej (5x5x5). Wadą kwerend krzyżowych
jest brak możliwości posortowania wyników kolumny obliczeniowej.
Każda kwerenda krzyżowa posiada trzy składniki:
nagłówek wiersza,
nagłówek kolumny,
pole podsumowujące.
W celu utworzenia tego typu kwerendy należy wybrać tworzenie nowej kwerendy za
pomocą opcji Utwórz kwerendę w widoku projektu bądź poprzez kliknięcie przycisku
Nowy na pasku narzędzi okna bazy danych i wybranie opcji Widok projektu.
Następnym krokiem jest wybór tabel bądź kwerend, z których będą pobierane
informacje. W tym przypadku, w celu stworzenia kwerendy krzyżowej określającej
wartość sprzedaży poszczególnych towarów w różnych miesiącach roku, należy
wybrać tabele Faktury sprzedaży, Rejestr sprzedaży oraz Towary.
Zmianę typu kwerendy na kwerendę krzyżową należy ustawić poprzez kliknięcie
przycisku
Typ kwerendy znajdującego się na pasku narzędzi okna głównego
programu oraz wybranie odpowiedniego typu kwerendy.
Następnym krokiem jest zdefiniowanie trzech pól:
Grupa towarów: IDmodel,
Month([Data sprzedaży]),
pole Ilość wybrane z tabeli Rejestr sprzedaży.
W pierwszym polu będą wyświetlane modele maszyn, dane pobierane będą z tabeli
towary. Pole IDmodel z tabeli Towary będzie w tym przypadku reprezentowało
nagłówki wierszy. W tym polu należy zdefiniować następujące rubryki:
Podsumowanie: Grupuj według
Krzyżowe: Nagłówek wiersza
Efektem takich ustawień będzie wyświetlanie modelu każdego ze sprzedanych
towarów w wierszach pierwszej kolumny.
Pole drugie stworzone zostało w celu pogrupowania sprzedanego towaru w różnych
miesiącach. W tym polu należy ustawić następujące rubryki:
Podsumowanie: Grupuj według
Krzyżowe: Nagłówek kolumny
Efektem ustawień będzie wyświetlanie miesięcy (w nagłówkach kolejnych kolumn), w
których były sprzedawane poszczególne towary.
W trzecim polu należy zdefiniować rubryki:
Podsumowanie: Suma
Krzyżowe: Wartość
Efektem tego typu ustawień będzie wyświetlanie dla danego towaru (określonego w
kolumnie pierwszej) ilości jego sprzedaży dla danego miesiąca.
Na poniższym rysunku został przedstawiony efekt końcowy kwerendy krzyżowej w
widoku projektu z prawidłowo zdefiniowanymi rubrykami.
Rysunek 12. Widok projektu kwerendy krzyżowej
Pierwsza kolumna zawiera nazwy towarów, dla których ukazana jest ich ilość
sprzedana w poszczególnych miesiącach. Miesiące te wyświetlane są w kolejnych
kolumnach tabeli.
Rysunek 13. Efekt końcowy działania utworzonej kwerendy krzyżowej
1.3 Kwerendy aktualizujące
Kwerendy aktualizujące służą do zmiany danych w istniejących tabelach bazy danych.
W przypadku potrzeby skorygowania występujących już w tabeli danych, istnieje
możliwość modyfikacji nie tylko pojedynczych rekordów ale także całych grup
danych. Kwerenda aktualizująca pozwala na zdefiniowanie zmiany w postaci
kryteriów, a następnie przekształcenie całej grupy rekordów.
Tego typu kwerenda została utworzona w aplikacji opisanej w ostatnim rozdziale. W
przypadku zakupu towaru od danego producenta, wystawiana jest faktura, w której
zawarta jest cena zakupu poszczególnych towarów. Jeżeli jest ona różna od
poprzedniej ceny zakupu danego towaru, jest możliwość jej aktualizacji poprzez
utworzenie konkretnej kwerendy, która zaktualizuje ceny towarów zakupionych po
nowej cenie.
W celu jej utworzenia należy kliknąć przycisk Nowy na pasku narzędzi bazy danych a
następnie z listy wybrać opcję Widok projektu.
Następnym krokiem jest dodanie tabel, z których będą pobierane dane. Jako, iż będzie
to kwerenda aktualizująca ceny zakupu, należy wybrać tabele Towary oraz Rejestr
zakupu. Następnie należy zmienić typ kwerendy na kwerendę aktualizującą i
wprowadzić ustawienia takie, jak na rysunku poniżej.
Rysunek 14. Ustawienia w projekcie kwerendy aktualizującej
Aktualizacja do: [Rejestr zakupu]![Cena zakupu]
- opcja ta daje możliwość aktualizacji pola z ceną zakupu znajdującej się w tabeli
Rejestr Zakupu do pola Cena netto zawartej w tabeli Towary,
Kryteria: [Wprowadź numer faktury:]
- poprzez ustawienie w rubryce Pole: IDnumer faktury (zawartej w tabeli Rejestr
zakupu), w momencie uruchomienia kwerendy pojawia się okienko dialogowe, w
którym należy wpisać numer faktury.
Rysunek 15. Wybór faktury, z której mają być pobrane ceny do aktualizacji
Po wpisaniu numeru faktury, kwerenda aktualizuje ceny towarów z tabeli Rejestr
zakupu do tabeli Towary w rubryce zawierającej cenę netto.
1.4 Kwerendy dołączające
Dodawanie nowych danych do bazy danych można przeprowadzić poprzez
wykorzystanie kwerendy dołączającej. Można ją wykorzystać do importowania
danych ze źródła obcego, a następnie dołączyć dane do istniejących tabel. Istnieje
także możliwość wypełnienia bazy danych danymi z innej bazy bądź danymi z tabeli
w tej samej bazie Accessa. Zakres działania tego typu kwerend można ograniczyć
poprzez wprowadzenie odpowiednich kryteriów.
W aplikacji utworzona została prosta kwerenda dołączająca, służąca do dodawania
wybranych rekordów do archiwum. Do jej utworzenia potrzebne było dodanie w
projekcie kwerendy trzech tabel: Rejestr zakupu, Towary, Rejestr sprzedaży.
Utworzona została również nowa tabela Archiwum towarów, w której będą
przechowywane towary o zerowym stanie magazynowym bądź te, które nie widnieją
w rejestrach zakupu u sprzedaży. Tabela ta została stworzona na bazie tabeli Towary.
Poniżej zostały pokazane ustawienia, jakie należy wprowadzić w celu utworzenia
kwerendy dołączającej towary do archiwum.
Rysunek 16. Projekt kwerendy dołączającej
Jak widać na załączonym rysunku, pierwsza kolumna została zdefiniowana w taki
sposób, by dołączała pozycje z tabeli Towary do tabeli Archiwum towarów. Kolejne
trzy kolumny określają kryteria, jakie mają być uwzględnione, aby dane towary
zostały dołączone do archiwum. W kolumnie drugiej kryteria określone są jako „0”,
tak więc kwerenda przenosi do archiwum towary o stanie początkowym równym zero.
Kolejnym kryterium jest Is Null. Oznacza to, iż kwerenda zwraca wszystkie rekordy
zawierające wartość pustą lub niezdefiniowaną w tabelach rejestru sprzedaży oraz
zakupu. Zmienione zostały także relacje utworzone pomiędzy tymi tabelami z opcji
pierwszej na opcję drugą. Widoczne jest to nie tylko w oknie właściwości sprzężenia
ale także zmieniony został wygląd linii sprzężenia między wybranymi tabelami dla tej
kwerendy.
Rysunek 17. Rys. 24. Modyfikacja relacji dla kwerendy dołączającej
Po zatwierdzeniu ustawień i zapisaniu kwerendy można sprawdzić jej działanie
klikając przycisk Otwórz, by wykonać kwerendę. Gdy pojawi się okienko dialogowe,
żądające potwierdzenia wykonania operacji i podające liczbę rekordów, które mają
być dodane, należy kliknąć przycisk Tak.
Rysunek 18. Autoryzacja potwierdzenia wykonania operacji
1.5 Kwerendy usuwające
Kwerendy usuwające służą do usuwania rekordów z tabeli. Po jej uruchomieniu
zostaje usunięty cały rekord, a nie tylko wskazane poprzez kryterium pola w rekordzie.
Tworzenie kwerendy usuwającej zostanie omówione na przykładzie kwerendy
zawartej w aplikacji. W celu utworzenia kwerendy, która będzie miała za zadanie
usunięcie pozycji z tabeli Archiwum towarów (pozycje te zostały wcześniej dodane
poprzez wykonanie kwerendy dołączającej), należy uruchomić opcję Utwórz kwerendę
w widoku projektu a następnie dodać z listy tabel, tabelę Archiwum towarów. Na
poniższym rysunku przedstawione zostały pola, jakie należy wybrać w siatce danych
kwerendy.
Rysunek 19. Początkowe ustawienia siatki danych kwerendy wybierającej
Następnie należy zmienić typ kwerendy z wybierającej na kwerendę usuwającą
poprzez wybranie przycisku
Typ kwerendy i zaznaczenie odpowiedniej opcji.
Tego typu operacja spowoduje nie tylko zmianę typu kwerendy ale również zmianę
siatki ustawień kwerendy, w której należy przeprowadzić modyfikacje, przedstawione
na rysunku poniżej.
Rysunek 20. Siatka danych kwerendy usuwającej
Uruchomienie tak zaprojektowanej kwerendy spowoduje otwarcie okna dialogowego z
informacją o liczbie usuwanych rekordów, po kliknięciu przycisku Tak, kwerenda
usunie daną ilość rekordów z tabeli. Na rys. 33. przedstawione zostało okienko
dialogowe informujące o ilości usuwanych wierszy oraz pytające użytkownika o
potwierdzenie wykonania kwerendy.
Rysunek 21. Potwierdzenie usunięcia rekordów z tabeli Archiwum towarów
1.6 Kwerendy tworzące tabele
Kwerenda tworząca tabele należy do typu kwerend funkcjonalnych, która tworzy
nową tabelę na podstawie istniejących już danych. Dodatkowo jest możliwość
zastosowania kryteriów służących do ograniczenia wyników kwerendy.
Nowoutworzona tabela nie będzie posiadała klucza podstawowego, kolumn oraz
indeksów a także właściwości oryginalnej tabeli (poza domyślnymi właściwościami
tabel).
Kwerenda tworząca tabele przydatna jest przede wszystkim w tworzeniu tabel z
odfiltrowanymi bądź podsumowanymi danymi a także podczas tworzenia tabel, w
których zostały zmienione dane poprzez odpowiednie kryteria.
W celu zobrazowania działania oraz tworzenia kwerend tworzących tabele,
przedstawiony zostanie przykład kwerendy zawartej w aplikacji służącej do tworzenia
aktualnego cennika. Aby stworzyć kwerendę, należy:
1. Utworzyć nową kwerendę w widoku projektu oraz wybrać tabelę Towary, z której
zostaną pobrane dane.
2. Zmienić typ kwerendy z wybierającej na kwerendę tworzącą tabelę za pomocą
przycisku
Typ kwerendy. W momencie zmiany typu, ukaże się okienko
dialogowe, w którym należy wpisać nazwę tabeli, która zostanie utworzona poprzez
uruchomienie kwerendy. Istnieje również możliwość, aby kwerenda utworzyła tabelę
w innej bazie danych, należy w tym celu zaznaczyć przycisk opcji Inna baza danych
oraz określić jej lokalizację.
3. Zdefiniować odpowiednie ustawienia w siatce ustawień kwerendy. Poniższy
rysunek przedstawia właściwości ustawień tworzonej kwerendy.
Rysunek 22. Kryteria zastosowane dla kwerendy tworzącej tabelę
Pierwsze dwie kolumny pobierają dane o nazwie i modelu towaru z tabeli Towary,
natomiast kolumna trzecia jest polem obliczeniowym, dla którego obliczana jest
wartość netto. Wyrażenie [Podaj marżę] jest jednocześnie kryterium kwerendy. W
momencie jej uruchomienia pojawia się okienko dialogowe, w którym należy podać
marżę, jaka ma być obliczana dla towarów w cenniku.
Rysunek 23. Okienko do wprowadzania marży
W czwartej kolumnie zostało utworzone pole obliczeniowe obliczające wartość brutto
na podstawie ceny netto oraz stawki VAT.
Po uruchomieniu kwerendy program wyświetli okno z prośbą o potwierdzenie
operacji, w którym znajduje się także informacja na temat ilości wierszy, które będzie
zawierała nowoutworzona tabela. Efektem działania kwerendy jest utworzenie tabeli
Aktualny cennik w zakładce zawierającej tabele.