Techniki ratujące życie na najtrudniejszych zadaniach. Przestań siłować się z jednym wielkim zapytaniem – zacznij myśleć kaskadowo.
Wstęp: Dziel i Rządź na Arkuszu
Zadania z bazy danych za 4 lub 5 punktów są projektowane tak, aby przytłoczyć Cię ilością warunków. "Podaj imię i nazwisko klienta, który w 2024 roku kupił najwięcej produktów z kategorii X, ale tylko w miesiącach letnich". Wielu maturzystów próbuje to wszystko upchnąć w jednej, gigantycznej siatce projektowej. To prosta droga do błędu i zera punktów. Prawdziwa strategia maturalna opiera się na kaskadach – budowaniu małych, bezpiecznych klocków, z których na końcu układasz odpowiedź.
🗺️ Spis treści: Taktyki Zaawansowane
W Accessie istnieje genialny mechanizm: kwerenda może być źródłem danych dla innej kwerendy, dokładnie tak samo jak zwykła tabela. To oznacza, że nie musisz rozwiązywać zadania w jednym kroku. Możesz zrobić Prostą Kwerendę A, zapisać ją, a potem użyć jej wyniku jako fundamentu dla Kwerendy B. To technika kaskadowa (Krok po kroku).
🌊 Workflow Kaskadowy na konkretnym zadaniu
ID_Klienta i Kwota.Zad_5_1_pomocnicza i zamykasz ją. Masz teraz listę wszystkich klientów i ich łącznych wydatków.Zad_5_1_pomocnicza oraz tabelę Klienci (żeby mieć imię i nazwisko).ID_Klienta.Kwerenda_5a, Kwerenda_5b), myśląc, że egzaminator uzna to za bałagan. To absolutny mit!Przykład: "Dla każdej klasy oblicz śorangenią frekwencję, a następnie podaj, jaka jest najwyższa śorangenia w szkole." W Accessie nie da się w jednym kroku zgrupować klas i wyciągnąć Max ze Śorangeniej (program zgłosi błąd zagnieżdżenia funkcji agregujących). Musisz zrobić Kwerendę 1 (Liczącą śorangenią dla każdej klasy oddzielnie), zapisać ją, a potem zrobić Kwerendę 2, która z Kwerendy 1 po prostu wyciągnie Max.
Baza danych widzi datę 2024-05-14 jako spójną całość. Tymczasem na maturze zadania niemal zawsze proszą o rozbicie jej na atomy: "Zlicz transakcje wykonane tylko w miesiącach wakacyjnych (lipiec, sierpień)" albo "Podaj zysk dla każdego roku osobno". Aby odpowiedzieć na te pytania, musisz użyć wbudowanych funkcji wyciągających, które działają jak chirurgiczny skalpel.
📅 Święta Trójca Dat w Accessie
Wynik dla 2026-04-15 ➡️ 2026
Wynik dla 2026-04-15 ➡️ 4
Wynik dla 2026-04-15 ➡️ 15
Dwa Sposoby Ataku na Datę (Metody CKE)
#, a NIE cudzysłowem ". Zapis "2023-01-01" to zwykły tekst i baza zignoruje go przy nierównościach (>, <). Zawsze używaj #!Nie musisz pisać twardych dat dla każdego roku osobno. Tworzysz nowe pole obliczeniowe: LetniMiesiac: Month([Data]). Ustawiasz mu opcję Gdzie (odznacza się "Pokaż"), a w Kryteriach wpisujesz operator IN (7; 8). Baza wyciągnie tylko siódmy i ósmy miesiąc niezależnie od tego, czy był to rok 2010 czy 2026. Szybko, czysto i bezbłędnie.
Jednym z najbardziej zwodniczych zadań na maturze jest polecenie: "Podaj imiona i nazwiska klientów, którzy nigdy niczego nie wypożyczyli". Jeśli po prostu wrzucisz do siatki projektowej tabelę Klienci oraz Wypożyczenia i spróbujesz użyć operatora "Is Null" lub "0", kwerenda nie zwróci absolutnie niczego. Dlaczego? Ponieważ domyślnie Access pokazuje tylko te wiersze, które mają swoje odpowiedniki w obu tabelach. Musimy brutalnie złamać tę zasadę.
🛠️ Metoda Ręczna: Złączenia Zewnętrzne (LEFT JOIN)
W górnej części siatki projektowej widzisz dwie tabele połączone czarną linią. Kliknij tę linię dwukrotnie lewym przyciskiem myszy. Otworzy się okno "Właściwości sprzężenia".
Domyślnie zaznaczona jest opcja 1 (tylko pasujące wiersze). Zmień ją na opcję, która mówi: "Obejmuje WSZYSTKIE rekordy z tabeli Klienci i tylko te rekordy z tabeli Wypozyczenia, dla których sprzężone pola są równe". Zobaczysz, że linia relacji zyskała strzałkę.
Teraz zrzuć na dół do siatki ID_wypozyczenia z tej drugiej tabeli. W wierszu Kryteria pod nim wpisz Is Null. Z racji, że klient nic nie kupił, jego numer wypożyczenia to absolutna pustka. Wynikiem kwerendy będzie poszukiwana lista!
Klienci).Wypozyczenia).ID_klienta <=> ID_klienta).Is Null. Musisz go nałożyć na Klucz z tej tabeli, w której danych brakuje (czyli zazwyczaj na Klucz Obcy z tabeli zdarzeń). Jeśli nałożysz Is Null na ID_klienta z tabeli Klienci, system wyrzuci błąd lub zero rekordów – ponieważ w tabeli Klienci każdy klient musi mieć przecież swoje ID (Klucz Podstawowy nigdy nie jest pusty!). "Pustka" istnieje tylko w historii transakcji!