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.
🧮 Spis treści: Pola Obliczeniowe
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
+, -, *, /) i odwołujesz się do innych kolumn z Twojej bazy.[Cena].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.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.
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
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 urodzenia | Miesiac: Mid([PESEL]; 3; 2) | Miesiąc siedzi na pozycji 3 i 4. Wchodzimy na start=3 i wycinamy dwa znaki. |
| Cyfra Płci | Plec: Mid([PESEL]; 10; 1) | Przedostatnia (dziesiąta) cyfra w PESELu określa płeć. Parzysta to kobieta, nieparzysta to mężczyzna. |
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 )
[Wiek] >= 18 albo [Miasto] = "Warszawa"."Pełnoletni") lub wzór matematyczny.0).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 Arkusza | Wyrażenie w Siatce | Wyjaś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. |
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."