You are on page 1of 96

1

M MI IC CR RO OS SO OF FT T A AC CC CE ES SS S

2 2. .1 1 N NO O I IU UN NE EA A D DE E B BA AZ Z D DE E D DA AT TE E

Una sau mai multe colecii de date, aflate n interdependen, mpreun cu
descrierea structurii lor i a relaiilor dintre ele formeaz o baz de date.
Entitile, atributele i relaiile organizrii de date, descrise ntr-un limbaj
specializat, n scopul stocrii lor pe un suport tehnic de date adresabil
(memorie extern) constituie baza de date, care poate fi exploatat prin
intermediul unui nucleu specializat de programe denumit sistemul de gestiune
al bazei de date (SGBD) de ctre mai muli utilizatori.
Includerea n baza de date a descrierii structurii acesteia o deosebete calitativ
de organizarea datelor sub form de fiiere, deoarece prin aceasta se asigur:
- independena datelor din baza de date fa de programele de aplicaii i
invers; independena datelor poate fi fizic i logic;
- independena fizic permite ca stocarea datelor i tehnicile de
stocare s poat fi schimbate fr a rescrie programele de
aplicaii.
- independena logic a datelor se refer la posibilitatea adugrii
de articole noi sau la extinderea structurii bazei de date fr a
necesita rescrierea programelor de aplicaii.
- accesul rapid la informaiile stocate n baz;
- redundan minim controlat a datelor.
Sistemul de organizare i exploatare a datelor alctuit din colecia (coleciile)
de date, descrierea datelor i a relaiilor dintre acestea, sistemul de organizare
i exploatare a datelor i programele corespunztoare pentru gestiunea
datelor, mpreun cu resursele fizice utilizate, poart numele de banc de date.

2.1.1 CLASIFICAREA BAZELOR DE DATE
Dup modelul de organizare a datelor, bazele de date se clasific n:
- baze de date de tip arborescent, n care exist relaii de subordonare de tip
ierarhic, n aa fel nct fiecare entitate subordoneaz una sau mai multe
entiti i este subordonat la rndul ei unei singure entiti superioare;
- baze de date de tip reea, care asigur legturi de orice natur ntre
entitile bazei de date (1 1; 1 n; n m), astfel nct fiecare entitate
poate fi legat direct cu alte entiti n scopul reflectrii unei corespondene
funcionale;
2
- baze de date de tip relaional, care opereaz cu tabele bidimensionale,
avnd structura format din atribute, nregistrri (tupluri), domenii i valori;
- baze de date orientate obiect care opereaz cu date complexe, asupra
crora se aplic funcii ncapsulate.
Modelul relaional s-a impus deoarece asigur o real independen a datelor de
aplicaii, o redundan minim controlat, un acces rapid la date i limbaje
puternice de manipulare. Organizarea datelor are loc sub form de tabele de
date. Tabelele sunt reprezentate de linii (tupluri) i coloane (atribute sau
cmpuri).
Tuplul poate fi considerat nregistrarea, iar valorile tuplului valorile cmpului
unei nregistrri.
Atributul (cmpul) reprezint un element invariabil determinat prin structura
bazei de date. Cmpul este identificat printre altele de:
- nume care, n general, este corespunztor semnificaiei valorilor din cadrul
coloanei (atributului);
- tip care reprezint natura datelor ce vor reprezenta valorile cmpurilor;
- dimensiunea care reprezint numrul maxim de poziii rezervate pentru
datele fiecrui cmp.
Exemplu:
n cazul unei tabele de date numit CLIENT lista corespunztoare reprezint atributele,
cu tipul i dimensiunea fiecruia.
Denumire Tip Dimensiune
Nume Caracter 20
Adresa Caracter 25
Data naterii Data 8

Tupluri (valori ale atributelor) corespunztoare bazei de date CLIENT pot fi
urmtoarele:




NUME ADRESA DATA NASTERII
Ionescu Andrei Bucureti 12.12.1956
Vasilescu Mihai Ploieti 12.02.1976
Popescu Vasile Bucureti 13.02.1978




cmpuri
valori
tupluri
3
Legturile ntre tabele se numesc asocieri (relaii) i pot fi de tip 1 1, 1 n,
n m.
O baz de date relaional (BDR) reprezint un ansamblu de relaii, prin care
se reprezint att datele ct i legturile dintre date.

2.1.2 SISTEME DE GESTIUNE A BAZELOR DE DATE

Gestiunea i prelucrarea datelor este asigurat de un ansamblu de programe
(software) denumit Sistem de Gestiune a Bazei de Date (SGBD).
Sistemul de gestiune a bazei de date realizeaz urmtoarele activiti:
- definirea structurii bazei de date;
- ncrcarea datelor n baza de date;
- accesul la date;
- ntreinerea i exploatarea bazei de date;
- reorganizarea bazei de date;
- securitatea datelor.

2 2. .2 2 S SI IS ST TE EM MU UL L D DE E G GE ES ST TI IU UN NE E A A B BA AZ ZE EL LO OR R D DE E D DA AT TE E
M MI IC CR RO OS SO OF FT T A AC CC CE ES SS S 2 20 00 02 2

2.2.1 PREZENTARE GENERAL

Sistemul de Gestiune a Bazelor de Date Microsoft ACCESS 2002 face parte din
pachetul de programe Microsoft Office XP.
Principalele caracteristici al SGBD-ului ACCESS sunt:
- este relaional i lucreaz sub sistemul de operare Windows;
- este deschis comunicrii cu alte SGBD-uri cum ar fi FoxPro sau Paradox;
- permite realizarea unor aplicaii complexe prin utilizarea limbajului Visual
Basic;
- permite comunicarea cu SQL Server, un alt produs Microsoft care
gestioneaz baze de date;
- permite accesul la baze de date din reeaua Internet, fiind un instrument util
pentru publicarea i manipularea informaiilor n paginile Web;
- este compatibil cu tehnologia ActiveX, care permite realizarea aplicaiilor
client/server;
- conine instrumente wizard (asistent) care permit utilizatorului crearea ntr-o
manier simpl a obiectelor bazei de date;
4
- permite personalizarea bazei de date;
- permite utilizarea obiectelor ACCESS din cadrul altor aplicaii rulate sub
sistemul de operare Windows.

2.2.2 Arhitectura Microsoft ACCESS

O baz de date ACCESS poate fi definit ca o colecie de obiecte: tabele
(tables), interogri (queries), formulare (forms), rapoarte (reports), pagini Web
(pages), comenzi macro (macros) i module (modules).
Noiunea de baz de date ACCESS difer de alte sisteme de gestiune a bazelor
de date. Spre exemplu, n FoxPro, prin baz de date (database) nelegem doar
acele fiiere n care sunt stocate datele.

Obiectele unei baze de date ACCESS:
- tabela (table) este un obiect definit de utilizator n care sunt organizate pe
linii i coloane datele primare.
- interogarea (query) este o cerere adresat tabelelor pentru extragerea sau
organizarea datelor ntr-un anumit mod i afiarea acestora. Sunt proiectate
de obicei cu ajutorul unei interfee grafice i sunt memorate n limbajul
standard structurat de interogare (Structured Query Language- SQL).
- formularul (form) ofer o interfa atrgtoare pentru introducerea datelor
n baza de date sau pentru vizualizarea datelor pe ecran. Formularele din
Access sunt folosite ca principal interfa cu utilizatorul n aplicaiile de
baze de date prin mascarea (ascunderea) tabelelor cu informaii brute.
- raportul (report) servete la extragerea datelor din tabele i interogri i la
trimiterea lor la imprimant, n vederea tipririi. Articolele tiprite pot fi
grupate i sortate. Rapoartele pot conine antete i subsoluri de pagin
precum i un antet i un subsol de raport (afiate pe prima respectiv ultima
pagin a raportului, n care se poate include sigla unei instituii sau un
rezumat al tuturor datelor, ca sum a valorilor dintr-un cmp specificat ).
- pagina Web (pages) este un obiect care cuprinde un fiier HTML i alte
fiiere suport n vederea furnizrii accesului la date prin intermediul
browser-elor Web.
- comanda macro (macro) conine o definiie structurat a uneia sau mai
multor aciuni. Comenzile macro sunt folosite pentru a automatiza anumite
aciuni dintr-o aplicaie fr a face programare.
- modulul (module) conine proceduri definite de utilizator i scrise n
limbajul de programare Visual Basic. Permite personalizarea, optimizarea
sau extinderea bazei de date.
5


2.2.3 Crearea unei baze de date

La accesare SGBD ACCESS ofer mai multe posibiliti:
- deschiderea unei BD existente (Open a file)
- crearea manual a unei baze de date (Blank Database);
n Access, nu se pot deschide simultan mai multe baze de date. Se pot lansa
ns mai multe instane ale programului Access i se deschide n fiecare dintre
ele cte o baz de date.
Pentru a crea o baz de date se alege Blank Database (figura 2.1).


Figura 2. 1 - Fereastra Access la deschidere
Se introduce numele bazei de date i se apas Create (figura 2.2). Fiierul
primete extensia *.mdb (Microsoft Database).
6

Figura 2. 2 - Fereastra File New Database
Apare fereastra Database (figura 2.3) n care, n partea stng, sunt disponibile
opiuni ce permit accesul la obiecte bazei de date prezentate anterior: Tables
(tabele), Queries (interogri), Forms (formulare), Reports (rapoarte), Pages
(pagini web), Macros (comenzi macro), Modules (module) (figura 2.3).
Executnd clic pe una din opiunile din stnga pot fi vizualizate obiectele
categoriei respective fiind disponibile i modaliti de creare a acestora.


Figura 2. 3 - Fereastra Database
7
Butoanele din partea de sus a ferestrei Database se folosesc pentru:
- deschiderea obiectului Open (ceea ce nseamn "vizualizare" sau
"afiare" pentru formulare i tabele i "rulare" pentru interogri).
- proiectarea obiectului Design (adic proiectarea obiectului selectat)
- crearea unui obiect nou de tip curent New .
- tergerea obiectului Delete .
- schimbarea modului de vizualizare a obiectelor Large Icons , Small
Icons , List , Details .
Majoritatea tipurilor de obiecte vizibile n fereastra Database ofer o
multitudine de opiuni pentru crearea unor instane noi ale unor obiecte
similare. De exemplu, selectarea etichetei Forms permite crearea unui formular
nou, fie n modul Design, fie cu ajutorul unuia dintre programele expert (Form
Wizard, Chart Wizard sau Pivot Table Wizard) sau folosind unul dintre cele trei
tipuri de formulare automate (AutoForms). De asemenea, este cerut sursa de
date pentru formular.
Modul de afiare Design pune la dispoziie un tablou gol pe care se poate lucra.
Programul expert Form Wizard conduce prin etapele de creare a obiectului ales.
Practic, se poate proiecta cu uurin o ntreag aplicaie fr a folosi altceva
dect modul Design.

2.2.4 Tabele (tables)

Tabela este obiectul din baza de date destinat pstrrii datelor cu privire la un
anumit subiect (de exemplu Clieni, Contracte, Produse).
Tabelele sunt identificate printr-un nume care poate conine spaii dar nu poate
depi 64 de caractere.
Tabela este bidimensional. Liniile stocheaz informaiile despre fiecare
exemplar al subiectului respectiv (nregistrri - records), iar coloanele
determin structura bazei de date (atribute sau cmpuri - fields).
Pentru a crea o tabel, trebuie s-i definim structura i apoi s o ncrcm cu
date.
Exemplu:

NUME ADRESA DATA NASTERII
Ionescu Andrei Bucureti 12.12.1956
Vasilescu Mihai Ploieti 12.02.1976
Popescu Vasile Bucureti 13.02.1978
8

Structura cuprinde informaii despre numrul, tipul de date i proprietile
cmpurilor, cmpul cheie primar, indeci etc.

Crearea unei tabele
Tabelele se creeaz folosind opiunea Tables din fereastra
Database
O tabel poate fi creat n mai multe moduri:
- utiliznd fereastra de proiectare (Create table in design view), prin definirea
structurii, stabilirea cmpurilor i a tipurilor de date;
- utiliznd asistentul Wizard (Create table by using wizard);
- prin introducerea datelor (Create table by entering data).
Se recomand folosirea ferestrei de proiectare.
Se execut dublu clic pe opiunea Create table in design view iar pe ecran apare
fereastra Table. (figura 2.4)


Figura 2. 4 - Fereastra Table

Se definesc numele cmpurilor (Field Name), tipul de date (Data Type) i,
opional, o descriere a acestora (Description).
Numele cmpurilor poate fi format din maximum 64 de caractere inclusiv
spaii. Numele unei tabele se va propaga n celelalte obiecte (interogri,
formulare, rapoarte...) care se construiesc pe baza tabelei respective.
9
Executarea unui clic n coloana Data Type n dreptul numelui unui cmp duce
la apariia unei sgeai ce permite afiarea listei de opiuni privind tipul de dat
(figura 2.5).

Figura 2. 5 - Descrierea structurii tabelei

Tipuri de date
Pentru fiecare cmp se specific tipul datelor ce vor fi introduse. Spre exemplu,
cmpul Nume va fi de tipul Text, cmpul Data nasterii va fi de tipul
Date/Time etc.
Tipurile de date sunt:
- Text, poate conine maxim 255 de caractere alfanumerice. Proprietate Field
Size permite stabilirea dimensiunii cmpului (implicit 50 caractere);
- Memo, folosite pentru introducerea unor informaii alfanumerice de maxim
65.535 caractere;
- Number, date numerice ce pot fi folosite pentru realizarea unor calcule;
- Date/Time, permite stocarea datelor calendaristice inclusiv ora, minut,
secund;
- Currency, valori monetare (15 cifre n stnga punctului zecimal, 4 n
dreapta lui);
- AutoNumber, numr cu incrementare automat i reprezint o valoare de
tipul Long Integer pe care Access o completeaz n mod automat pentru
10
fiecare nregistrare adugat n tabel. Se pot genera i numere aleatoare
care nu se repet.
- Yes/No, valori logice adevrat (true) sau fals (false);
- OLE Object, destinat pstrrii datelor provenite de la alte programe
(imagini, fiiere sunet, un document, o foaie de calcul ...);
- Hyperlink, text folosit ca legtur ctre alte documente;
- Lookup wizard, creeaz cmpuri care permit alegerea unor valori din alte
tabele sau liste de valori.
n partea de jos a ferestrei se pot stabili proprietile cmpurilor, n funcie de
tipul de dat specificat.

Stabilirea proprietilor pentru fiecare cmp
Se face diferit, n funcie de tipul datelor. Avem:
Field Size (dimensiunea cmpului):
- tipul Text are o dimensiune implicit de 50 caractere i poate fi de maxim
255;
- tipul Number are opiunile:
- byte, cu valori ntre 0 255;
- Integer, cu valori ntre 32768 i + 32768 (2 bytes);
- Long Integer, cu valori cuprinse n jur de 2 i + 2 miliarde (4
bytes);
- Single, (real simpl precizie) pentru numere fracionare cu o precizie
simpl pe 4 bytes;
- Double, (real dubl precizie) pentru numere fracionare cu o precizie
pe 8 bytes;
- tipul Memo are o lungime rezervat de aproximativ 64 KB;
- tipul Date/Time este stocat sub forma unor numere n virgul mobil de 8
bytes. Modul de afiare a datei i orei poate fi stabilit prin opiunea Format;
- tipul Currency poate conine pn la 15 caractere la stnga i pn la 4
caractere la dreapta punctului zecimal (datele sunt reprezentate pe 8 bytes);
- tipul AutoNumber poate avea valori ntregi ordonate sau generate n mod
aleator (lungimea de reprezentare este pe 4 bytes).
Format stabilete modul de afiare a datelor pe ecran. Nu afecteaz i modul
de introducere a datelor. Modul de afiare poate fi ales dintr-o list predefinit
i poate fi personalizat.
Pentru tipul Number sunt disponibile urmtoarele opiuni (figura 2.6):

11

Figura 2. 6 Opiunea Format pentru tipul Number
- General Number afieaz numerele aa cum au fost tastate;
- Currency afieaz numerele cu separator pentru mii i moneda naional;
- Fixed afieaz cel puin o cifr zecimal;
- Standard folosete separator pentru mii i afieaz 2 zecimale;
- Percent nmulete numrul cu 100 i afieaz semnul %;
- Scientific folosete notaia tiinific (unde semnul E reprezint 10 la
puterea ...).
Pentru tipul Date/Time sunt disponibile opiunile (figura 2.7):

Figura 2. 7 Formatele de afiare pentru tipul Date/Time
Input Mask stabilete un ablon de introducere i afiare a datelor.
Se stabilete pentru fiecare caracter tastat dac este un caracter obligatoriu sau
un caracter opional, precum i tipul caracterului acceptat: alfabetic, numeric,
alfanumeric sau caracter arbitrar.
Ex. #990000.0999
# - se introduce +sau -
990000 : are 6 cifre
0999: are 4 cifre
- 0 - n poziia respectiv obligatoriu trebuie introdus o cifr;
- 9 - se permite introducerea unei cifre, a unui caracter spaiu dar caracterul
inclus este opional;
- # - cifr, caracter spaiu, plus, minus;
- L - obligatoriu trebuie introdus o liter;
- ? - se permite introducerea unei litere dar caracterul este opional;
12
- A - obligatoriu trebuie introdus o liter sau o cifr;
- a - se permite introducerea unei cifre sau a unei litere;
- & - obligatoriu trebuie introdus un caracter sau un spaiu;
- C - se permite introducerea unui caracter sau a unui spaiu;
- . - punct zecimal;
- , - virgul de separare a miilor;
- : - ore/minute/secunde;
- -/ - dat calendaristic;
- > - caracterele vor fi convertite n majuscule;
- < - caracterele vor fi convertite n minuscule;
Caption permite specificarea unei etichete care se va afia n formulare,
etichet folosit atunci cnd numele cmpului nu este destul de elocvent.
Default Value este valoarea atribuit automat cnd nu este introdus nici o
valoare de ctre utilizator.
Validation Rule reprezint o regul de validare ce testeaz valoarea
introdus. Pentru construirea unei reguli de validare se folosesc:
- operatori: <, >, <=, >=, =, <> (diferit), LIKE, se folosete pentru a stabili
dac o valoare ncepe, se termin sau conine anumite caractere, IN
stabilete dac o valoare se afl ntr-o list, BETWEEN stabilete dac o
valoare se afl ntr-un interval specificat, NOT reprezint negaia logic,
AND reprezint i logic, OR reprezint sau logic, XOR reprezint
disjuncia exclusiv a dou valori;
- identificatori: se introduc ntre paranteze drepte [], de exemplu numele
cmpurilor;
- funcii i constante.
Exemple:
Dac nu se specific nici un operator, Access consider automat operatorul de
egalitate. Datele calendaristice trebuie specificate ntre caracterele #
(#01/01/2004#). LIKE, se folosete mpreun cu caracterele de nlocuire *
(nlocuiete mai multe caractere), ? (nlocuiete un singur caracter) i #
(nlocuiete o cifr) pentru a stabili dac o valoare ncepe, se termin sau
conine anumite caractere. De exemplu, LIKE S* verific dac valorile ncep
cu S, LIKE *S dac se termin cu S, LIKE *S* dac conin S, LIKE
7###### numere de telefon care ncep cu 7. IN stabilete apartenena la o
list de valori, de exemplu IN (2;3;5). BETWEEN stabilete apartenena la un
interval, de exemplu BETWEEN 1 AND 10 sau NOT BETWEEN 1 AND 10.
Pentru construirea expresiilor de validare se poate folosi i Expression Builder,
care se activeaz prin apsarea butonului ... din captul rndului de introducere
a casetei Validation Rule.
13
n fereastra Expression Builder sunt puse la dispoziie funcii, constante i
operatori. Se execut dublu clic pe eticheta Functions i apoi clic pe Built-In
Function. Sunt disponibile funcii organizate pe mai multe categorii. Spre
exemplu, din categoria Text se poate folosi funcia Len pentru determinarea
numrului de caractere dintr-un text. S presupunem c vrem s construim o
expresie de validare prin care numele s fie de minim 3 caractere. Se execut
dublu clic pe funcia Len iar ntre paranteze se introduce numele cmpului
astfel: Len ([nume])>=3 (figura 2.8).

Figura 2. 8 Fereastra Expression Builder

Validation Text reprezint textul ce se afieaz dac regula de validare nu
este ndeplinit.
Required precizeaz dac n acel cmp este obligatoriu s se introduc valori.
Allow Zero Length permite lungimea 0 pentru cmp. O valoare nul (nu au
fost introduse date) nu este identic cu un ir de lungime zero. O valoare nul
indic faptul c nu se tie nimic despre coninutul cmpului. Un ir de lungime
zero indic faptul c avem anumite informaii despre coninutul cmpului
respectiv, dar cmpul nu trebuie completat.
Indexed specific dac acel cmp este sau nu cmp de index. Indexarea dup
unul sau mai multe cmpuri permite accesul direct la datele memorate ntr-o
tabel. Efectul indexrii const n crearea unui tabel cu dou coloane: n prima
se memoreaz valoarea cmpului, iar n a doua adresa fizic de pe disc a
14
nregistrrii corespunztoare. Tabelul este ordonat cresctor sau descresctor
dup prima coloana (valorile cmpului index), ceea ce permite o regsire rapid
a nregistrrilor.
Display Control apare la activarea tab-ului Lookup i stabilete controlul
folosit pentru afiarea valorii cmpului respectiv. Pentru cele mai multe
cmpuri acest control este de tip Text Box. Se poate specifica i List Box sau
Combo Box. Pentru acestea apar i opiunile (figura 2.9):
- Row Source Type specific tipul sursei de date, care poate fi o tabel, o
interogare (Table/Query), list de valori (Value List) sau list de cmpuri
din alt tabel (Field List);
- Row Source specific sursa de date. Dac Row Source Type este
Table/Query sau Field List trebuie specificat tabela sau interogarea de
unde vor fi preluate datele. Dac Row Source Type este Value List, se
introduc datele, separate prin punct i virgul.
- Bound Column specific numrul coloanei din care vor fi preluate datele,
dac acestea vor proveni din mai multe coloane;
- Column Count numrul de coloane afiate;
- Column Heads dac este Yes, va specifica eticheta fiecrei coloane din
Row Source;
- Column Widths specific limea de afiare a coloanelor din sursa de date.


Figura 2. 9 Opiunile etichetei Lookup

n figura de mai sus, tabela Clienti conine cmpul sex care poate primi
numai dou valori M sau F. n acest scop, la Display Control se alege List
15
Box, la Row Source Type se specific Value List, iar la Row Source se introduc
cele dou valori M i F.
n momentul introducerii datelor n cmpul sex din tabela Clienti apare o
list de unde utilizatorul poate selecta una din cele dou valori (figura 2.10).

Figura 2. 10

Stabilirea cheii primare
Puterea sistemelor care gestioneaz baze de date relaionale const n faptul c
n astfel de sisteme este posibil cutarea i prelucrarea automat (simultan) a
informaiilor, care sunt memorate n mai multe tabele distincte, prin intermediul
diferitelor interogri, formulare i rapoarte.
Pentru realizarea tratrii simultane a informaiilor provenite din mai multe
tabele distincte, fiecare tabel trebuie s aib cel puin un cmp (sau un numr de
cmpuri) care s conin o valoare unic pentru fiecare articol din tabel. Astfel,
prin coninutul acestui cmp, fiecare articol memorat n tabel poate fi identificat
n mod unic. Se poate folosi un cmp de tipul AutoNumber. Informaia
memorat n cmpul respectiv este denumit valoarea cheii primare (valoarea
cheii principale), iar despre acest cmp se spune c are atributul de cheie
primar a tabelului.
Pentru stabilirea unui cmp cheie primar, se execut clic oriunde in rndul
cmpului, se apas butonul Primary Key de pe bara de instrumente sau se
acceseaz meniul Edit opiunea Primary Key.
Dup definirea structurii se poate nchide fereastra. Suntem ntrebai dac dorim
s salvm tabela i alegem Yes. Apare o fereastr n care se introduce numele
tabelei (figura 2.11).

16

Figura 2. 11 - Salvarea si denumirea tabelei


Modificarea structurii tabelei
Se poate face selectnd tabela din fereastra Database i apsnd butonul
Design (figura 2.12).


Figura 2. 12 - Tabela Clienti n fereastra Database

Introducerea nregistrrilor
Se execut dublu clic pe numele tabelei n fereastra Database (sau clic pe
numele tabelului i apoi clic pe butonul Open) . Apare o fereastr n
care se pot introduce datele (figura 2.13).

17

Figura 2. 13 - Fereastra de introducere a datelor

nregistrrile se salveaz n mod automat pe disc pe msur ce se introduc.

tergerea nregistrrilor
tergerea unei nregistrri se face executnd clic pe rndul acesteia, iar din
meniul Edit se alege Delete Record.

Ordonarea nregistrrilor se poate face executnd clic n coloana dup
care se dorete ordonarea, dup care se apas unul din butoanele pentru
ordonare de pe bara de instrumente: Sort Ascending (ordoneaz cresctor)
sau Sort Descending (ordoneaz descresctor) .

Importarea tabelelor
n fereastra Database se apas butonul New i se alege Import Table.
Import Table este o metod folosit pentru a importa un tabel de date dintr-un
alt fiier, creat n programul Access sau ntr-o alt aplicaie de baz de date care
este recunoscut de ctre Access, de exemplu Excel.

18

Figura 2. 14 - Fereastra New Table n care se poate importa un tabel

Importarea tabelelor din Excel n ACCESS
Se realizeaz sau se verific dac exist n Excel un tabel.
NEW IMPORT TABLE OK
- la Files of type se alege Microsoft Excel (*.xls);
- se selecteaz fiierul i se alege Import. Apare o fereastr din care se alege
foaia de calcul (Sheet-ul) pe care se afl tabelul (figura 2.15). Se alege Next;
- se bifeaz First Row Contains Column Headings dac se dorete ca primul
rnd din tabelul din Excel s fie sursa numelor de cmpuri n Access;
- Next. Se alege dac se salveaz ntr-un nou tabel sau ntr-unul existent;
- Next. Se modific dup preferin denumirea coloanelor;
- Next. Se alege cheia primar sau se las programul s aleag;
- Next Se introduce numele tabelei;
- Finish.

19

Figura 2. 15 - Importarea datelor dintr-o foaie de calcul Excel
Noul tabel realizat n Access este o copie a tabelului din Excel. Se va comporta
ca orice tabel din Access.

Legtura tabelelor din Excel n Access
Link Table opereaz la fel ca metoda anterioar, dar datele externe rmn n
fiierul extern.
NEWLINK TABLE OK
- la Files of type se alege Microsoft Excel i se selecteaz cu ajutorul mouse-
ului fiierul dorit LINK;
- se alege sheet-ul pe care este tabelul Next;
- se alege capul de tabel acelai ca n Excel Next;
- se introduce numele tabelului.
Orice modificare n tabelul din Access duce la o modificare n tabelul din Excel
i invers.

Relaionarea tabelelor

Proiectarea eficient a unei baze de date implic separarea datelor n mai multe
tabele, fiecare tabel avnd o tem bine definit. Prin separarea datelor n mai
multe tabele cu teme unice se evit repetarea informaiei i utilizarea datelor
redundante. Astfel se minimizeaz spaiul necesar memorrii datelor. Datele
izolate n tabele distincte, cu teme unice, n momentul prelucrrii lor trebuie s
20
fie reunite. Primul pas n reunirea informaiilor provenite din mai multe tabele
const n definirea relaiilor ntre tabelele bazei de date.
O relaie ntre dou tabele se face dup un cmp comun. Se recomand ca
numele acestor cmpuri s coincid, iar tipurile s fie identice.
Din punct de vedere a momentului crerii, relaiile pot fi:
- relaii permanente: se stabilesc dup definirea tabelelor i sunt cerute de
modelul relaional fcnd parte din structura bazei de date;
- relaii temporare: se stabilesc ntre tabele cu ocazia definirii unor interogri,
nefiind nregistrate de structura bazei de date.

Tipuri de relaii ntre dou tabele

- relaia unu la unu (1-1) se caracterizeaz prin faptul c unei nregistrri
dintr-o tabel i corespunde o singur nregistrare din cealalt tabel. Este
utilizat cnd:
- numrul cmpurilor fiind foarte mare (max. 255 cmpuri) se dorete
divizarea tabelului n mai multe subtabele;
- se dorete izolarea unor cmpuri ale unui tabel din motive de
siguran; cmpurile care se izoleaz se memoreaz ntr-un alt tabel
(care poate fi securizat);
- ntr-un tabel cu mai multe articole o mic submulime de articole au
nevoie de anumite informaii (cmpuri) adiionale; informaiile
adiionale pot fi memorate ntr-un alt tabel.
- relaia unu la mai muli (1-n) se caracterizeaz prin faptul c unei
nregistrri dintr-o tabel i corespund mai multe nregistrri din cealalt
tabel (un client ncheie mai multe contracte).
- relaia mai muli la mai muli (n-n) - un articol din tabelul A poate avea
mai multe articole asociate n tabelul B i un articol din tabelul B poate avea
mai multe articole asociate n tabelul A. Acest tip de relaie poate fi
reprezentat atunci cnd se definete i un al treilea tabel C, denumit tabel de
jonciune. Rolul acestui tabel este spargerea relaiei mai muli la mai
muli n dou relaii unu la mai muli.
Relaiile se realizeaz din meniul Tools opiunea Relationships. Se stabilesc
tabelele ce se relaioneaz din seciunea Tables (se executa clic pe tabela i se
apas Add) (figura 2.16). Pot fi realizate relaii i ntre interogri ce pot fi
selectate din seciunea Queries. n seciunea Both apar att tabelele ct i
interogrile.
21

Figura 2. 16 - Selectarea tabelelor pentru relaionare
O relaie ntre dou tabele se realizeaz prin operaia drag and drop de la un
cmp al tabelei principale (cheia primar) la un cmp al tabelei secundare
(cheia extern) (figura 2.17).


Figura 2. 17 Fereastra de relaionare a tabelelor
Apare fereastra de editare a relaiei (figura 2.18).
n cazul n care este selectat opiunea Enforce Referential Integrity atunci cnd
se introduce o nou nregistrare n tabela secundar se verific dac valoarea
cheii externe se gsete n tabela principal (nu se poate introduce un contract
dac nu exist codul clientului n tabela principal).
Devin disponibile i cele dou opiuni:
- Cascade Update Related Fields: dac se modific valoarea cheii primare
din tabela principal, se vor modifica automat i cheile corespunztoare din
tabela secundar (dac se modific codul unui client n tabela principal se
modific automat i n tabela secundar);
- Cascade Delete Related Records: dac se terge o nregistrare din tabela
principal se vor terge i nregistrrile corespunztoare din tabela
secundar (dac se terge un client din tabela principal se vor terge i
contractele acestuia din tabela secundar).

22

Figura 2. 18 - Realizarea unei relaii

tergerea unei relaii se face executnd clic dreapta pe linia ce unete cele
dou cmpuri i alegnd Delete.
Modificarea unei relaii se face prin opiunea Edit Relationship... din
meniul contextual ce apare la executarea unui clic dreapta pe linia relaiei.
Prin comanda Tools -> Analyse -> Documenter se poate genera o imagine
imprimabil a tabelelor din baza de date i a relaiilor dintre acestea.
Access permite, n momentul deschiderii unei tabele, afiarea coninutului
tabelei cu care este relaionat (figura 2.19).


Figura 2. 19 - Vizualizarea datelor din mai multe tabele
23

Se observ c n momentul vizualizrii tabelei Clienti se poate consulta tabela
Contracte pentru vizualizarea contractelor fiecrui client, iar pentru fiecare
contract se poate afla coninutul acestuia din tabela Date contract. Se execut
clic pe semnul + pentru a vizualiza nregistrrile din tabela cu care este
relaionat, iar pe se anuleaz aceast facilitate.

2.2.5 Interogri (Queries)

Interogarea (Query) const n extragerea datelor din tabele sau din interogri
anterioare, prelucrarea acestora i furnizarea informaiilor ctre utilizator.
- servesc la selectarea, pe baza unor criterii, a anumitor articole din tabele.
- permit vizualizarea, modificarea i analiza diferitelor date n diferite
moduri.
- pot fi utilizate n calitate de surs de date pentru formulare i rapoarte.
- se pot afia simultan mai multe cmpuri provenite din mai multe tabele, se
poate stabili ordinea de afiare a cmpurile respective, care s fie criteriile
de filtrare i sortare ale articolelor afiate.
- este posibil efectuarea anumitor calcule n diferite grupuri de articole
(sume pariale, medii, altele).
- se pot utiliza pentru crearea de tabele, adugarea nregistrrilor n tabele,
tergerea nregistrrilor din tabele i actualizarea datelor.
Interogarea datelor din tabele se realizeaz n dou moduri:
- prin fereastra Query By Example (QBE)
- prin limbajul SQL (Structured Query Language).
Access permite crearea urmtoarelor tipuri de interogri:
- interogri de selecie;
- interogri de tip total;
- interogri parametrizate;
- interogri de aciune;
- interogri ncruciate.

Interogri de selecie

Se folosesc pentru extragerea datelor din tabele, aplicarea unor criterii de
filtrare i ordonare.
24
n fereastra Database se execut clic pe Queries i apoi pe
butonul New . Apare fereastra New Query (figura 2.20) i se alege
Design View.

Figura 2. 20 -Fereastra New Query

Apare fereastra Show Table (figura 2.21) care conine tabelele i interogrile
dintre care utilizatorul poate alege sursa de date a interogrii pe care o
realizeaz.


Figura 2. 21 - Fereastra Show Table
Se selecteaz pe rnd tabelele sau interogrile (Queries) necesare apsndu-se
Add.
n fereastra Query Design (figura 2.22), n partea de sus se afieaz tabelele sau
interogrile care cuprind lista cmpurilor coninute. Dac tabelele sunt
relaionate, vor apare cu liniile de legtur precizate. Dac nu, pot fi relaionate
chiar n cadrul interogrii.
Se aduc cmpurile dorite n grila de interogare n ordinea dorit indiferent din
ce tabel fac parte. Se poate trage un cmp cu mouse-ul pe grila de interogare n
25
linia Field sau se poate executa dublu clic pe cmp, acesta adugndu-se
automat n grila de interogare.
Pe rndul Table sunt afiate denumirea tabelelor sau interogrilor din care fac
parte cmpurile respective.
Pe rndul Sort se poate specifica un criteriu de ordonare a datelor. Se execut
clic n coloana cmpului dup care se face ordonarea i se alege Ascending
(cresctor) sau Descending (descresctor).
n rndul Show se pot deselecta casetele de selecie pentru cmpurile care nu se
doresc afiate la executarea interogrii.
n rndul Criteria i or se stabilesc eventualele criterii de selecie a datelor.


Figura 2. 22 - Grila de interogare cu cmpuri selectate din mai multe tabele
Executarea interogrii se face executnd comanda Run din meniul Query sau
prin butonul Run de pe bara de instrumente.
Apar rezultatele interogrii, acestea putnd fi ordonate dup diferite criterii
pentru a putea fi interpretate mai uor (figura 2.23).

26

Figura 2. 23 - Rezultatele interogrii

Stabilirea criteriilor de selecie

Pe rndul Criteria de pe grila de interogare se pot introduce criterii de selecie
sub fiecare cmp.
Dac criteriile de selecie se introduc pe un singur rnd Criteria, se extrag
nregistrrile care ndeplinesc toate condiiile (operator logic AND), iar dac se
introduc pe rnduri diferite, se extrag nregistrrile care ndeplinesc toate
condiiile de pe oricare dintre rndurile Criteria (operator logic OR).
Pentru a stabili criterii pe rndul Criteria se folosesc operatori:
- de comparaie: <, >, <=, >=, =, <> (diferit)
- logici: NOT - negaia logic, AND - i logic, OR - sau logic, XOR -
disjuncia exclusiv a dou valori.
- IS NULL, IS NOT NULL. O valoare NULL (cmp necompletat) nu este
nici true nici false (nici chiar irul null adic ). nregistrrile care au
valoarea NULL nu sunt afiate n rezultatele interogrii.
- LIKE, se folosete mpreun cu caracterele de nlocuire * (nlocuiete mai
multe caractere), ? (nlocuiete un singur caracter) i # (nlocuiete o cifr)
pentru a stabili dac o valoare ncepe, se termin sau conine anumite
caractere. De exemplu, LIKE S* verific dac valorile ncep cu S, LIKE
*S dac se termin cu S, LIKE *S* dac conin S, LIKE 7######
numere de telefon care ncep cu 7;
- IN stabilete apartenena la o list de valori, de exemplu IN (2;3;5);
- BETWEEN stabilete apartenena la un interval, de exemplu BETWEEN 1
AND 10 sau NOT BETWEEN 1 AND 10;
- operatori asociai operatorilor de comparaie TRUE sau FALSE;
27
- funcii Access pentru dat calendaristic i or sau alte funcii. Spre
exemplu, extragerea contractelor din anul 2003 se face specificnd condiia
YEAR([data contract])=2003.
Expresiile introduse n rndul Criteria trebuie s in seama de tipul datei din
coloana respectiv.
Valorile de tip text se introduc ca atare indiferent dac se folosesc litere
majuscule sau minuscule, Access introducnd valorile, n mod automat, ntre
ghilimele.
Valorile de tip dat calendaristic se introduc ntre caracterele # (#10.10.2003#)
Referirea cmpurilor se face prin introducerea acestora ntre paranteze drepte.
n interogarea de mai jos (figura 2.24) se vor extrage clienii ale cror nume
ncep cu I i au cumprat produse n cantiti ce se afl ntre 3 i 5 iar
valoarea contractului este mai mare de 2.000.000 lei.

Figura 2. 24 - Interogare cu criterii de selecie multiple

Salvarea interogrii se poate face la nchiderea ferestrei. Se d un nume
sub care va fi identificat interogarea n fereastra Database.


Figura 2. 25 - Salvarea interogrii
28
Rezultatul interogrii se poate afla executnd dublu clic pe numele interogrii n
fereastra Database sau selectnd interogarea i apsnd butonul Open.


Figura 2. 26 - Rezultatul interogrii
Modificarea interogrii se face prin selectarea din fereastra Database i
apsarea butonului Design.


Cmpuri calculate

ntr-o interogare se pot realiza i calcule prin introducerea unor cmpuri
calculate.
Un cmp calculat se creeaz prin introducerea n linia Field a unei coloane
libere a unei expresii de genul nume cmp: calcul. (figura 2.27)
Spre exemplu, expresia urmtoare calculeaz valorile TVA pentru datele
cmpului valoare din tabela contracte:
val TVA:[contracte.valoare]*19/100


Figura 2. 27 - Exemplu de cmp calculat

29
Rezultatul interogrii va conine un cmp numit val TVA cu valorile calculate
(figura 2.28).


Figura 2. 28 - Rezultatul interogrii

Interogri parametrizate

Se folosesc atunci cnd nu se cunoate o anumit valoare utilizat de interogare.
Se creeaz un parametru ce va reprezenta criteriu de selecie. La execuia
interogrii se va cere introducerea unei valori pentru parametru.
Interogrile parametrizate se folosesc n special ca baz pentru crearea de
formulare i rapoarte.
Pentru a crea o interogare parametrizat se procedeaz astfel:
- se creeaz o interogare de selecie standard;
- n cmpul ce servete drept criteriu, n celula Criteria se introduce ntre
paranteze drepte un mesaj ce va fi afiat cnd se execut interogarea i se
cere introducerea unei valori concrete pentru parametru.
De exemplu, se dorete extragerea contractelor dintr-o anumit lun introdus
de la tastatur. Se creeaz o interogare cu un cmp calculat prin care se extrage
luna din data contractului. n celula Criteria se introduce textul ce apare la
introducerea parametrului. Daca nu se dorete i afiarea cmpului calculat, se
deselecteaz caseta Show corespunztoare cmpului (figura 2.29).

30

Figura 2. 29 Interogare parametrizat
La rularea interogrii apare caseta de dialog Enter Parameter Value n care se
va introduce luna (figura 2.30).

Figura 2. 30 Introducerea valorii pentru parametru

Parametrul poate fi specificat chiar n expresia ce realizeaz un cmp calculat.
n exemplul de mai jos se creeaz un cmp ce calculeaz valoarea n dolari ca
fiind rezultatul mpririi valorilor din cmpul valoare din tabela contracte
la valoarea parametrului valoare dolar ce se va introduce de la tastatur la
executarea interogrii (figura 2.31).

31

Figura 2. 31 - La rularea interogrii se introduce valoare dolar

Interogri de tip Total

Sunt folosite pentru obinerea unor situaii totalizatoare asupra tuturor
nregistrrilor dintr-un tabel sau asupra unui grup de nregistrri.
Calculele sunt realizate prin intermediul unor funcii SQL globale:
- Sum() realizeaz totalul valorilor dintr-un cmp;
- Avg() realizeaz media aritmetic a valorilor unui cmp;
- Min() returneaz cea mai mic valoare;
- Max() returneaz cea mai mare valoare;
- Count() numr valorile Not Null dintr-un cmp;
- First() valoarea primei nregistrri dintr-un cmp;
- Last() valoarea ultimei nregistrri dintr-un cmp;
- StDev(), StDevp() returneaz abaterea statistic standard a valorilor dintr-un
cmp;
- Var(), Varp() calculeaz variaia statistic a valorilor dintr-un cmp.
Etape: se apas pe butonul Totals i n grila de interogare va aprea o
linie, intitulat Total. Pentru realizarea unei grupri n funcie de valorile
coninute ntr-un cmp se trage numele cmpului respectiv n prima celul
liber n linia Field. Celula corespunztoare din linia TOTAL va fi ncrcat
automat cu valoarea GROUP BY (grupare dup). Deoarece se dorete
efectuarea anumitor calcule cu valorile coninute n diferite cmpuri ale
articolelor care se grupeaz, atunci numele cmpurilor implicate n calcule vor
fi trase n linia FIELD a grilei i n linia TOTAL se va alege o opiune din list:
- GROUP BY stabilete crearea unei grupri;
32
- EXPRESSION creeaz un cmp calculat;
- WHERE cmpul specificat n celula FIELD a grilei servete doar pentru
selectarea unor articole din interiorul gruprii. Criteriul de selectare este
specificat n celula din linia CRITERIA. Cmpul din celula FIELD nu poate
participa la definirea gruprii. Dac pentru un anumit cmp a fost selectat
aceast opiune, programul Access va ascunde automat cmpul respectiv din
rezultatele afiate de interogare;
- SUM suma valorilor memorate ntr-un cmp n interiorul unei grupri;
- AVG media aritmetic a valorilor memorate ntr-un cmp n interiorul
unei grupri;
- MIN valoarea minim a valorilor memorate ntr-un cmp n interiorul unei
grupri;
- MAX valoarea maxim a valorilor memorate ntr-un cmp n interiorul
unei grupri;
- COUNT numrul valorilor depuse ntr-un cmp n interiorul unei grupri
(nr. articolelor din grupare);
- Obs: Dac cmpul conine o valoare nul (dac cmpul nu este completat),
atunci articolul respectiv nu va fi inclus n procesul de numerotare a
valorilor;
- FIRST valoarea primului cmp din interiorul unei grupri n conformitate
cu ordinea curent de sortare;
- LAST valoarea primului cmp din interiorul unei grupri, n conformitate
cu ordinea curent de sortare.

Exemplul 1:
Interogare de tip Total care s calculeze suma cantitilor vndute pentru fiecare
produs.
- se realizeaz o interogare select care conine cmpurile necesare:
denumire din tabela Produse i cantitate din tabela Date contract;
- se apas butonul Totals;
- n celula Total din coloana cantitate se execut clic i se alege funcia
Sum (figura 2.32);
- se apas butonul Run pentru vizualizarea rezultatului.
33

Figura 2. 32 Interogare Total

n figura 2.33 sunt afiate rezultatele interogrii nainte de transformarea n
interogare Total. Se observ c acelai produs apare de mai multe ori. Pentru a
afia totalul cantitilor vndute pentru fiecare produs se va transforma
interogarea select ntr-o interogare Total.


interogare select interogare total
Figura 2. 33 Diferena ntre rezultatul unei interogri select i o interogare Total

Exemplul 2:
Interogare Total care calculeaz valoarea + TVA total a contractelor pentru
fiecare client.
34
Se folosete un cmp calculat care s calculeze valoare + TVA.
- se realizeaz o interogare select care conine cmpurile necesare. Se
introduce cmpul Nume din tabela Clienti.
- se realizeaz un cmp calculat: val+tva: Sum([valoare]*1,19)
- se apas butonul Totals;
- n celula Total din coloana cmpului calculat se specific opiunea
Expression (figura 2.34);
- se apas butonul Run pentru vizualizarea rezultatului.


Figura 2. 34 Interogare Total cu clauza Expression

Rezultatul interogrii se poate vizualiza n figura 2.35.


Figura 2. 35 Rezultatul interogrii

Exemplul 3:
Interogare Total care calculeaz cantitile maxime pe produse vndute dup
data de 01.10.2003. (se folosete clauza Where)
- se realizeaz o interogare select ca n figura 2.36;
- se transform n interogare Total;
35
- pentru celula Total a cmpului cantitate se specific funcia Max;


Figura 2. 36 - Interogare Total ce folosete clauza Where

- pentru cmpul data contract se alege clauza Where, iar n rndul Criteria
se introduce condiia > #01.10.2003#. Cmpul data contract nu particip
la afiarea rezultatelor, caseta Show fiind deselectat.
- se execut interogarea.


Figura 2. 37 - Rezultatul interogrii

Interogri ncruciate (Crosstab Query)

Interogrile ncruciate sunt interogri de tip Total, centralizatoare, ce permit
afiarea unei cantiti mari de date, permind compararea i analiza evoluiei
datelor. Pentru o interogare tabel ncruciat sunt necesare cel puin trei cmpuri:
un cmp furnizeaz valorile pentru rnduri (Row Heading), unul furnizeaz
36
valorile pentru coloane (Column Heading) i unul care furnizeaz valorile de
calculat la intersecia liniilor i coloanelor. Aceste valori se calculeaz prin
folosirea unor funcii globale (Sum, Count, Avg etc.).
O interogare ncruciat poate fi realizat n dou moduri:
- folosind asistentul: se apas New i se alege Crosstab Query Wizard
(permite folosirea datelor dintr-o singur tabel);
- manual, crend o interogare i alegnd opiunea Crosstab Query din meniul
Query.
Exemplu:
S se afieze ce cantitate, din fiecare produs, a cumprat fiecare client.
Clienii vor fi afiai pe linie, denumirea produselor pe coloane, iar la intersecia
acestora se calculeaz folosind funcia Sum totalul cantitilor pe fiecare produs,
pentru fiecare client.

Nume cablu utp monitor mouse tastatura
Ionescu Ion 1 15 6
Marinescu Mihai 3 4
Vlad Madalina 2 3

Se creeaz o interogare select ca n figura 2.38. Din meniul Query se alege
Crosstab Query. Apare un rnd nou Crosstab. Se trage cmpul Nume din
tabela Clieni n gril, iar la linia Crosstab se alege Row Heading. Se trage apoi
cmpul Denumire din tabela Produse, iar la Crosstab se alege Column
Heading. Se trage si cmpul Cantitate din tabela Date contract, la Crosstab se
alege Value, iar la Total se alege Sum.

37

Figura 2. 38 - Interogare ncruciat

Figura 2. 39 - Rezultatul interogrii

Interogri de aciune

Interogrile de aciune permit crearea sau modificarea tabelelor. Exist patru
tipuri de interogri de aciune:
- interogare pentru crearea tabelelor (Make - Table Query) permite crearea
unei tabele pe baza nregistrrilor uneia sau mai multor tabele;
- interogare pentru adugarea nregistrrilor (Append Query) permite
adugarea de nregistrri n una sau mai multe tabele;
- interogare pentru actualizarea nregistrrilor (Update Query) permite
modificarea de nregistrri din una sau mai multe tabele;
- interogare pentru tergerea nregistrrilor (Delete Query) permite tergerea
de nregistrri din una sau mai multe tabele;

38
Interogri pentru crearea de tabele (Make Table Query)

O interogare Make Table permite extragerea nregistrrilor din una sau mai
multe tabele i plasarea acestora ntr-o tabel nou creat.
Interogrile Make Table sunt utile pentru:
- crearea copiilor de siguran pentru tabele;
- crearea unei singure tabele pe baza nregistrrilor din mai multe tabele;
- crearea de rapoarte care afieaz date ncepnd de la o anumit dat.

Pentru crearea unei interogri Make Table se parcurg urmtorii pai:
- se creeaz o interogare de selecie care conine cmpurile dorite;
- n rndul Criteria se introduc criteriile de selecie;
- din meniul Query se alege opiunea Make Table Query..., interogarea de
selecie fiind transformat n interogare generatoare de tabele. Apare o
caset de dialog n care se introduce numele tabelei nou create (figura 2.40);
- se apas butonul Run de pe bara de instrumente pentru executarea
interogrii.

Figura 2. 40 - Interogare Make-Table

- apare o caset de dialog n care se precizeaz numrul de nregistrri ce vor
fi depuse n noua tabel. Se apas Yes.

39

Figura 2. 41 Numrul de nregistrri ce va fi depus n noua tabel

Tabela nou creat va apare n seciunea Tables din fereastra Database.

Interogri pentru adugarea nregistrrilor (Append Query)

O interogare Append permite extragerea de nregistrri din una sau mai multe
tabele i adugarea acestora ntr-o alt tabel. Dac tabela surs conine mai
multe cmpuri dect tabela destinaie, interogarea Append va aduga datele n
cmpurile identice i va ignora celelalte cmpuri.
Pentru crearea unei interogri Append se parcurg urmtoarele etape:
- se creeaz o interogare de selecie pentru extragerea nregistrrilor de
adugat ntr-o alt tabel;
- din meniul Query se alege opiunea Append Query. Se alege apoi tabela n
care se vor aduga nregistrrile (figura 2.42). Tabela poate fi din baza de
date curent (Current Database) sau din alt baz de date (Another
Database).


Figura 2. 42 - Alegerea tabelei n care vor fi adugate nregistrrile
n grila de interogare apare o linie nou Append To n care se specific numele
cmpurilor n care se adaug nregistrri. Pentru a aduga date ntr-o tabel,
numele cmpurilor din interogare trebuie s fie identice cu cele din tabela n
care se adaug. Dac sunt identice, vor fi afiate n mod automat n linia
Append To (figura 2.43).
40


Figura 2. 43 - Interogare Append Query
- se apas butonul Run pentru executarea interogrii. Apare caseta de dialog
n care se specific numrul de nregistrri ce vor fi adugate (figura 2.44).


Figura 2. 44 - Numrul de nregistrri ce vor fi adugate

Interogri pentru actualizarea nregistrrilor (Update Query)

Interogrile pentru actualizarea nregistrrilor permit modificarea simultan a
unui numr mare de nregistrri dintr-o tabel. De exemplu, majorarea valorilor
contractelor cu un anumit procent. O astfel de interogare poate realiza
actualizri n cascad n tabelele asociate dac opiunea Cascade Update
Related Field a fost activat. Pentru a crea o interogare Update se parcurg
urmtorii pai:
- se creeaz o interogare de selecie care conine cmpurile ce vor fi
actualizate i eventualele cmpuri pentru care se specific criterii de
selecie;
- din meniul Query se alege Update Query;
41
- n linia Update To se specific pentru cmpurile de actualizat valoarea sau
expresia utilizat pentru modificarea datelor din cmpuri (de exemplu, s se
mreasc valorile contractelor cu 19% - figura 2.45)


Figura 2. 45 - Interogare pentru mrirea valorii cu 19%
- se apas butonul Run pentru rularea interogrii. Se afieaz o caset de
dialog care indic numrul nregistrrilor care se modific.


Figura 2. 46 - Numrul de nregistrri actualizate

Interogri pentru tergerea nregistrrilor (Delete Query)

Interogrile Delete permit tergerea unor nregistrri dintr-o tabel. Dac tabela
este principal se vor terge nregistrrile corespunztoare i din tabela
secundar dac este activat opiunea Cascade Delete Related Records.
Pentru crearea unei interogri Delete se parcurg urmtorii pai:
- se creeaz o interogarea de selecie care conine toate cmpurile din tabela
din care se vor terge nregistrri i, n plus, cmpurile crora li se vor aplica
criterii de selecie. De exemplu, pentru tergerea clienilor din localitatea
42
Bucureti, se mai introduce nc odat cmpul Adresa pentru care se
specific criteriul de tergere (figura 2.47);
- din meniul Query se alege opiunea Delete Query.


Figura 2. 47 - Interogarea pentru tergerea unor nregistrri

- se apas butonul Run pentru executarea interogrii. Apare caseta de dialog
cu numrul de nregistrri ce vor fi terse.


Figura 2. 48 - Numrul de nregistrri ce vor fi terse
Dac tabela este relaionat one to many cu o alt tabel i a fost aplicat
opiunea Cascade Delete Related Records, interogarea va terge i
nregistrrile din tabela din partea many a relaiei. De exemplu, tergerea unui
client va duce i la tergerea contractelor acestuia.

2.2.6 Formulare (Forms)

43
Formularele ofer o interfa mai atractiv ntre utilizator i o aplicaie Access
i sunt folosite n general pentru introducerea sau afiarea datelor.
Principalele funcii ale formularelor sunt:
- introducerea, afiarea i editarea datelor n forma dorit de proiectantul
aplicaiei, datele putnd fi modificate i chiar terse;
- realizarea unor operaii ntr-un mod automatizat. Pot fi realizate formulare
care mpreun cu comenzi macro sau proceduri VBA, s realizeze anumite
aciuni cum ar fi afiarea automat a unor date, executarea anumitor
interogri de aciune, etc.
- afiarea unor mesaje cu informaii despre modul n care aplicaia poate fi
folosit, operaiile ce trebuiesc realizate etc.
- tiprirea informaiilor la imprimant.
Un formular este compus din trei pri: zona de antet i zona de subsol n care
sunt prezentate informaii statice i zona de detaliu n care pot fi vizualizate i
editate datele (figura 2.49).


antet
detaliu
subsol

Figura 2. 49 - Exemplu de formular



Crearea unui formular

n fereastra Database se alege seciunea Forms. Sunt disponibile dou
modaliti de realizare a unui formular:
- Create form in Design view permite realizarea formularului manual, n
fereastra de proiectare;
44
- Create form by using wizard permite realizarea unui formular pe baza unui
asistent.
Se poate crea un formular utiliznd asistentul apoi poate fi deschis n modul
Design pentru efectuarea anumitor modificri.

Crearea unui formular utiliznd asistentul

n fereastra Database se execut dublu clic pe opiunea Create form by using
wizard. Apare fereastra Form Wizard care ne ghideaz pas cu pas n realizarea
formularului:
- la pasul unu se selecteaz cmpurile necesare n formulare. Pot fi selectate
cmpuri din mai multe tabele sau interogri (figura 2.50). Din lista derulant
Tables/Queries se alege tabela sau interogarea din care se selecteaz
cmpuri. n seciunea Available Fields se execut clic pe cmpul dorit i se
apas butonul > pentru selectare sau pe butonul >> pentru selectarea tuturor
cmpurilor. Se apas apoi butonul Next pentru trecerea la pasul doi;


Figura 2. 50 - Pasul 1 selectarea cmpurilor
- la pasul doi se alege modul n care sunt prezentate datele n cadrul
formularului (figura 2.51);

45

Figura 2. 51 - Pasul 2 modul de prezentare a datelor
- la pasul trei se alege stilul formularului, prin stil nelegnd o anumit
schem de culori pentru fundal, caracteristici pentru text, etc (figura 2.52).


Figura 2. 52 - Pasul 3 stilul formularului
- la pasul patru i ultimul se stabilete denumirea formularului (figura 2.53).

46

Figura 2. 53 - Pasul 4 numele formularului

- la apsarea butonului Finish apare formularul ce permite vizualizarea
datelor i modificarea acestora (figura 2.54).


Figura 2. 54 - Formularul propriu zis i elementele barei de navigare
n partea inferioar a formularului apare o bar de navigare ce permite accesul
la nregistrri.

47
Modificarea formularului

Un formular poate fi creat cu ajutorul asistentului i poate fi modificat manual
n fereastra de proiectare.
n fereastra Database se alege formularul de modificat i se apas butonul
Design de pe bara de instrumente. Formularul apare n fereastra de proiectare
unde elementele acestuia pot fi mutate sau redimensionate cu ajutorul mouse-
ului. n fereastra de proiectare elementele formularului se numesc controale i
pot fi de mai multe tipuri. Bara de instrumente Toolbox permite adugarea de
controale noi.

Figura 2. 55 - Bara de instrumente Toolbox

Figura 2. 56 -Formular n fereastra de proiectare
Spre exemplu vom aduga dou controale de tip etichet, una n zona antet
(Form Header) i una n zona Subsol (Form Footer). Se redimensioneaz cele
dou zone, antet i subsol, se alege controlul pentru realizarea etichetelor de pe
48
bara Toolbox i se dimensioneaz prima etichet. Se introduce textul i se
repet operaia pentru realizarea etichetei i n subsol (figura 2.57).


Figura 2. 57 - Etichete n antetul i subsolul formularului

Controale din fereastra Toolbox utilizate n formulare

- selector (Select Objects) permite deplasarea i dimensionarea
controalelor;
- asistentul (Control Wizards) activeaz/dezactiveaz programele Control
Wizards;
- eticheta (Label) afieaz text care poate fi modificat;
- casete de text (Text Box) genereaz o zon de afiare sau de introducere
a unui text;
- grup de opiune (Option Group) grupeaz controalele n mai multe
seturi (Option Buttons, Check Boxes i Toggle Buttons);
- buton comutator (Toggle Button) permite comutarea din starea On n
starea Off atunci cnd este selectat;
49
- butoane de opiune (Option Button) prezint utilizatorului un set de
opiuni din care poate fi selectat numai una;
- casete de validare (Check Box) comut ntre starea On i starea Off.
Permit selectarea mai multor opiuni simultan;
- caset combinat (Combo Box) format dintr-o caset de text editabil,
n care putem introduce o valoare i o list din care putem alege o valoare;
- caset list (List Box) list derulant de opiuni din care putem alege o
valoare;
- buton de comand (Command Button) execut o aciune atunci cnd se
execut clic pe el;
- imagine (Image) permite introducerea unei imagini statice pe un
formular. Nu este on obiect OLE, deci nu o putem edita dup ce am plasat-o
pe formular;
- obiect nelegat (Unbound Object Frame) include n formular un obiect
OLE creat cu o aplicaie server OLE, cum ar fi Microsoft Graph sau
Microsof Draw;
- obiect legat (Bound Object Frame) afieaz coninutul unui cmp OLE
al unei nregistrri, dac acesta conine un obiect grafic;
- delimitator de pagin (Page Break) determin imprimanta s treac la
pagin nou;
- selector de pagin (Tab Control) permite crearea mai multor pagini ce
pot fi selectate;
- subformular/subraport (Subform/Subreport) ataeaz unui formular sau
raport un subformular, respectiv un subraport;
- linie (Line) creaz o linie dreapt pe care putem s o redimensionm i
s-i modificm poziia;
- dreptunghi (Rectangle) creeaz un dreptunghi;
- mai multe controale (More Controls) permite introducerea controalelor
ActiveX instalate n sistem.

Modificarea proprietilor controalelor

Proprietile controalelor se pot modifica executnd clic dreapta pe control i
alegnd opiunea Properties. Apare o fereastr n care se pot stabili diverse
50
opiuni, cele legate de aspectul controlului gsindu-se n seciunea Format
(figura 2.58). Se poate stabili fontul, mrimea acestuia, culoarea etc. Pentru
cmpurile de text, n seciunea Data, apare opiunea Control Source ce
precizeaz cmpul din care provin informaiile afiate.


Figura 2. 58 - Proprietile unui control Label i Text Box

Proprietile formularului

Fiecare obiect (formular, seciune, control) are un numr de proprieti.
Afiarea proprietilor unui formular se realizeaz deschiznd formularul n
modul Design. Din meniul View se alege opiunea Properties.
Principalele proprieti ale formularelor sunt :
- Data, controleaz tipul operaiilor permise n formular prin opiunile :
- Allow Edits (permite tergerea) ;
- Allow Delations (permite adugri) ;
- Allow Additons (introducere de date) ;
- Data Entry (introducere de date) .
Aceste opiuni pot lua valorile Yes (implicit) sau No.
- Format, controleaz aspectul formularului, prin opiunile
- Caption (titlul formularului);
- Default View (cu valoarea prestabilit Single Form) ;
- Views Allowed (stabilete dac se poate trece de la modul Form la
modul Datasheet);
- Scroll Bars (bara de derulare) ;
51
- Record Selectors (selectare a nregistrrilor) ;
- Auto Center (centrare automat) ;
- Control Box (caset de control) ;
- Min Max Buttons (buton de maximizare i minimizare) ;
- Close Button (buton de nchidere) ;
- Pop Up (dac este Yes formularul se deplaseaz deasupra altor
formulare).

Subformulare

Un subformular este un formular inclus ntr-un alt formular, pentru a permite
afiarea datelor din mai multe tabele sau interogri, aflate n general n relaii de
tipul unu la unu sau unu la mai muli. Astfel, n formularul principal vor fi
afiate datele din partea unu a relaiei, iar n subformular, cele din partea mai
muli. De exemplu, n formularul principal sunt afiai clienii, iar n
subformular contractele corespunztore fiecrui client.
Pentru a crea un formular cu subformular exist trei posibiliti:
- crearea formularului i subformularului concomitent;
- crearea subformularului i adugarea lui la un formular existent;
- crearea separat a celor dou i apoi combinarea lor.
Prima variant este cea mai simpl. Se va utiliza asistentul Form Wizard. De
exemplu, vom crea un formular pe baza tabelei Clienti cu un subformular pe
baza tabelei Contracte.
Se execut dublu clic pe Create form by using wizard. Apare fereastra Form
Wizard i se parcurg paii cunoscui de creare a unui formular.
- la pasul 1 se selecteaz cmpurile necesare din tabela Clienti i tabela
Contracte (figura 2.59)

52

Figura 2. 59 Selectarea cmpurilor
- la pasul 2 se alege modul de grupare a datelor. Se las opiunea by Clienti
pentru a crea un formular pe baza tabelei Clienti i un alt formular pe
baza tabelei Contracte (figura 2.60). Sunt disponibile i opiunile:
- Form with subform(s) caz n care se creaz un formular principal i
un subformular;
- Linked forms caz n care sunt create dou formulare separate.
Accesul la cel de-al doilea formular se face prin apsarea unui buton
aflat n primul formular.


Figura 2. 60 Gruparea datelor
- la pasul 3 se alege stilul subformularului (figura 2.61);

53

Figura 2. 61 Stilul subformularului
- la pasul 4 se alege aspectul pentru formular i subformular (figura 2.62);


Figura 2. 62 - Stilul formularului
- la pasul 5 se introduce numele formularului i al subformularului;

54

Figura 2. 63 Numele formularului i al subformularului
- se apas Finish.
n formularul care apare se observ datele unui client i informaiile privind
contractele acestuia ntr-o form tabelat n partea inferioar a formularului
(figura 2.64)

Figura 2. 64 Formular cu subformular

2.2.7 Rapoarte (Reports)

55
Raportul este cel mai eficient mod de a prezenta datele ntr-un format destinat
tipririi la imprimant. Permite gruparea datelor pe mai multe niveluri,
realizarea unor totaluri, subtotaluri i rezumate.
Ca i formularul, un raport este compus din mai multe zone (figura 2.65):
- antetul raportului (Report Header) conine de obicei titlul raportului;
- antetul de pagin (Page Header) conine informaii ce apar n partea
superioar a fiecrei pagini a raportului, n general structura raportului;
- zona datelor (Detail) afieaz datele;
- subsolul de pagin (Page Footer) conine informaii ce apar n partea
inferioar a fiecrei pagini (numrul de pagin, numrul total de pagini etc.)
- subsolul raportului (Report Footer) conine informaii ce apar la sfritul
raportului (totaluri, formule de ncheiere, etc.)

Crearea unui raport

n fereastra Database se alege seciunea Reports. Un raport poate fi realizat
manual, n fereastra de proiectare (Create report in Design view) sau folosind
un asistent (Create report by using wizard).

56

Figura 2. 65 - Raport cu cele cinci zone

Crearea unui raport folosind asistentul

Se execut dublu clic pe opiunea Create report by using wizard. Se urmresc
n continuare paii pui la dispoziie de asistent:
- pasul 1: se selecteaz cmpurile folosite n raport (figura 2.66 a). Pot fi
selectate cmpuri din mai multe tabele sau interogri. Din lista derulant
Tables/Queries se alege tabela sau interogarea din care se selecteaz
cmpuri. n seciunea Available Fields se execut clic pe cmpul dorit i se
apas butonul > pentru selectare sau pe butonul >> pentru selectarea tuturor
cmpurilor. Se apas apoi butonul Next pentru trecerea la pasul doi;
57

Figura 2. 66 a) Selectarea cmpurilor raportului

- pasul 2: n funcie de relaiile dintre tabelele din care provin cmpurile alese
se poate alege un nivel de grupare a datelor (figura 2.66 b);


Figura 2.66 b) Alegerea unui nivel de grupare a datelor

- pasul 3: se pot defini alte criterii de grupare a datelor (spre exemplu
gruparea pe luni a contractelor) (figura 2.67). Se alege un criteriu i se apas
58
butonul >. Butonul Grouping Options... permite alegerea unor opiuni legate
de modul n care sunt grupate datele (spre exemplu, pentru date
calendaristice se pot alege intervale de grupare pe ani, luni, zile, ore, etc. );


Figura 2. 67 - Gruparea datelor pe luni n funcie de data contractelor
- pasul 4: se alege un criteriu de ordonare a datelor (figura 2.68).


Figura 2. 68 Sortarea datelor
Butonul Summary Options permite efectuarea unor calcule totalizatoare pentru
fiecare grup (subtotaluri) sau pentru ntregul raport (totaluri). Spre exemplu: s
se afieze totalul cantitilor pentru fiecare client (figura 2.69);
59


Figura 2. 69 - Calcularea unor totaluri i subtotaluri

- pasul 5: se alege modul de vizualizare a datelor (figura 2.70);


Figura 2. 70 - Modul de afiare a datelor

- pasul 6: se alege aspectul raportului (figura 2.71);
60

Figura 2. 71 - Stilul, aspectul raportului

- pasul 7: se introduce numele raportului (figura 2.72);


Figura 2. 72 Numele raportului
- Se apas Finish. Raportul este vizualizat n modul Print Preview i poate fi
trimis ctre imprimant (figura 2.73).
61

Figura 2. 73 Raport n modul de vizualizare Print Preview

Realizarea unui raport, manual, n fereastra de proiectare

Se va realiza un raport care s afieze produsele, grupate dup denumirea lor.
Structura raportului va fi:

Denumire produs Data contract Cantitate


Se creeaz o interogare cu numele vnzri care s conin cmpurile
respective (figura 2.74):
62

Figura 2. 74 - Interogarea pe baza creia va fi creat raportul

Se revine n seciunea Reports unde se execut dublu clic pe opiunea Create
report in Design view. Apare fereastra de proiectare a raportului. n meniul
View se alege opiunea Report Header/Footer pentru afiarea i a antetului i
subsolului de raport.
Folosind bara de instrumente Toolbox se introduce un control etichet cu titlul
raportului n antetul raportului (Report Header). Aspectul textului poate fi
modificat executnd clic dreapta pe etichet i alegnd opiunea Properties. n
fereastra Properties se acceseaz seciunea Format unde sunt disponibile opiuni
referitoare la aspectul textului.
n antetul paginii (Page Header) se realizeaz structura raportului. Se introduc
trei controale de tip etichet Denumire produs, Data contract i Cantitate


Figura 2. 75 - Introducerea titlului i a structurii raportului
63
Se stabilete apoi c interogarea creat anterior (cu numele vnzri) constituie
sursa datelor afiate n formular. Din meniul View se alege opiunea Properties.
Din lista derulant aflat n partea superioar a ferestrei se alege opiunea
Report. n seciunea Data la Record Source se alege interogarea vanzari
(figura 2.76).


Figura 2. 76 - Stabilirea sursei datelor afiate n raport

n continuare se stabilesc nivelurile de grupare a datelor. Din meniul View se
alege opiunea Sorting and Grouping (figura 2.77). Datele vor fi grupate dup
denumirea produsului. n prima celul a grilei se execut clic i se alege cmpul
denumire. La Group Header i la Group Footer se stabilete Yes.


Figura 2. 77 - Gruparea datelor
n fereastra de proiectare apar seciunile denumire Header i denumire
Footer. Din lista de cmpuri aprut pe ecran la stabilirea sursei datelor se trag
cu mouse-ul cmpurile n fereastra de proiectare. Cmpul denumire se
plaseaz n zona denumire Header, iar celelalte n zona Detail. Iniial apar
mpreun cu etichete asociate, acestea putnd fi ns terse (figura 2.78).
64

Figura 2. 78 - Introducerea cmpurilor n fereastra de proiectare
n zona de subsol a grupului putem calcula totalul cantitilor pe fiecare grup de
produse, iar n subsolul formularului totalul general. n acest scop se trage
cmpul cantitate n zona denumire Footer. Se execut clic dreapta pe acesta
i se alege opiunea Properties. n seciunea Data opiunea Control Source se
introduce =Sum([cantitate]). Se poate introduce n plus i o etichet Total per
produs. n mod analog se procedeaz i pentru calcularea totalului general n
zona Report Footer (figura 2.79).


Figura 2. 79 - Calcularea subtotalurilor i a totalului general
65
Din meniul View se alege opiunea Print Preview pentru vizualizarea datelor
(figura 2.80).


Figura 2. 80 - Afiarea raportului n Design View


2 2. .2 2. .8 8 M MI IC CR RO OS SO OF FT T A AC CC CE ES SS S I I R RE E E EA AU UA A I IN NT TE ER RN NE ET T

SGBD Access ofer trei posibiliti de interfa cu reeaua Internet:
- pagini Web statice (fiiere de tip html);
- pagini Web dinamice (fiiere de tip asp Active Server Pages);
- obiecte de tip pagin Web (Data Access Pages).
Primele dou posibiliti sunt implementate prin comanda Export din meniul
File. Cea de-a treia prin seciunea Pages din fereastra Database.
O pagin Web static va reflecta coninutul unui obiect la un moment dat.
Modificarea obiectului va implica republicarea paginii Web aferente. Spre
exemplu, o pagin Web ce prezint clienii trebuie modificat ori de cte ori se
adaug sau se modific clieni. Pentru a nltura acest impediment au fost create
66
paginile Web dinamice (Active Server Pages - ASP). Un fiier *.asp este o
pagin Web ce conine un script scris n VBScript, care se execut pe server. n
momentul accesrii paginii, se execut scriptul care deschide o baz de date,
execut o interogare, formateaz rezultatul i-l transmite vizitatorului paginii.
Spre deosebire de paginile Web dinamice de tip ASP, n care toate
componentele de acces la baza de date se execut pe server, n Data Access
Page prelucrarea se face pe calculatorul client, pe server aflndu-se numai
fiierul baz de date.

Deosebirea dintre Active Server Pages i Data Access Page




Crearea unui obiect de tip Data Access Page

n fereastra Database se alege seciunea Pages. O pagin poate fi creat
folosind asistentul sau manual n fereastra de proiectare n mod asemntor cu
realizarea formularelor sau a rapoartelor.
Navigator Web
Server Web
Active Server Page
SGBD Access
Baza de date
CLIENT
SERVER
Navigator Web
Server Web
Data Access Page
SGBD Access
Baza de date
CLIENT
SERVER
I
N
T
E
R
N
E
T

I
N
T
E
R
N
E
T

ACTIVE SERVER PAGES DATA ACCESS PAGE
67

Crearea unei pagini folosind asistentul

Se execut dublu clic pe opiunea create data access page by using wizard. Se
parcurg paii sugerai de asistent:
- pasul 1: se selecteaz cmpurile afiate n pagin (figura 2.81);


Figura 2. 81 Selectarea cmpurilor pentru pagin
- pasul 2: se poate alege un criteriu de grupare a datelor (figura 2.82);


Figura 2. 82 Gruparea datelor
- pasul 3: se pot stabili criterii de ordonare a datelor (figura 2.83);
68

Figura 2. 83 Ordonarea datelor
- pasul 4: se introduce denumirea paginii i se apas Finish (figura 2.84).


Figura 2. 84 Denumirea paginii

Pagina apare n fereastra de proiectare unde poate fi modificat ca pe un
formular sau raport.
La nchiderea ferestrei se va salva pagina sub forma unui fiier n format *.htm,
fiier asociat obiectului din seciunea Pages dar neinclus n baza de date. Orice
modificare a acestuia va duce la modificarea automat a fiierului htm asociat.
69
De asemenea, orice modificare a datelor afiate n cadrul navigatorului web se
vor reflecta n obiectul asociat din baza de date.
Se pot crea astfel, ntr-o manier simpl, pagini web dinamice, conectate la o
baz de date (figura 2.85).


Figura 2. 85 - Pagina vizualizat cu Internet Explorer


2 2. .2 2. .9 9 C CO OM ME EN NZ ZI I M MA AC CR RO O ( (M MA AC CR RO OS S) )

Comenzile macro sunt folosite pentru automatizarea anumitor operaii
permind astfel realizarea unor aplicaii conduse de evenimente declanate de
utilizator.
Comenzile macro reprezint o modalitate simpl i eficient pentru
automatizarea anumitor operaii, oferind posibilitatea dezvoltrii unor aplicaii
complexe fr a folosi programarea n Visual Basic.
O comand macro reprezint o aciune sau o secven de aciuni ce realizeaz
operaiuni diverse precum deschiderea sau nchiderea formularelor, tiprirea
rapoartelor, salvarea nregistrrilor, etc.

70
Crearea unui macro

n fereastra Database se acceseaz seciunea Macros. Se apas butonul New.
Apare o fereastr unde n coloana Action se pot stabili aciunile efectuate de
comanda macro. n coloana Comment se poate introduce, opional, un
comentariu. n partea inferioar Action Arguments se pot specifica informaii
suplimentare despre cum s se desfoare aciunea sau ce obiecte sau date se
folosesc. De exemplu, dac s-a ales aciunea OpenForm (deschide formular), n
zona Action Arguments apare opiunea Form Name ce permite alegerea
formularului ce va fi deschis i opiunea View de unde se alege modul de
vizualizare a formularului (figura 2.86).


Figura 2. 86 - Comand macro cu o aciune
O comand macro poate cuprinde mai multe aciuni. De asemeni, se pot defini
condiii care vor fi permite executarea unei aciuni atunci cnd condiia este
ndeplinit.

Grupuri de macro-uri

Sunt mai multe comenzi macro identificate printr-un singur nume. Referirea la
un macro dintr-un grup de macro-uri se face n urmtoarea sintax:
NumeGrupMacro.Nume Macro. Pentru a crea un grup de macro-uri se alege
din meniul View al ferestrei Macro opiunea Macro Name. n fereastra Macro
apare o a treia coloan Macro Name n care se vor scrie numele macro-urilor
componente n dreptul primei aciuni a macro-ului respectiv. Aciunile ce vor
71
urma pn la o nou aciune i crora le corespund n coloana Macro Name un
nume, vor forma un macro (figura 2.87).

Figura 2. 87 Grup macro

Tipuri de aciuni de macro

n Microsoft Access 2000 utilizatorul are posibilitatea s aleag n lista Action
a ferestrei Macro dintr-un numr de 53 de aciuni prestabilite. Prin diversitatea
argumentelor acestor aciuni ele pot satisface n mare msur necesitile
elaborrii unei aplicaii de complexitate medie.
n continuare vor fi prezentate cele mai importante aciuni macro grupate dup
criteriul funcionalitii acestora :

Aciuni macro pentru manipularea obiectelor bazei de date

OpenForm deschide un formular n modul solicitat de utilizator (editare,
adugare);
OpenQuery deschide o interogare;
OpenReport deschide sau tiprete un raport;
OpenTable deschide o tabel;
Close nchide un obiect deschis al bazei de date;
SetValue stabilete valori sau modific proprietile pentru cmpurile,
controalele i proprietile formularelor i rapoartelor;
72
GoToControl produce deplasarea la un anumit cmp sau control n cadrul
unui formular, tabel sau interogare;
ApplyFilter permite filtrarea nregistrrilor dintr-o tabel, formular sau
raport;
ShowAllRecords nltur filtrele aplicate unui obiect al bazei de date;
Requery reactualizeaz datele afiate de un control;
Maximize maximizeaz fereastra activ;
Minimize minimizeaz fereastra activ;
MoveSize deplaseaz i redimensioneaz fereastra activ;
RenameObject redenumete obiectul specificat;
DeleteObject terge obiectul specificat.

Aciuni macro pentru navigarea n cadrul nregistrrilor bazei
de date

FindRecord caut o nregistrare;
FindNext efectueaz o nou cutare pe baza argumentelor celei mai recente
cutri;
GoToRecord produce deplasarea la nregistrarea specificat.

Aciuni pentru controlul execuiei aplicaiei

CancelEvent anuleaz evenimentul care a cauzat executarea comenzii macro;
Quit determin nchiderea Microsoft Access;
RunCode lanseaz n execuie o funcie sau procedur elaborat de
programator;
RunSQL execut o instruciune SQL de tip aciune;
RunMacro execut o comand macro;
RunApp lanseaz n execuie o alt aplicaie;
StopMacro oprete comanda macro ce conine aciunea;
StopAllMacros oprete toate comenzile macro aflate n execuie;
Echo activeaz sau dezactiveaz actualizarea ecranului n timpul executrii
comenzii macro;
SetWarnings activeaz sau inhib afiarea mesajelor Access;
MsgBox afieaz un mesaj pentru utilizator;
Beep produce un semnal sonor de avertizare.

73
Aciuni pentru crearea i modificarea interfeei cu utilizatorul

AddMenu adaug un nou meniu pentru un formular sau pentru ntrega
aplicaie;
ShowToolbar ascunde sau afieaz pe ecran o bar de instrumente;
SetMenuItem seteaz starea (activ sau inactiv) a unui element din meniuri;



Aciuni pentru automatizarea ieirilor aplicaiei i facilitarea
comunicrii cu alte programe

TransferDatabase permite importarea sau exportarea obiectelor bazei de date
din/n alte baze de date;
TransferSpreadsheet export sau import date din fiiere create cu procesoare
de tabele precum Microsoft Excel;
PrintOut tiprete obiectul activ al bazei de date;
SendObject include obiectul activ al bazei de date ntr-un mesaj trimis prin
pota electronic;
RunCommand - permite lansarea oricrei comenzi din meniuri sau bare de
instrumente.

Executarea comenzilor macro

Rularea unei comenzi macro se poate face n mai multe moduri:
- se execut dublu clic pe numele comenzii n fereastra Database;
- din cadrul unui alt macro utiliznd aciunea RunMacro;
- din interiorul unei funcii sau proceduri VBA;
- ca rspuns la un eveniment declanat de utilizator, spre exemplu apsarea
unui buton de pe un formular.
- alegerea unei opiuni dintr-un meniu;
- apsarea unei combinaii de taste.
n exemplul de mai jos, apsarea celor dou butoane duce la deschiderea
formularului clieni i a raportului produse (figura 2.88).

74

Figura 2. 88 - Formular cu dou butoane de aciune

Se creeaz un formular n modul Design view cu dou butoane de comand. Se
creeaz cele dou comenzi macro, una pentru deschiderea formularului (form
Clienti), una pentru deschiderea raportului (raport Produse - figura 2.89).


Figura 2. 89

Se ataeaz comenzile macro celor dou butoane, astfel: se deschide formularul
n fereastra de proiectare. Se execut clic dreapta pe butonul formular clienti
i se alege opiunea Properties. n fereastra de proprieti se acceseaz
seciunea Event. n cadrul opiunii On Click se alege macrocomanda form
Clienti(figura 2.90). n seciunea Format opiunea Caption se stabilete textul
afiat pe buton, iar n seciunea Other opiunea Name se stabilete denumirea
butonului folosit n expresii, macrouri i proceduri VBA.

75

Figura 2. 90 - Ataarea unei macrocomenzi unui buton
n mod asemntor se ataeaz i comanda macro raport Produse butonului
raport produse din formular.

2 2. .2 2. .1 10 0 F FE ER RE EA AS ST TR RA A S ST TA AR RT T- -U UP P

Se poate stabili un formular care s fie deschis automat la deschiderea bazei de
date. Formularul poate conine butoane care s ofere accesul la toate funciile
aplicaiei (formulare, rapoarte, interogri, tabele) fr ca utilizatorul s
cunoasc numele tabelelor, formularelor, etc.
Se creeaz formularul n modul Design ca n figura 2.91.

76

Figura 2. 91 - Formularul aplicaiei

Butoanele din stnga sunt destinate deschiderii a trei formulare destinate
adugrii sau modificrii datelor din tabelele bazei de date. Butoanele din
dreapta permit deschiderea a dou rapoarte.
La introducerea butoanelor n formular se poate stabili i aciunea acestora. De
exemplu, la introducerea butonului Adauga client apare un asistent care
permite stabilirea aciunii de deschidere a formularului clienti.
La pasul 1 se alege din seciunea Categories opiunea Form Operations, iar din
seciunea Actions opiunea Open Form (figura 2.92).
77

Figura 2. 92 - Alegerea aciunii pentru buton

La pasul 2 se alege formularul care va fi deschis de buton (figura 2.93).


Figura 2. 93 - Alegerea formularului deschis de buton.
La pasul 3 se poate stabili textul afiat pe buton (figura 2.94).
78

Figura 2. 94 - Stabilirea textului afiat pe buton

La pasul 4 se stabilete numele butonului (figura 2.95).


Figura 2. 95 - Denumirea butonului.

Pentru stabilirea formularului Aplicatie ca fereastr de start a aplicaiei se
procedeaz astfel: din meniul Tools se alege opiunea Startup.
Apare o fereastr ca n figura 2.96.

79

Figura 2. 96 - Fereastra Startup
Opiunile ferestrei sunt:
- Application Title - titlul aplicaiei;
- Display Form/Page - numele formularului deschis automat odat cu
deschiderea bazei de date;
- Aplication Icon pictograma aplicaiei;
- Display Database Window este/nu este accesibil fereastra bazei de date;
- Display Status Bar este/nu este afiat bara de stare;
- Menu Bar bara de meniuri a aplicaiei;
- Allow Full Menus sunt/nu sunt accesibile meniurile Access;
- Allow Built-in Toolbars sunt/nu sunt accesibile barele de instrumente
Access;
- Allow toolbar/Menu Changes se pot/nu se pot modifica meniurile i barele
de instrumente al bazei de date;

2 2. .2 2. .1 11 1 A AP PL LI IC CA A I II I

Exerciiul 1
Un avocat i pstreaz lista clienilor si ntr-o baz de date. Baza de date
conine numele, numrul de telefon i adresele clienilor.
Se dorete cutarea unui client dup nume i afiarea datelor acestuia.
Rezolvare:
- presupunem existena tabelei Clienti cu urmtoarea structur:
80
- cod client (Autonumber)
- nume client (Text)
- telefon (text)
- adresa (text)
- se creeaz o interogare select cu parametru pe baza tabelei Clienti.
Parametrul este folosit pentru introducerea numelui clientului cutat ca n
figura 2.97.


Figura 2. 97 Interogare pentru cutarea unui client dup nume

- la executarea interogrii apare o caset de dialog cu mesajul
Introduceti numele i se introduce numele clientului cutat.


Figura 2. 98 Introducerea numelui clientului cutat

Dac exist n tabel numele introdus, vor fi afiate datele clientului cu numele
respectiv (figura 2.99).

81

Figura 2. 99 Afiarea clientului gsit


Exerciiul 2
O baz de date conine legi. Legile sunt introduse n tabela Legi cu
urmtoarea structur:
- nr lege (Autonumber)
- nume lege (Text)
- data apariiei (Date/Time)
- text lege (Memo)
Se cere:
a) s se afieze textul legii al crei nume este ...
b) s se afieze numele i data apariiei tuturor legilor care conin n textul
lor, expresia ......

Rezolvare:
a)
- se realizeaz o interogare select cu parametru pentru introducerea
numelui legii (figura 2.100)

82

Figura 2. 100 Cutarea legii dup nume
b)
- se realizeaz o interogare cu parametru astfel: se creeaz un cmp
neafiat n interogare: text: InStr([text lege],[expresie]). Se folosete
funcia InStr ce returneaz poziia primei apariii a unui grup de caractere
ntr-un text. Se va cuta expresia introdus de utilizator prin parametrul
[expresie] n cmpul [text lege]. n celula Criteria se trece <>0 (figura
2.101).
-

Figura 2. 101 Interogare pentru cutarea n textul legii

83
Exerciiul 3
O agenie de turism pstreaz lista clienilor si ntr-o baz de date. Baza de
date conine numele, numerele de telefon i adresele clienilor.
Se dorete cutarea unui client dup nume i afiarea datelor acestuia.
Rezolvare:
- presupunem existena tabelei Clienti cu urmtoarea structur:
- cod client (Autonumber)
- nume client (Text)
- telefon (text)
- adresa (text)
- se creeaz o interogare select cu parametru pe baza tabelei Clienti.
Parametrul este folosit pentru introducerea numelui clientului cutat ca n
figura 2.97.


Figura 2. 102 Interogare pentru cutarea unui client dup nume

- la executarea interogrii apare o caset de dialog cu mesajul Introduceti
numele i se introduce numele clientului cutat.


Figura 2. 103 Introducerea numelui clientului cutat

84
Dac exist n tabel numele introdus, vor fi afiate datele clientului cu numele
respectiv (figura 2.99).


Figura 2. 104 Afiarea clientului gsit


Exerciiul 4
O bibliotec gestioneaz o baz de date ce conine informaii despre cri.
Informaiile despre cri sunt introduse n tabela Cri cu urmtoarea
structur:
- cota_carte (Autonumber)
- Denumire (Text)
- An aparitie (Number)
- Autori (Text)
- continut (Memo)
Se cere:
c) s se afieze coninutul unei cri al crei nume este specificat printr-un
parametru;
d) s se afieze numele, autorii i anul apariiei tuturor crilor care conin
n textul lor, expresia ......

Rezolvare:
a)
- se realizeaz o interogare select cu parametru pentru introducerea denumirii
crii (figura 2.100)

85

Figura 2. 105 Cutarea crii dup nume
b)
- se realizeaz o interogare cu parametru astfel: se creeaz un cmp neafiat
n interogare: text: InStr([continut],[expresie]). Se folosete funcia InStr
ce returneaz poziia primei apariii a unui grup de caractere ntr-un text. Se
va cuta expresia introdus de utilizator prin parametrul [expresie] n
cmpul [continut]. n celula Criteria se trece <>0 (figura 2.101).
-

Figura 2. 106 Interogare pentru cutarea n textul crii
86


Exerciiul 5
O agenie de turism organizez excursii. Fiecare excursie are o denumire, o dat
de nceput, o durat exprimat n numr de zile i un cost global al organizrii.
Pentru evidena celor nscrii n aceste excursii, se retin urmtoarele informaii
despre fiecare turist: Nume, Prenume, suma pltit i vrsta.
Informaiile sunt stocate n tabelele Excursii i Turisti.
Excursii
- cod_ex (Number)
- den_ex (Text)
- data_ex (Date/Time)
- nr_zile (Number)
- cost_ex (Number)

- Turisti
- num_tur (Text)
- pren_tur (Text)
- suma_pl (Number)
- data_nasterii (Date)
- cod_ex (Number) poate lua valori numai din cmpul cod_ex ce aparine
tabelei Excursii

a) s se afieze toi turitii a cror vrst este peste 50 ani;
b) s se afieze lista cu turitii peste 50 de ani nscrii ntr-o excursie
specificat printr-un parametru.

Rezolvare
a) Se realizeaz o interogare select pe baza tabelei Turisti. Se creeaz un
cmp calculat ce returneaz diferena n ani ntre anul curent i anul naterii:
Year(Now())-Year([data_nasterii]). n celula Criteria se va introduce >50.
Pentru ordonarea alfabetic a listei cu turiti, se alege opiunea Ascending pe
rndul Sort aferent cmpurilor Num_tur i Pren_tur.
87

Figura 2. 107 Interogare pentru extragerea turitilor cu vrsta peste 50 ani

b) Se realizeaz o interogare select cu cmpurile necesare din cele dou tabele.
Tabelele sunt relaionate dup cmpul cod_ex.


Figura 2. 108 Extragerea turitilor cu vrsta peste 50 ani nscrii ntr-o excursie.



88
Exerciiul 6
La un notariat se nregistreaz zilnic acte, care pot fi de mai multe tipuri:
contracte de vnzare-cumprare, legalizare copii xerox sau mputerniciri. Pentru
fiecare act nregistrat se percepe un comision. Fiecare act e ntocmit de unul
dintre angajai.
Tabela Acte are urmtoarea structur:
- nr act (AutoNumber)
- tip (Text)
- data (Date/Time)
- comision (Number)
- nume angajat (Text)
a) s se afieze numrul de acte din fiecare tip ntocmit n data de ....
b) s de calculeze suma comisioanelor ncasate de angajatul X n luna Y.

Rezolvare
a) Se creeaz o interogare de tip Total cu cmpurile tip i data. n celula
Total a cmpului data se alege funcia Count ce va numra actele de acelai
tip. Se mai introduce nc o dat cmpul data iar n celula Criteria
corespunztoare se introduce un parametru ce va permite preluarea datei de la
tastatur (figura 2.104).


Figura 2. 109 Numrul de acte dintr-o anumit zi

b) Se realizeaz o interogare Total cu urmtoarea structur (figura 2.105):
- luna: Month([data]) extrage luna din data calendaristic. n celula Criteria
corespunztoare se introduce parametrul [Introducei luna] pentru preluarea
lunii de la tastatur;
89
- comision pentru care, n celula Total, se specific funcia Sum pentru
adunarea comisioanelor;
- nume angajat pentru care se stabilete un parametru ce va permite
introducerea numelui angajatului de la tastatur


Figura 2. 110 Valoarea comisioanelor unui angajat ntr-o anumit lun



Exerciiul 7
ntr-o firm de avocatur mare, pentru o mai bun eficien, documentele sunt
organizate ntr-o baz de date. Pentru fiecare client al firmei sunt ntocmite unul
sau mai multe dosare. Fiecare dosar e alctuit din mai multe documente. Un
document e ntocmit, la o anumit dat, de ctre un avocat angajat la firm,
pentru care acesta a lucrat un numr de ore. Fiecare document are un titlu i un
coninut.
Tabelele bazei de date sunt:
Clienti
- nr client
- nume client
- adres
- telefon
Dosare
- nr client
- nr dosar
- titlu
90
Documente
- nr client
- nr doc
- nr dosar
- nr avocat
- data
- nr ore
- coninut
Avocati
- nr avocat
- nume avocat
- telefon avocat
a) s se caute documentele unui client;
b) s se extrag documentele dintr-un dosar;
c) raport la sfritul fiecrei luni, pentru fiecare client, care s conin nr.
de ore lucrate de fiecare avocat pentru dosarele acestuia.

Rezolvare:
a) Se creeaz o interogare select cu parametru pentru cmpul nume client
pentru a putea fi preluat de la tastatur (figura 2.106)


Figura 2. 111 Interogare pentru cutarea documentelor unui client

b) Se creeaz o interogare select cu cmpuri din tabela Clienti i tabela
Dosare. Se introduce parametru pentru cmpul nr dosar pentru a putea fi
preluat de la tastatur (figura 2.107).

91

Figura 2. 112 Preluarea documentelor unui dosar
c)
- se realizeaz o interogare select (pentru raport lunar)care s conin
cmpurile necesare (figura 2.108).


Figura 2. 113 Interogarea folosit la realizarea raportului

- se realizeaz formularul folosind asistentul Report Wizard;
- la pasul 1 se selecteaz cmpurile din interogarea pentru raport lunar
(figura 2.109)

92

Figura 2. 114 selectarea cmpurilor folosite n formular

- la pasul 2 se alege gruparea datelor dup clieni (by Clienti) (figura 2.110)


Figura 2. 115 gruparea datelor dup clieni

- la pasul 3 se grupeaz datele dup data, n intervale lunare (figura 2.111). Se
execut dublu clic pe data n partea stng. Apare gruparea data by Month
i se duce pe nivelul 1 de grupare folosind sgeata sus de la Priority

93

Figura 2. 116 gruparea datelor dup dat, lunar

- la pasul 4 se poate stabili modul de ordonare a datelor. Se va apsa butonul
Summary Options i se selecteaz funcia Sum pentru a calcula numrul
total de ore lucrate de fiecare avocat (figura 2.112).


Figura 2. 117 selectarea casetei Sum pentru calcularea numrului total de ore
- se parcurg i paii rmai, adic alegerea modului de afiare i stilul
formularului.
Raportul creat poate fi deschis apoi n modul Design View unde poate fi
modificat.

94

Figura 2. 118 Formular final



2.1 NOIUNEA DE BAZ DE DATE........................................................................................1
2.1.1 CLASIFICAREA BAZELOR DE DATE........................................................................1
2.1.2 SISTEME DE GESTIUNE A BAZELOR DE DATE .....................................................3
2.2 SISTEMUL DE GESTIUNE A BAZELOR DE DATE MICROSOFT ACCESS 2002.........3
2.2.1 PREZENTARE GENERAL..........................................................................................3
2.2.2 Arhitectura Microsoft ACCESS.......................................................................................4
2.2.3 Crearea unei baze de date.................................................................................................5
2.2.4 Tabele (tables)..................................................................................................................7
Crearea unei tabele................................................................................................................8
Tipuri de date ........................................................................................................................9
Stabilirea proprietilor pentru fiecare cmp.......................................................................10
Stabilirea cheii primare .......................................................................................................15
Modificarea structurii tabelei ..............................................................................................16
Introducerea nregistrrilor .................................................................................................16
tergerea nregistrrilor.......................................................................................................17
95
Ordonarea nregistrrilor.................................................................................................17
Importarea tabelelor ............................................................................................................17
Importarea tabelelor din Excel n ACCESS........................................................................18
Legtura tabelelor din Excel n Access...............................................................................19
Relaionarea tabelelor .........................................................................................................19
Tipuri de relaii ntre dou tabele ........................................................................................20
tergerea unei relaii .......................................................................................................22
Modificarea unei relaii ...................................................................................................22
2.2.5 Interogri (Queries)........................................................................................................23
Interogri de selecie ...........................................................................................................23
Stabilirea criteriilor de selecie........................................................................................26
Salvarea interogrii .........................................................................................................27
Modificarea interogrii ...................................................................................................28
Cmpuri calculate ...........................................................................................................28
Interogri parametrizate ..................................................................................................29
Interogri de tip Total .....................................................................................................31
Exemplul 1: .................................................................................................................32
Exemplul 2: .................................................................................................................33
Exemplul 3: .................................................................................................................34
Interogri ncruciate (Crosstab Query) ..............................................................................35
Exemplu: .........................................................................................................................36
Interogri de aciune ...........................................................................................................37
Interogri pentru crearea de tabele (Make Table Query) .............................................38
Interogri pentru adugarea nregistrrilor (Append Query) ...........................................39
Interogri pentru actualizarea nregistrrilor (Update Query).........................................40
Interogri pentru tergerea nregistrrilor (Delete Query)...............................................41
2.2.6 Formulare (Forms) .........................................................................................................42
Crearea unui formular .........................................................................................................43
Crearea unui formular utiliznd asistentul ......................................................................44
Modificarea formularului ................................................................................................47
Modificarea proprietilor controalelor ...........................................................................49
Proprietile formularului............................................................................................50
Subformulare...............................................................................................................51
2.2.7 Rapoarte (Reports) .........................................................................................................54
Crearea unui raport .............................................................................................................55
Crearea unui raport folosind asistentul ...................................................................................56
Realizarea unui raport, manual, n fereastra de proiectare ......................................................61
2.2.8 Microsoft Access i reeaua Internet ..................................................................................65
2.2.9 Comenzi Macro (Macros) ..................................................................................................69
Crearea unui macro.................................................................................................................70
Grupuri de macro-uri ..............................................................................................................70
Tipuri de aciuni de macro ......................................................................................................71
Aciuni macro pentru manipularea obiectelor bazei de date ..............................................71
Aciuni macro pentru navigarea n cadrul nregistrrilor bazei de date ..............................72
Aciuni pentru controlul execuiei aplicaiei .......................................................................72
Aciuni pentru crearea i modificarea interfeei cu utilizatorul...........................................73
Aciuni pentru automatizarea ieirilor aplicaiei i facilitarea comunicrii cu alte programe
............................................................................................................................................73
96
Executarea comenzilor macro.............................................................................................73
2.2.10 Fereastra Start-Up ............................................................................................................75
2.2.11 aplicaii.............................................................................................................................79
Exerciiul 1..............................................................................................................................79
Exerciiul 2..............................................................................................................................81
Exerciiul 3..............................................................................................................................83
Exerciiul 4..............................................................................................................................84
Exerciiul 5..............................................................................................................................86
Exerciiul 6..............................................................................................................................88
Exerciiul 7..............................................................................................................................89