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" !.
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ń).
|
Uwaga: zarówno formularz jak i kontrolki są obiektami (podobnie tabele).
Okienko formularza może być otwarte w 3 trybach:
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 ...
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.
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).