Kwerenda grupująca

Kwerenda grupująca to kwerenda, która przedstawia poszczególne rekordy tabeli w formie zgrupowanej lub podsumowanej (i to nie tylko w formie sumy). Tworzona jest bardzo podobnie jak zwykła kwerenda wybierająca.

Na przykładzie wielokrotnie już cytowanej na blogu tabeli ze spisem książek:

spróbujmy policzyć ilość książek w każdym z działów.

Tworzymy nową kwerendę, która ma 2 kolumny: Dział oraz Tytuł.

Następnie w widoku projektu kwerendy, w grupie opcji Pokazywanie/ukrywanie naciskamy przycisk sumy

Poszczególne pola kwerendy w widoku projektu będą od tej pory wyglądać tak:Domyślnie są one zgrupowane, ale wiersz Podsumowania ma więcej możliwości.

Wybierając np. Policz w kolumnie Tytuły oraz pozostawiając grupowanie w polu Dział,  otrzymany efekt końcowy wygląda tak:

Warto też zauważyć, że w kwerendzie zgrupowane pole Dzial nie zmieniło swojej nazwy, natomiast pole Tytul, gdzie zastosowano zliczanie, ma obecnie nazwę PoliczOfTytul. To nazwy pól, ale tak jak w każdym z obiektów Accessa,  zawsze można zmienić widoczną nazwę na bardziej przyjazną poprzez wypełnienie Tytułu pola.
W projekcie kwerendy:

W tym przypadku wstawiłam jako tytuł kolumny “Liczba tytułów” i kwerenda po otwarciu w widoku arkusza wygląda tak:

Sama nazwa kolumny nie zmieniła się, ale jej wyświetlanie na ekranie już tak. Warto stosować, gdyż w tytułach można bez problemu stosować polskie znaki z ogonkami, spacje itp.


Kurs Access - kwerendy

 

 

 

Kryteria wyszukiwania

W zależności od typu danych w danym polu kwerendy, kryteria wyszukiwania mogą być zdefiniowane w następujący sposób:

  • Tekst
    symbole zastępujące znak/ciągi znaków:
* dowolny znak lub ciąg znaków, również o zerowej długości
?
pojedynczy znak
#
cyfra
[A-Z]
pojedynczy znak z listy liter alfabetu
[!A-Z]
pojedynczy znak spoza listy liter alfabetu
[0-9]
pojedynczy znak z listy cyfr
 [!0-9] pojedynczy znak spoza listy cyfr
[ĄĘĆŚ,;]
pojedynczy znak z samodzielnie zdefiniowanej listy znaków
[!ĄĘĆŚ,;] pojedynczy znak spoza samodzielnie zdefiniowanej listy

Jak to wygląda w praktyce? Np. tak:

Like “*a*” – rekordy zawierające literę a, wielkość liter nie ma znaczenia
Like “*#*” – rekordy zawierające cyfrę
Like “?1*2” – rekordy zawierające cyfrę na drugim miejscu i kończące się
                           cyfrą2
Like “*[ąęó]*” – rekordy zawierające jedną z liter wpisanych w nawiasie

  • Data
    kryteria wyboru daty muszą być umieszczone w hasztagach.
    Np. chcąc wyfiltrować konkretną datę wpisujemy
    #2020-11-29#.
    Dla zakresu dat będzie to wyglądało tak:
    >#2020-11-09# And <#2020-11-17#
    znaki nierówności mogą być też nieostre czyli np.
    >=#2020-11-09# And <=#2020-11-17#
    Zakres dat można też ująć w zapisie:
    between #2020-11-09# And <#2020-11-17# 
    – w tym przypadku daty krańcowe też są brane do wyszukiwania. 
    W wyszukiwaniu dat bardzo ważnym aspektem jest też format daty. Jeżeli daty w kolumnie są zapisane (niezależnie od tego, jaki jest format wyświetlania daty) również z datą i godziną, to kryterium wyszukiwania ograniczone do zapisu #2020-11-20# wyznaczy rekordy tylko z godziną 00:00 tego dnia, każda inna godzina nie spełnia kryterium. W takim przypadku konieczny jest zapis:
    >=#2020-11-20# and <#2020-11-21#
    – czyli od godziny zero 20-go do wartości dat mniejszych od godziny zero dnia 21-go.
    Ewentualnie, pamiętając o tym, że data to liczba -można wstawić dodatkowe pole w kwerendzie oparte na formule =Clng([Pole daty]) i w tym polu wpisać kryterium:
    CLng(#2020-04-16#)
  • Wartości liczbowe
    kryteria wyboru są tu proste, znane z matematyki. Działają tu wszystkie operatory matematyczne typu > czy <.
    W stosunku do wartości liczbowych można tez stosować konstrukcję Between…And…
  • Prawda/Fałsz
    tu jako kryterium wystarczy wpisać po prostu Prawda lub Fałsz. Można też zastosować wartości liczbowe:
    0 – fałsz
    -1 – prawda

Niezależnie od typu danych często pojawia się konieczność wyszukania z brakiem wartości w danym polu. Kryterium dla takich rekordów to:
Is Null – dla  pustych rekordów
Is Not Null – dla niepustych rekordów

 


 

Kurs Access - kwerendy

Filtrowanie w kwerendzie wybierającej

Filtrowanie rekordów w kwerendzie wybierającej definiowane jest w oknie widoku projektu kwerendy. 


Kryteria wyszukiwania rekordów wpisywane są w zaznaczone wiersze kwerendy. Obowiązuje tu zasada,  że kryteria wpisane w tym samym wierszu muszą być spełnione łącznie. Kolejne wiersze kryteriów są dodawane do filtrowania jako alternatywa czyli ze słowem kluczowym LUB.

Np. dla tabeli ze screenu poniżej:

spróbujmy wyfiltrować rekordy, w których Autor to Agata Christie oraz cena jest wyższa niż 20zł. Zapis kwerendy to:

a wyfiltrowane dane (czyli kwerenda w widoku Arkusza) to:

Kwerenda pokazująca rekordy, w których Autor to Agata Christie lub cena jest wyższa niż 20zł to:

w widoku Arkusza:

Oczywiście kryteria wyszukiwania nie muszą być tak ściśle określone jak w powyższych przykładach. W zależności od typu danych można je zdefiniować bardziej wieloznacznie.
Kryteria wyszukiwania


Sortowanie w kwerendzie wybierającej

Jak posortować dane w kwerendzie? Załóżmy, że mamy tabelę:

kliknij screen, aby powiększyć

Przenosimy wszystkie pola tabeli do kwerendy wybierającej:

kliknij screen, aby powiększyć

Dodatkowo można dołożyć pole obliczeniowe np.likwidujące wartość null w polu DataP. Nazwałam to pole DataPelna i wstawiłam tam funkcję DataPelna: nz(DataP;Date())

kliknij screen, aby powiększyć

Funkcja ta działa w ten sposób, że jeżeli w kolumnie DataP jest jakaś wartość, wstawia ją. Jeżeli natomiast pole jest puste – wstawia datę bieżącą. Teraz pora na sortowanie. Jeżeli chcemy posortować kwerendę wg kilku różnych kolumn – istotna jest ich kolejność. Im bardziej dana kolumna jest na lewo – tym wyższy poziom sortowania, a więc jest sortowana w pierwszej kolejności. 
W przykładzie ustawiłam sortowanie rosnąco dla kolumny Dzial, a w drugiej kolejności dla kolumny DataPelna. 

kliknij screen, aby powiększyć

Rezultat wygląda tak:

kliknij screen, aby powiększyć

Chcą zmienić kolejność sortowania czyli najpierw wg DataPelna, a następnie wg Dzialu – wystarczy przenieść kolumny w siatce kwerendy.

kliknij screen, aby powiększyć

Jeżeli posortowana kwerenda będzie ustawiona jako źródło danych dla formularza czy raportu – poszczególne rekordy będą wyświetlać się zgodnie z kolejnością sortowania kwerendy.


 

Kurs Access - kwerendy