You are on page 1of 75

Editura Sfntul Ierarh Nicolae

2010
ISBN 978-606-577-097-3

Cuprins

Capitolul 1
Introducere n baze de date........................................................ 3
1. Modele de baze de date........................................................ 3
2. Concepte de baz.................................................................. 4
3. Forme normale ..................................................................... 6
Capitolul 2
Proiectarea logic a bazei de date ........................................... 10
Capitolul 3
Crearea unei baze de date cu Microsoft Access.................... 18
1. Prezentarea aplicaiei Microsoft Access..........................18
2. Crearea i introducerea datelor n tabele...........................20
3. Crearea interogrilor ..........................................................30
4. Crearea formularelor ..........................................................34
5. Crearea rapoartelor.............................................................43
6. Proiectarea unui meniu ...................................................... 52
7. Grafice................................................................................. 65
8. Crearea unui help ...............................................................69

Capitolul 1
Introducere n baze de date

1. Modele de baze de date


O baz de date reprezint un set de tabele de date nrudite i de alte obiecte
de baz de date, cum ar fi un dicionar de date, organizate ca un grup, dotat cu o
descriere a acestei structuri.1 Un dicionar explicativ, o carte de telefon sunt baze de
date.
Un model de date este o colecie integrat de concepte pentru descrierea
datelor, de relaii ntre date i de restricii asupra datelor, toate organizate logic,
unitar. Modelul este o abstractizare a unui lucru real, o reprezentare schematic a
ceea ce este esenial i definitoriu pentru secvena realului care ne intereseaz.
n funcie de modul de organizare a datelor se cunosc urmtoarele tipuri de
baze de date :
Baze de date relaionale
Modelul relaional a fost propus pentru prima dat de E.F.Codd n 1970.
Acesta a utilizat teoria mulimilor ca fundament logic de organizare a datelor. 2 n
cadrul bazelor de date relaionale datele sunt organizate sub forma unor tablouri
bidimensionale de date, numite relaii, n care liniile reprezint nregistrrile
individuale (tuplele) iar coloanele reprezint atributele. Conceptul matematic de
relaie este reprezentat printr-o tabel. Fiecare relaie are un nume cruia i
corespunde o coloan din tabel. Numele coloanei arat semnificaia valorilor din
coloana respectiv .
Baze de date ierarhice

1
2

Totul despre Microsoft Access 2000 Roger Jennings, pagina 1070


Structuri de date Lector univ.dr. Paul Iacob

Acest model de structurare a datelor a fost primul dezvoltat n ordine


istoric. Reprezentarea modelului ierarhic este o arborescen grafic, dou noiuni
fundamentale ale acestui model sunt noiunile de printe i relaia printe-copil.
Baze de date n reea
Modelul reea conine nregistrri, date i relaii unu la mai muli

ntre nregistrri. nregistrarea din partea 1 se va numi proprietar, iar nregistrarea din
partea mai multe o vom numi membru. n modelul reea sunt dou structuri :
-

nregistrare (record): colecie de date legate logic ntre ele

legtur (set): relaie de tipul unu la mai multe sau unu la unu

O reea de date simpl se bazeaz doar pe legturi de tipul unu la mai


multe n timp ce o reea de date complex conine relaii de tipul multe la mai multe.
O reea de date complex nu poate fi implementat direct, de aceea trebuie mai nti
transformat ntr-o reea de date simpl.
Dintre toate modelele prezentate mai sus cel mai utilizat este modelul de
baze de date relaional. Modelul E-R (Entity- Relationship) a fost dezvoltat de Chen
n 1976. Modelul E-R constituie un mod de reprezentare a bazelor de date relaionale
i este foarte util n proiectarea acestora.

2. Concepte de baz
Conceptele de baza ale modelului E-R sunt : tip de entitate, tip de
relaie, atribute, chei.
O entitate este un obiect fizic sau un concept ce poate fi identificat n
mod unic. De exemplu : Tipografia Corint din oraul Iai, judeul Iai, strada Mihail
Sadoveanu, numrul 125, este o entitate deoarece identific n mod unic aceast
tipografie , nu poate exista o alt tipografie cu exact aceeai descriere, aceeai adres.
Un tip de entitate este un set de entiti de acelai tip . De exemplu tipul de entitate
Elev va conine entitile :
- Baciu Ramona, nr_matricol 256, coala nr. 2, Bacu

Vezi pagina

- Dima Anca, nr_matricol 129, coala nr.2, Bacu


Entitile se mai numesc instane, concretizri ale tipului de entitate.
Un tip de entitate se identific printr-un nume i o lista de proprieti
numite atribute. De exemplu numele tipului de entitate prezentat mai sus este Elev,
iar atributele care caracterizeaz tipul de entitate sunt: nume_elev, nr_matricol,
coala, localitatea.
Atributele unei entiti conin valori care descriu fiecare entitate i care
duc la identificarea n mod unic a fiecrei entiti. Domeniul atributelor reprezint
mulimea din care atributele pot lua valori . De exemplu nume_elev trebuie s fie
un ir de caractere, nr_matricol trebuie s fie un numr natural pozitiv.
Atributele pot fi :
simple: cu o singur component ( ex : localitatea);
compuse: care conin mai multe componente, fiecare cu o existen independent
(ex: data naterii poate fi descompus n zi, lun, an);
derivate : a cror valoare se poate calcula din alte atribute (ex: cost_total se poate
calcula pe baza atributelor cantitate i pre);
Mulimea atributelor asociate unui tip de entitate formeaza o supercheie
dac poate duce la identificarea unic a oricrei entiti din tipul de entitate care o
contine. Numim cheie candidat orice supercheie care conine un numr minim de
atribute. Cheia primar va fi aleas cea mai scurt cheie dintre cheile candidat.4
Numim Tip de relaie o asociere ntre tipuri de entiti iar relaie o
asociere ntre entiti. Relaiile care se stabilesc n cadrul unei baze de date trebuie s
se conformeze unor restricii de cardinalitate i de participare.
Cardinalitatea este dat de numrul de relaii posibile pentru o entitate,
sau numrul de entiti la care aceasta poate fi asociat. Cardinalitatea poate fi de
tipul unu-la-unu (1:1), unu-la-mai-multe (1:M), mai-multe-la-mai-multe (M:N).
Relaia unu-la-unu
n acest tip de relaie o entitate este legat de cel mult o entitate din alt
tip de entitate . De exemplu ntre tipul de entitate Diriginte i tipul de entitate Clas se

Baze de date curs pentru nvmnt la distan, lector univ.dr. Paul Iacob

stabilete o relaie 1:1 deoarece un professor poate fi diriginte la o singur clas iar o
clas poate avea un singur diriginte.
Relaia unu-la mai-multe
O entitate aparinnd unui tip de entitate poate fi legat de 0 sau mai
multe entitti din al doilea tip de entitate .S presupunem c avem dou tipuri de
entiti , Diriginte i Elevi. Relaia care se stabilete este de tipul 1:M deoarece un
diriginte are mai muli elevi. Evident relaia invers este de 1:1 , un elev avnd doar
un diriginte.
Relaia mai-multe-la-mai-multe

n acest tip de relaie, att relaia direct (dintre entitile primului tip
de entitate si entitile celui de-al doilea tip) ct i relaia invers sunt de tipul 1:M.
Putem lua ca exemplu tipurile de entiti Elevi i Discipline. Un elev
studiaz mai multe discipline (deci avem relaie de tipul 1:M) iar o disciplin este
studiat de mai muli elevi (relaie de tipul 1:M).

3. Forme normale
Normalizarea este un proces de organizare a datelor n relaiile unei
baze de date.5 Fiecare form normal necesit respectarea unor reguli. Normalizarea
se realizeaz trecnd prin toate formele normale pn la forma normal cerut .

Forma Normal Unu (1NF)


Pentru a se gsi n aceast form o tabel nu trebuie s conin grupuri
repetitive pe atribute sau atribute compuse.
Tabelul urmtor nu se afl n forma normal unu deoarece conine
grupuri repetitive :
cod_productor

den_producator

localitatea

strada

den_produs

Baze de date curs pentru nvamnt la distan, lector univ. dr. Paul Iacob

nr

cod_produs

12

Bacu

Yves Rocher

14

Oriflame

Oituz

Arad

14

Eroilor

24

11234

demachiant

13452

parfum Iria

07998
231009

lac de unghii
crem de corp

Pentru a elimina repetiiile putem aciona n dou moduri :


a) Completm cmpurile prin adugarea de nregistrri

cod_productor

den_producator

localitatea

strada

nr

cod_produs

den_produs

12

Yves Rocher

Bacu

Oituz

14

11234

demachiant

12

Yves Rocher

Bacu

Oituz

14

13452

parfum Iria

14

Oriflame

Arad

Eroilor

24

07998

lac de unghii

14

Oriflame

Arad

Eroilor

24

31009

crem de corp

b) Valorile grupurilor repetitive le copiem ntr-o nou relaie mpreun cu


cheia primar din tabelul iniial . Vom obine

cod_productor

12

den_producator localitatea

strada

Yves Rocher

Bacu

Oituz

14

Oriflame

Arad

Eroilor

24

14

cod_productor

cod_produs

den_produs

nr

12

11234

demachiant

12

13452

parfum Iria

14

07998

lac de unghii

231009

crem de corp

14

Tabele obinute la punctele a i b sunt in forma normal unu.

Forma Normal Doi (2FN)

Aceast form normal se obine eliminnd dependenele funcionale


Spunem c un atribut B aparinnd unei relaii depinde funcional de un
atribut A al aceleiai relaii dac

dou entiti care au aceeasi valoare pentru

atributul A au o valoare identic i pentru atributul B.


Exemplu : ntre atributele cod_productor i den-productor exist o
dependen funcional

deoarece acelai cod de furnizori

presupune aceeai

denumire a furnizorului. Este evident deoarece dou firme diferite

nu pot avea

acelai cod.

Eliminm n cazul nostru dependenele funcionale cod_productor/


den_productor i cod_produs / den_produs separndu-le n relaii noi :

cod_productor

localitatea

strada

nr

12

Bacu

Oituz

14

14

Arad

Eroilor

24

cod_productor

den_producator

12

Yves Rocher

13

Oriflame

cod_produs

den_produs

11234

demachiant

13452

parfum Iria

07998

lac de unghii

231009

crem de corp

cod_productor

cod_produs

12

11234

12

13452

14

07998

14

231009

Forma Normal Trei (3NF)


Pentru a aduce relaiile n forma normal trei trebuie s eliminm
dependenele tranzitive. Dependene tranzitive se ntlnesc n cazul n care ntre
atributele a, b i c aparinnd unei relaii exist dependene astfel : b depinde de a i c
depinde de b, adic c depinde de a .
O relaie este n forma normal trei dac se afl deja n forma normal
doi i nici un atribut care nu aparine cheii primare nu este tranzitiv dependent de
cheia primar. 6 n cazul n care avem dependene tranzitive crem relaii noi cu
atributele tranzitiv dependente de cheia primar , relaii care vor conine i aceast
cheie primar .

Baze de date curs pentru nvamnt la distan, lector univ. dr. Paul Iacob

Capitolul 2
Proiectarea logic a bazei de date

Ne propunem s crem o baz de date care s optimizeze exploatarea


fluxurilor de informaii dintr-o coal general . ntr-o astfel de coal funcioneaz
dou cicluri : ciclul primar (clasele I-IV) i ciclul gimnazial (clasele V-VIII).
Disciplinele care se studiaz la fiecare clas sunt prevazute n planul de nvmnt,
la fel i numrul minim sau maxim de ore pentru fiecare disciplin.
Baza de date va conine urmtoarele categorii de informaii :
Date personale ale elevilor
Disciplinele studiate de fiecare clas i profesorii care predau
disciplinele
Notele obinute de elevi la diverse discipline
Observatii psihologice i caracterizri ale elevilor
Date referitoare la profesori : date personale, vechime, grad didactic,
.a.

Baza de date va trebui s rspund urmtoarelor cerine :


S permit introducerea notelor in catalog pentru fiecare elev, deasemenea
vizualizarea notelor deja nregistrate
S afieze rapoarte cu datele elevilor, date statistice referitoare la

notele

obinute
S permit studierea de ctre psiholog, diriginte, prini a fielor de observaii
individuale
S afieze rapoarte despre datele personale ale profesorilor precum i date
referitoare la gradul didactic obinut, vechime n nvmnt
S afieze rapoarte n care sunt calculate automat mediile elevilor la fiecare
disciplin

10

Pasul 1- Identificarea tipurilor de entiti


Am identificat urmtoarele tipuri de entiti :

Elevi

Discipline

Note

Fie de observaie

Profesori

Pasul 2 Identificarea tipurilor de relaii


Tipurile de relaie se reprezinta prin verbe ale relaiilor dup cum
reiese din tabelul urmtor :
Tip de entitate

Tip de relaie

Tip de entitate

Elevi

studiaz

Discipline

Discipline

predate de

Profesori

Note

obinute de

Elevi

Fie de observaie

caracterizeaz pe

Elevi

Analizm cardinalitatea relaiilor care poate fi :


-

1:1 o entitate din primul tip de entitate este legat de cel mult o
entitate din al doilea tip de entitate implicat

1 :M o entitate a primului tip este legat de 0,1 sau mai multe entitti
din al doilea tip de entitate ; relaia invers este de 1 :1

N :M - relaia invers este de 1 :M ; deci dac i relaia direct si cea


inversa este de tipul 1 :M atunci relaia este de tipul mai multe la mai
multe

Este necesar s stabilim cardinalitaea relaiilor deoarece trebuie s


descompunem relaiile N:M in dou relaii 1:M prin adugarea unui nou tip
de entitate.
a) O disciplin este predat de mai muli profesori ?
-

Nu.

11

Un profesor pred mai multe discipline ?

Da. (cardinalitate 1 :M, reformulm Profesori predau Discipline)

b) - Un elev obine mai multe note ?


-

Da

O not este obinut de mai muli elevi ?

Nu. (cardinalitate 1 :M)

c) -Fia de observaie caracterizeaz mai muli elevi ?


-

Nu.

Un elev este caracterizat de mai multe fie ?

Nu. (cardinalitate 1 :1)

d) Un elev studiaz mai multe discipline ?


-

Da.

O disciplin este studiat de mai muli elevi ?

Da. (cardinalitate N :M)

Avem o relaie N :M pe care o descompunem n relaii 1 :M introducnd alt


tip de entitate : Profesor/materie

Tip de entitate

Tip de relaie

Tip de entitate

Cardinalitatea

Profesor/materie

educ

Elevi

1 :M

Profesori

specializai pe

Profesori/materie

1 :M

Discipline

este studiat de

Elevi

1 :M

Profesori

predau

Discipline

1 :M

Fia de observaie

caracterizeaz pe Elevi

1 :1

Elevi

obin

1 :M

Note

12

Pasul 3- Identificarea i asocierea atributelor la tipurile de entiti


Amintim c atributele sunt informaii care caracterizeaza entitile.
Tip de entitate

Atribute

Tip de date

Reguli

Elevi

-cod_elev

Intreg

-nume_elev

Caractere

primar

-prenume_elev

Caractere

- clasa

10

-data_naterii

caractere

-CNP

Data

-strada

Caractere

-nr

Caractere

-localitatea

Intreg

-prenumele_tatlui

Caractere

-prenumele_mamei

Caractere

-telefon

Caractere

cheie

caractere
Profesori

-cod_profesor

Intreg

-numeP

Caractere

-prenumeP

Caractere

-telefonP

caractere

- grad_didactic

caractere

-vechime

intreg
Intreg

Profesor/materie -nr_curs

Discipline

-cod_materie

Intreg

-cod_profesor

intreg

-ore_saptamana

intreg

-cod_materie

Intreg

-den_materie

caractere

13

-cheie primar

-cheie primar

-cheie primar

Note

Fia
observaie

-cod_materie

Intreg

-cod_elev

Intreg

-data

Data

-nota

Intreg

-semestrul

caractere

de -nr_nregistrare

Intreg

-cod_elev

Intreg

-caracterizare

caractere

-cheie primar

-cheie primar

Diagrama ER (Entitate Relaie)


Dup ce am stabilit entitile i atributele avem nevoie de un instrument grafic
care s permit o vedere sintetic asupra bazei de date. Chen a inventata diagrama ER

. Vom reprezenta entitatea sub forma unui dreptunghi In care sunt listate

atributele i n care este evideniat cheia cu semnul *.


Relaiile vor fi reprezentate prin linii ntre entiti iar tipurile relaiilor vor fi
descrise utiliznd simbolurile :
pentru o singur instan
0pentru 0 sau una
>pentru una sau mai multe
>0 pentru 0, una sau mai multe
n cazul nostrum diagrama E-R arat astfel :

Iniiere n baze de date Paul Iacob

14

ntre tabele trebuie s existe legturi . Acest lucru se relizeaz pe baza


cheii strine . De exemplu n tabelul Fise de observaii avem atributul
cod_elev. Acest atribut cu valoare de cheie strin leag tabelul mai sus
amintit de tabelul Elevi n care atributul cu acelai nume (cod_elev) este cheie
primar . Pentru ca baza de date s fie corect trebuie respectate
urmtoarele restricii :
Cheia primar a entitilor nu poate avea valori nule (integritatea
entitilor)

15

Dac cheia strin dintipul de entitate fiu conine o valoare ea trebuie


neaprat s se regseasc i n tipul de entitate printe(integritatea
referinelor)
Domeniile atributelor , stabilite deja, trebuie s fie respectate (restricia de
domeniu)
Valorile cheii primare sunt unice (nu putem avea doi elevi crora s le
asociem acelai cod)
Pasul 4- Crearea de relaii peste modelul logic local
Analiznd tipurile de entitate le-am clasificat astefel:
Tip tare de entitate :

Tip slab de entitate :


o Note
o Profesor/materie
o Fia de observaie

Elevi
Disciplina
Profesori
Elevi (cod_elev,nume_elev, prenume_elev,clasa,
data_naterii,
CNP, strada, nr, localitatea, prenumele_tatlui, prenumele_mamei,
telefon)
Cheie primar : cod_elev
Profesori
(cod_profesor,
grad_didactic, vechime)
Cheie primar : cod_profesor

numeP,

prenumeP,

Profesor/materie
(nr_curs,
cod_materie,
ore_saptamn)
Cheie primar : nr_curs
Cheie strin : cod_materie, cod_profesor

telefonP,

cod_profesor,

Disciplina (cod_materie, de_materie)


Cheie primar : cod_materie
Note (cod_materie, cod_elev, data, nota, semestrul)
Cheia primar : cod_materie, cod_elev, data
Cheie strin : cod_materie, cod_elev
Fia de observaie (nr_nregistrare, cod_elev, caracterizare)
Cheie primar : nr_nregistrare
Cheie strin : cod_elev
Dup ce am stabilit clar tipurile de entiti , relaiile, atributele,
domeniul acestora i ntreaga structur este logic , rspunznd cerinelor
pentru care a fost conceput , trecem la a doua etap, cea a proiectrii fizice,

16

adic implementarea bazei de date utiliznd programul special Microsoft


Access.

17

Capitolul 3
Crearea unei baze de date cu Microsoft Access
Baza de date, acea colecie de date aflate n interdependen logic, este
implementat cu ajutorul unui SGBD, un software care permite definirea, crearea i
ntreinerea bazei de date. Astfel de softuri specializate sunt de exemplu Paradox, dBase
IV de la Borland, FoxPro, Access de la Microsoft.
n continuare ne vom referi la acest ultim program , probabil cel mai utilizat n
domeniu.

1. Prezentarea aplicaiei Microsoft Access


Din All Programs > Microsoft Office deschidem Microsoft Access. n fereastra
urmtoare , alegem din meniul File opiunea New :

Ecranul 1

Se va deschide o fereastr din care putem alege Blank database, Blank data access
page, Project using existing data, Project using new data, From exesting file. Pentru
18

crearea unei noi baze de date alegem prima variant. Imediat se deschide fereastra n
care putem alege numele bazei de date i directorul unde vrem s o salvm.

Ecranul 2
Apsm butonul Create i ajungem n mediul de lucru (Ecranul 3). n partea stng a
ferestrei active avem afiate tipuri de obiecte : Tables (Tabele), Queries (Interogri),
Forms (Formulare), Reports (Rapoarte), Pages (Pagini), Macros (Macrocomenzi) i
Module.
Tabelele nregistreaz datele ntr-un format pe linii i coloane ca o foaie de
calcul tabelar.
Interogrile afieaza datele selectate din cel mult 16 tabele.
Formularele afieaz datele incluse n tabele sau interogri, se pot aduga
ilustraii i grafice, sau alte formulare incorporate (subformulare).
Rapoartele permit tiprirea datelor sau vizualizarea lor naintea tipririi n
aproape orice format

19

Macrocomenzile automatizeaz operaiile executate n Access .8 Reprezint


denumiri ale unei serii de aciuni executate succesiv, proceduri predefinite.
Modulele conin coduri VBA pe care le scriem pentru a crea funcii
personalizate pe care le folosim n formulare, tabele, interogri.
Paginile sunt pagini de tip DAP (Data Access Pages) cu ajutorul crora putem
s afim i s editm datele introduce n Access pentru publicarea ca pagini Web
ntr-un server intranet.

Ecranul 3

2. Crearea i introducerea datelor n tabele


n ecranul 3 , este activ fereastra Tabele . De aici putem crea tabele n
modurile Design View, by using wizard, by entering data. Exemplificm prima
variant.

Totul despre Microsoft Access 2000- Roger Jennings, Editura Teora, 1999, pagina 100

20

Ecranul 4
n interiorul unui tabel datele sunt organizate pe linii i coloane. Intersecia unei
linii cu o coloan, locul unde se introduce efectiv datele , reprezint un cmp.
La Field Name vom defini cmpurile unui tabel, la Data Type vom preciza tipul
de date din cmpul definit, iar la Description o descriere opional a cmpului.
Tipurile de date pe care le putem alege dintr-o list de tip combo box sunt
descrise n continuare mpreun cu subtipurile acestora:
Text un set de maximum 255 de caractere , inclusive semnele de
punctuaie i cifrele; implicit lingimea cmpului este de 50 de caractere
Memo asemntor cu tipul Text cu deosebirea c lungimea setului
de caractere este practic nelimitat
Number un numr ntreg sau n virgul mobil; sunt admise
urmtoarele subtipuri:
-

Byte valori ntregi de la 0 la 255

Integer numere ntregi de la -32.768 la +32.767; fiecare valoare introdus


ocupa doi octei

Long Integer numere ntregi cuprinse ntre -2 147 483 648 i


147 483 648

21

+2

Single numere n virgul mobil cu pn la apte zecimale

Double numere n virgul mobil cu pn la 15 zecimale, folosit pentru


calcule ce solicit o precizie ridicat
Date/Time o dat calendaristic sau o or n unul din cele apte
subtipuri :

General Date stocheaz data i ora (04/12/1992 05:34:00 PM)

Short Date se reine doar data de tipul 4/12/1993

Long Date de tipul Saturday, April 29, 2001

Medium Date de tipul 3-Apr-93

Long Time or de forma 5:23:40 PM

Medium Time- 5:23 PM

Short Time - 17:35


Currency un numr cu dou zecimale care folosete virgula ca
separator ntre ordinele de mrime i parantezele pentru ncadrarea
valorilor negative, cu urmtoarele subtipuri :

General number afieaz numerele in forma n care au fost introduce

Currency folosete virgule ca separator ntre ordinele de mrime i afieaza


cel puin dou zecimale

Fixed afieaz cel puin o cifr a unitilor i un numr definit de zecimale

Standard folosete virgule ca separator al ordinelor de mrime i cel puin


dou zecimale

Percent nmulete valoarea introdus cu 100 i adaug semnul %

Scientific folosete notaia tiinific pentru exprimarea numerelor (3.46E+3


adic 346.000)
Autonumber un numr ntreg care este incrementat n mod automat
pe msur ce sunt introduce datele n tabele
Yes/No admite date de tip Boolean pentru a stoca valori simple
precum Da/Nu, Adevrat/Fals, On/Off
OLE Object un alt tip de date precum imagine, sunet

Hyperlink o referin la un document extern care, atunci cnd este


selectat deschide documentul respective n modul de afiare corespunztor

22

Dup ce am definit cmpurile i tipurile de date alegem cheia primar astfel :


aezm cursorul in partea stng n dreptul cmpului cod_elev pn ce rndul devine
negru , apoi apsm butonul cu chei evideniat n figura 5 n partea de sus a ferestrei.
n momentul n care nchidem tabelul vom fi ntrebai dac vrem s salvm . Apsm
pe butonul Yes i salvm tabelul cu numele dorit (ecranul 5 i ecranul 6) :

Ecranul 5

Ecranul 6

23

La fel procedm i n crearea celorlalte tabele selectnd tipul de date adecvat


pentru fiecare cmp de date. n final spaiul pentru tabele va arta ca n ecranul 7 :

Ecranul 7
Pentru a modifica datele definite ntr-un tabel dm click pe tabel i alegem din
partea de sus a ferestrei Design sau aceeai opiune din click dreapta (Design view),
pentru a deschide un tabel n vederea introducerii datelor deschidem tabelul cu dublu
click

sau

click

Open.

(Ecranul

Ecranul 8

24

8-

Introducerea

datelor

in

tabel)

S-ar putea ca n momentul n care vom crea formularele s constatm c ar fi


mai uor dac am alege numele elevilor dintr-o list , n loc s scriem numele elevilor
de fiecare dat cnd vrem s nregistrm o not de exemplu. Vom proceda astfel :
Deschidem tabelul elevi

. La caracteristicile cmpului cod_elev , trecem

de la General la Lookup (ecranul 9). De la <Display Control> (Control afiare),


alegem Combo Box.
Ecranul

La <Row Source Type> apsm butonul cu trei puncte din capt si se va


deschide ecranul 10 . De acolo selectm tabelul elevi si apsm butonul Add apoi Close
.

25

Ecranul 10

Alegem cmpurile cod_elev, nume_elev i prenume_elev.

Ecranul 11
26

Salvm la nchidere i vom reveni la urmtorul ecran:


Ecranul 12

La <Bound Column > vom scrie 1 (coloana legat) iar la <Column Count> vom
scrie 3 (numr de coloane afiate n combo box) .Salvm si nchidem .
Dup crearea tabelelor trebuie s stabilim legturile dintre acestea. Apsm
butonul Relationship

. Din fereastra care se deschide selectm succesiv tabelele

apsnd de fiecare dat pe butonul Add (Ecranul 13) :

27

Ecranul 13
Dup ce toate tabelele se afl n planul second nchidem fereastra apsnd
butonul Close . Selectm cu mouse-ul atributul cheie primar dintr-o entitate i prin
procedeul drag and drop tragem i descrcm peste atributul cu acelai nume din
tabelul cu care dorim s realizm legtura.
Din fereastra care se va deschide selectm cele trei opiuni aa cum se observ
n ecranul 14 :
- Enforce Referential Integrity
- Cascade Update Related records
- Cascade Delete Related records
Apoi apsm butonul Create i legatura a fost creat.

28

Ecranul 14
Cnd toate legturile au fost create panoul Relationship va arta astfel :

Ecranul 15

29

3. Crearea interogrilor
O cerin fundamental pentru un mediu de creare a bazelor de date este
capacitatea de sortare i filtrare rapid a nregistrrilor n aa fel nct s fie afiate doar
cele dorite de utilizator la un moment dat i n ordinea dorit.
Pentru aceasta vom crea nite interogri, cereri asupra bazei de date. Aceste
interogri pot fi create in modul Design View sau by using wisard. Vom exemplifica
prima variant.
Din Queries/Interogri alegem Create query in Design view , aa cum se
observ n ecranul 16.

Ecranul 16
Se va deschide fereastra prezentat n ecranul 17 . De aici trebuie s selectam
tabelul sau tabelele din care vrem s selectm nregistrrile.
S crem o interogare pentru a selecta dintre toi elevii doar pe aceia care sunt n
clasa I A. Selectm tabelul elevi , apsm butonul Add i apoi Close. Alegem dintr-o
list de tip combo box cmpurile de care avem nevoie n interogare , de pe rndul
30

Field. Rndul Table se va completa automat . Dac dorim ca numele elevilor s fie
afiate n ordine alfabetic alegem pe linia Sort, n dreptul cmpului nume_elev
opiunea Ascending(vezi Ecran 18).

Ecranul 17

Ecranul 18

31

n dreptul cmpului clasa , pe linia Criteria, vom preciza =I A (ecranul 19)


iar dac dorim s alegem noi clasa in momentul n care deschidem interogarea vom
scrie pe rndul Criteria , n dreptul cmpului clasa =[Alege clasa] . (ecranul 19)

Cnd vom deschide interogarea se vor afia doar datele elevilor din clasa I A :

Ecranul 20
Pentru a afla notele unui anumit elev din clasa I A la toate disciplinele vom crea
urmatoarea interogare utiliznd tabelele Note , Elevi, Discipline si interogarea clasa I

32

A. Selectam cmpurile cod_elev, nume_elev, prenume_elev, cod_materie,


den_materie, data, nota , aa com se observa in ecranul 22.
n dreptul cmpului nume_elev, la Criteria vom scrie =[Nume :] iar la
prenume_elev vom scrie =[Prenume:] . Salvam interogarea iar cnd o vom deschide
va aprea caseta :

Scriem numele elevului (de exemplu : stoica) si apasam tasta OK. n


urmtoarea caseta va trebui s alegem prenumele elevului :

Apsm din nou tasta OK si vom putea vedea notele elevului stoica radu

Ecranul 21

33

Ecranul 22

4. Crearea formularelor
Un formular poate fi creat pe baza unui tabel sau al unei interogri. Este mai
atractiv din perspectiv grafic . nainte de a ncepe crearea unui formular trebuie s
tim cu exactitate ce probleme trebuie s rezolve formularul i cum dorim s fie afiate
datele n formular.
Putem s crem formulare n Design View sau cu ajutorul Wizard-ului.
Ca s crem un formular by using wizard intrm la formulare (Forms) i
alegem <Create form by using wizard>. Se va deschide fereastra prezentat n ecranul
23 :

34

Ecranul 23

De la Tables/Queries alegem tabelul sau interogarea pe baza creia dorim s


crem formularul apoi de la <Available Fields> selectm cmpurile dorite pe rand
apsnd butonul cu semnul > sau selectm toate cmpurile apsnd butonul cu
semnul >>. Dup ce am selectat cmpurile apsm butonul Next.
n exemplul nostru vom crea un formular simplu pe baza tabelului discipline.
n fereastra urmtoare alegem cum s fie afiate datele : n coloane, sub forma unui
tabel, etc:
Ecranul 24

35

Dup selectare apsm Next i apare fereastra prezentat in ecranul 25 de


unde vom alege stilul formularului :

Ecranul 25
Apsm din nou Next i se vom pute aici s stabilim numele formularului (n partea de
sus a ecranului 26), n exemplul nostru discipline.

36

Ecranul 26

Apsm Finish i se deschide formularul creat :

Ecranul 27
S exemplificm crearea formularului catalog. Vom crea mai nti interogarea
urmtoare :

37

Ecranul 28
Am selectat din tabelele elevi, note, discipline cmpurile : id_notare,
cod_materie, cod_elev, nume_elev, prenume_elev, data, nota, semestrul , clasa. Am
ales ca numele elevilor s fie ordonate alfabetic (Ascending la Sort) iar in dreptul
cmpului clasa , la Criteria am scris =[Alege clasa] . Salvam interogarea cu
denumirea catalog.
De la panoul cu formulare alegem Create form by using wizard.

38

Ecranul 29
Alegem stilul formularului , apsm Next, apoi salvm formularul cu numele
note .

Ecranul 30
Dup crearea formularului note vom crea un alt formular in Design view.
Dup alegerea opiunii < Create form in Design view> se va deschide fereastra
prezentat n ecranul 31, simultan cu o caset de instrumente (Toolbox). De aici
selectm butonul pentru inserarea unui subformular, buton evideniat n imagine, i cu
mouse-ul vom selecta zona n care vom aeza subformularul. Imediat dup eliberarea
mouse-ului vom alege care este sursa de date a subformularului.

39

Subformularul poate fi selectat dintre formularele deja create sau poate fi creat pe loc
pe baza unui tabel sau a unei interogri. Noi vom utiliza formularul note creat anterior.

Ecranul 31
Selectm apoi din caseta de instrumente un obiect de tip Combo Box(vezi
ecranul 32) i l aezm pe formular tot cu mouse-ul, innd click stnga apsat pentru a
selecta zona n care va fi amplasat combobox-ul. n momentul urmtor vom fi ntrebai
ce date va conine obiectul i vom selecta tabelul discipline i cmpurile
<cod_materie> i <den_materie>.
Vom fi pui s alegem ce camp va face legtura ntre datele din formular i
datele din subformular . Vom alege una din posibilitile afiate n cazul nostru <
cod_materie>. Opiunile sunt evideniate cu negru n ecranul 33.

40

Ecranul 32

Ecranul 33

41

Salvm formularul i subformularul cu denumirea catalog i respectiv note


Subformular (Ecranul 34) :

Ecranul 34
Formularul catalog va arta astfel :

Ecranul 35

42

5. Crearea rapoartelor
Rapoartele sunt destinate tipririi i valorile din raport nu se pot modifica. n
funcie de cantitatea de date afiat rapoartele se pot ntinde pe mai multe pagini . Sunt
instrumente foarte utile pentru orice utilizator al bazei de date deoarece permit gruparea
datelor i calcularea automat a unor totaluri, medii , .a.
Cea mai simpl modalitate de a crea un raport este cu ajutorul wizard-ului.
Vom demonstra crearea raportului care s afieze notele unui anumit elev.
Crem mai nti interogarea note elev I B selectnd tabelele i cmpurile aa cum se
observ n ecranul 36 :

Ecranul 36
n dreptul cmpurilor <nume_elev> i <prenume_elev>, la Criteria vom scrie :
[nume] i respective [prenume]. Aceasta nseamn c, atunci cnd vom deschide
interogarea, va trebui s scriem n caseta care apare numele elevului :

Apsm OK i i n caseta urmtoare scriem prenumele :

43

Apsm din nou OK i vor fi afiate doar notele elevului Andrei Eduard :

Ecranul 37
Ca s crem un raport dup interogarea prezentat mai sus mergem la Report/
Rapoarte, i alegem <Create report by using wizard >. Imediat n fereastra urmtoare
va trebui s alegem tabelul sau interogarea dupa care dorim s crem raportul. Vom
alege Query: note elev I B aa cum se observ n ecranul 38 :

Ecranul 38

44

De la Available Fields/ Cmpuri disponibile alegem cmpurile <nume_elev>,


<prenume_elev>, <den_materie>, <data>, <nota> i semestrul (ecranul 39)

Ecranul 39
Apsm Next i vom stabili prin prisma crui tabel dorim s vedem
datele . n ecranul 40 datele vor fi afiate by elevi.

Ecranul 40

45

Deosebit de important este posibilitatea care ni se ofer la pasul urmtor de


a aduga niveluri de grupare. Aceasta deoarece suntem contieni c vrem ca raportul
nu doar s afieze notele ci i s calculeze mediile pe semestre i la fiecare disciplin .
De aceea am adugat nivelurile de grupare cu click pe cmpurile din partea stng:

Ecranul 41
Apsm Next i n urmtoarea fereastr (ecranul 42) vom putea alege ca
datele de la cel mai jos nivel de grupare s fie afiate Ascending cresctor, alfabetic,
sau Descending.

Ecranul 42

46

Apsam butonul Summary options i n fereastra urmtoare bifm


csua din dreptul opiunii Avg (Average/ media aritmetic). Celelalte opiuni sunt Sum
(calculeaz suma notelor pentru fiecare nivel de grupare a datelor), Min (afieaz
valoarea minim) sau Max.

Ecranul 43
Apsm Ok apoi Next . n ecranul 44 vom alege cum sa fie aezate
datele pe pagin i cum s fie orientat pagina (Portrait sau Landscape) :

Ecranul 44

47

Vom stabili apoi stilul raportului dup care vom salva raportul cu titlul note elev I B.
Aceti pai sunt prezentai n ecranele 45 i 46.

Ecranul 45

Ecranul 46

48

Cnd vom deschide raportul va trebui s scriem, ca i la interogarea pe baza


creia a fost creat numele i prenumele elevului , apsnd de fiecare dat OK:

Se va deschide raportul n mod Print Preview9 :

Ecranul 47
9

Modul de afiare va fi explicat la subcapitolul despre macrocomenzi

49

Modul n care sunt prezentate datele n raportul de mai sus poate fi modificat
astfel nct raportul s fie mai atractiv: distana dintre coloanele de date s fie mai mic,
unele date s fie evideniate prin culoare, mrime, sau s dispar detaliile despre
calcularea mediilor pentru fiecare nivel de grupare. Pentru aceasta , cu click dreapta pe
marginea de sus a raportului alegem Report Design, aa cum se poate observa n
ecranul 48 :

Ecranul 48
Intram n modul Design view ( ecranul 49 )i de aici vom muta cu mouse-ul
cmpurile la distana dorit; din proprietile fiecrui cmp (click dreapta -> Properties)
putem s alegem mrimea, stilul sau culoarea literelor.
Dup ce salvm modificrile fcute , deschidem din nou raportul i modificrile
sunt vizibile.

50

Ecranul 49

Ecranul 50

51

6. Proiectarea unui meniu


Pentru utilizarea diferitelor obiecte ale bazei de date (rapoarte, formulare,
.a)este necesar s crem meniuri i eventual submeniuri. Acestea sunt nite formulare
ce conin etichete (label), butoane

care execut diferite instruciuni, imagini.

Vom prezenta cum aducem pe formular:

Texte statice (label)

Butoane

Crem mai nti un formular n modul Design view :

Ecranul 51
Simultan cu deschiderea formularului va aprea i caseta cu instrumente (Tool
Box), aa cum se vede n partea stng a ecranului 51.
Selectm butonul
i cu ajutorul mouse-ului selectm zona de pe formular in
care vrem s aezm eticheta (ecranul 52).n momentul n care eliberm mouse-ul zona
selectat este pregtit pentru editarea textului (ecranul 53)

52

Ecranul 52

Ecranul 53
Cu click dreapta pe etichet , intrm n Properties de unde vom seta mrimea
literelor, stilul, etc.De la Font/Fore Color alegem culoarea literelor, de la Special Effect
putem s umbrim eticheta (vezi ecranul 56).

53

Ecranul 54
Cu click dreapta pe formular, -> Fill/Back Color i putem alege culoarea de
fond .

Ecranul 55

54

n acelai mod aducem pe formular un buton. Vom seta textul sau imaginea de pe
buton precum i atiunea care va fi executat de acesta.Cu click dreapta intrm n
Properties (ecranul 56):

Ecranul 56
La Caption vom scrie textul (n cazul n care dorim acest lucru) sau putem
alege o imagine apsnd butonul
din dreptul proprietii Picture.

Ecranul 57

55

Se va deschide fereastra urmtoare din care putem alege imaginea care va


aprea pe buton. Dac dorim o alt imagine dect cele prezentate apsm butonul
Browse i putem gsi n alt fiier imaginea dorit. Dup ce am selectat imaginea
apsm OK.

Ecranul 58
Pentru a seta ce aciune s execute butonul la click, dublu click sau
enter putem s definim o macrocomand sau s scriem instruciunea utiliznd codul
VBA. Intrm la Event (ecranul 59).

Ecranul 59

56

Apsm butonul

i alegem din fereastra urmtoare Macro Builder (ecranul

60) dup care apsm butonul OK.

Ecranul 60
Chiar de la nceput vom fi ntrebai sub ce denumire salvm acest Macro.
Scriem denumirea n caset i apsm OK.

Ecranul 61

57

Din caseta de opiuni din colul stnga sus (Ecranul 62) alegem aciunea
dorit (n cazul nostru OpenForm/Deschidere formular).

Ecranul 62
De la Form Name alegem ce formulam dorim s fie deschis:

Ecranul 63

58

De la Data Mode putem selecta :


Add-> se permite doar adugarea datelor
Edit -> se permite adugarea, modificarea, tergerea datelor
Read Only -> doar n citire

Ecranul 64
Pentru definirea unui macro care s deschid un raport, paii sunt aceiai, ns la
View putem alege una din opiunile :
Print -> la deschiderea raportului se pornete automat printarea
Design -> raportul se deschide n modul Design
Print Preview -> raportul se deschide pentru a fi vizualizat naintea imprimrii

Ecranul 65

59

Dac vrem s scriem cod VBA , n fereastra prezentat n ecranul 60 alegem Code
Builder i se va deschide fereastra :

Ecranul 66
Dup cum se poate observa n ecranul de mai sus subrutina pentru deschiderea
formularului form I B este :
docmd.OpenForm form I B
ntregul cod VBA este scris n proceduri care sunt blocuri de instruciuni cu
nceput i sfrit bine determinat. Acest tip de programare poart numele de programare
modular .
n limbajul VBA exist dou tipuri de proceduri :

Subrutinele proceduri care nu returneaz nici o valoare ; au un nceput bine


definit (o instruciune Sub) i un sfrit (End Sub).

Funciile sunt proceduri care returneaz o valoare procedurii care le-a apelat.
Ele au un nceput bine definit (o instruciune Function) i un sfrit (End
Function)
n baza de date prezentat am mai folosit limbaj VBA pentru a selecta o dat

calendaristic fr introducerea acesteia de la tastatur. Putem folosi acest mod de


selectare a datei n formularul elevi , pentru nregistrarea datei de natere. Mai nti
vom schimba caseta text <data_nasterii> n caset de tip Combo Box (Ecranul 67)

60

Ecranul 67
Apoi, din caseta cu instrumente apsm butonul
multe controale), iar din list alegem Calendar Control 11.0 :

Ecranul 68

61

(more controls/mai

Aezm calendarul pe formular selectnd cu mouse-ul zona .

Ecranul 69
Dup aceea, cu click dreapta -> Properties -> Format, la proprietatea
Visible alegem No :

Ecranul 70

62

Intrm la proprietile casetei combo box <data_nasterii> -> Event i apsm butonul
din dreptul opiunii On Mouse Down:

Ecranul 71
Alegem Code Builder i apsm OK:

Ecranul 72

63

n Visual Basic vom scrie codul :


Private Sub Calendar4_Click()
data_nasterii.Value = Calendar4.Value
data_nasterii.SetFocus
Calendar4.Visible = False
End Sub
Private Sub Calendar4_Updated(Code As Integer)
End Sub
Private Sub Command25_Click()
DoCmd.Close
End Sub
Private Sub data_nasterii_MouseDown(Button As Integer, Shift As Integer, X
As Single, Y As Single)
Calendar4.Visible = True
Calendar4.SetFocus
If Not IsNull(data_nasterii) Then
Calendar4.Value = data_nasterii.Value
Else
Calendar4.Value = Date
End If
End Sub
Salvm modificrile efecuate asupra formularului elevi i legtura dintre caseta
combo box <data_nasterii> i calendar (Calendar4) este realizat.

64

7. Grafice
Graficele sunt o modalitate de vizualizare a datelor ntr-o form atractiv .
Am utilizat n aceast baza de date grafice care permit vizualizarea mediilor pe
semestre la fiecare disciplin pentru a observa progresul sau regresul clasei n general.
Am creat o interogare prin care se calculeaz media notelor obinute de elevii unei clase
la fiecare disciplin, att pe semestrul I ct i pe semestrul II.Interogarea este prezentat
n ecranul 73.

Ecranul 73
Salvm interogarea cu denumirea grafic V B.
Din meniul Insert alegem <Form> i se va deschide fereastra prezentat n
ecranul 74 :

Ecranul 74

65

Alegem AutoForm : PivotChart i selectm apoi tabelul sau interogarea pe


baza creia crem graficul. Vom alege grafic V B. Imediat vom intra n mediul de
lucru (ecranul 75). Vom selecta cmpurile din <Chart Field List> i prin procedeul
drag and drop le vom aeza in locul dorit. Vom aeza <den_materie > n spaiul de jos
de la baza graficului (spaiu ncadrat ntr-un chenar albastru n ecranul 75), iar
cmpurile <AvgOfnota>(media pe semestrul I) i <AvgOfnota1>(media pe semestrul
II) n spaiul gri destinat graficului.

Ecranul 75
Dup acest pas graficul va arta ca n ecranul 76:

Ecranul 76

66

Cu click dreapta pe spaiul graficului intrm n Properties/ Proprieti de


unde vom selecta tipul graficului (ecranul 78), culoarea de fond (ecranul 79), nclinaia,
luminozitatea, .a.

Ecranul 77

Ecranul 78
67

Ecranul 79
Butonul care va deschide acest formular va executa un macro definit aa
cum se poate observa n ecranul 80:

Action -> OpenForm

Form Name -> grafic V B

View -> Pivot Chart

Aceast ultim opiune este foarte important . Altfel formularul va afia


datele care stau la baza graficului i nu graficul pe care l dorim.

Ecranul 80

68

8. Crearea unui help


Utilizatorul bazei de date poate consulta documentaia pus la dispozitie,
manualul de utilizare sau fiierele help. Deasemenea i sunt utile informatiile pe care le
poate descoperi pe parcursul lucrului efectiv cu baza de date :
Descrierea obiectelor
Utilizarea indiciilor (Control Tips)
Mesaje de invalidare
Casete cu mesaje
Asistarea cu ajutorul barei de stare
Descrierea obiectelor (tabele, interogri, rapoarte, formulare) se realizeaz
astfel : Cu click dreapta pe obiect intrm n Properties/Proprieti , aa cum se observ
n ecranul 81.

Ecranul 81

69

n caseta Description/ Descriere vom descrie obiectul apoi apsam tasta OK.

Ecranul 82
Pentru asistarea cu ajutorul barei de stare vom completa n tabele descrierea
fiecrui cmp .

Ecranul 83

70

Cnd vom deschide tabelul i avem cursorul n cmpul a crui descriere am


demonstrat-o anterior vom putea vedea descrierea sau indicatiile referitoare la
completarea cmpului respectiv n partea de jos a ferestrei:

Ecranul 84
Aceeai descriere din bara de stare o putem obine dac de pe formular, cu click
dreapta pe Properties -> Other scriem textul n dreptul cmpului <Status Bar Text/ Text
bar de stare>.

Ecranul 85

71

Dup ce salvm i deschidem din nou formularul ,putem citi descrierea n


bara de stare , aa cum se observ n ecranul 86, n momentul n care ne aflm n
cmpul respectiv.

Ecranul 86
Un alt ajutor dat utilizatorului este afiarea unor balonae cu text. Intrm
din nou cu click dreapta pe Properties -> Other i completm cmpul ControlTip Text
cu mesajul dorit :

Ecranul 87
72

Balonaul cu mesaj va aprea dup cteva momente n care indicatorul mouseului se va afla n cmpul a crui descriere am fcut-o.(ecranul 88)

Ecranul 88
Putem pune la dispoziia utilizatorului casete cu mesaje referitoare la
regulile de completare a unor cmpuri, mesaje care vor aprea n momentul n care
regula definit de completare a cmpului (Validation Rule) a fost nclcat.

Ecranul 89

73

Exemple de reguli de validare :


<>0 nregistrarea trebuie s fie o valoare diferit de 0
> 10 Or Is Null nregistrarea trebuie s fie un numr mai mare dect 10 sau s
rmn necompletat
Like ??? nregistrarea trebuie s conin trei caractere
Like ????A- nregistrarea este format din cinci caractere, ultimul fin
obligatoriu A
>=#1/1/96# And < #1/1/97# - data trebuie s fie din anul 1996
n ecranul 90 se poate observa caseta cu mesajul de invalidare a textului
introdus deoarece regula de validare a textului introdus a fost <Like???????????>,
adic textul trebuia s conin 11 caractere.

Ecranul 90
Putem crea o caset cu mesaje de informare, avertizare sau atenionare care
s apar nainte de a deschide un formular. Crm mai nti o macrocomand alegnd
opiunea <MsgBox> iar la Message scriem textul care va aprea in caset(de exemplu :
Fiecare professor este responsabil pentru nregistrrle effectuate !).Salvm
macrocomanda.

74

Ecranul 91
Dac vrem ca mesajul s apar cnd un utilizator dorete s deschid formularul
Catalog , n Design View, la propriettile butonului care deschide formularul vom
selecta macrocomanda salvat anterior ca eveniment produs la clik .(Event -> On Click
-> msgbox)
n ecranul 92 se poate observa caseta cu mesaj :

Ecranul 92

75

You might also like