## 1. Czym jest Microsoft Access? - **Microsoft Access** – system baz danych od Microsoftu, część pakietu Office. - Umożliwia tworzenie tabel, formularzy, raportów i zapytań SQL. - Idealny dla małych projektów i nauki baz danych. - Działa lokalnie – nie wymaga serwera. ## 2. Microsoft Access vs phpMyAdmin | Cecha | MS Access | phpMyAdmin | | --------------- | ----------------------------------- | ------------------------------------------------------ | | Typ systemu | Lokalna baza danych (na komputerze) | Narzędzie do zarządzania bazą MySQL przez przeglądarkę | | Interfejs | Graficzny (formularze, raporty) | Webowy (formularze HTML, SQL ręcznie) | | Język zapytań | Access SQL (trochę inna składnia) | MySQL | | Wymaga serwera? | Nie | Tak (Apache + MySQL) | | Użycie | Małe projekty, nauka | Strony internetowe, aplikacje online | ## 3. Maski wprowadzania | Znak | Znaczenie | Przykład | Uwagi | | ----- | ------------------------------------------------------------- | -------------------- | --------------------------------------------- | | 0 | Cyfra wymagana (0–9) | `(000) 000-000` | Musi być wpisana liczba | | 9 | Cyfra opcjonalna | `000-0009` | Może być pusta | | # | Cyfra, spacja, + lub – | `###` | Przydatne dla wartości liczbowych z znakami | | L | Litera wymagana (A–Z) | `>LLL000000` | Nie można wpisać cyfry ani spacji | | ? | Litera opcjonalna | `??00` | Może być puste | | A | Litera lub cyfra wymagana | `>AAA-000` | Alfanumeryczne | | a | Litera lub cyfra opcjonalna | `aaa-999` | Alfanumeryczne, może być puste | | & | Dowolny znak (litera, cyfra, symbol) – wymagany | `&&&&&` | Wszystko dozwolone | | C | Dowolny znak – opcjonalny | `CCCC` | Puste dozwolone | | > | Wszystkie litery po tym znaku będą **wielkie** | `>LLL000000` | Przed maską lub w dowolnym miejscu | | < | Wszystkie litery po tym znaku będą **małe** | `<LLL000000` | | | ! | Wymusza wpisywanie danych od **lewej strony** pola | `!0000-0000` | Domyślnie Access uzupełnia od prawej | | \ | Powoduje, że następny znak jest **dosłowny** | `00\-000` → „12-345” | Używane do wstawiania np. myślnika lub spacji | **Przykłady:** | Dane | Maska | Wymusza wpisanie | Efekt | | ---------------- | --------------- | ------------------------- | ----------------------- | | Numer dowodu | `>LLL000000` | 3 litery + 6 cyfr | ABC123456 | | Kod pocztowy | `00\-000` | 2 cyfry, myślnik, 3 cyfry | 12-345 | | PESEL | `00000000000` | 11 cyfr | 99010112345 | | Numer telefonu | `(000) 000-000` | (123) 456-789 | | | Rejestracja auta | `>LLL\ 00000` | np. „POA 12345” | Litery + spacja + cyfry | ## 4. Operator LIKE Operator **`LIKE`** jest operatorem specjalnym używanym do **sprawdzania zgodności wartości tekstowej z określonym wzorcem** Jest on stosowany w kryteriach filtrowania, w filtrach zaawansowanych oraz w klauzuli `WHERE` instrukcji SQL. ### 4.1. Działanie `LIKE` w MS Access (Kwerendy i Filtry) W programie **Microsoft Access** operator `LIKE` wymaga użycia określonych **symboli wieloznacznych** we wzorcu, aby móc dopasować ciągi znaków. | Symbol Wieloznaczny | Znaczenie w MS Access | Przykład Użycia | Wynik | | :--- | :--- | :--- | :--- | | **`*` (gwiazdka)** | Oznacza **dowolną liczbę dowolnych symboli**. | `LIKE "D*"` | Wartość tekstowa zaczyna się od litery „D”. | | **`?` (znak zapytania)** | Oznacza **dowolny pojedynczy znak**. | `LIKE "Biał?"` | Wartość ma dokładnie 5 liter, z czego pierwsze 4 to „Biał”, a ostatnia jest dowolna. | | **`[]` (nawiasy kwadratowe)** | Oznaczają **dowolny pojedynczy znak** z określonego przedziału (np. `[Litera1–Litera2]`) lub zbioru. | `LIKE "[A-D]*"` | Wartość tekstowa zaczyna się od litery „A”, „B”, „C” lub „D”. | **Przykłady z użyciem `LIKE` w MS Access (w kryteriach):** * Aby wybrać rekordy, których nazwisko zaczyna się na literę „K” (lub "M"): * W widoku projektu kwerendy, w wierszu **Kryteria** dla pola *Nazwisko*, wpisuje się: `K* Or M*`. Program automatycznie uzupełni to wyrażenie. * W SQL zapisuje się to jako: `WHERE Nazwisko LIKE "K*"`. * Aby znaleźć wartości, które **nie** pasują do wzorca, używa się operatora **`NOT LIKE`**. Na przykład: `Nazwisko NOT LIKE "*z"` znajdzie nazwiska, które nie kończą się na literę "z". ### 4.2. Działanie `LIKE` w **MySQL** W **MySQL** zasada działania operatora `LIKE` jest podobna do tej w MS Access, ale używa innych symboli wieloznacznych: | Symbol Wieloznaczny | Znaczenie w MySQL | Przykład Użycia | Wynik | | :---------------------------- | :-------------------------------------------------------------------------------- | :-------------- | :---------------------------------------------------------------------------------------- | | **`%` (procent)** | Oznacza **dowolny ciąg znaków** (od zera do dowolnej liczby znaków). | `LIKE "D%"` | Wartość tekstowa zaczyna się od litery „D”. | | **`_` (podkreślnik)** | Oznacza **dowolny pojedynczy znak**. | `LIKE "Biał_"` | Wartość ma dokładnie 5 znaków, z czego pierwsze 4 to „Biał”, a ostatni znak jest dowolny. | | **`[]` (nawiasy kwadratowe)** | Oznaczają **dowolny pojedynczy znak** z określonego przedziału lub zbioru znaków. | `LIKE "[A-D]%"` | Wartość tekstowa zaczyna się od jednej z liter „A”, „B”, „C” lub „D”. | Warto zauważyć, że **MySQL** używa symbolu `%` zamiast `*` (w MS Access) i `_` zamiast `?`. Dzięki temu istnieją pewne różnice w składni między tymi dwoma systemami bazodanowymi, choć zasada działania pozostaje bardzo podobna. ### 4.3. Porównanie operatora `LIKE` w MS Access, MySQL (phpMyAdmin) i T-SQL (MS SQL Server) | **Symbol Wieloznaczny** | **Znaczenie** | **MS Access** | **MySQL** | **T-SQL** | | ----------------------------------------- | ------------------------------------------------------------------------------ | ------------- | --------- | --------- | | **`*` (gwiazdka)** | Dowolna liczba dowolnych znaków | Tak | Nie | Nie | | **`%` (procent)** | Dowolna liczba dowolnych znaków | Nie | Tak | Tak | | **`?` (znak zapytania)** | Jeden dowolny znak | Tak | Nie | Nie | | **`_` (podkreślnik)** | Jeden dowolny znak | Nie | Tak | Tak | | **`[]` (nawiasy kwadratowe)** | Jeden dowolny znak z określonego zbioru lub przedziału | Tak | Tak | Tak | | **`[^]` (nawiasy kwadratowe z daszkiem)** | Jeden dowolny znak, który nie znajduje się w określonym zbiorze lub przedziale | Nie | Tak | Tak | --- ## 5. Formularze ### 5.1. Definicja i rola Formularz to podstawowy element interfejsu użytkownika bazy danych. Służy do: * wprowadzania danych, * edycji danych, * przeglądania i wyświetlania danych. Formularz może zawierać **podformularze**, a każdy z nich musi być oparty na **tabeli lub kwerendzie**. --- ### 5.2. Widoki formularza 1. **Widok formularza (Form View)** – widok użytkownika; służy do wprowadzania i przeglądania danych. 2. **Widok układu (Layout View)** – umożliwia szybkie zmiany wyglądu pól i etykiet. 3. **Widok projektu (Design View)** – pokazuje strukturę formularza i daje dostęp do wszystkich narzędzi projektowych. Przełączanie między widokami odbywa się przez ikonę **Widok** w zakładce **Narzędzia główne**. --- ### 5.3. Tworzenie formularza 1. W **Okienku nawigacji** zaznacz tabelę (np. `tOsoba`). 2. Na wstążce **Tworzenie → Formularz**. 3. Formularz zostanie automatycznie utworzony w **Widoku układu**. 4. Zapisz formularz, nadając nazwę, np. `fOsoba`. --- ### 5.4. Struktura formularza (Widok projektu) Formularz składa się z trzech sekcji: * **Nagłówek formularza (Form Header)** – zawiera tytuł, logo, datę itp. * **Szczegóły (Detail Section)** – wyświetlanie i edycja danych. * **Stopka formularza (Form Footer)** – np. imię i nazwisko projektanta. Każdą sekcję można edytować osobno lub dodać/usuwać w razie potrzeby. --- ### 5.5. Formanty (kontrolki) Formularz składa się z formantów, które zwiększają jego funkcjonalność. #### Rodzaje formantów: * **Powiązane** – wyświetlają dane z pól tabel (np. pola tekstowe). * **Przykład**: **Pole tekstowe** powiązane z polem `Imię` w tabeli: ```access =[Imię] ``` *(wyświetla imię klienta z bazy danych)*. * **Niepowiązane** – etykiety, przyciski, linie, prostokąty itp. * **Przykład**: **Etykieta** wyświetlająca stały tekst: ```access "Witaj w aplikacji!" ``` *(wyświetla powitanie użytkownika)*. * **Obliczeniowe** – obliczają wartości na podstawie wyrażeń. * **Przykład**: **Obliczanie długości tekstu** w polu `Adres`: ```access =Len([Adres]) ``` *(oblicza liczbę znaków w polu `Adres`)*. Każdy formant ma **Arkusz właściwości**, w którym można ustawić: format, źródło danych, zdarzenia (np. *Przy kliknięciu*) i inne opcje. --- ## 6. Nawigacja i wprowadzanie danych * **Pasek nawigacji** – umożliwia przechodzenie między rekordami. * **Wprowadzanie danych** – odbywa się w **Widoku formularza**; zmiana rekordu automatycznie zapisuje dane. Formularze pomagają uniknąć błędów przy bezpośrednim wpisywaniu danych do tabel. --- ## 7. Rodzaje formularzy * **Kolumnowy** – wyświetla jeden rekord. * **Dzielony** – łączy widok formularza i arkusza danych (zsynchronizowane). * **Z podformularzem** – wyświetla dane z relacyjnych tabel (np. `tOsoba` i `tZakwaterowanie`). * **Nawigacyjny** – umożliwia tworzenie kart/zakładek, np. jako okno główne aplikacji. Formularze mogą bazować na **tabelach lub kwerendach**. --- ## 8. Formanty specjalne * **Pole kombi (Combo Box)** – pobiera wartości z innej tabeli lub kwerendy. * **Formant obrazu (Image Control)** – wyświetla pliki graficzne. * **Formant załącznika (Attachment Control)** – przechowuje pliki (do 2 GB). --- ## Podsumowanie Formularze w **Microsoft Access**: * umożliwiają wygodne wprowadzanie i przeglądanie danych, * stanowią podstawę interfejsu użytkownika, * są kluczowym elementem aplikacji bazodanowych obok raportów i makr. ---