Kwerendy Microsoft Access

Excel czy Access? Każde z tych narzędzi ma swoich zwolenników, można w nich osiągnąć podobne efekty końcowe, doskonale z sobą współpracują i tak naprawdę decydujące znaczenie powinna mieć ilość przetwarzanych danych. Jeżeli chcemy stworzyć aplikację z dużą ilością danych, a w dodatku ma być przeznaczona do jednoczesnej pracy wielu użytkowników to z pewnością bardziej wydajną i szybszą w działaniu będzie aplikacja zbudowana w Accessie. Warto więc z pewnością poznać przynajmniej podstawy Accessa – później będzie łatwiej i prościej, to wciąga.

Nie da się mówić o Accessie nie znając pojęcia kwerendy, to podstawa. Dlatego polecam świetny kurs video z  Videopoint:

Access 2013. Kwerendy baz danych

Kwerendy Access

Kurs ten nie jest raczej przeznaczony dla osób zupełnie początkujących, które nigdy wcześniej nie miały kontaktu z Accessem. Potrzebna jest choćby minimalna wiedza na temat tabel Accessa, ale w zasadzie nic więcej. Kwerendy to drugi krok w poznawaniu Accessa, więc trzeba je poznać.
Polecany przeze mnie kurs przedstawia różnego rodzaju kwerendy Access – zarówno proste jak i funkcjonalne. Dokładnie i szczegółowo poznamy sposoby tworzenia kwerend, czy to za pomocą kreatora czy też tworząc/modyfikując je samodzielnie w widoku projektu. Autor kursu omawia także podstawowe funkcje i możliwości ich wstawienia do pól obliczeniowych kwerendy. To bardzo przydatna wiedza, pozwalająca na znaczne rozszerzenie funkcjonalności kwerendy, a tym samym szybszą i głębszą analizę danych. Oczywiście wszystko na konkretnych przykładach. Dużym atutem kursu jest także osobny rozdział poświęcony danym typu Data i Czas i ich wykorzystaniu w kwerendach. To bardzo ważne, gdyż może stwarzać wiele problemów początkującym użytkownikom.

Autorem kursu jest Kamil Jóźwik. Całość kursu trwa 3 godz.10 min. , w formie 30 lekcji (można je zatrzymywać, wznawiać, powtarzać). Jest dostępny w trybie online lub do pobrania w formie pliku zip.

Kurs jest dostępny tu:

Access 2013. Kwerendy bazy danych

A w ramach promocji, specjalnie dla czytelników mojego blogu – kupon rabatowy na ten i na wszystkie inne kursy video z dziedziny Excel, Accessa i VBA. Wystarczy wpisać kod EXCEL15, aby skorzystać z 15% rabatu. Kupon jest ważny do końca lipca 2016.

 





Kwerenda tworząca tabelę w widoku SQL

O kwerendzie tworzącej tabelę pisałam w poprzedniej notce:

Kwerenda tworząca tabelę

Ta sama kwerenda zapisana w SQL ma postać:

SELECT Katalog.Tytuł, Katalog.Dział INTO TabelaBiografie
FROM Katalog
WHERE (((Katalog.Dział)=”Biografie”));

 



 

http://HELION.pl/plugins/new/ksiazkasm.phi?id=tisql2&nr=4737c&double=double;

 

http://HELION.pl/plugins/new/kupowali.cgi?id=tisql2&nr=4737c&double=double;

 

Kwerenda aktualizująca w widoku SQL

Słowem kluczowym dla kwerend aktualizujących w kodzie SQL jest Update. Kwerenda opisana w notce:

Kwerenda aktualizująca

w kodzie SQL ma zapis:

UPDATE Katalog SET Katalog.Cena = [cena]*1.1;

Słowo kluczowe SET wskazuje wartość mającą być zmienioną.



http://helion.pl/plugins/new/random-katalog.cgi?k=1,23&a=4&nr=4737c http://helion.pl/plugins/new/random-katalog.cgi?k=1,23&a=5&nr=4737c http://helion.pl/plugins/new/random-katalog.cgi?k=1,23&a=6&nr=4737c


Kwerenda aktualizująca

Kolejna notka z działu Access – tym razem o kwerendzie aktualizującej. Jej działanie polega na tym, że zmienia wybrane właściwości w tabeli. 

Załóżmy, ze mamy tabelę katalogu książek:

tabela Access 

Spróbujmy stworzyć kwerendę aktualizującą, która o 10% zwiększy cenę każdej z książek.
W projekcie kwerendy z polem Cena, po naciśnięciu przycisku Kwerenda aktualizująca pojawia się nowy wiersz Aktualizuj do. Wpisujemy tam wartość [Cena]*1,1 :

kwerenda aktualizująca

Kolejny krok to wykonanie kwerendy. Pojawi się dodatkowo standardowy komunikat ostrzegający przed zmianą wartości, a po zatwierdzeniu – kwerenda zostanie wykonana, a zmiany wprowadzone.
Po aktualizacji tabela Katalog wygląda tak:

tabela Access

 

W kodzie SQL ta sama kwerenda jest opisana tu:

Kwerenda aktualizująca w kodzie SQL


 


http://helion.pl/plugins/new/random-katalog.cgi?k=1,19&a=1&nr=4737c http://helion.pl/plugins/new/random-katalog.cgi?k=1,19&a=2&nr=4737c http://helion.pl/plugins/new/random-katalog.cgi?k=1,19&a=3&nr=4737c


Maksimum w kwerendzie grupującej

W uzupełnieniu poprzedniej notki:
Kwerenda grupująca
i wspomnianym przeze mnie błędzie wewnętrznym Accessa 2010, kilka słów jak sobie poradzić.

Problem polega na tym, że wybierając w kwerendzie grupującej funkcję Maksimum, otrzymujemy informację, że Access nie zna takiej funkcji.

kwerenda grupująca

Inne funkcje działają poprawnie. Można jednak sobie z tym poradzić. Wystarczy przejść w kwerendzie do widoku SQL i ręcznie zmienić Maksimum na MAX.

kwerenda grupująca

I już. Po tej poprawce kwerenda będzie działać prawidłowo.I będzie można ją zapisać.

 

Kwerenda grupująca

Dawno nie było nic w dziale Accessa, pora nadrobić zaległości.
Kontynuując omawianie kwerend
tym razem kwerenda grupująca. Zbuduję ją na wcześniej już wykorzystywanej tabeli książek:

tabela Access

Załóżmy, że chcemy sprawdzić ile książek jest w każdym z działów. W projekcie kwerendy wstawiamy tylko pola Dział i numer katalogowy. Robimy to na normalnej kwerendzie prostej. Kwerendę grupująca tworzymy poprzez naciśnięcie przycisku sumy na wstędze Projektowanie.

kwerenda grupująca

W każdym z pól automatycznie pojawi się Grupuj według. Wystarczy jednak wejść w to pole, aby z listy opcji wybrać inną możliwość:

kwerenda grupująca

Po wybraniu tu opcji Policz – kwerenda w widoku arkusza wygląda tak:

kwerenda grupująca

Kolumna Dział jest pogrupowana – w każdym wierszu występuje inna wartość. Kolumna PoliczofNumerKatalogowy wskazuje policzone książki w każdym z tych działów.

Oczywiście to tylko jeden z przykładów. Podobną operację można wykonać na innych kolumnach i z innymi opcjami.

Jest tu jednak jeden wyjątek. Widoczna w opcjach funkcja Maksimum w wersji Accessa 2010 nie działa. Access zgłasza tu błąd nieznanej funkcji. Jest to błąd wewnętrzny Accessa. Można go obejść, ale to już temat na następną notkę.


Kwerenda wybierająca w widoku SQL

Kwerenda wybierająca w kodzie SQL zaczyna się zawsze od słowa kluczowego SELECT. Opisany w poprzedniej notce przykład kwerendy filtrującej:
Filtr w kwerendzie filtrującej
po przełączeniu na widok SQL będzie wyglądał tak:

SELECT Katalog.[Numer katalogowy], Katalog.Autor, Katalog.Tytuł, Katalog.Cena, Katalog.Dział
FROM Katalog
WHERE (((Katalog.Dział) Like „*e*”));

Pierwszy wiersz przedstawia tu pola, które mają być zwrócone z kwerendy. Warto zwrócić tu uwagę na pole Numer katalogowy. Nazwa pola składa się z dwóch oddzielnych słów oddzielonych spacją. Access automatycznie wstawił tę nazwę w wymagany dla takich przypadków nawias kwadratowy.
Druga linijka kodu SQL zaczyna się od słowa kluczowego FROM, po którym następuje nazwa obiektu (w tym wypadku – tabeli), z którego wybierane są rekordy.
Ostatnia linijka kodu SQL rozpoczyna się słowem kluczowym WHERE, uściślającym warunki do spełnienia.

 


A tu coś z literatury

http://helion.pl/plugins/new/random-katalog.cgi?k=1,23&a=1&nr=4737c

http://helion.pl/plugins/new/random-katalog.cgi?k=1,23&a=2&nr=4737c

http://helion.pl/plugins/new/random-katalog.cgi?k=1,23&a=3&nr=4737c

Filtr w kwerendzie wybierającej

O kwerendzie wybierającej pisałam już w poprzedniej notce:
Kwerenda wybierająca
W ramach ograniczania ilości rekordów wpisane zostało tam pełne słowo i kwerenda zwróciła tak zdefiniowane rekordy. Definicja ta jednak może być bardziej elastyczna.
Podobnie jak w przypadku filtra Excela – możemy warunek wyszukiwania w polu tekstowym zadeklarować używając znaków zastępujących konkretne litery.

? – zastępuje jeden dowolny znak
* – zastępuje dowolny znak lub ciąg znaków 

W praktyce więc wpisanie w kwerendę np. ?e? – zwróci wszystkie rekordy zawierające słowa trzyliterowe z literą e w środku. Wpisanie *e* – da w wyniku działania kwerendy słowa, w których występuje litera e – niezależnie od tego, na jakiej pozycji. Może być to również pierwszy lub ostatni znak, gdyż * może być również pustym znakiem.

kwerenda wybierająca

Warto tu zauważyć, że wpisane znaki *e* Access automatycznie sam zmienił na Like „*e*” .
W ten sposób przystosował do języka SQL.

A sam wynik działania kwerendy wygląda tak:

kwerenda wybierająca

 


A tu coś z literatury

http://helion.pl/plugins/new/random-katalog.cgi?k=1,19&a=1&nr=4737c

http://helion.pl/plugins/new/random-katalog.cgi?k=1,19&a=2&nr=4737c

http://helion.pl/plugins/new/random-katalog.cgi?k=1,19&a=3&nr=4737c

 

Kwerenda wybierająca

Kwerendę wybierająca w bazie danych Access można porównać z filtrem w tabeli Excela.  Mamy tabelę, z której chcemy wyznaczyć tylko konkretne dane.

Załóżmy, że mamy tabelę katalogu książek:

tabela Access

Z tej tabeli chcemy wyfiltrować wszystkie książki np. z działu Sensacja. W widoku projektu kwerendy wpisujemy sensacja:

kwerenda wybierająca 

Efekt zobaczymy po przełączeniu w widok arkusza:

kwerenda wybierająca

Oczywiście wcale nie trzeba wpisywać pełnego słowa, aby kwerenda zwróciła żądane dane. To już jednak temat na kolejne notki.



 

http://HELION.pl/plugins/new/ksiazkasm.phi?id=accpex&nr=4737c&double=double;

 

http://HELION.pl/plugins/new/kupowali.cgi?id=accpex&nr=4737c&double=double;

 

 

Kwerenda w widoku SQL

Każdą kwerendę bazy Access można przedstawić w różnej formie. Widok arkusza przedstawiałam tu:
Kwerenda w widoku arkusza
Tą samą kwerendę czyli zapytanie do bazy danych możemy też przedstawić w postaci kodu SQL czyli języku zapytań do bazy danych.
Wystarczy w oknie Projektu kwerendy zmienić widok właśnie na SQL:

widok kwerendy

Po przełączeniu widzimy kwerendę zapisaną właśnie w SQL.

kod SQL kwerendy

Po co nam taki widok? Tworząc kwerendy nie musimy znać kodu SQL, Access stworzy go sobie sam. Tu możemy go podejrzeć. I skopiować, gdy zaczynamy się bawić w oprogramowanie bazy za pomocą VBA, Wówczas trzeba czasem wstawić bezpośrednio zapytanie SQL do modułu.
Ale to już temat na zupełnie inną notkę.

 

 

http://HELION.pl/plugins/new/ksiazkasm.phi?id=tisql2&nr=4737c&double=double;

 

http://HELION.pl/plugins/new/kupowali.cgi?id=tisql2&nr=4737c&double=double;