Sortowanie, filtrowanie i aktualizowanie danych

Sortowanie, filtrowanie i aktualizowanie danych

Autor: Małgorzata Sumisławska

Opublikowano: 10/5/2007, 12:00 AM

Liczba odsłon: 15753

Kiedy baza danych jest obszerna, na dodatek rekordy nie są poukładane według żadnej kolejności alfabetycznej, bardzo trudno jest znaleźć odpowiedni wpis w tabeli lub formularzu. Dlatego przydatnymi narzędziami są różnego rodzaju filtry, dzięki którym możemy wyświetlić tylko te rekordy, które nas interesują, a następnie posortować je. Również kiedy niektóre dane wymagają aktualizacji, nie ma potrzeby poprawiania kilkuset komórek, ponieważ, gdy zajdzie taka potrzeba, wybrane informacje można aktualizować lub usuwać za pomocą kwerend funkcjonalnych.

Dane w tabeli można sortować według dowolnej kolumny. Służą do tego przyciski Sortuj rosnąco oraz Sortuj malejąco . Najpierw podświetlamy kolumnę klikając jej nagłówek, a następnie klikamy odpowiedni przycisk. Możemy również sortować wpisy według kilku kolumn, na przykład najpierw według nazwiska, a osoby o tym samym nazwisku wg imienia. Aby to było możliwe kolumny muszą ze sobą sąsiadować. Nazwisko powinno znajdować się na lewo od kolumny Imię. Być może okaże się konieczne przestawienie kolumn. W naszym przykładzie zaznaczamy kolumnę Nazwisko i z wciśniętym lewym klawiszem myszy przesuwamy kursor w lewo, dopóki między kolumnami Imię a ID adresu nie pojawi się czarna linia, następnie zwalniamy przycisk myszy. Aby zaznaczyć dwie lub więcej kolumny, należy trzymać wciśnięty klawisz Shift.

Kiedy chcemy, aby program wyświetlił tylko określone dane zamiast całości, stosujemy filtry. Najprostszym sposobem jest filtrowanie według wyboru. Służy ono do wyświetlania danych, które w danej kolumnie mają określony wpis, np. osoby o tym samym nazwisku lub mieszkające w tej samej miejscowości. W tym celu zaznaczamy odpowiednią komórkę w tabeli (przykładowo: jeżeli szukamy mieszkańców Warszawy, zaznaczamy w kolumnie Miasto dowolna komórkę, w której znajduje się wpis Warszawa) i klikamy przycisk lub wybieramy Rekordy, Filtr, Filtruj według wyboru. Oczywiście filtry mogą się nakładać. Jeśli szukamy Kowalskich z Warszawy, filtrujemy według wyboru dwa razy. Aby teraz wyświetlić całą bazę danych, klikamy Usuń filtr .

Przydatnym narzędziem jest filtrowanie z wyłączeniem wyboru. Działa ono odwrotnie niż poprzednio przedstawiony sposób filtrowania danych. Dzięki temu możemy znaleźć np. wszystkie osoby zapisane w bazie danych z wyjątkiem mieszkańców Warszawy. W tym celu w kolumnie Miasto klikamy prawym przyciskiem myszy dowolna kolumnę z wpisem Warszawa i z menu podręcznego wybieramy Filtruj z wyłączeniem wyboru.

Proste filtrowanie nie zawsze wystarcza. Przy bardziej zaawansowanym używamy znaków zastępczych:

  • * - zastępuje dowolną liczbę znaków. Jeżeli, na przykład, chcemy znaleźć wszystkie osoby o nazwisku zaczynającym się na literę "a", Wpisujemy "A*" (oczywiście bez cudzysłowu),

  • ? - zastępuje pojedynczy znak, może się przydać jeśli szukamy osób o nazwiskach odmieniających się, zakończonych na "-ski" lub "-ska". Wtedy "Kowalsk?" oznacza zarówno pana Kowalskiego, jak i panią Kowalską.

  • # - zastępuje dowolną pojedynczą cyfrę.

Aby wyświetlić dane z zastosowaniem tego rodzaju znaków, klikamy prawym przyciskiem muszy dowolną komórkę w kolumnie, według której chcemy filtrować, i wpisujemy odpowiedni tekst w polu przy instrukcji Filtruj dla.

Jak można zauważyć, przedstawione powyżej sposoby filtrowania są użyteczne, gdy szukamy wpisów spełniających dwa lub więcej kryteriów jednocześnie. Nie da się w tą metodą zastosować instrukcji lub, na przykład, gdy chcemy znaleźć wszystkich o nazwisku Nowak lub Kowalski(a). Do tego celu przydaje się filtrowanie według formularza. Otwieramy tabelę i klikamy lub wybieramy Rekordy, Filtr, Filtruj według formularza. Pokaże się widok arkusza danych (tabela) z jednym wierszem. W naszym przykładzie klikamy pole Nazwisko, rozwinie się lista dostępnych nazwisk, wybieramy Nowak. Aby wpisać drugi warunek klikamy zakładkę Lub w lewym dolnym rogu okna. Teraz w polu Nazwisko wpisujemy "Kowalsk?". Zauważmy, że po wciśnięciu klawisza Enter, w polu Nazwisko pojawi się wpis Like "Kowalsk?" Aby zastosować filtr klikamy przycisk , który znajduje się na głównym pasku narzędzi programu.

Gdy mamy do czynienia z bardziej skomplikowanymi kryteriami, stosujemy Filtrowanie zaawansowane. Klikamy Rekordy, Filtr, Filtrowanie/sortowanie zaawansowane. Otworzy się okno Filtr, które składa się z dwóch części.  W górnej znajduje się okienko z wyszczególnionymi polami tabeli, w dolnej - tabela definiująca filtrowanie. W każdej kolumnie opisujemy osobne kryterium. Rozwijamy najpierw listę Pole i wybieramy, według jakiej danej filtrujemy tabelę (w powyżej pisanym przypadku będzie to Nazwisko). Następnie w komórkach Kryteria i lub wpisujemy warunki, jakie powinien spełniać wpis. Musimy pamiętać, że między kolumnami stoi znak "i". Oznacza to, że po przefiltrowaniu ujrzymy tylko te wpisy, które spełniają wszystkie kryteria (tzn. kryteria umieszczone we wszystkich kolumnach). Pole Sortuj pozwala określić kolejność wyświetlania przefiltrowanych danych (dostępne opcje to: Rosnąco, Malejąco i bez sortowania) Jeśli filtrujemy bez sortowania, nie ma znaczenia kolejność wypisywania kryteriów. W przeciwnym razie program posortuje dane najpierw według pierwszej z lewej kolumny, w którym zaznaczyliśmy sposób sortowania (Rosnąco lub Malejąco). Gdy w tej kolumnie znajda się dwa (lub więcej) takie same wpisy, wówczas zostaną one ułożone w odpowiedniej kolejności wg najbliższej kolumny z prawej strony, w której zaznaczyliśmy sortowanie.

W przypadku danych liczbowych możemy używać operatorów "<", ">", "=","<="(mniejsze lub równe), ">=" (większe lub równe). Pamiętajmy jednak, że formatem takiego pola musi być Liczba.

O wiele wygodniejsze jest filtrowanie formularza, ze względu na jego czytelność. Otwieramy formularz i klikamy odpowiednie jego pole prawym przyciskiem myszy. Rozwijamy w ten sposób podręczny pasek narzędzi, który zawiera podstawowe funkcje filtrowania. Działają one identycznie, jak podczas filtrowania tabeli.   

Tworzenie filtrów jest proste, ale kiedy chcemy zapisać taka wybiórczą tabelę, bardziej przydatne stają się kwerendy, które można tworzyć zarówno w widoku projektu, jak i za pomocą kreatora. W tym celu przechodzimy do zakładki Kwerendy okna bazy danych, a następnie klikamy dwukrotnie polecenie Utwórz kwerendę za pomocą kreatora. Narzędzie do tworzenia kwerend bardzo przypomina kreatora formularzy.

Klikamy Dalej, nadajemy tytuł kwerendzie oraz zaznaczamy, czy chcemy jeszcze wprowadzić zmiany do projektu kwerendy. Jeśli zaznaczymy Modyfikuj projekt kwerendy, pokaże się okno widoku projektu utworzonej przez nas kwerendy.

Tworzenie kwerend w widoku projektu jest równie proste. Klikamy dwukrotnie Utwórz kwerendę w widoku projektu. Pojawi się okno kwerendy oraz okienko dialogowe Pokazywanie tabeli. To ostatnie zawiera trzy zakładki: Tabele, Kwerendy oraz Obie. Wybieramy odpowiednia z nich, następnie zaznaczamy nazwę odpowiedniej tabeli (lub innej kwerendy, na podstawie której tworzymy drugą) i klikamy Dodaj, zamykamy okno klawiszem Zamknij. Zauważmy,  że okno projektu kwerendy bardzo przypomina widok projektu filtru. Znajduję się tutaj te same pola: Pole, Sortuj oraz Kryteria, które obsługujemy w identyczny sposób jak w przypadku filtru. Dodatkowo pojawia się  pole Tabela (wskazujemy w nim nazwę tabeli, z której wybieramy Pole) oraz pole Pokaż z małym kwadracikiem w środku. Jeśli jest odznaczone, będzie ono widoczne w kwerendzie.

Czasami chcemy zamieścić w kwerendzie komórkę, której nie ma w żadnej z tabel, ale można ją utworzyć na podstawie juz istniejących pól (na przykład mając datę urodzenia chcemy wyświetlić aktualny wiek). W tym celu stosujemy Konstruktora wyrażeń. Klikamy prawym przyciskiem myszy wolną kolumnę widoku projektu kwerendy i z podręcznego paska zadań wybieramy Konstruuj. Pokaże się okno dialogowe. W górnej jego części wpiszemy  formułę. Poniżej widzimy rząd przycisków, służących do konstruowania wyrażeń. W dolnej części widzimy trzy pola, z których wybieramy wartości i funkcje. W naszym przypadku (chcemy wyświetlić wiek) musimy odjąć rok urodzenia osoby od roku, który mamy dzisiaj. Funkcja podającą rok na podstawie daty jest Year(). Aby ją znaleźć w lewym dolnym polu rozwijamy folder Funkcje i klikamy Funkcje wbudowane. Ze środkowego pola wybieramy Data/Godzina, następnie w lewym klikamy Year. W polu w górnej części okna powinien pokazać się napis Year(<<number>>). Teraz klikamy klawisz "-" i jeszcze raz wybieramy Year. W miejsce wyrażenia <<number>> musimy wpisać datę (w Accessie data jest przechowywana jako liczba dni, stąd określenie "number"). Datę dzisiejszą określa funkcja Now, która znajduje się również w zbiorze Data/Godzina.

Aby znaleźć datę urodzenia, która znajduje się w tabeli Adresy, rozwijamy folder Tabele w lewym dolnym polu okna i klikamy nazwę tabeli (Adresy). W środkowym polu pojawi się lista pól, z których wybieramy Data Urodzenia. Klikamy przycisk OK, a następnie naciskamy Enter, aby zatwierdzić funkcję opisującą nowe pole kwerendy.

Musimy jeszcze nadać nazwę nowemu polu, w przeciwnym razie będzie nią nazwa domyślna Wyr1 (Wyr2, Wyr3...). W naszym przypadku w miejsce "Wyr1" wpisujemy "Wiek" i  zatwierdzamy klawiszem Enter.

Jeżeli teraz będziemy chcieli utworzyć nową kwerendę na podstawie poprzedniej oraz tabeli Adresy, musimy zaznaczyć związki między nimi. Aby to zrobić trzeba tworzyć kwerendę w widoku projektu. Po wyborze obu obiektów (tabela Adresy i Kwerenda1), zaznaczamy nazwę Imię w okienku Adresy i z wciśniętym lewym klawiszem myszy przeciągamy kursor na nazwę Imię w okienku Kwerenda1. Pomiędzy nimi powinna pokazać się cienka czarna linia. Podobnie postępujemy ze wszystkimi wspólnymi polami.

W Accessie mamy możliwość prostego aktualizowania danych za pomocą tzw. kwerend funkcjonalnych. Najpierw tworzymy kwerendę wybierającą, np. za pomocą kreatora. Następnie otwieramy ją w widoku projektu i wybieramy z głównego paska zadań Kwerenda, Kwerenda aktualizująca. W dolnej sekcji okna widoku projektu kwerendy aktualizującej widzimy te same pola, co w przypadku kwerendy wybierającej - Pole, Tabela oraz Kryteria, które wypełniamy w znany nam juz sposób. W komórce Kryteria umieszczamy warunek, który muszą spełniać aktualizowane przez nas pola. Następnie klikamy prawym przyciskiem myszy komórkę Aktualizacja do i wybieramy opcję Konstruuj z podręcznego paska narzędzi, który się w  tej chwili pokaże.

Posługując się zmiennymi w dolnej części okna dialogowego oraz znakami "+", "-", "*", "\" zapisujemy działanie aktualizujące dane w tabeli i zatwierdzamy klikając OK.

Samo utworzenia kwerendy nie spowodowało aktualizacji. Aby tego dokonać, należy dwukrotnie kliknąć jej nazwę w oknie bazy danych. Pojawi się wówczas ostrzeżenie dotyczące nieodwracalności wprowadzonych przez nas zmian i ilości aktualizowanych wierszy tabeli. Z tego typu obiektów możemy korzystać wiele razy. Każde uruchomienie kwerendy aktualizującej wprowadzi nowe zmiany w bazie danych.

W podobny sposób tworzymy kwerendy usuwające. Również otwieramy w widoku projektu kwerendę wybierającą, następnie klikamy Kwerenda, Kwerenda usuwająca. Komórki Pola, Tabela oraz Kryteria wypełniamy z znany nam już sposób.