Szybki kontakt




Kwerendy (zapytania) służą do odczytywania informacji z bazy danych i ich przetwarzania.

Tworzy się je:

  • graficznie za pomocą kreatora dostępnego w Accessie
  • tekstowo za pomocą języka SQL.

Za pomocą zapytań możemy pobierać dane z jednej lub z wielu tabel. Access zapisuje kwerendy jako oddzielny obiekt w bazie danych. Zapisywana jest tylko ich struktura tj. kod SQL użyty do tworzenia kwerendy.

Dane zwracane przez zapytanie nie są zapisywane w bazie. Przy każdym uruchomieniu, kwerenda tworzy od nowa wynikowy zbiór rekordów. Wynik zapytania może być wyświetlony w arkuszu danych, formularzu lub raporcie.

Można zapisać w bazie danych wynik zapytania, jeśli dodamy w zapytaniu polecenie zapisania odczytanych rekordów do nowej lub istniejącej tabeli. Wynik zapytania można też wykorzystać w programach napisanych w języku VBA do automatyzacji zadań.

Zastosowanie kwerend:

  • odczytywanie wszystkich danych z tabel – można pobierać informacje zarówno z jednej, jak i z kilku powiązanych ze sobą tabel
  • wybieranie pól – w kwerendzie można ustalić, które pola z każdej tabeli mają się pojawić w zbiorze wynikowym
  • definiowanie kryteriów – możliwe jest wybranie z tabel tylko tych rekordów, które spełniają określone kryteria np. klienci mieszkający w Warszawie
  • sortowanie rekordów – kwerendy umożliwiają posortowanie odczytanych z bazy rekordów np. pensje pracowników od największych do najmniejszych
  • wykonywanie obliczeń – w kwerendach można używać funkcji, dokonywać wyliczeń i podsumowań
  • tworzenie tabel – na podstawie danych zwróconych przez zapytanie można utworzyć nową tabelę lub zaktualizować tabelę już istniejącą
  • tworzenie raportów i formularzy – jeśli raport lub formularz utworzony jest na podstawie kwerendy, przy każdym jego uruchomieniu, w pierwszej kolejności wykonuje się kwerenda. Dzięki temu dane w raporcie są zaktualizowane.
  • tworzenie podzapytań (podkwerend) – możliwe jest tworzenie kwerend, które bazują na zbiorze rekordów zwróconych przez inne kwerendy
  • wprowadzanie zmian w tabelach – za pomocą kwerend można nie tylko odczytywać dane, ale również je modyfikować

Tworzenie kwerendy w edytorze graficznym

Aby utworzyć kwerendę wybieramy kartę Tworzenie i klikamy ikonę Projekt kwerendy.

Access wstawianie kwerendy

Po kliknięciu ikony Projekt kwerendy pojawi się pasek narzędzi Projektowanie, zawierający narzędzia dotyczące kwerend, oraz okno dialogowe Pokazywanie tabeli. W oknie Pokazywanie tabeli wyświetlone są wszystkie tabele i kwerendy istniejące w bazie danych. Aby dodać do struktury kwerendy tabelę, należy dwukrotnie kliknąć jej nazwę lewym przyciskiem myszy lub zaznaczyć tabelę i kliknąć przycisk Dodaj.

Access kwerendy - lista tabel

Poniżej tabele Orders i OrderDetails dodane do kwerendy:

Access - tabele dodane do kwerendy

Aby dołączyć do kwerendy dodatkowe tabele, należy:

  • na karcie Projektowanie kliknąć ikonę Pokaż tabelę i następnie kliknąć tabelę, która ma zostać dołączona lub
  • przeciągnąć tabelę z okienka nawigacji do okna projektu kwerendy.

Aby usunąć tabelę, należy na nią kliknąć w oknie projektu kwerendy i nacisnąć klawisz Delete.

Aby zmienić lokalizację tabeli w oknie projektu kwerendy, należy kliknąć lewym przyciskiem myszy jej nagłówek i przeciągnąć ją w oczekiwane miejsce. Można też zmienić rozmiar tabeli klikając myszką na jej krawędź i przesuwając w odpowiednią stronę.

Po kliknięciu na ikonę Widoki, na karcie Projektowanie, możemy wybrać z listy rozwijanej jeden z trzech sposobów wyświetlania kwerendy:

  • widok projektu — tworzymy w nim kwerendy
  • widok arkusza danych — wyświetla rekordy zwracane przez kwerendę
  • widok SQL — wyświetla instrukcję SQL, która definiuje kwerendę

Okno widoku projektu składa się z dwóch części:

  • obszar wprowadzania tabel i kwerend (w górnej części) — dodajemy w nim, do projektu kwerendy, tabele, kwerendy oraz listy pól
  • siatka QBE – Query by Example (w dolnej części) — zawiera ona nazwy pól wykorzystywanych w kwerendzie oraz kryteria stosowane do wybierania rekordów. Każda kolumna siatki QBE zawiera informacje na temat jednego pola z tabeli lub kwerendy znajdującej się w górnym obszarze.

Poszczególne obszary (panele) okna są od siebie oddzielone poziomym paskiem, za pomocą którego możemy zmienić ich rozmiar. Aby zmienić rozmiar górnego lub dolnego panelu, należy przeciągnąć pasek w górę lub w dół za pomocą myszy. Każdy z obszarów ma pionowy i poziomy pasek przewijania.

Kwerendę tworzymy poprzez przeciąganie pól z górnego panelu do siatki QBE.

Siatka QBE składa się z sześciu wierszy oznaczonych następującymi etykietami:

  • Pole — do wpisywania lub dodawania nazw pól
  • Tabela — do wyświetlenia nazwy tabeli, z której pochodzi pole
  • Sortuj — do zdefiniowania sposobu sortowania dla kwerendy
  • Pokaż —do zaznaczenia, czy dane pole ma się wyświetlić w zestawie rekordów zwracanych przez kwerendę
  • Kryteria — do wskazania kryteriów filtrowania zwracanych rekordów
  • lub — do definiowania złożonych kryteriów kwerendy.

Pojedyncze pola można dodawać do kwerendy w następujący sposób:

  • dwukrotne kliknięcie nazwy pola w górnej części widoku projektu kwerendy. Nazwa pola wyświetli się wówczas w pierwszej wolnej kolumnie siatki QBE lub
  • przeciągnięcie pola z tabeli w górnej części okna projektu kwerendy do siatki QBE.
Access - dodawanie pól do siatki QBE

Kliknięte pole jest dodawane po prawej stronie pola znajdującego się już w QBE.

Komórki w wierszu o nazwie „pole” zawierają listę rozwijaną wszystkich pól dostępnych w tabeli dodanej do widoku kwerendy. Komórki w wierszu o nazwie „Tabela” zawierają listę tabel dodanych do widoku kwerendy.

Aby dodać do siatki QBE więcej niż jedno pole równocześnie, należy zaznaczyć wybrane pola na liście, a następnie przeciągnąć je do obszaru QBE. Jeśli chcemy wybrać pola, które ze sobą nie sąsiadują, należy podczas ich zaznaczania przytrzymać klawisz Ctrl.

Access - siatka QBE zaznaczanie pól

Aby zaznaczyć wszystkie pola, można kliknąć dwuklikiem lewego przycisku myszy na nagłówku tabeli w widoku projektu kwerendy. Pola są dodawane do siatki QBE w porządku, w jakim występują w tabeli.

Jeśli przeciągniemy do siatki QBE gwiazdkę (*), w kwerendzie zostaną uwzględnione wszystkie pola tabeli. Pola nie będą jednak dodane do siatki QBE. Użycie symbolu gwiazdki powoduje umieszczenie odwołania do wszystkich pól w pojedynczej kolumnie.

Uruchamianie kwerend

Aby uruchomić kwerendę, należy na karcie Projektowanie kliknąć ikonę Uruchom.

Aby powrócić do siatki QBE, należy na karcie Narzędzia główne rozwinąć listę rozwijaną ikony Widok i wybrać Widok projektu.

Access kwerendy widok projektu

Praca z polami w obszarze siatki QBE

1. Zmiana kolejności pól

Kolejność pól w siatce QBE można zmieniać. Aby zmienić pozycję pola, najpierw trzeba je zaznaczyć. Żeby to zrobić, klikamy wiersz selektora pola (wąski szary pasek znajdujący się nad każdą z kolumn siatki QBE w dolnej części okna projektu kwerendy). W momencie gdy wskaźnik myszy zmieni kształt na czarną strzałkę w dół, klikamy lewy przycisk myszy. Zaznaczone pole możemy przemieścić w prawo lub lewo. Możemy zaznaczyć więcej niż jedno pole i przemieścić wszystkie zaznaczone pola jednocześnie.

2. Zmiana rozmiaru kolumn w obszarze siatki QBE

Aby zmienić szerokość kolumn, należy przesunąć wskaźnik myszy na krawędź pomiędzy polami i przeciągnąć belkę zmiany rozmiaru kolumn w lewo lub w prawo. Można też kliknąć dwukrotnie lewym przyciskiem myszy na linię dzielącą dwie kolumny wewnątrz siatki. Wówczas Access automatycznie dostosuje szerokość kolumny do wyświetlających się w niej danych.

3. Usuwanie pól

Aby usunąć pola z obszaru QBE, należy je zaznaczyć i nacisnąć klawisz Delete. Można również kliknąć prawym przyciskiem myszy selektor pola i z menu podręcznego wybrać polecenie Wytnij.

4. Wstawianie pól

Aby wstawić nowe pole do obszaru siatki QBE, należy przeciągnąć je z okna listy pól powyżej siatki QBE. Nowa kolumna zostanie wstawiona z lewej strony kolumny, w której upuściliśmy pole. Dwukrotne kliknięcie pola na liście pól dodaje nową kolumnę na skrajnej prawej pozycji siatki QBE.

5. Ukrywanie pól

Aby ukryć dane pole, należy usunąć zaznaczenie pola w wierszu Pokaż. Jeśli zapiszemy kwerendę zawierającą nieużywane pole, Access automatycznie usunie je ze struktury kwerendy w ramach jej optymalizowania. Przy kolejnym otwarciu kwerendy pole nie będzie uwzględnione w projekcie kwerendy.

6. Zmiana kolejności sortowania

Sortowanie to ustawienie rekordów w kolejności alfabetycznej lub numerycznej. Sposób sortowania może być rosnący lub malejący. Sortować można według jednego lub kilku pól.

Warunki sortowania wprowadza się w wierszu Sortuj siatki QBE. Aby określić porządek sortowania dla określonego pola, należy umieścić kursor w polu, które chcemy posortować i w wierszu Sortuj wybrać z listy rozwijanej sposób sortowania (malejąco lub rosnąco). Nie można sortować według pól typu Długi tekst lub Obiekt OLE.

Pola są sortowane od lewej do prawej. Najpierw stosowane są kryteria sortowania dla pola występującego najbardziej z lewej strony, następnie kryteria najbliższego sąsiada z prawej itd.

7. Dodawanie kryteriów do kwerend

Dodanie do kwerendy kryteriów wyboru umożliwia wybranie z bazy tylko niektórych rekordów np. tylko tych klientów, którzy mieszkają w Krakowie. Kryteria wyboru ograniczają zbiór rekordów zwracanych przez kwerendę. Definiuje się je w postaci wyrażeń w wierszu Kryteria siatki QBE.

Kryteria można określać dla każdego typu pola tj. tekstowego, Liczba, Data/Godzina oraz Tak/Nie. Teksty należy wpisać w cudzysłów np. „USA”. Dla dat należy użyć znaku # np. #20-05-1998#.

Możemy pominąć wpisywanie znaków # i ” ” w kwerendzie, gdyż Access wstawi je automatycznie na podstawie typu pola w bazie danych. Access interpretuje daty zgodnie z ustawieniami regionalnymi i językowymi systemu Windows.

Domyślnie Access nie rozróżnia dużych i małych liter.

Aby usunąć kryterium z komórki, należy zaznaczyć jej zawartość i kliknąć klawisz Delete. Można też użyć polecenia Wytnij, z menu podręcznego, dostępnego po kliknięciu prawego przycisku myszy.

Możliwe jest określenie więcej niż jednego kryterium dla kwerendy. W poniższym przykładzie odczytujemy dane z dwóch tabel: Orders i OrderDetails. Wybieramy tylko te rekordy, w przypadku których:

  • liczba zamówień (Quantity) jest większa niż 100
  • kraj wysyłki (ShipCountry) jest USA
  • data realizacji wysyłki (RequiredDate) jest większa niż 20-05-1998
Access kwerenda kryteria wyboru

8. Zapisywanie kwerendy

Aby zapisać kwerendę, należy kliknąć przycisk Zapisz na pasku szybkiego dostępu. Jeśli zapisujemy kwerendę po raz pierwszy, należy podać jej nazwę. Wszystkie zapisane kwerendy widoczne są w oknie nawigacji w grupie obiektów Kwerendy.

Access kwerendy w oknie nawigacji

Linie sprzężeń

Tabele, w oknie projektu kwerendy, są połączone liniami sprzężeń. Linia łączy pole klucza głównego z jednej tabeli z polem klucza obcego w innej tabeli. Reprezentuje ona relację istniejącą między tabelami.

Access linie sprzężeń

Rodzaje kwerend

Wybierająca – służy do odczytywania danych z tabeli lub kilku tabel i wyświetla wyniki w arkuszu danych. Kwerendy wybierające mogą być również używane do grupowania rekordów, wyliczania sum, średnich i innych obliczeń.

Aby utworzyć kwerendę wybierającą, klikamy ikonę Projekt kwerendy na karcie Projektowanie. Pojawi się wówczas okno dialogowe Pokazywanie tabeli. Klikamy w nim wszystkie tabele, które chcemy dodać do kwerendy.

Access kwerenda wybierająca - dodawanie tabel

Po dodaniu tabel, klikamy poszczególne pola, które mają być uwzględnione w kwerendzie.

Access kwerenda wybierająca - dodawanie pól

Widok kwerendy wybierającej w edytorze graficznym

Access kwerenda wybierająca w edytorze graficznym

Widok kwerendy wybierającej w języku SQL

SELECT Orders.CustomerID, Orders.OrderDate, Orders.ShippedDate,
Orders.Freight, OrderDetails.UnitPrice, OrderDetails.Quantity
FROM Orders
INNER JOIN OrderDetails
ON Orders.OrderID = OrderDetails.OrderID;

Tworząca tabelę – tworzy nową tabelę na podstawie wszystkich lub części danych przechowywanych w jednej lub kilku tabelach. Kwerendy te są pomocne przy tworzeniu tabel, które mają zostać wyeksportowane do innych baz danych programu Access.

Aby utworzyć kwerendę, na karcie Projektowanie klikamy ikonę Utwórz tabelę. W oknie dialogowym Tworzenie tabeli podajemy nazwę nowej tabeli, wskazujemy bazę danych, w której tabela ma zostać utworzona i klikamy OK.

Access kwerenda tworząca tabelę

Następnie wybieramy pola, które mają zostać wstawione do nowej tabeli. Po wybraniu pól, klikamy ikonę Uruchom. Pojawi się wówczas komunikat z ostrzeżeniem informującym, jaka akcja zostanie przez Accessa wykonana.

Widok kwerendy tworzącej tabelę w edytorze graficznym

Access kwerenda tworząca tabelę widok w edytorze graficznym

Widok kwerendy tworzącej tabelę w języku SQL

SELECT Orders.OrderDate, Orders.RequiredDate,
Orders.ShipCountry, OrderDetails.Quantity
INTO Products_USA
FROM Orders
INNER JOIN OrderDetails 
ON Orders.OrderID = OrderDetails.OrderID
WHERE (((Orders.ShipCountry)="USA"));

Dołączająca – dodaje na końcu jednej lub wielu tabel grupę rekordów. Dodawane rekordy mogą pochodzić z jednej lub z kilku tabel.

Aby utworzyć kwerendę dołączającą, do siatki QBE przenosimy wszystkie pola z tabeli, z której dane mają być dołączone do innej tabeli. Następnie na karcie Projektowanie klikamy ikonę Projekt kwerendy. W oknie dialogowym Dołączanie podajemy nazwę tabeli, do której mają zostać dołączone dane.

Kwerenda dołączająca wskazywanie tabeli

Klikamy przycisk OK a potem ikonę Uruchom. Pojawi się wówczas okno dialogowe z informacją o ilości rekordów, które zostaną dołączone do tabeli.

Widok kwerendy dołączającej w języku SQL.

INSERT INTO Orders ( Identyfikator, OrderID, CustomerID, EmployeeID,
OrderDate, RequiredDate, ShippedDate, ShipVia, Freight,
ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode,
ShipCountry )
SELECT Orders_2018.Identyfikator, Orders_2018.OrderID,
Orders_2018.CustomerID, Orders_2018.EmployeeID, Orders_2018.OrderDate,
Orders_2018.RequiredDate, Orders_2018.ShippedDate, Orders_2018.ShipVia,
Orders_2018.Freight, Orders_2018.ShipName, Orders_2018.ShipAddress,
Orders_2018.ShipCity, Orders_2018.ShipRegion,
Orders_2018.ShipPostalCode, Orders_2018.ShipCountry
FROM Orders_2018;

Aktualizująca – dokonuje zmian w grupie rekordów w jednej lub wielu tabelach.

Aby utworzyć kwerendę aktualizującą, do siatki QBE przenosimy pola z tabeli, które mają zostać zaktualizowane. W wierszu „Aktualizacja do” wpisujemy wartość, która ma być w tabeli po zmianie. W wierszu „Kryteria” ograniczamy rekordy, które mają zostać objęte zmianą.

W poniższym przykładzie nazwisko „Ong” zmieniamy na „Ongus”.

Access kwerenda aktualizująca

Następnie klikamy ikonę Uruchom. Pojawi się wówczas okno dialogowe z komunikatem informacyjnym, ile rekordów zostanie zaktualizowanych. Klikamy OK.

Widok kwerendy aktualizującej w języku SQL.

UPDATE Employees SET Employees.LastName = "Ongus"
WHERE (((Employees.LastName)="Ong"));

Krzyżowa – stosowana w celu obliczenia i zmiany struktury danych. Oblicza sumę, średnią, zlicza dane lub przeprowadza inny rodzaj podsumowania dla danych zgrupowanych według dwóch typów informacji — jeden wzdłuż lewej, a drugi wzdłuż górnej krawędzi arkusza danych.

Aby utworzyć kwerendę krzyżową, na karcie Projektowanie klikamy ikonę Projekt kwerendy i wybieramy ikonę Kwerenda krzyżowa. W oknie kwerendy podajemy:

  • nazwę pola, które chcemy wyświetlić w wierszach
  • nazwę pola, które chcemy wyświetlić w kolumnach
  • nazwę pola, dla którego będziemy robić podsumowanie lub wyliczenia
  • w wierszu „Krzyżowe” musimy wskazać, które pola będą stanowić Nagłówek kolumny oraz Nagłówek wiersza. Pole, w którym będą wykonane wyliczenia należy oznaczyć w wierszu „Krzyżowe” jako „Wartość”.

Na koniec klikamy ikonę Uruchom.

Widok kwerendy w edytorze graficznym.

Access kwerenda krzyżowa

Widok kwerendy w języku SQL.

TRANSFORM Sum(Orders.Freight) AS SumaOfFreight
SELECT Orders.ShipCountry
FROM Orders
GROUP BY Orders.ShipCountry
PIVOT Orders.EmployeeID;

Usuwająca – usuwa grupę rekordów z jednej lub wielu tabel.

Aby utworzyć kwerendę usuwającą, na karcie Projektowanie klikamy Usuń. Następnie do siatki QBE przenosimy tę tabelę, z której chcemy usunąć rekordy. W wierszu „Kryteria” wpisujemy warunek, na podstawie którego zostaną wybrane rekordy do usunięcia.

Access kwerenda usuwająca

Na koniec klikamy ikonę Uruchom. Przed uruchomieniem kwerendy, Access wyświetli okno dialogowe z informacją, ile rekordów zostanie usuniętych i ostrzeżeniem, że operacja jest nieodwracalna.

Składająca – składa zbiory rekordów pochodzące z różnych tabel w jeden plik wynikowy. Do utworzenia kwerendy składającej nie można użyć siatki projektu, tylko języka SQL.

W poniższym przykładzie wybrane są 4 kolumny z tabeli Orders oraz 4 kolumny z tabeli Orders_2018 w dwóch oddzielnych zapytaniach. Wyniki zapytań są następnie ze sobą łączone za pomocą operatora UNION.

SELECT [OrderID], [CustomerID], [OrderDate], [Freight]
FROM [Orders]
UNION
SELECT [OrderID], [CustomerID], [OrderDate], [Freight]
FROM [Orders_2018]
ORDER BY [CustomerID] DESC;

Przekazująca – kwerenda przekazująca przesyła polecenia SQL-a bezpośrednio do serwera bazy danych. Parsowanie i przetwarzanie zapytania odbywa się na serwerze, a nie w aplikacji Access. Dzięki temu kwerendy działają szybciej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.