## 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.
---