Zamiana ERD na relacyjną b.d. - ciąg dalszy.

Reprezentacja związków "jeden do jednego":

Diagramy "z dziedziczeniem":

Inna metoda: wszystkie pola umieścić w encji "film" i używać wartości NULL !.

Dygresja: niektóre DBMS posiadają bardziej wyrafinowane mechanizmy dziedziczenia przy definiowaniu tabel: patrz tutaj (Postgres; polecenie SQLa "CREATE TABLE")

Zadanie 6


Zamień poniższy diagram ERD na relacyjną bazę danych:

 

Zadanie 6a (*)


Zamień poniższy diagram ERD na relacyjną bazę danych:

Uwaga: można zamieniać ERD --> relacyjna b.d. całkiem "mechanicznie"; dzięki temu poradzimy sobie nawet z bardzo złożonymi diagramami które "nie mieszczą się w głowie" !.

 

Access/ formularze.

Formularze ułatwiają wprowadzanie/oglądanie/modyfikowanie danych ...

Jest możliwe wprowadzanie danych równocześnie do dwóch (lub więcej) tabel
(np wprowadzanie klientów i dla każdego klienta wprowadzanie jego zamówień).

  • formularz jest zawsze oparty na jednej tabeli lub kwerendzie (jest związany z tabelą lub kwerendą)
  • formularz zawiera kontrolki (=formanty) które są związane z polami tabeli na której formularz jest oparty i pokazują wartości pól bieżącego rekordu tej tabeli

Uwaga: zarówno formularz jak i kontrolki są obiektami (podobnie tabele).

Okienko formularza może być otwarte w 3 trybach:

Tryb "Widok Formularz":

Tryb "Widok projektu":

 

Zadanie 7


(Formularze do wprowadzania danych - przy pomocy kreatora formularzy)
Utwórz prosty formularz do wprowadzania towarów do tabeli Towary (jeśli nie masz własnej magazynowej bazy danych to użyj: bd02.mdb).

Powinniśmy otrzymać coś takiego:

Uwaga: w zadaniach 7 i 7a będą widoczne techniczne pola (np [id towaru]) ale na tym etapie jest to przydatne.
Spróbuj przełączać się między widokami "Formularz" i "arkusz danych" guzikiem "Widok".

Zadanie 7a


W powyższym formularzu zawsze jest widoczny jeden rekord. Aby to zmienić:
    1. przejdź do trybu projektowania formularza (przełączanie guzikiem "Widok")
    2. otwórz okienko "Właściwości" dla całego formularza
    3. znajdź właściwość o nazwie Widok domyślny (zakładka "Format")
    4. nadaj jej wartość "Formularze ciągłe"
    5. wróć do trybu "Widok Formularz" i powiększ trochę okno formularza ...

 

Model formularz/ podformularz.

wyjaśnię to na przykładzie ...

Przypuśćmy że mamy formularz Klienci oparty na tabeli Klienci;
chcemy na tym formularzu przeglądać zamówienia bieżącego klienta
(ale tylko bieżącego klienta - nie wszystkie !).

Można to rozwiązać umieszczając na formularzu Klienci
podformularz oparty na tabeli Zamówienia (patrz przykład);
we właściwościach tego podformularza należy ustawić:
    Podrzędne pole łączące = id klienta (pole w tabeli Zamowienia; "klucz" obcy)
    Nadrzędne pole łączące = id klienta (pole w tabeli Klienci)

W podformularzu możemy zobaczyć wyłącznie rekordy tabeli Zamowienia,
dla których jest spełniony warunek:
    Podrzędne pole łączące = Nadrzędne pole łączące
czyli
    Zamowienia.[id klienta] = Klienci.[id klienta]
gdzie Klienci.[id klienta] dotyczy rekordu bieżącego w formularzu Klienci.
 

Kontrolka "pole kombi".

Jest to kontrolka którą umieszcza się na formularzu i która służy (podobnie jak inne kontrolki) do wprowadzania danych do pola tabeli na której formularz jest oparty.
Kontrolka kombi pozwala wybrać wartość z listy przechowywanej w innej tabeli !.
W tym przykładzie pole kombi służy do wybierania towaru w zamówieniu bieżącego klienta.

Jak używać pola kombi? patrz wskazówki do poniższego zadania.

 

Zadanie 8


(Formularze do wprowadzania klientów i ich zamówień)

Powinno to wyglądać tak.

Wskazówki do zadania 8:

Jak utworzyć podformularz do wprowadzania zamówień bieżącego klienta ?

1. na początku należy przygotować formularz oparty na tabeli Zamówienia;
2. potem należy przejść do tworzenia formularza opartego na tabeli Klienci;
3. przenieść formularz zamówień (myszą) na formularz klienta (oczywiście w trybie projektowania formularza) - stanie się on podformularzem !;
4. w trybie projektowania formularza klientów wybrać okienko podformularza tak aby w oknie "Właściwości" pojawił się napis "Podformularz/Podraport ...", a następnie ustawić:
        Podrzędne pole łączące = id klienta (to jest pole w tabeli Zamówienia; "klucz obcy")
        Nadrzędne pole łączące = id klienta (to jest pole w tabeli Klienci)
--> żeby dopasowac rozmiar kontrolki podformularz do rozmiaru podformularza uzyj menu kontekstowe | Rozmiar | Dopasuj;
--> jak przełączać widok (Formularz/arkusz danych) w podformularzu ? Użyj menu Widok | Arkusz danych podformularza);

Jak utworzyć pole kombi wybierające dane z tabeli ?

--> co chcemy osiągnąć ? [id towaru] w tabeli Zamowienia ma byc wypełniany na podstawie nazwy towaru z tabeli Towary, wybranej z menu kontrolki kombi
1. należy dodać kontrolkę kombi do formularza Zamówienia (w trybie projektowania formularza zamówień oczywiście; kontrolkę wybrać z tzw przybornika)
2. ustawić we "Właściwościach" kontrolki kombi:
        Źródło formantu = id towaru
            pole tabeli Zamówienia które jest związane z naszym polem kombi
        Typ źródła wierszy = Tabela/Kwerenda
        Źródło wierszy = Towary
            skąd kontrolka kombi czerpie dane
        Kolumna związana = 3
            określa które pole tabeli Towary będzie wpisywane do pola [id towaru] w tabeli Zamówienia
            Skąd wiadomo że akurat 3 kolumna ma być "związana" ?
                najlepiej na początku nie zerować szerokości kolumn, zobaczyć je wszystkie,
                i stąd wywnioskować która kolumna powinna być związana !

        Liczba kolumn = 3
            liczba kolumn tabeli Towary
        Szerokości kolumn = ;0;0
            ukrywamy pola tabeli Towary które nie powinny być pokazywane

(Koniec wskazówek do zadania 8)


Uwaga: Tworzenie wygodnych i przemyślanych formularzy do wprowadzania danych jest jednym z trudniejszych zadań jakie stoją przed twórcą aplikacji z bazą danych ... (bo model form/podform nie zawsze nadaje się do naszego problemu).