ZAJĘCIA III

Transkrypt

ZAJĘCIA III
ZAJĘCIA III
Zad. 1
Utwórz bazę danych wg załączonego schematu, określ klucze główne w poszczególnych tabelach oraz relacje
między tabelami.
Poszczególne pola powinny spełniać następujące warunki:
a) ustalić maskę wprowadzania dla atrybutów kod pocztowy, data_zlozenia_zam
b) dla każdego pola w poszczególnych tabelach ustalić wartość atrybutu Wymagane,
c) ustalić regułę poprawności wraz z odpowiednim komunikatem o błędzie dla następujących pól:
- ilosc: musi być większa od zera, tabela Zamowienie_Ksiazka,
- cena: musi być większa od zera, tabela Ksiazka,
- data_zlozenia_zam: nie może być późniejsza niż data dzisiejsza, tabela Zamowienie,
- data_realizacji_zam: nie może być późniejsza niż data dzisiejsza, tabela Zamowienie,
- tytul: powinien rozpoczynać się literą, tabela Ksiazka,
- oprawa: może przyjmować wartości: miękka, twarda
d) dla wybranych pól w tabelach określić wartości domyślne,
e) określić format wyświetlania dla pól:
- cena: walutowy,
- tytul: dużymi literami,
- imie: jeśli nie podano, to powinno wyświetlać się „Nieznane”,
- ilosc: jeśli nie podano, to powinno wyświetlać się „Brak danych”, jeśli jest równa 0, to nie
powinno się nic wyświetlać.
f) dla pól tytuł, nazwisko (autora i klienta) ustalić atrybut Indeksowane,
g) utworzyć indeks wielopolowy, w skład którego wchodzą pola tytuł oraz id_wydawcy.
Zad. 2
Dodaj do poszczególnych tabel rekordy.
POMOC
Reguły poprawności:
<>0
Należy wprowadzić wartość różną od zera.
0 Or >100
Wartość musi być równa 0 lub większa od 100.
Like "K???"
Wartość musi składać się z czterech znaków i zaczynać się
do litery K.
<#1/1/96#
Należy wprowadzić datę sprzed roku 1996.
>=#1/1/97# And <#1/1/98#
Należy wprowadzić datę z roku 1997.
StrComp(UCase([Nazwisko]), [Nazwisko],0) = 0
Dane w polu "Nazwisko" muszą zostać wprowadzone
przy użyciu wielkich liter.
Wprowadzanie wyrażenia sprawdzającego
Reguły poprawności zapisuje się w postaci wyrażeń.
np. (>=0,03 And <=0,2) Or 0
Można używać
- funkcji (np. Date() ),
- operatorów Like, In, Between...And...
? jeden znak na określonym miejscu * dowolny ciąg znaków
# pojedyncza cyfra, [a-k] dowolny znak z zakresu, [!a-k] dowolny znak spoza zakresu
Przykłady: Like “[a-z][a-z]#######” (dowód osobisty)
Operator In
- zawiera listę możliwych wartości dla pola, oddzielonych średnikami
np. In(1;1,5;3) lub In(“Warszawa”;”Kraków”;”Gdańsk”)
Operator Between... And...
- podaje możliwy zakres dla wartości pola
np. Between -5 and 5 lub Between #98-01-01# And #98-06-30#
Reguła poprawności dla tabeli
- ustawiana we właściwościach tabeli wówczas, gdy wartość jednego pola zależy od wartości innego (nie
można tego zrobić z poziomu pola)
np. [data_wyst]<=[data_sprzed]+7 (nazwy pól tabeli w nawiasach kwadratowych).
Maska wprowadzania:
Definicja maski wprowadzania może zawierać maksymalnie trzy sekcje rozdzielone średnikami; na przykład
(999) 000-0000!;0;" ".
Sekcja
Znaczenie
Pierwsza
Sama maska wprowadzania.
Druga
Określa, czy mają być przechowywane znaki literałowe.
0 - przechowuj znaki wraz z wprowadzonymi wartościami
1 lub pusta - przechowuj tylko znaki wprowadzone w puste miejsca
Trzecia
Znak wyświetlany zamiast pustego miejsca w masce wprowadzania. Można użyć
dowolnego znaku; Aby wyświetlana była spacja, należy wpisać " " (znak podwójnego
cudzysłowu, spacja, znak podwójnego cudzysłowu). Jeśli sekcja ta pozostanie pusta,
używany jest znak kreski poziomej ( _ ).
0
Cyfra (od 0 do 9, pozycja wymagana; znaki plus [+] i minus [-] nie są dozwolone).
9
Cyfra lub spacja (pozycja opcjonalna; znaki plus i minus nie są dozwolone).
#
Cyfra lub spacja (pozycja opcjonalna; puste miejsca konwertowane na spacje, znaki plus
i minus dozwolone).
L
Litera (od A do Z, pozycja wymagana).
?
Litera (od A do Z, pozycja opcjonalna).
A
Litera lub cyfra (pozycja wymagana).
a
Litera lub cyfra (pozycja opcjonalna).
&
Dowolny znak lub spacja (pozycja wymagana).
C
Dowolny znak lub spacja (pozycja opcjonalna).
.,:;-/
Dziesiętny symbol zastępczy oraz separatory tysięcy, daty i godziny. (Faktycznie
używany znak zależy od ustawień regionalnych określanych przez dwukrotne kliknięcie
ikony "Ustawienia regionalne" w Panelu sterowania systemu Windows.)
<
Powoduje, że wszystkie następujące po nim znaki są konwertowane na małe znaki.
>
Powoduje, że wszystkie następujące po nim znaki są konwertowane na duże znaki.
!
Powoduje, że znaki w masce wprowadzania są wyświetlane od strony prawej do lewej
zamiast od lewej do prawej. Znaki wpisywane w masce wprowadzania zawsze
wypełniają ją od strony lewej do prawej. Znaku wykrzyknika można użyć w dowolnym
miejscu w masce wprowadzania.
\
Powoduje, że wszystkie następujące po nim znaki są wyświetlane jako znaki literałowe.
Używany do wyświetlania znaków przedstawionych w tej tabeli jako znaków
literałowych. (na przykład, \A jest wyświetlane jako A).
Hasło
Ustawienie właściwości Maska wprowadzania na wartość Hasło powoduje utworzenie
pola tekstowego dla hasła. Dowolny znak wpisany w tym polu jest przechowywany jako
znak, ale wyświetlany jako gwiazdka (*).
Formaty wyświetlania (własne)
1. Pola tekstowe
Trzy pola oddzielone średnikami:
1) sposób wyświetlania,
2) co pojawi się, gdy pole zawiera łańcuch zerowy (należy włączyć atrybut Zerowa dł.),
np.: @;”Nie podano”
znaki formatowania:
> wyświetlanie dużymi literami < wyświetlanie małymi literami
@ reprezentuje tekst/znak (jeśli nie ma znaku - wyświetlana jest spacja)
& reprezentuje tekst/znak (jeśli nie ma znaku - nic nie jest wyświetlane)
\ wstawiany przed myślnikiem sygnalizuje, że następujący po nim pojedynczy znak nie jest znakiem
kontrolnym i ma być wyświetlony
Przykłady:
&&@\-@@\-@@ (telefon)
@@\-@@@ (kod pocztowy)
\”&....&\” (pole w cudzysłowach, znaków & tyle, jaka dł. pola)
“ul. “&.....& (pole z dopiskiem stałym)
2. Pola liczbowe
Cztery pola oddzielone średnikami:
1) co pojawi się, gdy pole zawiera wartości dodatnie,
2) co pojawi się, gdy pole zawiera wartości ujemne,
3) co pojawi się, gdy pole zawiera zero,
4) co pojawi się, gdy pole zawiera null (pusto).
znaki formatowania:
0 jedna cyfra (jeśli jej brak wyświetlane jest zero)
# jedna cyfra (jeśli jej brak wyświetlana jest spacja)
% format procentowy
, (przecinek) separator części dziesiętnej
(spacja) separator tysięcy
np. 0,00;\-;;”Nie podano”
Rozwiązania niektórych zagadnień
Zad. 1
a)
00-000;;_
00-00-0000;;_
c)
dla daty
dla tytułu
dla oprawy
<=Now()
Like ”[a-z]*”
in (”miekka”;”twarda”)
e)
dla tytułu
dla imienia
dla ilości
>;;
&;”Nie podano”
;;;”Nie podano”