Documente Academic
Documente Profesional
Documente Cultură
Suport ACCESS Cu 4 Probleme PDF
Suport ACCESS Cu 4 Probleme PDF
BAZE DE DATE
- suport de laborator -
2.3. Modificarea structurii unei tabele i realizarea relaiilor dintre tabele ..................... 20
5. Crearea interogrilor............................................................................................................. 43
5.1. Crearea interogrilor de selecie ..................................................................................... 44
O baz de date este o colecie de date, structurate i corelate logic ntre ele, memorate pe
un suport de memorie. Pe lng datele propriu-zise, baza de date memoreaz i relaiile logice
care exist ntre acestea, dar i descrierea formal a structurii lor. Baza de date este gestionat de
de un sistem special numit sistem de gestiune a bazelor de date.
Un sistem de gestiune a bazelor de date (SGBD) asigur legtura dintre utilizator i baza
de date, permind construirea bazei de date, introducerea datelor n cadrul acesteia, dar i
construirea unor aplicaii.
O baz de date poate fi privit ca o colecie de date memorate n fiiere intercorelate i
definite logic sub form de tabele, alctuite din linii care corespund nregistrrilor i coloane care
corespund cmpurilor din nregistrri. Datele care sunt memorate n cadrul bazei de date sunt
structurate, neredundante, corelate logic ntre ele.
Baza de date poate fi mprit n:
date utilizator sunt memorate n fiiere i descrise prin tabele, care conin cmpuri i
nregistrri. Pentru fiecare tabel se definete i structura tabelei conine descrierea
cmpurilor din tabel i proprietile acestora;
dicionarul de date conine metadate, adic descrierea structurii tabelelor i a legturilor
logice dintre acestea (tabela de sistem);
tabele de index mresc accesibilitatea la datele din cadrul bazei de date;
metadatele aplicaiilor informaii pentru descrierea unor componente ale aplicaiilor, cum
ar fi: descrierea vederilor bazei de date, formatul unor cereri de interogare.
Structura unei baze de date realizeaz o descriere a datelor, a legturilor dintre ele i a
restriciilor la care se supun datele din cadrul bazei de date. Mai conine, pe lng acestea, i
descrierea structurii fiecrei tabele din baza de date.
Asupra datelor din cadrul bazei de date se pot impune o serie de constrngeri semantice
care trebuiesc respectate pentru a reflecta ct mai adevrat realitatea. Aceste constrngeri se
numesc restricii de integritate, iar baza de date care respect acest principiu este o baz de date
consistent. Restriciile de integritate ale unei baze de date se definesc prin intermediul regulilor
de integritate:
implicite stabilirea unor valori care pot fi introduse;
explicite atunci cnd se definete o list de valori sau un interval de valori din care se pot
da cmpurilor bazei de date.
O alt clasificare a regulilor de integritate este n reguli de integritate minimal i restul
regulilor. Din cadrul regulilor de integritate minimal se pot enumera:
regula unicitii cheii valoarea cheii primare este unic;
regula entitii toate cmpurile care fac parte din cheia primar trebuie s aib atribuite
valori n orice nregistrare din tabel;
regula integritii refereniale - orice valoare dat cheii strine dintr-o tabel trebuie s se
regseasc n tabela n care cheia respectiv este cheie primar:
o la adugarea unei noi nregistrri n tabela fiu, se va verifica dac valoarea care se
dorete introdus exist n tabela unde este cheie primar, n caz contrar, nu se va
realiza adugarea;
o la tergerea unei nregistrri din tabela printe, dac valoarea se regsete n tabela
fiu, atunci fie tergerea fie va fi interzis, fie se va realiza o tergere n cascad se
terg toate nregistrrile din tabela fiu, dar i nregistrarea din tabela printe;
o la modificarea cheii primare din tabela printe, dac aceasta exist ca valoare a cheii
strine n tabela fiu, atunci fie modificarea este interzis, fie se va realiza o modificare
n cascad se modific nregistrarea n printe i toate nregistrrile corespunztoare
din tabela fiu.
Proiectarea unei baze de date pornete de la problema real care trebuie modelat pentru
a defini schema conceptual a datelor. Primul pas n crearea bazei de date este identificarea
datelor care vor forma baza de date, dar i caracteristicile acestora. Pornind de la caracteristicile
datelor se va continua cu determinarea legturilor logice dintre ele, innd cont de fenomenele
reale care se doresc modelate. Proiectarea bazei de date se face n mai multe etape:
etapa de modelare a structurii bazei de date se stabilesc legturile logice dintre date;
etapa de definire a bazei de date folosind un SGBD;
etapa de ncrcare a datelor n cadrul bazei de date i verificarea corectitudinii;
etapa de mentenan a bazei de date.
Modelarea cerinelor presupune realizarea unei analize reale a problemei pentru care
trebuie realizat baza de date. Dup ce s-a formulat problema i datele care vor fi folosite i
introduse n cadrul aplicaiei se va continua cu modelarea structurii bazei de date.
Modelarea structurii bazei de date se realizeaz prin intermediul unui model de
organizare logic a datelor, acesta preciznd coninutul logic al datelor, natura datelor i a
legturilor dintre date la nivelul ntregii bazei de date. Modelul de organizare logic a datelor
presupune o descriere a datelor din punct de vedere formal, innd cont de:
semantica datelor (coninutul logic al datelor) presupune denumirea ct mai sugestiv a
datelor i explicarea sensului acestora. Structura tabelelor trebuie s permit obinerea facil
a diverselor tipuri de rapoarte necesare utilizatorilor, precum i s faciliteze operaiile de
filtrare aplicate nregistrrilor de date;
restriciile - se exprim sub form de reguli de integritate sau reguli de validare a datelor
care vor urma introduse n cmpurile respective;
modul de grupare a datelor se realizeaz pentru a crea structuri omogene care vor fi
folosite n rezolvarea problemei;
legturile logice dintre grupuri (relaii logice) sunt definite astfel:
o legturi de tip unu-la-unu apar atunci cnd unui element dintr-un grup i corespunde
un singur element dintr-un alt grup i reciproc. De exemplu, unei comenzi i corespude
o singur factur i reciproc este adevrat, adic unei facturi i corespunde o singur
comand. n urma unei astfel de legturi, cheile primare ale celor dou tabele
migreaz ca i chei strine n ele.
o legturi de tip unu-la-muli apar atunci cnd unui element dintr-un grup i
corespunde mai multe elemente dintr-un alt grup, dar unui element din grupul al doilea
i corespunde un singur element din primul grup. De exemplu, o persoan primete n
urma achiziiei de bunuri una sau mai multe facturi, n schimb o factur i este emis
unei singure persoane. n urma unei astfel de legturi, cheia primar a tabelei printe
(cea creia i corespund mai multe elemente) devine cheie strin n tabela fiu.
o legturi de tip muli-la-muli apar atunci cnd unui element dintr-un grup i
corespunde mai multe elemente dintr-un alt grup i reciproc. De exemplu, pe o factur
se pot gsi mai multe produse, iar un produs poate apare pe mai multe facturi. n
urma unei astfel de legturi, cheile primare ale celor dou tabele migreaz ca i chei
primare n cadrul unei noi tabele numite tabel de jonciune.
Se numete cheie primar cmpul sau combinaia de cmpuri care identific n mod unic
nregistrrile tabelei.
Asupra cheii primare se fac urmtoarele observaii:
cheia primar este folosit pentru identificarea n mod unic a nregistrrilor, dar i pentru
cutarea n cadrul bazei de date;
cheia primar trebuie s respecte restricia de unicitate a cheii, adic nu este permis ca s
existe dou nregistrri care s aib aceeai valoare a cheii primare;
nu se accept ca pentru cheia primar s nu aib definit nici o valoare, adic cheii primare
trebuie s i se dea o valoare. Aceast restricie se numete regula entitii.
Se numete cheie strin mulimea de cmpuri care au proprietatea c domeniile pe care
le definesc se regsesc n cadrul unei alte tabele, adic este cheie primar n cadrul unei alte
tabele.
Asupra cheii strine se fac urmtoarele observaii:
cheia strin este definit ca i cheie primar n cadrul unui alt grup;
cheia strin poate lua doar valorile definite pentru cheia primar aferent tabelei din care
provine restricia de integritate referenial;
cheia strin poate s nu aib asociat nici o valoare restricia de integritate referenial;
nu exist dou nregistrri care s difere doar prin valoarea cheii strine.
Se numete cheie candidat mulimea de cmpuri care pot fi chei primare n anumite
condiii.
Se numete cheie alternant mulimea de cmpuri care nu sunt chei primare din
mulimea de chei candidat.
CONCLUZII:
O baz de date este format din:
tabele sunt formate din mai multe rnduri (nregistrri) i mai multe coloane (cmpuri).
nregistrrile sunt valori date cmpurilor tabelei. Fiecrui cmp n parte i este asociat
un nume, un tip de dat, o anumit dimensiune.
relaii ntre tabele se exprim conform tipurilor de legturi care pot exista ntre tabele;
Pe lng acestea, n cadrul unei baze de date pot exista i:
formulare sunt folosite pentru introducerea datelor n cadrul bazei de date.
interogri selectarea anumitor date din tabele n funcie de anumite condiii, selectarea
datelor putnd fi selectate din mai multe tabele.
rapoarte servesc la preluarea datelor din baza de date i afiarea acestora pe ecran sau
hrtie. Datele din tabele pot fi sortate i grupate.
2. Crearea i lucrul cu tabele n Microsoft Access 2003
Ca orice fereastr de aplicaie, i fereastra aplicaiei Microsoft Access este format din:
bara de titlu va conine numele bazei de date cu care se va lucra. n partea dreapt a
barei de titlu se afl cele trei butoane de control: minimize (pentru micorarea ferestrei
i aducerea acesteia n bara de task-uri), maximize/restore (va mri fereastra pe tot
ecranul sau va aduce fereastra la forma iniial), close (va nchide fereastra aferent
bazei de date cu care se lucreaz);
bara de meniuri cuprinde meniurile aplicaiei, fiecare dintre acestea avnd un scop
precis: meniul File prezint operaiile care se pot realiza asupra fiierului (deschidere,
salvare, nchidere, crearea unei noi baze de date, exportul bazei de date sau
imprimarea), meniul Edit conine operaiile de editare a coninutului fiierului
(copiere, mutare, lipire, redenumire sau tergere), meniul View cuprinde modurile de
vizualizare a coninutului fiierului (detaliat, icoane, list), meniul Insert nglobeaz
operaiile ce permit introducerea de noi obiecte n cadrul bazei de date (tabele,
formulare, rapoarte, interogri), meniul Tools conine operaii legate de baza de date
(crearea relaiilor ntre tabele, analiza datelor din cadrul bazei de date, crearea unei copii
de siguran a bazei de date, crearea unui panou de control), meniul Window asigur
modul de vizualizare a bazei de date;
bara de intrumente conine diferite butoane, care reprezint ci rapide ctre opiunile
din meniurile aplicaiei;
zona de lucru este reprezentat prin zona n care se afieaz structura bazei de date;
bara de stare afieaz diferite informaii despre starea aplicaiei.
2.1. Crearea, deschiderea i salvarea unei baze de date
Crearea unei noi baze de date n Microsoft Access se poate realiza n mai multe
moduri, iar unele dintre acestea sunt prezentate n continuare:
din meniul File al aplicaiei Microsoft Access se va selecta opiunea New;
Figura 2.3. Panoul de sarcini pentru crearea unei noi baze de date
Blank database crearea unei noi baze de date i salvarea acesteia ntr-o locaie;
From existing file permite crearea unei noi baze de date sau proiect folosind diferite
tipuri de fiiere, precum cele de web (.html) sau chiar baze de date (.mdb). Este folosit
atunci cnd s-a creat o baz de date i se dorete una asemntoare;
Templates crearea bazei de date se face pornind de la o serie de abloane (baze de date
existente) care pot fi gsite pe calculator sau online.
Dup cum se poate observa n figura 2.4., fereastra bazei de date conine cteva butoane
aranjate n meniul vertical Objects, cu ajutorul crora se vor crea tabele, rapoarte, interogri sau
formulare. Prin apsarea fiecrui buton, se vor vizualiza doar obiectele respective, adic doar
tabele sau rapoarte, interogri sau formulare.
Salvarea unei baze de date n Microsoft Access se realizeaz doar n momentul n care
aceasta se creeaz. Dup crearea bazei de date, orice modificare a acesteia se va salva automat.
Deschiderea baze de date n Microsoft Access se poate realiza n mai multe moduri:
cu ajutorul opiunii Open din meniul File;
Pentru a se continua construirea bazei de date cu tabele este nevoie ca mai nti s se
finalizeze etapa de modelare conceptual a bazei de date (tabele i relaiile care exist ntre
acestea). Este mai indicat n a se finaliza modelul conceptul de date, dect s se nceap crearea
tabelelor n mod aleator, deoarece se va pierde timp inutil cu modificrile ulteriore pentru a
modela ct mai bine realitatea. n Microsoft Access, crearea tabelelor se poate realiza n diferite
moduri:
Create table in Design View crearea tabelelor se va face ntr-un mod de vizualizare;
Create table by using wizard crearea tabelelor se va face folosind un asistent;
Create table by entering data crearea tabelelor se va face introducnd date, pentru ca
mai apoi s se modifice numele cmpurilor i s se stabileasc cheia primar.
Figura 2.7. Crearea unui tabel folosind asistentul selectarea i redenumirea cmpurilor
a doua etap a crerii tabelului folosind asistentul este denumirea tabelului i stabilirea
cheii primare. Alegerea cheii primare se poate realiza automat de ctre asistent sau
manual de ctre utilizator. n cazul n care se stabilete ca cheia primar s fie selectat
de asistent, atunci aceasta va trebui scris ca i prim cmp, deoarce l alege pe acesta.
Figura 2.8. Crearea unui tabel folosind asistentul denumirea tabelei i selectarea cheii primare
Alegerea manual a cheii primare presupune introducerea unei noi etape i anume selectarea
acesteia. Se vor afia toate cmpurile tabelei, urmnd ca dintre acestea s fie alese cheia primar.
Figura 2.10. Crearea unui tabel folosind asistentul stabilirea legturilor logice ntre tabele
Realizarea relaiilor dintre tabele se va face prin selectarea tabelei cu care aceasta este ntr-o
legtur logic i apoi se va aciona butonul Relationships, care va conduce la deschiderea unei
noi ferestre de dialog din care se va alege tipul de legtur logic.
Figura 2.11. Crearea unui tabel folosind asistentul alegerea tipului de legtur ntre tabele
Alegerea tipului de legtur se face n funcie de tabela printe, care poate avea asociat una sau
mai multe nregistrri din tabela fiu.
etapa patru din crearea tabelei folosind asistentul este dat de operaiile care se dorete s
se realizeze cu aceasta:
o Modify the table design se poate modifica structura tabelei, tipul de dat asociat
unui cmp sau numele acestora;
o Enter datat directly into the table se folosete tabela creat, introducnd date n
cadrul acesteia;
o Enter data into the table using a form the wizard creates for me permite
introducerea datelor n cadrul tabelei prin intermediul unui formular creat de asistent.
Ultima modalitate de creare a unei tabele folosind SGBD-ul Microsoft Access este
introducnd date n cadrul cmpurilor dorite i redenumirea acestora. Crearea unei astfel de
tabele se face cu ajutorul opiunii: Create table by entering data.
Dup cum se poate observa n figura 2.13., crearea unei tabele se poate face i
introducnd datele n tabel, pentru ca mai apoi s se redenumeasc cmpurile. Redenumirea
cmpurilor se poate face:
dnd clic dreapta pe indicativul coloanei, iar din meniul de context se va alege opiunea
Rename Column;
dnd dublu clic pe indicativul coloanei i apoi se va introduce numele cmpului;
Dezavantajul crerii tabelei n acest mod este dat de intrarea apoi n mod design pentru a
se defini cheia primar.
2.3. Modificarea structurii unei tabele i
realizarea relaiilor dintre tabele
Modificarea structurii unei tabele se poate face doar n mod de design. Structura tabelei
se poate modifica n mai multe moduri:
se va selecta tabelul i se va da clic dreapta, alegndu-se din meniul de context opiunea
Degin View;
se alege tabelul pentru care se dorete modificarea structurii i se va alege butonul
Dup ce tabelele au fost create urmeaz s se stabileasc relaiile dintre tabele. Pentru a
se realiza relaiile se pot urma unul dintre paii urmtori:
de pe bara de intrumente a aplicaiei Microsoft Access se va selecta butonul
Relationships ( );
din meniul Tools se va alege opiunea Relationships.
n cazul n care tabelele bazei de date nu sunt deja legate ntre ele (fie prin intermediul
crerii tabelei folosind asistentul, fie prin intermediul tipului de dat oferit de Microsoft Access
numit Lookup Wizard), atunci vor trebui afiate tabelele, acest lucru realizndu-se cu ajutorul
opiunii Show Tables, care apare atunci cnd se va da clic dreapta pe fereastra Relationships.
Dup afiarea tabelelor, realizarea legturilor se va face trgnd cheia primar a tabelei printe
peste cheia strin a tabelei fiu.
Figura 2.15. Editarea legturilor dintre tabele
Din cadrul relaiei se poate observa ca tabela din stnga este tabela printe, iar cea din
dreapta este tabela fiu. Opiunea Enforce Referential Integrity se refer la relaia de integritate,
care verific ca cele dou chei, cea primar i cea strin s aib acelai tip i dimensiune. n
cazul n care este nclcat regula de integritate, atunci va apare un mesaj de eroare care v v.a
avertiza acest lucru. Odat selectat aceast opiune se va activa posibilitatea de modificare i
tergere n cascad.
n cazul n care avem o relaie de muli la muli ntre tabele, relaiile se pot realiza i prin
intermediul asistentului furnizat de Microsoft Access ca i tip de dat, acesta numindu-se
Lookup Wizard. Prin intermediul acestui tip de dat se vor lega tabelele, urmrind cei ase pai
executai de asistent:
primul pas n crearea legturii cu tipul de dat specificat este alegerea operaiei care se va
aplica cmpurilor celor datele:
o I want the lookup column to look up the values in a table or query va prelua
valorile cheii primare din tabela printe i le va introduce n tabela fiu. Deoarece
relaia precizeaz c nu putem avea alte valori dect cele ale cheii primare, se va
alege aceast opiune dintre cele dou;
o I will type in the values that I want se vor introduce valorile dorite.
Figura 2.16. Realizarea relaiei ntre cmpurile tabelelor aflate ntr-o relaie de muli la muli
pasul doi n realizarea relaiei este alegerea tabelei cu care cmpul curent se leag;
pasul trei este alegerea cmpului din cadrul tabelei selectate, cmp care va trebui s
coincid cu cel din tabela fiu.;
Pentru realizarea unei liste personalizate, precum ar fi o list de uniti de msur sau
grade didactice din care se poate alege, se va folosi opiunea Lookup Wizard din cadrul design-
ului de tabel. Spre deosebire de realizarea legturii dintre tabele, prin alegerea primei opiuni de
selectare a datelor din cadrul altei tabele, se va selecta cea de-a doua opiune prin care se va scrie
componentele listei.
n pasul doi de creare a listei personalizate se vor scrie valorile care se doresc n cadrul
listei, acest lucru realizndu-se prin tiprirea lor n fiecare celul.
Figura 2.22. Tiprirea valorilor care vor forma lista personalizat
O alt modalitate de realizare a listei personalizate este din pagina Lookup a ferestrei de
design a tabelei. Odat selectat aceast pagin se va vor afia proprietile acesteia, primele trei
fiind folosite n realizarea listei.
Din zona Display Control se va alege tipul de component care va afia valorile listei.
Folosind lista derulant care apare n partea dreapt a opiunii se va alege Combo Box.
Cea de-a doua zon care va fi modificat este Row Source Type. Aceast opiune
precizeaz de unde se vor lua valorile listei, iar dintre opiunile prezentate se va selecta Value
List, acest lucru specificnd c valorile sunt dintr-o list definit.
Precizarea valorilor definite ale listei se va face n zona Row Source, acestea fiind scrise
ntre ghilimele i separate prin punct i virgul.
Input Mask permite crearea unor machete de introducere a datelor n cmpurile bazei de
date. Macheta este format din trei pri, separate prin punct i virgul sau virgul (este n funcie
de setarea sistemului de operare):
prima parte este obligatorie i va conine macheta de introducere a datelor:
o 0 indic cifr obligatoriu;
o 9 indic cifr opional;
o L indic liter obligatoriu;
o ? indic liter opional;
o A indic liter sau cifr obligatorie;
o a indic liter sau cifr opional;
o & indic caracter sau spaiu obligatoriu;
o C - indic caracter sau spaiu opional;
o # indic cifr, spaiu, plus sau minus opional. n cazul n care este ignorat se va
pune automat spaiu alb;
o > convertete toate caracterele la majuscul;
o < - convertete toate caracterele la minuscule;
o caracterele scrise ntre ghilimele vor apare ca atare.
cea de-a doua parte este opional i se refer la caracterele de machet nglobate i
modul n care vor fi stocate:
o 0 caracterele introduse sunt stocate cu date;
o 1 caracterele introduse sunt doar afiate i nu stocate;
ultima parte indic simbolul care va fi folosit pentru introducerea datelor.
EXEMPLU:
Macheta creat va permite introducerea n cmpul adres a maxim 26 de caractere dup cum
urmeaz:
strada i numrul vor apare ca atare la introducerea datelor n cmpul adres, deoarece
este cuprins ntre ghilimele;
primele 5 caracterele care se vor introduce la strad vor fi obligatorii, deoarece avem
caracterul L care precizeaz acest lucru;
urmtoarele 10 caractere ale adresei vor fi opionale, acest lucru fiind dat de caracterul ?;
strada va fi introdus cu majuscule, deoarece avem caracterul > nainte de introducerea
caracterelor care vor forma strada;
numrul pentru strad va fi obligatoriu la introducere, deoarece macheta are caracterul 0,
iar dimensiunea numrului va fi exact dou cifre;
macheta precizeaz c datele introduse vor fi stocate ca atare n cadrul tabelei, deoarece
cea de-a doua parte a machetei are 0;
caracterul care va apare la introducerea datelor n cadrul tabelelor va fi _, acesta fiind
precizat n a treia parte a machetei.
Format stabilete formatul de afiare a datelor:
> - transform textul n majuscule;
< - transforma textul n minuscule;
Validation Rule reprezint reguli de validare care se stabilesc asupra cmpurilor, acestea
permind introducerea doar a acelor valori care respect regula
EXEMPLE:
BETWEEN val1 AND val2 va permite introducerea doar a valorilor care sunt cuprinse
n intervalul dat;
>val1 AND <val2 permite introducerea doar a valorilor mai mari de val1 i mai mici de
val2 (este echivalent cu between)
IN(p1, p2, p3) va permite introducerea doar a valorilor prezentate n list;
p1 OR p2 OR p3 permite doar introducerea celor trei valori definite (echivalent
cu clauza IN);
IS NOT NULL nu permite valori nule;
<Date() va permite introducerea datelor calendaristice anterioare celei curente;
BETWEEN #data1# AND #data2# - introduce doar datele calendaristice din intervalul
specificat. Datele calendaristice se vor introduce ntre caracterele diez (#);
MID([cmp];pornire;nr_caractere) va extrage un subir de caractere din cadrul un
ir. Se va porni de la valoarea precizat prin parametrul pornire i se vor lua un numr
de caractere precizat prin parametrul nr_caractere. Numele cmpului din care se va
face extracia se va scrie ntre paranteze ptrate.
3. Crearea formularelor n Microsoft Access
Cea mai simpl modalitate de creare a formularelor este cu ajutorul asistentului (Create
form by using wizard). Crearea formularului pentru un singur tabel se realizeaz n patru pai:
primul pas const n alegerea tabelului pentru care se dorete crearea tabelului, dar i a
cmpurilor care se doresc introduse n cadrul formularului;
pasul doi n crearea formularului simplu este stabilirea modului de aranjare a cmpurilor
n cadrul ferestrei.
pasul patru n crearea formularului este stabilirea denumirii formularului i este bine ca
acesta s fie ct mai sugestiv. La acest moment se poate stabili ce anume se va face cu
formularul: fie va fi deschis pentru introducerea datelor n cadrul tabelei (Open the
form to view or enter information), fie se va deschide n mod de design pentru a
modifica cmpurile sau pentru a introduce noi cmpuri (Modify the forms design).
Pentru crearea unui astfel de formular avem nevoie de o relaie de tip unu la muli ntre
dou tabele. Realizarea unui astfel de formular se va face cu ajutorul asistentului i se va executa
n cinci pai:
pasul unu este selectarea tabelelor i a cmpurilor pentru care se va crea formularul.
Deoarece se va crea un formular pentru o relaie de unu la muli ntre tabele, se va
selecta pentru prima dat tabela printe (cea care are mai multe nregistrri asociate din
tabela fiu), din care se vor alege cmpurile care s apar n cadrul formularului. Dup ce
tabela printe a fost aleas, se va selecta tabela fiu (cea cu care este legat), din care se
vor alege cmpurile, mai puin cheia strin. Cheia strin a tabelei fiu nu se va alege,
deoarece aceasta a fost selectat din tabela printe, acolo unde este cheie primar.
cel de-al treilea pas n realizarea formularului aplicat relaiei de unu la muli este
stabilirea modului de vizualizare. Pentru oricare dintre cele patru modele, n partea de
jos a ferestrei aferente formularului se va afla tabela fiu, introducerea datelor n cadrul
acestei tabele fcndu-se dup ce datele au fost introduse n tabela printe.
Crearea formularului pentru o relaie de tipul muli la muli este asemntoare cu cea de
creare a formularului pentru o relaie de tipul unu la muli. Deosebirea ntre acestea este c acum
se va porni cu tabela rezultat ca urmare a relaiei, pentru ca mai apoi s se selecteze cmpurile
tabelelor principale. Din tabelele principale se vor selecta toate cmpurile dorite, mai puin cheile
primare, deoarece acestea vor fi preluate prin intermediul listei derulante aferente cheii primare a
relaiei rezultate dup legtur.
Toate celelalte etape de creare a formularului sunt identice cu cele pentru formularele de
simple i cele pentru relaiile de tipul unu la muli.
Design-ul Bara de
formularului instrumente a
formularului
n cazul n care constatm c mai este nevoie de un cmp pe care nu l-am adus n cadrul
formularului, atunci va fi nevoie de deschiderea formularului n mod design. Dup deschiderea
formularului n mod design se vor afia proprietile formularului, acest lucru executndu-se prin
clic dreapta pe formular i apoi din meniul de context se va alege Properties ( ). Din
fereastra de dialog care apare se va alege din lista derulant Form, pentru a afia proprietile
formularului (pe lng proprietile formularului se pot vizualiza n acest mod i proprietile
celorlalte componente plasate n cadrul formularului).
Adugarea cmpului dorit se face prin tragerea acestuia din partea de sus a ferestrei, n
zona cmpurilor. O alt modalitate de a aduga cmpul este selectarea din partea de jos a
ferestrei, din zona Field, a cmpului dorit.
Dup ce n fereastra SQL Statement s-au ales cmpurile care se doresc introduse, pentru
a poziiona cmpul n formular se va selecta Field List i se va trage pe formular cmpul nou
introdus.
Pentru a personaliza un cmp din formular se va intra n mod design a formularului i se
va modifica doar eticheta cmpului (numele din stnga cmpului), nu i zona de editare a
acestuia. Pentru zona de editare se poate modifica tipul de caracter, dimensiunea acestuia,
culoarea caracterului.
n cadrul unui formular se pot crea i cmpuri care se calculeaz n funcie de alte
cmpuri, iar valorile obinute nu se vor stoca n baza de date. Pentru crearea cmpului calculat,
se va deschide formularul n Design. Din cadrul ferestrei se va selecta cmpul pe care dorim s l
calculm sau se va introduce un nou cmp i se va da clic dreapta i din meniul de context se va
alege opiunea Properties.
Din fereastra de proprieti a cmpului de editare se va selecta pagina Data, iar din zona
Control Source se va vor selecta cele trei puncte aflate n partea dreapt ( ), aciune ce va
deschide fereastra Expression Builder.
Figura 3.16. Fereastra de dialog Expression Builder
n general, atunci cnd se aude cuvntul raport, oamenii se gndesc la un lucru care
adun informaii ntr-o singur foaie. Spre exemplu, o baz de date poate s stocheze informaii
detaliate despre facturile emise i primite, despre terii cu care firma are legtur, produsele ce au
fost trecute ntr-o factur. Important n crearea unui raport este ceea ce se dorete surprins n
acesta i nivelul informaiilor de care este nevoie.
Rapoartele furnizeaz cea mai flexibil modalitate de vizualizare i tiprire a datelor din
cadrul bazei de date. Acestea afieaz informaiile din baza de date ntr-o anumit form
detaliat sau restrns. Rapoartele pot conine mai multe nivele de tip subtotal, comparaii
statistice sau chiar imagini i grafice.
Sub diferite puncte de vedere, rapoartele sunt asemntoare formularelor, asta deoarece
folosesc asisteni asemntori pentru generarea acestora, ambele pot folosi etichete, imagini sau
alte controale pentru rezolvarea unor situaii.
n acest capitol se vor prezenta toate modurile de realizare a rapoartelor, pornind de la
crearea unui raport pentru un simplu tabel pn la a prezenta raportul pentru o legtur de tip
muli la muli.
Formularele i rapoartele au un punct comun i anume acela de a oferi utilizatorilor un
acces mai uor la datele din cadrul unei baze de date. ntre ele exist ns i mari diferene, dintre
acestea cele mai importante sunt:
Formularele sunt folosite pentru introducerea datelor, n timp ce rapoartele sunt utilizate
pentru vizualizarea datelor introduse n tabele.
Formularele sunt n general afiate pe ecran , n timp ce rapoartele sunt vizualizate pe
ecran, ca mai apoi s fie tiprite.
Formularele furnizeaz o imagine detaliat a informaiilor care vor urma a fi introduse n
baza de date, iar rapoartele folosesc o grupare a datelor pentru ca ulterior s fie tiprite.
Se va prezenta n continuare lucrurile pe care un raport poate s le realizeze:
Coninutul unui raport Microsoft Access poate fi mprit n general n dou categorii de
informaii: informaii ce deriv din nregistrrile din una sau mai multe tabele, i informaii
precum: antete i subsoluri, texte de introducere, logo-uri, imagini sau grafice, dar i cmpuri
calculate. Asistentul va genera un raport care conine un anumit format, va aduga csuele de
text, va asocia fiecare etichet conform cmpului din tabel, dar el poate fi i modificat la fel ca i
formularul.
Cel mai uor i cel mai rapid mod de a crea un raport este cu ajutorul asistentului Create
report by using wizard, ce va genera un raport pentru un singur tabel sau pentru o interogare,
aranjnd cmpurile n cadrul acestuia:
prima fereastr deschis conine tabele i interogrile dup care se va genera raportul,
alegndu-se tabela dorit din lista derulat. Odat ce a fost selectat tabelul se vor afia
cmpurile prezente n structura acestuia, dintre ele selectndu-se doar cele care vor fi
prezente n raport.
fereastra a doua care apare n crearea raportului este dat de modul de vizualizare a
informaiilor. Acest pas va apare doar dac raportul care se va genera se va face pentru
o relaie de unu la muli sau muli la muli ntre dou sau mai multe tabele. Alegerea
modului de vizualizare se va realiza ca i n cazul formularului: dup tabela printe n
cazul relaiei de tipul unu la muli sau dup tabela de legtur n cazul relaiei de muli la
muli.
Figura 4.2. Stabilirea modului de aranjare a datelor n cadrul formularului
Dac s-a ales un anumit criteriu de grupare a datelor, atunci se va activa butonul Grouping
Options. Cu ajutorul acestui buton se va putea stabili intervalele de grupare, spre exemplu dac
vrem s grupm o dat calendaristic, atunci datele pot fi organizate lunar, anual, zilnic, dac
avem text, atunci se va putea grupa dup prima sau a doua liter.
Figura 4.4. Stabilirea intervalelor de grupare a datelor
pasul urmtor se refer la sortarea datelor. Sortarea se poate face dup mai multe
cmpuri.
n cazul n care n exist ntre cmpurile selectate i un cmp numeric, atunci se va activa
butonul Summary Options. Apsnd acest buton se vor afia lista cmpurilor numerice, fiecare
dintre acestea avnd asociate funciile: Sum (Sum) calculeaz suma cmpurilor, Avg
(Average) calculeaz media cmpurilor, Min (Minimum) afieaz minimul dintre cmpuri i
Max (Maximum) - afieaz maximul dintre cmpuri. Dac nu se dorete realizarea unui rezumat,
atunci se va lsa opiunea implicit Details ce afieaz datele detaliat.
ultimul pas n crearea raportului este selectare stilului cu care va fi scris titlul raportului i
apoi denumire acestuia. Numele care va fi dat la ultimul pas va fi i numele raportului, de
aceea el trebuie s fie sugestiv. Tot la acest pas se va selecta aciunea care se va face
asupra formularului: previzualizarea acestuia pentru ca ulterior s fie tiprit, sau
modificarea acestuia.
Un raport, fa de formular care are trei zone: Form Header, Form Footer i Details,
coine mai multe zone: Report Header conine numele raportului care va fi repetat pe fiecare
pagin a raportului, zona Grouping grupeaz datele conform criteriului selectat, Details
afieaz datele din tabele i Report Footer afieaz numrul de pagini.
Modificrile care se pot realiza asupra unui formular sunt: adugarea, tergerea sau
repoziionarea unor controale n cadrul paginii, dar pe lng acestea se poate modifica
dimensiunea paginii sau a modului de sortare a cmpurilor se pot numerota paginile sau aduga
data la care se tiprete raportul.
Adugarea unui nou cmp n cadrul raportului se face prin intermediul butonului Fields
List, care conine toate cmpurile selectate s apar n cadrul raportului. Imediat ce cmpul a fost
selectat (la fel ca i la formular), acesta se va trage pe suprafaa raportului i n mod automat se
va aduga o etichet cu numele cmpului i o csu text care va afia datele din tabel aferent
cmpului respectiv.
tergerea unui cmp de raport se va realiza astfel: se va selecta att csua text ct i
eticheta i apoi se va apsa tasta Delete. Se pot terge i mai multe cmpuri odat prin selectarea
acestora.
Repoziionarea controalelor se face prin selectarea acestora i apoi poziionndu-se pe
una dintre acestea, atunci cnd se va forma mna se va putea deplasa controlul respectiv.
Modificarea dimensiunilor paginii pe care va fi tiprit raportul se face din meniul File,
alegndu-se opiunea Page Setup. Se poate modifica aici att marginile paginii (dimensiunea
marginilor este n inch) , ct i orientarea paginii care se va face din eticheta Page tab.
Inserarea numerelor de pagin i a datei se va face din meniul Insert, opiunea Page
Numbers. Odat selectat aceast opiune va apare fereastra din care se va selecta tipul de
numrare Page N, care afieaz doar numrul de pagin care este tiprit i Page N to M, care
tiprete numrul paginii din totalul de pagini i tot din aceast fereastr se va selecta i
aranjarea n pagin a numrului de pagin, ct i poziionarea acesteia. Pentru inserarea datei
calendaristice, se va face tot din meniul Insert, alegndu-se ns opiunea Date and Time i se
va bifa sau nu csua de inserare a datei calendaristice n cadrul raportului.
Pentru a modifica criteriul de sortare a datelor se va selecta butonul Sorting and
Grouping ( ), ce va deschide o nou fereastr n care sunt afiate cmpurile dup care se
realizeaz sortarea sau gruparea. Pentru a aduga un nou cmp dup care s se realizeze sortarea
sau gruparea datelor, acesta se va selecta din lista derulant Field / Expression.
Pentru a modifica criteriul de grupare a datelor n cadrul raportului se va selecta acelai
buton Sorting and Grouping ( ), ce va deschide fereastra cu acelai nume. Adugarea unui
criteriu de grupare se face prin selectarea, din coloana Field / Expression, a cmpului dorit,
aceast selecie realizndu-se cu ajutorul listei derulante. Pentru a crea criteriul din partea de
proprieti a cmpului se va selecta din zona Group Header condiia Yes, care va crea criteriul
de grupare.
Crearea unui cmp calculat se va realiza astfel: se va selecta cmpul care va deveni cmp
calculat i se vor afia proprietile acestui control (clic dreapta pe acesta i din meniul de
context se va selecta Properties). Din pagina Data, n zona Control Source se va scrie formula
de calcul a acestui cmp, folosindu-se funciile Sum, Min, Max, Avg i Count care numr
nregistrri sau date.
5. Crearea interogrilor
Interogrile reprezint ntrebri care se aplic asupra bazei de date, oferind doar acele
rezultate care respect condiiile date. Pe baza interogrilor se pot genera formulare i rapoarte.
Cu alte cuvinte, interogarea reprezint extragerea de informaii din cadrul bazei de date.
Microsoft Access ofer mai multe posibiliti de interogri, dintre care:
interogare de selecie, care permite selectarea anumitor date din cadrul bazei de date,
innd cont de restriciile impuse. Interogarea de selecie se poate aplica asupra unei
tabele sau mai multpr tabele;
interogri de aciune creeaz un nou tabel n baza de date sau realizeaz modificri
majore ale unui tabel existent. n general, toate interogrile de aciune pot fi realizate pe
baza unei interogri de selecie. Ele permit adugarea, modificarea sau tergerea de
nregistrri ntr-un tabel. Exist patru tipuri de interogri de aciune:
o interogri de generare a unui nou tabel (Make Table Query)din datele coninute n
setul de rezultate al interogrii;
o interogri de adugare (Append Query) a noi nregistrri ntr-un tabel;
o interogri de tergere (Delete Query) a unor nregistrri dintr-un tabel;
o interogri de actualizare (Update Query) a unor nregistrri dintr-un tabel, conform
cu o condiie ce trebuie ndeplinit.
Aciunile acestora sunt ireversibile asupra datelor din tabelele surs, iar n cazul ultimelor
trei dintre ele, trebuie urmrit pstrarea integritii refereniale atunci cnd prin intermediul lor
se acioneaz asupra mai multor tabele legate.
interogri ncruciate centralizeaz n formatul unei foi de calcul tabelar datele din unul
sau mai multe tabele. Datele rezultate dup execuia unei astfel de interogri sunt
prezentate ntr-un format potrivit pentru analiza datelor i crearea de grafice. Este
echivalent cu tabelele de tip Pivot din cadrul aplicaiei Microsoft Excel.
Access ofer trei posibiliti pentru definirea interogrii i afiarea rezultatelor acesteia:
Create query in Design View - fereastr sub forma unei grile de interogare, n care se
definete interogarea.
Create query by using wizard interogarea se poate crea folosind asistentul;
cu ajutorul butonului New de pe bara de instrumente, atunci cnd obiectul ales este Query
Pentru crearea interogrilor de selecie vom folosi crearea interogrii n mod design.
Odat aleas aceast opiune, se va deschide fereastra Select Query, care este mprit n dou
pri:
partea de sus a ferestrei se vor prezenta tabelele care vor participa n realizarea
interogrii. Adugarea unei tabele n interogare se va face prin apsarea click-ului dreapta
a mouse-ului i alegerea din meniul de context a opiunii Show Table.
Dup selectarea tabelei sau tabelelor vizate, se vor selecta apoi cmpurile pentru care
dorim afiarea rezultatelor interogrii. Selectarea acestora se va face din cadrul tabelei i apoi
trase n a doua jumtate a ferestrei, prin click stnga.
partea a doua a ferestrei Select Query este destinat cmpurilor care vor fi afiate n
cadrul interogrii i a celor care vor fi folosite n impunerea condiiilor.
Dup cum se poate observa n figura 5.3. s-au selectat dou tabele pentru care se vor afia
cmpurile din tabela student i doar denumirea specializrii, deoarece cmpul cod_specializare a
fost deselectat. Cea de-a doua jumtate este format din:
Field se plaseaz cmpurile folosite n interogare: poate fi un cmp dintr-un tabel sau
un cmp calculat. n cazul unui cmp nou calculat se va folosi urmtoarea form:
numecmpnou : expresie, unde: numecmpnou- va fi numele cmpului nou creat prin
diferite calcule, iar expresie- va fi format din cmpuri din tabele, operatori, funcii
predefinite, numere, care vor contribui la determinarea valorilor aferente cmpului nou.
ntre cele dou componente se va plasa semnul :.
Table -numele tabelului de unde extragem cmpul. Aceast linie este foarte folositoare,
mai ales n cazul n care avem de fcut o interogare bazat pe mai multe tabele.
Sort -ajut la ordonarea rezultatelor ntr-o anumit ordine.
Show - dac nu este marcat, atunci respectivul cmp nu va aprea n rezultatul final al
interogrii. Nu este marcat n cazul n care dorim s folosim acest cmp n interogare, dar
nu dorim s-l afim.
Criteria -specific un criteriu de cutare. Un criteriu de cutare este o condiie pe care o
nregistrare trebuie s o ndeplineasc pentru a aprea ca un rezultat a unei interogri.
Acest criteriu poate fi compus dintr-una sau mai multe condiii cu ajutorul operatorilor
AND i OR (este folosit pentru condiiile multiple).
EXEMPLE PENTRU REALIZAREA INTEROGRILOR DE SELECIE
Between val1 and val2 va afia doar valorile din intervalul dat;
IS NULL va afia doar acele nregistrri care nu au completate cmpul specificat;
Datele calendaristice se vor scrie ntre diez (#);
DATE()- returneaz data curent;
NOW() - returneaz data i timpul curent;
YEAR([camp_data])- returneaz anul expresiei din paranteze;
MONTH([camp_data])- returneaz luna parametrului;
*eva va cuta toate cuvintele care se sfresc n eva;
[Mesaj] va permite introducerea valorilor de la tastatur, acestea fiind folosite n
gsirea datelor n tabele;
NOT BETWEEN val1 AND val2 se vor afia valorile care nu sunt cuprinse ntre val1
i val2;
<> - diferit de;
NOT se vor afia valorile care nu respect condiia dat;
IN(val1; val2; val3; val4) se vor selecta doar valorile precizate ntre
parametrii clauzei IN;
[abc]* - ncep cu una din literele a,b sau c.
Interogrile de aciune sunt interogri care ne permit efectum modificri n una sau mai
multe celule ale unui tabel dintr-o singur operaie. Cu acest tip de interogri putem crea un nou
tabel, incluznd n acesta nregistrri din alt tabel, putem schimba anumite date stocate, putem
introduce noi nregistrri, sau terge altele vechi dintr-un anumit tabel.
O interogare Make Table creeaz noi tabele cu nregistrri stocate din unul sau mai multe
tabele. Acest tip de interogare este folosit n special pentru a crea tabele de lucru. Pentru a crea
o interogare Make Table trebuie s realizm urmtorii pai:
se deschide o nou interogare n modul design;
se adaug una sau mai multe tabele de unde vrem s extragem datele;
se definete interogarea n acelai mod ca i pe cele normale, astfel nct s fie selectate
numai acele nregistrri care se doresc a fi salvate;
din meniului Query se va selecta opiunea Make Table Query...( ), care va deschide o
nou fereastr de dialog n care se va specifica numele nou al tabelei i locul unde se va
crea tabela: fie n baza de dat curent, fie n cadrul altei baze de date.
Dup ce s-a salvat i executat interogarea, se va crea o nou tabel cu numele precizat n
fereastra de dialog Make Table, tabel care poate fi observat n cadrul obiectului Table. n
cadrul noii tabele vor fi transferate i datele care exist n tabela sau tabelele care au fost folosite
n cadrul acestei interogri. Se pot impune, de asemenea n fereastra interogrii i condiii care
vor filtra datele care vor fi transferate n cadrul noii tabele.
Interogrile de actualizare permit actualizarea datele stocate n cadrul unui tabel. ntr-o
singur operaie toate nregistrrile pot fi modificate n acelai timp sau numai acelea care
ndeplinesc o anumit condiie. Pentru a crea o astfel de interogare, trebuie s parcurgem
urmtorii pai:
se va deschide o nou interogare n modul design;
se vor aduga tabelul sau tabelele n care dorim s modificm datele;
se va selecta din meniul Query opiunea Update query ( ).
Interogrile de tergere fac posibil tergerea anumitor nregistrri dintr-un anumit tabel
n funcie de o anumit condiie dat. Pentru a se realiza aceast interogare se vor urmrii paii:
se va deschide o nou interogare n modul design;
se va aduga tabelul sau de unde dorim s tergem datele;
se va selecta din meniul Query opiunea Delete query ( ).
n zona Criteria se vor trece criteriile dup care se vor terge nregistrrile. Dac n Criteria nu
se va trece nimic, atunci se vor terge toate nregistrrile tabelului. n exemplul prezentat n
figura 5.6. se vor terge toate nregistrrile a crui cod disciplin are valoarea 4 sau cele care au
n denumirea disciplinei grupul de litere ze.
Dac se dorete tergerea unei nregistrri din cadrul unui tabel n funcie de condiii
aplicate pe o alt tabel, atunci se va specifica n zona Field tabela de unde se va terge, caz n
care va apare la Delete n loc de clauza Where opiunea From.
n figura 5.8. se prezint o interogare de tip adugare, prin care se vor copia n tabela
student fr cnp, toii studenii a cror coloan CNP nu este completat. n urma seleciei tabelei
unde se vor copia datele, se va deschide fereastra de Append Query, prin care se vor specifica
cmpurile unde vor fi duse valorile din tabela surs (n cazul prezentat este tabela student) n
tabela destinaie (n cazul prezentat este tabela student fara cnp). Deoarece n interogare nu s-a
selectat i cmpul CNP din tabela surs, acesta nu va fi copia n tabela destinaie.
Figura 5.10. Alegerea tabelei sau interogrii folosite pentru interogarea de ncruciare
se va selecta coloana tabelei care va apare pe rndul rezultatului. Pentru exemplul sugerat
la nceputul seciunii se va alege matricola (fiind cheia primar a tabelei student).
Figura 5.11. Selectarea liniei din interogarea de ncruciare
la pasul urmtor se va selecta coloana care va apare n cadrul interogrii, iar pentru
exemplul dat se va selecta coloana dat.
n cazul n care unul din cmpurile selectate ce vor fi folosite pentru reprezentarea
interogrii de ncruciare este o dat calendaristic, atunci se va introduce un nou pas n
care se va alege modul de reprezentare a datei: zilnic, lunar, semestrial sau anual.
Figura 5.13. Selectarea tipului de reprezentare a datei
pasul cinci n generarea interogrii de ncruciare este stabilirea valorii care va apare la
intersecia celor dimensiuni. Pentru valoarea selectat se pot stabili diferite funcii: medie
aritmetic (Avg), numrarea nregistrrilor (Count), prima nregistrare (First), minimul
sau maximul (Min sau Max) etc.
Ultimul pas nainte de vizualizarea rezultatului este denumirea acestuia i stabilirea modului de
deschidere a interogrii. Dac se va selecta Preview query, atunci va apare o fereastr de forma
urmtoare n care va prezenta la intersecia dintre linii i coloane valoarea acesteia.
Problema 1. Fie o societate comercial care vinde produse clienilor pe baz de factur. Se
dorete urmrirea produselor i facturilor emise clienilor. Produsele aparin unei categorii de
produse. Tabelele i cmpurile tabelelor sunt urmtoarele:
Factura(serie_nr_factura, data_factura)
Client(cod_client, nume_client, prenume_client, tip_client,adresa,telefon)
Categorie_produse(cod_categorie, denumire_categorie)
Produs(cod_produs, denumire_produs, pret, um, cod_categorie)
Achizitie(cod_produs, cod_client, serie_nr_factura, cantitate, valoare_linie)
Sal(nr_sala, capacitate)
Profesor(marca, nume_profesor, prenume_profesor)
Specializare(cod_specializare, denumire_specializare)
Student(nr_matricol, nume_student, prenume_student, cnp, forma_invatamant, medie_admitere,
an_admitere, cod_specializare)
Disciplina(cod_disciplina, denumire_disciplina)
Examen(marca, matricola, nr_sala, cod_disciplina, data, ora, nota)
Calificare(cod_calificare, denumire_calificare)
Angajat(marca, nume_salariat, prenume_salariat, cnp, serie_nr_buletin, sex, cod_calificare)
Sarcina(cod_sarcina, denumire_sarcina)
Angajare_proiect(cod_sarcina, cod_proiect, marca, data_inceput, data_sfarsit, cost)
Proiect(cod_proiect, denumire_proiect, persoana_contact)