---
# System prepended metadata

title: Microsoft Access

---

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

---
