Dział III

Bazy Danych: Pola Obliczeniowe

Tworzenie nowych kolumn na podstawie istniejących danych. Matematyka i wyrażenia bezpośorangenio w siatce projektowej.

Wstęp: Baza danych to też potężny kalkulator

Często na egzaminie maturalnym w zaimportowanych plikach nie ma odpowiedzi podanej na tacy. Masz kolumnę z ceną netto, a CKE pyta o brutto. Masz imię w jednej kolumnie i nazwisko w drugiej, a system wymaga pełnej nazwy. Rozwiązaniem nie jest eksport do Excela – wszystko to musisz policzyć w locie, tworząc Pola Obliczeniowe bezpośorangenio w siatce projektowej Accessa.

1Składnia: Złota zasada dwukropka i nawiasów

Aby stworzyć pole obliczeniowe, szukasz w siatce projektowej pierwszej całkowicie pustej kolumny po prawej stronie. Klikasz w najwyższy wiersz (tam, gdzie normalnie wpada nazwa kolumny z tabeli) i zaczynasz pisać swoje własne wyrażenie. Musi ono zawsze składać się z dwóch części przedzielonych dwukropkiem.

🔬 Anatomia Wyrażenia Obliczeniowego

CenaBrutto
:
[CenaNetto] * 1,23
Lewa strona (Twój alias)
To, co wpiszesz przed dwukropkiem, stanie się nagłówkiem Twojej nowej kolumny w wynikach kwerendy. Możesz tu wpisać dowolną własną nazwę (np. Podatek, Zysk, CenaBrutto). Zastępuje to słowo "AS" znane z czystego kodu SQL.
Prawa strona (Matematyka)
To część właściwa, w której budujesz logikę. Używasz tu klasycznych znaków matematycznych (+, -, *, /) i odwołujesz się do innych kolumn z Twojej bazy.
🚧
Nawiasy Kwadratowe to Twoje Bezpieczeństwo
Gdy piszesz wyrażenie i chcesz odwołać się do istniejącej kolumny (np. Cena), zawsze obejmuj jej nazwę nawiasami kwadratowymi: [Cena].
Dlaczego to takie ważne na egzaminie? Jeśli nazwa kolumny w pliku z CKE składa się z dwóch członów oddzielonych spacją (np. Rok wydania), wpisanie tego bez nawiasów sprawi, że Access zgłupieje – potraktuje "Rok" i "wydania" jako dwie osobne funkcje i wyrzuci błąd składni. Nawias [Rok wydania] scala to w jeden, bezpieczny klocek.
💀
Błąd: "Wprowadź wartość parametru"
Uruchamiasz kwerendę z polem obliczeniowym, a Access zamiast pokazać wynik, blokuje ekran szarym okienkiem z napisem: "Wprowadź wartość parametru: CenaNeto".

Co to oznacza? Oznacza to, że zrobiłeś literówkę. Napisałeś [CenaNeto] (jedno 't'), ale w Twojej tabeli kolumna nazywa się CenaNetto (przez dwa 't'). Skoro Access nie umie znaleźć kolumny "CenaNeto", myśli, że to magiczna zmienna z kosmosu i prosi, żebyś mu ręcznie podał jej wartość. Zamiast wpisywać cokolwiek w to okienko, kliknij Anuluj, wróć do Widoku Projektu i popraw literówkę w nazwie kolumny.

2Funkcje Tekstowe: Operacje na żywym organizmie

Na maturze rzadko dostajesz wszystkie informacje podane na tacy. Egzaminatorzy uwielbiają ukrywać dane wewnątrz innych ciągów znaków. Aby wyciągnąć rok urodzenia z numeru PESEL, albo kod powiatu z numeru rejestracyjnego pojazdu (np. "WA" z "WA 12345"), musisz użyć narzędzi chirurgicznych – czyli funkcji tekstowych. Działają one niemal identycznie jak w Excelu.

✂️ Święta Czwórka Narzędzi Tekstowych

Left / Lewy
Odcinanie od początku
Zwraca określoną liczbę znaków, zaczynając od lewej strony wyrazu.
Wzór: Left([Kolumna]; ile_znaków)
Przykład: Left("Kraków"; 3) daje wynik "Kra".
Right / Prawy
Odcinanie od końca
Zwraca określoną liczbę znaków, ucinając słowo od prawej strony (od tyłu).
Wzór: Right([Kolumna]; ile_znaków)
Przykład: Right("Informatyka"; 4) daje wynik "tyka".
Mid / Fragment.Tekstu
Wycinanie ze środka (Najważniejsze!)
Królowa funkcji maturalnych. Pozwala wbić się w dowolne miejsce słowa i wyciągnąć dokładnie to, czego potrzebujesz. Wymaga podania trzech argumentów.
Wzór: Mid([Kolumna]; pozycja_startowa; ile_znaków)
Przykład: Mid("Warszawa"; 4; 2) wchodzi na 4 literę ('s') i pobiera stamtąd 2 znaki. Wynik to "sz".
⚠️
Bariera językowa (Przecinek vs Śorangenik)
Podczas tworzenia pól obliczeniowych w polskim Accessie, argumenty funkcji tekstowych musisz bezwzględnie oddzielać śorangenikiem (;). Jeśli spróbujesz użyć przecinka (,) jak w klasycznym kodowaniu SQL/VBA, Access natychmiast wywali błąd składni.

Dodatkowo program bardzo często w locie tłumaczy wpisane przez Ciebie słowo Mid na Fragment.Tekstu. Nie przejmuj się tym, to normalne zachowanie.

Maturalny Klasyk: Sekcja Zwłok numeru PESEL

CKE nie poda Ci wieku osoby. Poda Ci 11-cyfrowy PESEL i poprosi o wyliczenie lat albo określenie płci. Ta operacja jest tak powtarzalna, że każdy uczeń musi znać ją na pamięć.

Co chcesz uzyskać?Wpis w siatce (Wyrażenie)Dlaczego to działa?
Rok urodzenia (końcówka)RokUrodzenia: Left([PESEL]; 2)Dwie pierwsze cyfry PESELu to zawsze końcówka roku (np. "04" dla 2004r).
Miesiąc urodzeniaMiesiac: Mid([PESEL]; 3; 2)Miesiąc siedzi na pozycji 3 i 4. Wchodzimy na start=3 i wycinamy dwa znaki.
Cyfra PłciPlec: Mid([PESEL]; 10; 1)Przedostatnia (dziesiąta) cyfra w PESELu określa płeć. Parzysta to kobieta, nieparzysta to mężczyzna.
3Funkcja IIf() – Accessowe "JEŻELI"

W Excelu masz JEŻELI. W czystym kodzie SQL masz CASE WHEN. Natomiast w siatce projektowej Accessa króluje funkcja IIf (od angielskiego Immediate If). Pozwala ona wstrzyknąć logikę warunkową bezpośorangenio do nowej kolumny. Dzięki niej baza danych potrafi sama podjąć decyzję, co wyświetlić, na podstawie danych z innych komórek.

⚖️ Budowa funkcji warunkowej

NowaKolumna: IIf( Warunek ; Prawda ; Fałsz )

1. Warunek (Test)
Pytanie, na które baza musi odpowiedzieć "Tak" lub "Nie". Np. [Wiek] >= 18 albo [Miasto] = "Warszawa".
2. Prawda (Co jeśli Tak?)
Wartość, która wskoczy do komórki, jeśli warunek został spełniony. Może to być tekst w cudzysłowie (np. "Pełnoletni") lub wzór matematyczny.
3. Fałsz (Co jeśli Nie?)
Wartość awaryjna, podawana, gdy warunek nie został spełniony. Zawsze musisz ją podać, nawet jeśli ma to być wpisanie zera (0).
💀
Śmiertelna pułapka nazewnictwa (Brakujące "I")
Najczęstszy błąd maturzystów, powodujący okienko "Wprowadź wartość parametru", to wpisanie słowa If (przez jedno "I"). Funkcja w Accessie ma dwa "I" na początku (IIf). Jeśli o tym zapomnisz, program uzna, że wymyśliłeś nową kolumnę o nazwie "If" i poprosi o jej podanie.

Pamiętaj również, że w polskiej wersji Accessa argumenty oddzielasz śorangenikiem (;). Przecinek doprowadzi do błędu składni.

Maturalne Klasyki: Jak to wygląda na egzaminie?

Polecenie z ArkuszaWyrażenie w SiatceWyjaśnienie Mechaniki
"Jeśli zamówienie przekracza 500 zł, nadaj status VIP. W przeciwnym razie wpisz Standard."Status: IIf([Kwota]>500; "VIP"; "Standard")Podstawowe etykietowanie. Pamiętaj o cudzysłowach dla tekstów "VIP" i "Standard".
"Dla paczek o wadze powyżej 20 kg dolicz 50 zł opłaty. Lżejsze paczki bez dopłat."Oplata: IIf([Waga]>20; 50; 0)Liczby wpisujemy bez cudzysłowów. Wartość "Fałsz" to zero, aby nie zostawiać pustych pól.
"Policz zniżkę. Klienci ze stażem powyżej 5 lat dostają 10% rabatu od Ceny."Znizka: IIf([Staz]>5; [Cena]*0,1; 0)Zamiast suchego tekstu, w polu "Prawda" możemy wykonywać obliczenia na innych kolumnach.
🪆
Poziom Rozszerzony: Zagnieżdżone IIf() (Incepcja)
Czasami CKE podaje nie dwa, a trzy warunki (np. "powyżej 90 pkt to ocena BDB, od 50 do 89 to DST, a poniżej 50 to NDST"). W takiej sytuacji w miejsce argumentu "Fałsz" wstawiasz... kolejną, nową funkcję IIf().

Ocena: IIf([Punkty]>=90; "BDB"; IIf([Punkty]>=50; "DST"; "NDST"))

Jak to czyta Access? "Czy ma ponad 90 pkt? Jeśli tak, wpisz BDB i zakończ pracę. Jeśli nie, to odpal nową funkcję i sprawdź, czy ma chociaż 50 pkt. Jeśli tak, wpisz DST. Jeśli i to się nie udało, wpisz NDST."