You are on page 1of 14

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Access.
Praktyczne tworzenie aplikacji.
Gabinet lekarski
Autor: Marcin Szeliga
ISBN: 83-7197-755-7
Format: B5, stron: 142
Zawiera CD-ROM
Takiej ksiki jeszcze nie wydano!
Prcz dokumentacji technicznej, na towarzyszcym publikacji CD-ROM-ie znalaza si
produkcyjna baza danych -- gotowa do uycia. Na przykadzie programu obsugi
gabinetu lekarskiego bdziesz mg zbudowa kady rodzaj aplikacji, ktry ma suy na
wielu stanowiskach i praktycznie w kadej dziedzinie ycia. Przekonaj si, e MS Access
nie jest trudny, a tworzenie aplikacji bajecznie proste.
Od Czytelnika nie jest wymagana adna wczeniejsza wiedza informatyczna,
w szczeglnoci umiejtno projektowania i programowania baz danych.
Tym, co odrnia t ksik od innych pozycji powiconych tematyce bazodanowej,
jest brak z koniecznoci oglnych uwag teoretycznych i skupienie si na dokadnym
opisaniu caego procesu tworzenia jednej, konkretnej bazy danych. Autor wraz
z Czytelnikiem utworz kompletn i funkcjonaln baz danych, przy okazji omawiajc
i wiczc umiejtnoci niezbdne dla administratora baz danych.
Jak powstaje baza danych?
Jak programowa baz danych?
Jak unika problemw zwizanych z uytkowanie bazy danych?

"
"
"

Te i inne frapujce Ci do tej pory pytania znalazy wreszcie odpowied. Jeli zatem
masz do poznawania interfejsu uytkownika i chcesz pozna budowanie aplikacji
bazodanowych w praktyce -- nie pozostaje Ci nic innego, jak tylko przeczyta t ksik.
Publikacja jest wrcz na wag zota dla wszystkich posiadaczy gabinetw lekarskich.
Miast wydawa fortun na zakup skomplikowanego oprogramowania, zakupi naley
tylko jeden egzemplarz ksiki, aby mc uywa bazy na kilku komputerach w jednej
firmie (skrcona wielostanowiskowa umowa licencyjna).
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Wstp...............................................................................................9
Jak powstaje baza danych? ................................................................................................9
Projektowanie bazy danych .......................................................................................10
Programowanie bazy danych.....................................................................................10
Organizacja ksiki ..........................................................................................................11
Dla kogo przeznaczona jest ta ksika?...........................................................................11

Cz I
Rozdzia 1.

Projektowanie bazy danych ............................................13


Wprowadzenie do SZBD Access ......................................................15
Instalacja ..........................................................................................................................15
Wymagania sprztowe...............................................................................................15
Instalacja programu ...................................................................................................16
Weryfikacja instalacji ......................................................................................................19
Korzystanie z przykadowej bazy danych........................................................................20

Rozdzia 2.

Porzdkowanie danych ....................................................................21


Modelowanie wiata ........................................................................................................21
Relacyjny model bazy danych .........................................................................................22
Grupowanie danych ...................................................................................................23
Diagramy zwizkw E/R...........................................................................................24
Wyodrbnianie danych elementarnych......................................................................25
Zbieranie danych..............................................................................................................25
Dane opisujce lekarzy ..............................................................................................26
Dane opisujce pacjentw .........................................................................................27
Dane opisujce recepty ..............................................................................................28
Dane opisujce wizyty...............................................................................................28
Okrelanie typw danych.................................................................................................29
Tworzenie diagramu zwizkw E/R ................................................................................30
Zalenoci funkcyjne .................................................................................................31
Zwizki pomidzy obiektami ....................................................................................31

Rozdzia 3.

Implementacja modelu E/R...............................................................35


Utworzenie pustej bazy danych .......................................................................................35
Tworzenie tabel sownikowych .......................................................................................35
Konwencje nazewnicze .............................................................................................38
Definicje pozostaych tabel sownikowych ...............................................................39
Tworzenie tabel nadrzdnych ..........................................................................................40
Definicje pozostaych tabel nadrzdnych ..................................................................42
Okrelanie zwizkw pomidzy tabelami........................................................................44

Rozdzia 4.

Access. Praktyczne tworzenie aplikacji. Gabinet lekarski

Modyfikowanie danych ....................................................................47


Wprowadzanie danych.....................................................................................................47
Przykadowe dane bazy Gabinet................................................................................48
Tworzenie kwerend..........................................................................................................51
Wybr tabel rdowych kwerend.............................................................................53
Lista kwerend.............................................................................................................54

Rozdzia 5.

Strukturalny jzyk zapyta. ...............................................................63


Wybieranie kolumn z pojedynczej tabeli.........................................................................63
Wyraenia arytmetyczne ...........................................................................................64
Aliasy.........................................................................................................................64
Literay.......................................................................................................................64
czenie kolumn........................................................................................................65
Eliminacja duplikatw ...............................................................................................65
Porzdkowanie danych ..............................................................................................66
Wybieranie wierszy z tabeli.............................................................................................66
Operatory logiczne.....................................................................................................66
Operatory jzyka SQL ...............................................................................................67
Wybieranie danych z wielu tabel .....................................................................................68
Zczenie rwnociowe .............................................................................................68
Grupowanie danych .........................................................................................................69
Klauzula GROUP BY................................................................................................70
Klauzula HAVING ....................................................................................................70
Podzapytania ....................................................................................................................71

Cz II
Rozdzia 6.

Programowanie bazy danych ...........................................73


Architektura SZBD Access..............................................................75
Programowanie zorientowane obiektowo........................................................................75
Projekt struktury aplikacji..........................................................................................76
rodowisko Jet .................................................................................................................77
Obiekt specjalny DoCmd i jego metody....................................................................78
Edytor Visual Basic .........................................................................................................79

Rozdzia 7.

Tworzenie formularzy .......................................................................81


Tworzenie formularza przeznaczonego do wprowadzania danych .................................81
Tworzenie pozostaych formularzy przeznaczonych do wprowadzania danych .............87
Tworzenie formularza przeznaczonego do edycji danych...............................................91
Tworzenie pozostaych formularzy przeznaczonych do edycji danych...........................93

Rozdzia 8.

Tworzenie raportw .........................................................................97


Tworzenie raportu pobierajcego dane z kwerendy ........................................................97
Grupowanie danych w raportach ...................................................................................100
Zagniedanie grup danych .....................................................................................101
Dodawanie podsumowa.........................................................................................102
Tworzenie raportu pobierajcego dane z tabel ..............................................................104
Raport zbiorczy........................................................................................................104
Raport zawierajcy dane o wybranym pacjencie.....................................................105

Rozdzia 9.

Visual Basic dla aplikacji...............................................................107


Funkcje i podprogramy ..................................................................................................107
Deklarowanie i wywoywanie funkcji .....................................................................107
Deklarowanie i wywoywanie podprogramw........................................................108
Instrukcja MsgBox.........................................................................................................108

Spis treci

7
Obsuga bdw .............................................................................................................109
Instrukcja On Error GoTo........................................................................................109
Instrukcja On Error GoTo 0.....................................................................................110
Instrukcja On Error Resume Next ...........................................................................110
Instrukcja Resume ...................................................................................................110
Instrukcje sterujce ........................................................................................................110
Instrukcja If...Then ..................................................................................................110
Instrukcja Select Case..............................................................................................111
Ptla For...Next ........................................................................................................111
Formularz autostart ........................................................................................................112
Formularz Edycja danych uytkownika.........................................................................114
Formularz Panel sterowania...........................................................................................114
Formularz Kopia zapasowa............................................................................................117

Cz III

Korzystanie z bazy danych ............................................121

Rozdzia 10. Konfiguracja bazy danych ..............................................................123


Konfiguracja SZBD Access ...........................................................................................123
Konfiguracja bazy danych Gabinet................................................................................124
Przygotowanie rodowiska sieciowego ...................................................................124
Poczenie klientw z baz......................................................................................126
Konfiguracja rodowiska uytkownika..........................................................................128

Rozdzia 11. Podrcznik u8ytkownika ................................................................131


Praca z programem.........................................................................................................131
Dodawanie danych...................................................................................................132
Edycja, Wyszukiwanie danych................................................................................134
Raporty ....................................................................................................................136
Polecenia dodatkowe ...............................................................................................137
Zarzdzanie baz danych.........................................................................................138
Rozwizywanie problemw...........................................................................................138
Jeeli wywietlane s komunikaty potwierdze... ...................................................139
Jeeli zamiast dat pojawia si napis #nazwa?..........................................................139
Jeeli okna podgldu raportw s bardzo mae... ....................................................139
Jeeli nie mona znale pliku z danymi.................................................................139
Jeeli nie wywietlaj si okna dialogowe Przegldaj
umieszczone na formularzu Kopii zapasowej.......................................................140

Skrcona wielostanowiskowa umowa licencyjna ................................................141


Recenzja oprogramowania.................................................................................142

Rozdzia 8.

Raporty s ostatnimi obiektami, ktre naley doczy do aplikacji bazodanowej. Umoliwiaj one drukowanie oraz grupowanie danych. Proces projektowania raportu przypomina tworzenie formularzy: projektant moe skorzysta z pomocy kreatora lub samemu dobra wszystkie formanty raportu.
Przykadowa aplikacja zawiera kilkanacie raportw rnego typu: s wrd nich raporty
grupujce dane wedug zadanego kryterium, prezentujce dane w postaci kolumn, tabel
lub wyjustowanych pl, pobierajce dane z tabel lub kwerend oraz raporty zawierajce
podsumowania. Powodem tej rnorodnoci jest prba pokazania Czytelnikowi caego
zakresu moliwo SZBD Access. Poniewa utworzenie wasnego raportu jest czynnoci stosunkowo prost, Czytelnicy chccy korzysta z przykadowej bazy danych nie
powinni mie kopotw z przygotowaniem wasnych lub ujednoliceniem istniejcych
raportw.

Tworzenie raportu
pobierajcego dane z kwerendy
Jako pierwszy przygotujemy raport zawierajcy krtkie informacje o liczbie przepisanych
lekw z poszczeglnych grup lekw. Poniewa wszystkie dane, ktre chcemy umieci
w raporcie znajduj si w widoku grupy_dla_daty, aby przygotowa raport, naley:
1. Po wybraniu raportw z listy obiektw SZBD Access wybra opcj Utwrz

raport za pomoc kreatora. Zostanie wywietlone okno podobne do pokazanego


na rysunku 8.1. Z listy dostpnych tabel i kwerend wybieramy kwerend grupy_
dla_daty jako kwerend rdow dla projektowanego raportu.
2. Wybieramy wszystkie pola kwerendy i naciskamy przycisk Dalej.
3. W nastpnym kroku moemy doda poziomy grupowania danych w raporcie.

Naciskamy przycisk Dalej.

Cz
II Programowanie bazy danych

98
Rysunek 8.1.
Wybieranie danych
rdowych raportu

4. Kolejnym etapem jest okrelenie metody sortowania danych. Wybieramy

sortowanie od najwikszych do najmniejszych wartoci pola razem leku,


tak jak zostao to pokazane na rysunku 8.2.
Rysunek 8.2.
Porzdkowanie
danych

5. Nastpnie okrelamy ukad raportu jako Kolumnowy i styl jako Kompaktowy.

Po podaniu tytuu nowo tworzonego raportu kreator koczy prac.


Poniewa utworzony za pomoc kreatora raport nie zawiera danych o zadanym okresie
czasu podawanych jako parametr wywoania kwerendy, naley zmodyfikowa projekt
raportu porzdkujc istniejce i dodajc nowe formanty.
Definicja kwerendy bdcej rdem danych dla raportu wyglda nastpujco:

  
     

!"#$ %&&!'"%&
%&&!'"%&"&

()
$ * ()
$ %&&!'"%&   "&
 ()
*   ()
"&$ ()$$ *   ()$$
+,!+%-. / 01( 2( 3 44 (1( 2( 354
6!"710.
 
"!/!0.
    /8

Klauzula  ograniczajca ilo danych prezentowanych przez widok do danych


z podanego okresu czasu zawiera dwa wyraenia: Podaj dat pocztkow oraz Podaj
dat kocow. Aby doda pola zawierajce wartoci obu parametrw do projektu raportu, naley:

Rozdzia 8. Tworzenie raportw


1. Otworzy raport w widoku Projekt (rysunek 8.3).
Rysunek 8.3.
Projekt raportu
grupy_dla_daty

2. Zmodyfikowa tekst etykiety znajdujcej si w nagwku raportu na Ilo

lekw z danej grupy przepisanych.


3. Powikszy obszar nagwku raportu tak, aby pod nowo utworzon etykiet

znalazo si miejsce na pola tekstowe zawierajce warto parametrw wywoania


kwerendy.
4. Z przybornika wybra formant Pole tekstowe i umieci go w sekcji nagwka

formularza.
5. Jako rdo danych pola tekstowego poda wyraenie Podaj dat pocztkow.

Tre etykiety pola tekstowego ustalamy na od (rysunek 8.4).


Rysunek 8.4.
Okrelenie rda
danych formantw

6. Doda kolejne pole tekstowe, jako rdo rekordw poda wyraenie Podaj
dat kocow, a jako tre etykiety sowo .
7. Uporzdkowa formanty przenoszc etykiety Grupa i Liczba lekw do sekcji

Nagwek strony.
Gotowy projekt raporty przedstawiony jest na rysunku 8.5.

99

Cz
II Programowanie bazy danych

100
Rysunek 8.5.
Zmodyfikowany
raport
grupy_dla_daty

Grupowanie danych w raportach


Dane w raportach mog zosta pogrupowane wzgldem wsplnych wartoci pl. Grupy
mog zosta zdefiniowane za pomoc kreatora raportw (rysunek 8.6) lub dodane do
istniejcego projektu raportu poprzez okno Sortowanie i grupowanie (rysunek 8.7).
Rysunek 8.6.
Grupowanie danych
za pomoc kreatora

Rysunek 8.7.
Grupowanie danych
w widoku projektu

Rozdzia 8. Tworzenie raportw

101

Przykadem raportu grupujcego dane jest raport leki_wg_lekarzy. rdem danych


raportu jest nastpujca kwerenda:
   9    
    %

!"# %&&!'"%&$ "&  ()  *$ ()  
%&&!'"%&%&&!'"%&   "& ()
*   ()
"&
$ ()$$ *   ()$$
+,!+%-. / 01( 2( 3 44 (1( 2( 354
6!"710.   9   
"!/!0.
    /8

W raporcie dane o nazwie i iloci przepisywanych lekw powinny zosta pogrupowane


wedug nazwisk lekarzy. W tym celu naley za pomoc kreatora utworzy nowy raport
i na pytanie Czy chcesz doda jakie poziomy grupowania? odpowiedzie zaznaczajc
pole nazwisko, tak jak zostao to pokazane na rysunku 8.6.
Nastpnie naley uzupeni nagwek raportu o pola zawierajce warto parametrw
wywoania kwerendy i uporzdkowa rozmieszczenie formantw na projekcie raportu.
Gotowy projekt raportu zosta pokazany na rysunku 8.8.
Rysunek 8.8.
Projekt raportu
grupujcego dane

Zagniedanie grup danych


Nie ma adnych ogranicze zwizanych z liczb tworzonych sekcji szczegw w raporcie.
W ramach jednej sekcji mona utworzy kolejn, uzyskujc w ten sposb zagniedenia
grup danych.
Przykadem takiego rozwizania jest raport 50_ostatnich _wizyt. Dane grupowane s
najpierw wedug nazwiska lekarza, nastpnie informacje o wizytach przeprowadzonych
przez danego lekarza grupowane s wedug daty wizyty1.
Na kocu dla kadej wizyty wywietlana jest lista procedur zastosowanych podczas
danej wizyty. Projekt raportu 50_ostatnich _wizyt przedstawiony jest na rysunku 8.9.

Poniewa podczas jednej wizyty mona postawi jedn diagnoz, na tym poziomie znajduj
si rwnie dane o diagnozie.

Cz
II Programowanie bazy danych

102
Rysunek 8.9.
Zagniedanie grup
danych w raporcie

Dodawanie podsumowa
Skoro dane prezentowane poprzez raporty zostay pogrupowane, to nastpnym krokiem
powinno by dodanie do raportw podsumowa zliczajcych np. liczb rekordw w grupie czy sum pewnych wartoci w grupie. SZBD Access umoliwia wykorzystywanie
nastpujcych funkcji agregujcych (grupowych): Suma, rednia, Minimum, Maksimum,
Policz, OdchStd i Variancja.
Podsumowanie (wynik zwracany przez pewn funkcj agregujc) jest jednym z moliwych typw wyrae, ktre mog by dodawane do projektw raportw. Dziki wyraeniom projektant moe przeksztaca dane pobierane z tabel lub kwerend rdowych
tak, aby zaprezentowa je uytkownikowi w sposb bardziej przejrzysty.
Wyraenia wywietlane s z reguy poprzez pola tekstowe. Przy definiowaniu wyraenia mona posuy si Konstruktorem wyrae.
Utwrzmy raport pacjenci_wg_lekarzy pobierajcy dane z nastpujcej kwerendy
  9 :;;: 3  
() 2 
<  2=
!"#9 ) $) 2
6!"710.  9 :;;: 3
"!/!0.
() 2 /8

Format danych przypomina format danych widoku grupy_dla_daty: w pierwszej kolumnie przechowywane s dane o nazwisku i imieniu lekarza, w drugiej obliczona
liczba tych pacjentw, ktrzy przynajmniej raz byli z wizyt u danego lekarza. Jednak
raport pacjenci_wg_lekarzy prezentuje dane w postaci tabeli, a dodatkowo w stopce
raportu umiecimy pola tekstowe wywietlajce dane statystyczne.

Rozdzia 8. Tworzenie raportw

103

Po rozszerzeniu wielkoci stopki raportu naley przenie do niej z przybornika cztery


pola tekstowe. Dwukrotne kliknicie wywoa okno waciwoci danego pola tekstowego.
Naley przej do zakadki Dane i wybra waciwo rdo formantu. Nastpnie wywoujemy Konstruktora wyrae klikajc znajdujcy si po prawej stronie przycisk ....
Okno konstruktora wyrae pokazane jest na rysunku 8.10.
Rysunek 8.10.
Konstruktor wyrae

W grnej czci okna znajduje si definiowane wyraenie, natomiast dolna cze podzielona jest na trzy kolumny: w pierwszej znajduje si lista obiektw biecej bazy danych, w tym obiektw wbudowanych, rodkowa kolumna zawiera list pl w przypadku wybrania obiektu lub grup w przypadku wybrania operatorw, staych lub funkcji.
Trzecia kolumna zawiera list atrybutw wybranego obiektu lub list wyrae nalecych do wybranej grupy.
Zamy, e uytkownicy chcieli wiedzie, nie tylko ilu pacjentw przechodzi do danego lekarza, ale rwnie, ilu w sumie pacjentw odwiedzio gabinet, jaka jest rednia
liczba pacjentw przypadajcych na jednego lekarza2 oraz jakie s: najwiksza i najmniejsza liczba pacjentw przypadajcych na jednego lekarza (ten sam pacjent odwiedzajcy rnych lekarzy zostanie policzony jako pacjent kadego z lekarzy).
Rysunek 8.11.
Gotowy projekt
raportu
pacjenci_wg_lekarzy

Poniewa pacjent moe kilkakrotnie przyj z wizyt do gabinetu, liczba wizyt (i wszystkie
wyraenia oparte na tej liczbie) prawdopodobnie bdzie zupenie inna, ni liczba pacjentw.

Cz
II Programowanie bazy danych

104

Tworzenie raportu
pobierajcego dane z tabel
Raport zbiorczy
Po przygotowaniu poprzednich raportw utworzenie raportu grupujcego dane pobierane
bezporednio z tabel nie powinno sprawi Czytelnikowi problemw. Raport lista_wizyt
bdzie zawiera podstawowe dane o pacjentach, dacie wizyt, postawionych diagnozach
i zastosowanych procedurach. Lista danych rdowych projektowanego raportu zostaa
pokazana na rysunku 8.12.
Rysunek 8.12.
Dane rdowe
raportu pobieranie
z wielu tabel

Jeeli wybierzemy pola z tabeli poczonych poprzez tabel czc, SZBD Access
automatycznie do listy tabel rdowych doczy t tabel.

Skoro raport ma prezentowa dane o kolejnych wizytach, naley pogrupowa dane


wedug pl tabeli wizyta. Kolejne pytanie Kreatora raportw bdzie dotyczyo dodatkowych poziomw grupowania wybierzmy pole data zostawiajc domylne ustawienia Opcji grupowania. W rezultacie dane bd najpierw grupowane wedug miesica
wizyty, a nastpnie wedug ukrytego pola id_wizyty.
Rysunek 8.13.
Opcje grupowania
raportu lista_wizyt

Rozdzia 8. Tworzenie raportw

105

Poniewa liczba danych raportu wyjtkowo dua, odpowiadajc na kolejne pytania kreatora, naley zmieni orientacje raportu z pionowej na poziom. Po rozmieszczeniu i uporzdkowaniu formantw projekt raportu jest prawie gotowy.
Jako projektant bazy danych musimy liczy si z tym, e w miar upywu czasu liczba
wizyt pacjentw wprowadzonych do bazy danych bdzie na tyle dua, i raport zawierajcy dane o wszystkich wizytach liczy bdzie nawet kilka tysicy stron. Aby nie zmusza
uytkownikw do przegldania takiej liczby danych, naley doda i wczy filtr raportu,
tak jak zostao to pokazane na rysunku 8.14. Po dodaniu do nagwka pl tekstowych
wywietlajcych okrelony przez uytkownika okres czasu raport jest skoczony.
Rysunek 8.14.
Definiowanie
filtru raportu

Raport zawierajcy dane o wybranym pacjencie


Odmian raportu pobierajcego dane z tabel jest raport historia_choroby. Po wybraniu pacjenta wywietlone zostan podstawowe dane o odbytych przez niego wizytach, uzupenione informacjami o przepisanych lekach.
Po pierwsze, musimy umoliwi uytkownikowi wybr pacjenta z listy wszystkich zarejestrowanych pacjentw. Wykorzystamy do tego formularz przeznaczony do edycji danych
o pacjencie.3
Po przygotowaniu, za pomoc kreatora, szablonu raportu zmodyfikujemy jego projekt:
dane o pacjencie takie jak imi, nazwisko, numer PESEL, nazwa ubezpieczyciela

i nazw Kasy chorych przeniesiemy do nagwka raportu;


sekcji Nagwek strony umiecimy etykiety pozostaych pl danych;
dane o wizytach pogrupujemy malejco wedug daty wizyty (jako pierwsze zostan

dane o ostatniej wizycie);


w sekcji szczegy umiecimy pola zawierajce dane o nazwie i dawce

przepisanego podczas wizyty leku.


Nastpnie, korzystajc z pomocy kreatora, dodamy do formularza Edycja danych
o pacjencie przycisk polecenia, ktrego nacinicie spowoduje wywietlenie podgldu
nowo utworzonego raportu.
3

Na formularzu Edycja danych pacjenta znajduje si pole kombi umoliwiajce wybr pacjenta
na podstawie jego imienia, nazwiska i numeru PESEL.

Cz
II Programowanie bazy danych

106
Rysunek 8.15.
Zmodyfikowany
projekt raportu
Historia_choroby

Na kocu naley ograniczy list danych wywietlanych w raporcie do danych o wizytach wybranego pacjenta. W tym celu dodamy poniszy kod zdarzenia Przy otwarciu
raportu Historia_choroby.
1 > 
<!  )"  9% 
/( $  ;  9 ?) 2 ?$<  *() 2 ;
(
<

You might also like