Sunteți pe pagina 1din 101

NOTE DE CURS

Baze de date ACCESS

CUPRINS

Cap.3. BAZE DE DATE N MEDIUL ACCESS. TABELE...................................... 33


3.1. Concepte ale mediului Access........................................................................... 33
3.2. Baze de date n mediul Access .......................................................................... 37
3.3. Tabele n mediul Access.................................................................................... 40
3.4. Relaii ntre tabele.............................................................................................. 54
3.5. Indexarea tabelelor i cutarea informaiilor..................................................... 55
3.6. Filtrarea datelor ntr-o tabel ............................................................................. 58
3.7. Ordonarea datelor n tabele ............................................................................... 61
3.8. Personalizarea modului Datasheet View........................................................... 61
3.9. Probleme propuse .............................................................................................. 62
Cap. 4. LIMBAJUL SQL ............................................................................................ 65
4.1. Implementarea n produsul Access a limbajului SQL....................................... 65
4.2. Comenzi de manipulare a datelor folosind SQL implementat n Aceess ........ 67
4.3. Scrierea interogrilor de salecie n SQL. Instruciunea SELECT.................... 69
4.4. Utilizarea funciilor globale SQL ...................................................................... 73
4.5. Crearea asocierilor cu SQL ............................................................................... 74
4.6. Compunerea interogrilor cu ajutorul operatorului UNION............................. 77
4.7. Interogri imbricate ........................................................................................... 77
4.8. Interogri de aciune .......................................................................................... 79
4.9. Utilitarul QBE-SQL........................................................................................... 80
4.10. Probleme propuse ............................................................................................ 88
Cap.5. FORMURI (FORMULARE)........................................................................... 91
5.1. Tipuri de formulare............................................................................................ 91
5.2. Crearea formularelor de procesare a tranzaciilor ............................................. 92
5.3. Utilizarea ferestrei Form Design ....................................................................... 95
5.4. Butoanele barei de instrumente n mediul Form View ................................... 100
5.5. Caseta cu instrumente Toolbox ....................................................................... 101
5.6. Crearea unui formular gol cu antet i subsol................................................... 103
5.7. Probleme rezolvate .......................................................................................... 109
Cap.6 CREAREA I FOLOSIREA RAPOARTELOR ............................................ 115
6.1. Crearea unui raport .......................................................................................... 115
6.2. Configurarea personal a rapoartelor .............................................................. 117

Cuprins

6.3. Crearea graficelor ............................................................................................ 121


Cap.7. FUNCII REFERITOARE LA TIPURILE DE DATE ACCESS ................ 123
7.1. Operatori care apar n expresiile mediului Access.......................................... 123
7.2. Funcii pentru tipul de date dat calendaristic i timp................................... 124
7.3. Funcii matematice i trigonometrice .............................................................. 126
7.4. Funcii care se refer la tipul de dat "Text" sau ir de caractere ................... 127
7.5. Funcii de conversie......................................................................................... 129
7.6. Funcii diverse ................................................................................................. 130
7.7. Probleme.......................................................................................................... 131

Capitolul

3
Baze de date n mediul Access. Tabele
Microsoft Access face parte din pachetul de programe Microsoft Office.
Principalele caracteristici ale produsului sunt urmtoarele:
Sistemul de gestiune al bazelor de date este relaional i lucreaz sub sistemul de
operare Windows;
Este compatibil pentru comunicare cu alte sisteme de gestiune al bazelor de date de
tipul FoxPro sau Paradox;
Este compatibil cu tehnologia ActiveX care permite realizarea unor aplicaii de tip
Client/Server;
Permite comunicarea cu SQL Server, un alt produs al firmei Microsoft;
Permite realizarea unor aplicaii complexe prin folosirea limbajului Visual Basic;
Permite accesul la bazele de date din reeaua Internet, fiind un instrument util pentru
publicarea informaiilor n paginile de Web;
Este autodocumentat prin help, apelabil contextual sau la cerere;
Conine instrumente Wizard care permit utilizatorului crearea facil a unor obiecte;
Permite crearea de grupuri de obiecte definite de utilizator n cadrul bazei de date.
3.1

Concepte ale mediului Access


Baz de date Ansamblu de obiecte utilizat pentru a gestiona informaii. O baz de
date poate fi folosit ca s in evidena ntr-o videotec, s controleze un inventar,
s lucreza cu liste de clieni ori s alctuiasc o list a persoanelor crora s le
trimitei felicitri de Crciun. Ea conine unul sau mai multe tabele, precum i alte
obiecte (de exemplu, rapoarte). O baz de date Acces este stocat sub forma unui
fiier unic cu extensia MDB.
Tabel Obiect ntr-o baz de date, n care informaiile sunt stocate i aranjate pe
rnduri i coloane.
Cmp Categorie de informaii dintr-un tabel, de pild o adresa, titlul unei casete
sau actul de identitate al unui client. Cmpurile, reprezint coloanele tabelului.
nregistrare Toate informaiile legate de un subiect dintr-un tabel. Rndurile
reprezint nregistrrile unui tabel.
Obiect O unitate identificabil ntr-o baz de date, de exemplu un tabel, un raport
sau un formular.

Baze de date n mediul Access. Tabele

34

Putei considera sistemul de gestiune a bazelor de date ca pe un fiet. Fiecare baz


de date reprezint un biblioraft din fiet, iar obiectele (inclusiv tabelele) sunt
dosarele din biblioraft.
Queries (interogrile) afieaz datele coninute n cel mult 16 tabele;
Forms (formularele) afieaz datele existente n tabele sau interogri i permit
introducerea altora noi;
Reports (rapoartele) tipresc datele din tabele i interogri n aproape orice format;
Macros (macrocomenzile) automatizeaz diverse operaii Access. n multe cazuri
macrocomenzile iau locul diverselor instruciuni sau coduri de program;
Modules (modulele) conin codul sau instruciunile limbajului.
n afara fiierelor baz de date cu extensia MDB, Access include un fiier baz de
date principal, System.mdw(System.mda-access2.0), care mai este denumit i fiier
workgroup. El conine informaii despre:
numele utilizatorilor i a grupurilor de utilizatori care pot deschide Sistemul
Access;
parolele utilizatorilor i un cod binar unic, denumit System ID care identific
utilizatorul curent al programului Access;
preferinele de lucru;
definirea barelor cu instrumente personalizate, pe care le creeaz fiecare
utilizator.
O alt categorie de fiiere baz de date Access o formeaz cele denumite add-ins
sau libraries. Ele au de obicei extensia MDA i pot fi activate din opiunea TOOLS a
meniului sistem subopiunea ADD-INS. Vrjitorii din Access sunt stocai de asemenea n
fiiere cu extensia MDA
3.1.1 Operaii elementare asupra programului Access
nainte de a porni programul, trebuie s-l avei instalat n calculator. Dup ce l-ai
instalat, trebuie s poat fi lansat din Windows. Nu uitai s repornii calculatorul, dup ce
ai instalat Microsoft Access, folosind butonul existent pe ultimul ecran al instalarii.
n primul rand, nainte de a putea instala Microsoft Access, trebuie s avei deja
instalat i lansat Windows 3.11 sau Windows 95 sau Windows 98. Microsoft Access se
instaleaz din interiorul programului Windows.
Microsoft Access poate fi pornit n dou moduri:
Executai dublu click pe pictograma Microsoft Access.
Selectai pictograma utiliznd tastele cu sgei, apoi apasai R, sau click pe
mouse.
n ambele variante, Microsoft Access pornete afind fereastra iniial. Bara de
meniuri conine doua opiuni: File i Help. Bara cu instrumente de lucru conine patru
pictograme accesibile: New Database, Open Database, Cue Cards i Help. Din aceasta
fereastra iniial, putei deschide o baz de date, ori putei executa operaii de gestionare a
bazelor de date (fig 1).
Pentru a prsi programul, utilizai una dintre urmtoarele metode:
Selectai Exit din meniul File.

Baze de date n mediul Access. Tabele

35

Apsai A+4.
Executai dublu click pe caseta meniului Control.

Fig 1
Microsoft Access utilizeaz meniuri dinamice, ale cror opiuni se modific n
funcie de felul n care folosii programul. Atunci cnd pornii programul, exist doar dou
meniuri derulante: File i Help. Dup ce deschidei o baz de date, bara de meniuri se va
modifica i n cadrul ei vor aparea mai multe nume de meniuri.
Modul cel mai rapid de operare n Microsoft Access este cu ajutorul unui mouse.
Putei exersa utilizarea mousului, efectund urmtorii pai:
1. Deplasai cursorul mousului pe numele meniului dorit din bara principal de
meniuri, apoi apasai i eliberai butonul stng al mousului (ceea ce se numete
"a executa click". De pild, executai un click pe opiunea File. Meniul respectiv
se deschide.
2. Executai click pe opiunea dorit din meniu; de exemplu, pe Open Database.
3. Atunci cnd se deschide caseta de dialog (fig. 2), selectai opiunile dorite, ori
introducei textul dorit.
4. n mod obinuit, vei nchide caseta de dialog executand click pe OK i lansnd
astfel aciunea respectiv. Dac executai click pe Cancel, caseta de dialog se
nchide fr a iniia nici o aciune.
n lucrul cu meniurile, este necesar s cunoatei cteva detalii.
Un element de culoare gri al meniului nu poate fi selectat n momentul respectiv.
Un triunghi mic afiat n dreapta unei comenzi din meniu arat c, selectarea
comenzii respective va deschide alt meniu. De exemplu, dac ai deschis o baz
de date i selectai meniul File, comanda New din acest meniu apare cu un mic
triunghi cu vrful spre dreapta. Selectnd New, se va afia un submeniu, pe carel putei folosi pentru a defini tipul de obiect pe care intenionai s-l creai n baza
de date.
Punctele de suspensie (...) ce urmeaz unei comenzi indic apariia unei casete de
dialog la selectarea comenzii respective.
Dac deschidei un meniu i apoi hotari s nu-l mai folosii, l putei elimina de
pe ecran, apsnd Esau executnd click oriunde n afara ecranului.

Baze de date n mediul Access. Tabele

36

Fig 2
Tastatura se folosete pentru a introduce text ntr-o caseta de dialog ori n tabelul
unei baze de date. n unele cazuri, de pild la un calculator laptop, tastatura poate fi extrem
de util n activarea comenzilor din meniuri. Iat cum trebuie folosit pentru comenzi:
1. Apsai tasta A apoi introducei litera de selectare a meniului dorit.
2. Cnd este afiat meniul derulant, apsai litera de selectare a opiunii dorite.
Litera de selectare este litera ce apare subliniata pe ecran i care, apasata,
activeaz o comand dintr-un meniu.
0 serie de taste funcioneaz drept comenzi rapide n anumite operaii, astfel nct nu mai e
necesar s deschidei meniul i s selectai comanda. Exist astfel comenzi rapide pentru
anularea unei operaiuni, pentru decuparea sau copierea de texte ori pentru nchiderea unui
program. Tabelul 1 prezint cteva dintre cele mai utilizate.
Tabelul 1
TASTA
FUNCIA
A+4
Prsete mediul Access
E
Anuleaz un meniu, o comand sau o caset de dialog
1
Deschide sistemul Help
S+1
Deschide asistena soft sensibil la context
C+0
Mrete fereastra documentului
C+X
Transfer datele n memoria Clipboard, dup care le terge
din fereastra curent
C+C
Copiaz datele n memoria Clipboard, pstrndu-le n
fereastra curent
C+V
Transfer datele din memoria Clipboard n fereastra curent
D
Elimin sau terge date selectate
S+2
Mrete o selecie
C+6
Trece de la o fereastr deschis la alta
!
Revine la fereastra bazei de date
S+@
Salveaz un obiect al bazei de date

Baze de date n mediul Access. Tabele

37

Imediat sub meniuri se afl o bar cu instrumente de lucru, ea cuprinde mai multe butoane
care pot simplifica operaiile. Cnd este pornit mediul Access, pe ecran vor fi active patru
butoane: New Database, Open Database, Cue Cards i Help

Fig 3
Asistena soft se obine n orice moment, apsnd pe tasta 1 sau executnd click
pe butonul de asisten soft (fig 3). Dac se alege Contents din meniul Help se va deschide
tabla de materii Help din care se poate alege orice subiect dorit. Dac se tasteaz
S+1 pe o anumit comand a meniului se pot obine informaii despre utilizarea
comenzii selectate din meniu. O alt metod de a obine asisten soft este folosirea
facilitlor Cue Cards (fig 4). Acestea sunt secvene explicative care prezint diverse
etape ale utilizrii bazelor de date. Ele pot fi alese din meniul Help, selectnd opiunea cu
acelai nume, sau prin acionarea butonului cu acelai nume.
3.2

Baze de date n mediul Access

Fig. 4

Baze de date n mediul Access. Tabele

38

Pentru a defini o aplicaie ca un sistem complet de gestionare al bazelor de date


relaionale, aceasta trebuie s execute urmtoarele patru funcii de baz:
Organizarea datelor include crearea i manevrarea tabelelor care conin date n
formatul tabel denumit n Acces: Datasheet View;
Legarea tabelelor i extragerea datelor. Sistemul Acces folosete interogrile
pentru legarea tabelelor. Datele rezultate n urma interogrii se gsesc memorate
ntr-un obiect denumit Recordset, acesta fiind un obiect virtual datele fiind
stocate n memoria calculatorului, nu n fiiere de baze de date;
Introducerea i editarea datelor, necesit proiectarea i implementarea modului
de vizualizare al datelor, a formularelor de introducere i de editare;
Prezentarea datelor necesit crearea rapoartelor, care pot centraliza informaiile
din obiectele Recordset. Capacitatea de a asigura rapoarte este scopul final al
oricrei aplicaii de gestionare a bazelor de date.
Exist patru funcii suport care se aplic tuturor celor patru funcii de baz:
Macrocomenzile sunt secvene de aciuni care automatizeaz operaiile
repetitive n cadrul bazelor de date;
Modulele sunt funcii i proceduri scrise n dialectul pentru Access al limbajului
Visual Basic for Application (VBA). Funciile Access se utilizeaz la efectuarea
calculelor mai complicate;
Securitatea const n funcii disponibile numai ca opiuni ale meniurilor. ntr-un
mediu multiuser putei permite altora s foloseasc o anumit baz de date;
Tiprirea permite imprimarea a absolut tot ceea ce se vede n modul de rulare al
programului Access.
3.2.1 Folosirea utilitarelor pentru bazele de date
Access deine trei funcii referitoare la bazele de date accesibile numai atunci cnd
nu este deschis nici o baz de date. Aceste funcii sunt:
convertirea bazei de date;
compactarea bazei de date;
repararea bazei de date.
Convertirea bazei de date transform bazele de date din versiunile anterioare n
formatul Access95. Procesul invers de convertire nu este permis.
Compactarea bazei de date, permite refacerea informaiei, optimiznd att
dimensiunile ct i organizarea tabelelor. (Echivalent PACK)
Repararea bazelor de date, poate fi acionat n urmtoarele cazuri:
probleme hardware la scrierea fiierului;
iniializarea accidental a calculatorului, n timp ce o baz de date Access
este deschis;
o ntrerupere a tensiunii de alimentare.
Utilitarul existent poate fi folosit n oricare din aceste cazuri.

Baze de date n mediul Access. Tabele

39

3.2.2 Crearea bazei de date proprii utilizatorului


Prin acionarea butonului New Database de pe bara de instrumente sau prin
alegerea opiunii din meniul File se creaz un nou fiier cu extensia MDB. Caseta de
dialog New, permite alegerea tipului bazei de date:
General - baz de date goal;
Database - o baz de date corespunztoare unuia din abloanele predefinite.
S presupunem c ai primit drept sarcin alctuirea unei liste importante pentru
societatea la care lucrai; s zicem c este o lista a vnztorilor poteniali, util
compartimentului "Desfacere". Primul pas este definirea bazei de date. Dup aceea, putei
decide dac sunt necesare tabele, rapoarte, formulare i cereri. Lista noastr va reprezent
o baz de date foarte simpl; vor fi suficiente un tabel i cteva rapoarte. n exemplul de
faa, adresele vnztorilor poteniali pot fi introduse ntr-un tabel. Dup aceea, tabelul
poate fi stocat n acelai fiier baz de date cu rapoartele i formularele.
Formularul este orice obiect pe care-l putei utiliza pentru a introduce, edita i
vizualiza sau imprima datele inregistrate. Cererea este un obiect folosit pentru regsirea
de intormaii specifice dintr-o baz de date, bazate pe o condiie anume. Raportul este o
colecie de informaii organizate i aranjate pentru a corespunde specificaiilor.
O baz de date poate deveni o structur destul de complex i trebuie organizat
corespunzator. n crearea unei baze de date, trebuie urmrite aceste reguli generale:
Examinai modul n care sunt gestionate informaiile;
Definii noile obiective i creai baze de date care s le satisfac;
Evitai s introducei prea multe informaii ntr-un singur tabel;
S ncercm acum s crem o baz de date. Nu uitai c n acelai fiier putei stoca
tabele, cereri, rapoarte i formulare asociate bazei de date. Ca s creai o nou baz de
date, urmai aceti pai:
1. Alegei New Database din meniul File, sau executai click pe butonul New
Database din bara cu instrumente de lucru. Este afiat caseta de dialog New
Database (fig 3)
2. n caseta de text File Name, introducei numele noii baze de date. Dac nu
introducei extensia, programul va aduga n mod automat extensia .mdb.
Denumirea prestabilit este DB1.MDB, dar putei conferi fiierului un nume
propriu. Pentru exemplul nostru, vom introduce VINZARI;
3. Dac dorii s salvai baza de date n alt catalog, selectai catalogul respectiv din
caseta lista Directories;
4. Dac dorii sa salvai baza de date pe alt unitate de disc, alegei-o pe aceasta din
caseta-list Drives;
5. Dup ce ai terminat, apsai Rsau executai click pe OK.
Cnd ai terminat de creat fiierul baz de date, pe ecran apare o fereastra Database
(fig 5). O putei folosi pentru a aduga tabele, rapoarte i alte obiecte n baza de date, sau
ca s folosii orice obiecte pe care le-ai creat deja. Caseta-lista este goal, pentru c
deocamdat nu ai creat nimic. Observai c pe bara de meniuri avei mai multe opiuni, iar
pe bara cu instrumente de lucru mai multe butoane accesibile.
Dac nchidei baza de date, toate obiectele sunt stocate corespunzator i se revine la
fereastra

Baze de date n mediul Access. Tabele

40

Fig 5
iniial. Ca s inchidei baza de date, alegei Close Database din meniul File. Reapare
fereastra de pornire; dac dorii, putei deschide alte baze de date, sau crea una nou.
Salvnd baza de date nainte s-o nchidei, v asigurai c totul este stocat n mod
corespunztor pe disc. Este obligatoriu s nchidei o baz de date nainte de a deschide
alta, fiindc n program nu se pot deschide simultan dou baze de date.
3.3

Tabele n mediul Access

Mai nti, trebuie s stabilii ce informaii dorii s punei n tabel. S privim de


pild baza de date pentru vnztorii poteniali. Iniial, coninea un singur tabel cu adresele
acestora. Acum este necesar s stocam numele, adresa, telefonul, judeul, oraul i totalul
vnzrilor din ultimele ase luni. Cnd concepei tabelul, identificai un anume element al
su care s fie diferit i unic pentru fiecare nregistrare; de pild, numrul i seria actului
de identitate, numrul legitimaiei de serviciu, sau seria model a inventarului. Acest
element unic va ocupa primul cmp al nregistrrii; ulterior el va fi utilizat drept cheie
primar. Access folosete cmpul cheii primare la indexarea bazei de date. n exemplul
nostru, vom utiliza primul cmp ca sa atribuim fiecarei persoane un numr de identificare.
Primul cmp va fi campul cheii primare. De ce nu numele? Este preferabil sa nu folosii
numele unei persoane drept cheie primar. n baza de date pot aparea dou persoane cu
acelai nume. Access nu va permite ca dou inregistrri sa conin aceeai informaie
n cmpul cheii primare.
Proprietile n ansamblu ale tabelelor se introduc n fereastra Table Proprieties
care apare prin acionarea butonului Proprieties din fereastra Table Design View. Aceste
sunt:
1. Description (descriere) prezint explicaii privind o anumit tabel. Util la
dicionare de date;
2. Validation Rule (regula de validare) sunt diverse reguli sau constrngeri care pot
fi introduse cu ajutorul expresiilor i care se refer n ansamblu la o tabel.
3. Valdation Text (text de validare) reprezint textul care apare ntr-o caset de
dialog n cazul n care sunt nclcate regulile de validare stabilite. Aceste reguli se
stabilesc ulterior pentru fiecare cmp n parte;
4. Filter, este un filtru care se aplic tabelei ori de cte ori aceasta este deschis;

Baze de date n mediul Access. Tabele

41

5. Order By (ordoneaz dup) reprezint o modalitate de ordonare care se aplic


tabelei ori de cte ori aceasta este deschis.
n continuare se stabilesc cmpurile tabelei: denumire cmp, tipul de dat i
comentariul aferent(opional). Butoanele barei de stare din modul Design Table apar n
figura 6.
1. Activare modul DataSheet;
2. Salvare date;
3. Cut;
4. Copy;
5. Paste;
6. Cheie primar;
7. Index;
8. Inserare linie;
9. tergere linie;
10. Proprieti;
11. Constuctor de cmp;
12. Afiare fereastr;
13. Obiect nou;
14. Help.
Din fereastra care apare prin activarea modului Table Design se definete denumirea
cmpului tipul datei, comentariu i se alege cheia primar acionnd butonul
corespunztor. Cheia primar este format dintr-un cmp sau mai multe cmpuri din

3 4 5

6 7 8 9

10 11 12 13 14

Fig. 6
tabel. n cazul c exist mai multe cmpuri se selecteaz aceste cmpuri (tasta C
apsat i click pe cmpul dorit) dup care se acioneaz butonul Primary key.
Proprietile cmpului se definesc n fereastra Table Design, panoul Field
Proprieties conine urmtoarele opiuni:
Field Size, opiunea n care se introduce dimensiunea cmpului, funcie de un
anumit tip de dat. Este folosit pentru cmpurile de tip text i cmpurile de tip
numeric;
Format ofer posibilitatea alegerii dintr-o list derulant a unui format
prestabilit, funcie de tipul de date ales. Nu se aplic cmpurilor de tip OLE
Object;
Decimal Places afecteaz afiarea cmpurilor, nu i valorile datelor din cmp, ea
aplicndu-se doar cmpurilor de tip numeric (Number i Currency). Se poate
alege setarea implicit Auto sau un numr cuprins ntre 0 i 15 ea definind
numrul de zecimale ale cmpului;
Input Mask (masc de intrare), sunt iruri de caractere similare celor folosite de
proprietatea Format, care determin modul de afiare al datelor. Se poate declana
un wizard pentru alegerea tipului de masc dorit;

Baze de date n mediul Access. Tabele

42

Caption (titlu) Schimb opional numele cmpului n modul de afiare al


tabelului Datasheet View;
Default value (valoarea iniial), reprezint valoarea iniial a unui cmp funcie
de tipul su;
Validation Rule (regula de validare) reprezint constrngerile care se aplic pe
anumite cmpuri. Ea nu este disponibil pentru tipurile de date Auto Number,
Memo, Ole Object;
Validation Text reprezint textul care apare n cazul n care regula de validare
este nclcat la introducerea datelor n tabel;
Required (cerin), aceasta nseamn c n respectivul cmp trebuie introdus o
valoare. Deci este practic identic cu clauza IS NOT NULL dac se introduce
valoarea Yes;
Indexed (indexat) permite alegerea dintre un index care permite valori duplicat i
un index care nu permite valori duplicat. Se poate elimina un index existent
(exceptnd un cmp cheie principal unic) alegnd opiunea No;
Allow Zero Length (permite lungime zero) specific Access 95 i se aplic doar
cmpurilor de tip Text Memo. irul de caractere de lungime zero nu este
acelai lucru cu valoarea Null.
New Value (valori noi) specific pentru Access 95 i se folosete doar pentru
cmpuri de tip Auto Number i poate lua valorile:
Increment valoarea cea mai mare a cmpului crete cu 1;
Random valoarea cmpului se modific cu o valoare aleatoare;
No nici unul din cazurile prezentate nu este valabil.
Formate standard ale tipurilor de date Number Date/Time i Yes/No sunt prezentate n
tabelul 2
Tabelul 2
Tipul
datelor
Number
Number
Number
Number
Number
Number
Date/Time
Date/Time

Format

Aspect

General Number
Currency
Fixed
Standard
Percent
Scientific
General Date
Long Date

Date/Time
Date/Time
Date/Time
Date/Time
Date/Time

Medium Date
Short Date
Long Time
Medium Time
Short Time

1234.5
$1,234.50
12345
1,234.50
0.1234=12.34%
1.23E+03
10/1/98 4:00:00 PM
Thursday, October 1,
1998
1-oct-98
10/1/98
4:00:00 PM
04:00 PM
16:00

Baze de date n mediul Access. Tabele

Yes/No
Yes/No
Yes/No
Yes/No

Yes/No
True/False
On/Off
fr

43

Yes sau No
True sau False
On sau Off
-1 sau 0

Valoarea Null n tabelele Access arat c acel cmp nu conine date. Aceast
valoare nu este identic cu valoarea 0 sau cu un cmp text fr nici un caracter. Valoarea
Null este util pentru a determina dac ntr-un cmp a fost introdus o valoare.
Formatele personalizate se realizeaz cu ajutorul unor caractere speciale numite
placeholder. Cteva dintre aceste caractere sunt sunt prezentate n tabelul 3
Tabelul 3
Caractere
Funcie
placeholder
ir gol
Afiaz numrul fr nici o aranjare
0
Afiaz un digit sau zero. Poate fi folosit la fiarea cifrei 0 cu
care ncep numerele ntregi i a celor care ncheie fraciile
zecimale. 00000.000 01234.500
#
Asemntor cu 0 doar c nu afiaz zerourile de la nceput sau
sfrit #####.### -- 1234.5
$
Afiaz semnul dolar n poziia dorit. $###.###.00 -$1,234.50
%
Multiplic valoarea cu 100 adaug semnul procent n
poziia indicat cu caractere 0 i #. #.#0.00% afiseaz valoarea
0.12345 ca 12.35% (12.345 rotunjit la 12.35)
,(virgula)
Adaug n iruri 0 sau # virgule pentru separarea miilor.
###,###.00 1,234.50
.(punctul
Afiaz punctu zecimal n poziia indicat ntr-un ir
zecimal)
placeholder de 0 sau #. ##.## -- 1234.5
E-eAfiaz numerele n formatul tiinific cu semn numai pentru
exponentul negativ
E+e+
Afiaz numerele n formatul tiinific cu semn numai pentru
exponentul pozitiv
/
Separ luna ziua anul
m
Indic modul de afiare al lunii din data calendaristic:
m afieaz 1
mm afieaz 01
mmm afieaz Jan
mmmm afieaz January
d
Indic modul de afiare al zilei din data calendaristic:
d afeaz 1
dd afieaz 01
ddd afieaz Mon
dddd afieaz Monday

Baze de date n mediul Access. Tabele

h,n,s
:
AM/PM
@
&
>
<
*

44

Indic modul de afiare al anului din datele calendaristice:


yy afieaz 98
yyyy afieaz 1998
asemntor cu m,d,y pentru ora
separ orele minutele i secundele n formatul or
Afieaz ora n formatul de 12 ore
Indic necesitatea unui caracter n acea poziie dintr-un cmp
text sau memo. De exemplu un numr de telefon:@@@@@@@@@
Arat c un caracter dint-u cmp text sau memo este opional
Transform n majuscule toate caracterele textului din cmp
Transform n litere mici toate caracterele textului
Afieaz caracterul care urmeaz asteriscului ca un caracter de
completare a spaiilor libere dintr-un cmp ABCD*x apare
ntr-un cmp de 8 caractere ca ABCDxxxx.

Exemple
mmmm dd,yyyy - hh:nn pentru schimbarea modului de afiare al datei:
December 08,1948 - 00:00
$###,###,##0.00 - 1234567.89$ se transform n $1,234,567.89;
(###,###,##0.00) -1234567.89 se transform n $(1,234,567.89);
semnul > transform caracterele mici n caractere mari pentru formatul de
afiare abc = ABC;
semnul < transform caracterele mari n caractere mici ABC = abc;
@@@@-@@@@@@ transform n afiare 12345678910 = 1234-5678910;
#.##Lei transform n afiare 1234 = 1.23Lei;
###E+ afieaz mantisa pe trei caractere 0.29 = 290E 3;
d-m-yy afieaz data calendaristic n formatul z-l-aa 07/03/99 = 3-7-99
Utilizarea mtilor de intrare la introducerea datelor este folosit de Access pentru
a permite limitarea la numere datele introduse n cmpurile de tip Text sau s
controlai n alt fel aranjarea lor. Spre deosebire de Format, Input Mask nu
permite tastarea n interiorul cmpurilor a caracterelor care contravin cu
masca de intrare stabilit. n tabelul urmtor sunt prezentate caracterele
placeholder care se folosesc pentru a aranja cmpurile ce conin iruri de caractere,
ntr-o prezentare dorit. Aceste caractere sunt prezentate n tabelul 4.
Tabelul 4
Caractere
Funcie
placeholder
Empty String Nici o masc de intrare
0
Necesit introducerea unui numr 0-9 sau a unui semn (+/-)
9
Introducerea opional a unui numr
#
Introducerea opional a unui numr sau a unui spaiu

Baze de date n mediul Access. Tabele

L
?
A
a
&
C
.,:;/()
>
<
!
\

45

Este necesar introducerea unei litere


Litera (A-z) nu este necesar
Necesit introducerea unei litere sau a unui numr
Introducerea opional a unei litere (A-z) sau a unui numr
(0-9)
Necesit inroducerea oricrui caracter sau a unui spaiu
Introducerea oional a oricrui caracter sau a unui spaiu
Separatori speciali, caractere literale pentru zecimale , mii,
dat or
Toate caracterele spre dreapta sunt transformate n
majuscule
Toate caracterele spre dreapta sunt transformate n liter mici
Complecteaz masca de la dreapta la stnga
Precede celelalte caractere placeholder pentru a introduce
caractere literale n formatul ir

Exemple
000000 numr format din 6 cifre;
999999 asemntor dar permite ca numrul cifrelor din masc s fie mai mic;
####### - apte cifre dar permite i folosirea caracterelor spaiu sau operatorii
+ i -
LLLLL permite introducerea a cinci litere;
?????? permite introducerea a ase litere sau a caracterului spaiu;
AAAAAA permite introducerea a ase litere sau a cifrelor.
Dac ai realizat deja o baz de date utiliznd paii artai anterioar, deschidei-o dup
cum urmeaz:
1. Alegei Open Database din meniul File, sau executai click pe butonul Open
Database din bara cu instrumente de lucru.
2. Alegei unitatea de disc i catalogul, dac este necesar, apoi alegei baza de date
din lista File Name.
3. Executai click pe OK, sau apasai Enter. Apare fereastra bazei de date (fig. 5).
Dac n-ai creat nc o baz de date, o putei face alegand New Database din meniul
File. Pentru a continua exemplul propus, introducei Desfacere n caseta de text File
Name, apoi alegei OK.

Baze de date n mediul Access. Tabele

46

Fig. 7
Asigurai-v c lista afiat n caseta de dialog poarta titlul Tables. Dac acesta nu
apare, executai click pe butonul Table din partea stng a casetei de dialog (fig. 5). Pentru
a crea un tabel nou, alegei butonul New. Va aprea caseta de dialog New Table. Alegei
butonul New Table ca s creai un tabel simplu. Microsoft Access deschide o nou
fereastra Table n modul Design (fig. 7). Putei folosi aceasta fereastra pentru a crea
structura tabelului dorit. Modul Design constituie o afiare a unui tabel, formular, cerere
sau raport, care va permite s-i modificai structura de baza. Modul Foaie de Date sau
Datasheet asigur afiarea datelor dintr-un tabel, cerere sau formular, ns nu v permite
modificarea structurii. Definii un tabel, comunicnd programului Access care va fi
structura acestuia. Structura este alcatuit din cmpuri; pentru fiecare din ele trebuie s
specificai o denumire (de exemplu TELEFON sau NUME) i un tip de date (de pilda,
Text sau Number). De asemenea, dac dorii, putei introduce o descriere simpl. Access
folosete opt tipuri de date:
Text indic text i numere care nu sunt folosite n calcule;
Memo indic texte lungi (fraze);
Date/Time este folosit pentru date calendaristice;
Number indic numere folosite n calcule;
Currency este folosit pentru valori bneti;
Counter este folosit pentru un numr ntreg mrit n mod automat;
Yes/no indic valori logice care pot fi adevarate sau false;
OLE Object este utilizat pentru un obiect inserat;
Pentru lista noastr, vom folosi urmtoarele cmpuri:
Numele cmpului
Tip
Descriere
Marca
Number
Marca de identificare
Nume
Text
Numele vnztorului
Prenume
Text
Prenumele vnztorului
Adresa
Text
Adresa vnztorului
Oras
Text
Oraul vnztorului
Judet
Text
Judeul vnztorului
Cod_Postal
Number
Codul potal
Telefon
Text
Numrul de telefon
Vanzari
Currency
Vnzrile n ultimele ase luni
Pentru a crea structura bazei de date, urmai aceste instruciuni:
1. Deplasai cursorul n caseta de text a primului camp i introducei denumirea. (De

Baze de date n mediul Access. Tabele

47

exemplu, introducei marca.)


2. Apsai jsauT, ca s v deplasai pe coloana Data Type (tipul de date).
3. Se va afia valoarea prestabilit Text. Daca dorii s folosii tipul de date Text,
apasai jsauT i trecei la urmtoarea coloan. Dac dorii alt tip de date,
executai click pe sgeata descendent din coloana Data Type, sau apasai A+b,
ca sa deschidei caseta lista Data Type. Pentru acest exemplu, alegei Number din
caseta lista.
4. Dac este necesar, deplasai-v pe ultima coloan i introducei o descriere a acestui
cmp. Pentru exemplul nostru, introducei Marca de identificare.
5. Trecei la rndul urmtor i introducei informaiile pentru al doilea cmp. Continuai
pn ce ai definit toate cmpurile (fig. 8).

Fig 8
3.3.1 Stabilirea proprietilor de cmp
Pentru fiecare cmp dintr-un tabel, trebuie s prevedei anumite proprieti. Ai
denumit deja cmpurile; de acum, singurele pentru care trebuie s stabilii proprietai sunt:
Marca, Cod_Postal, Judet i Vanzari. Cmpurile text nu trebuie caracterizate n acest
exemplu. Proprietatea este caracteristica unui obiect: de pild, mrimea, culoarea sau
numele.
Pentru a stabili proprietaile, procedai astfel:
1. Ca s stabilii formatul cmpului Marca, executai click pe orice celul de pe rndul
cmpului respectiv. Caseta Field Properties din josul ecranului va afia
proprietaile actuale ale cmpului.
2. Executai click pe caseta F'ield Size i va aparea o sgeat. Executai click pe ea
(sau apasai A+b) pentru a afia opiunile.
3. Alegei Long Integer, pentru a anuna programul c vei utiliza doar numere
intregi.

Baze de date n mediul Access. Tabele

48

4. Executai click pe orice celula din cmpul Cod_Postal i modificai mrimea


cmpului n Long Integer, repetnd paii 2 i 3.
5. Executai click pe orice celul din cmpul Jude i modificai mrimea cmpului n
Integer.
6. Pentru a stabili formatul pentru Vanzari, executai click pe oricare celula din randul
Vanzari, apoi pe caseta de proprietai Format.
7. Dac formatul curent nu este Currency, selectai-l din caseta-list.
3.3.2 Stabilirea cheii primare
Pentru etapa urmtoare, este necesar s stabilii cheia primar. Valoarea din acest cmp va
fi unic pentru fiecare nregistrare n parte, ceea ce permite un acces mai rapid la
nregistrri. Microsoft Access realizeaz acest lucru crend un index pe cmpul cheii
primare. Ca sa stabilii cheia primar, procedai astfel:
1. Asigurai-v c tabelul se afl n modul Design. n caz contrar, executai click pe
butonul Design View din bara cu instrumente de lucru;
2. Executai click oriunde n randul cmpului pe care dorii s-l folosii drept index. n
exemplul de faa, executai click oriunde n rndul Marca;
3. Executai click pe butonul Primary Key din bara cu instrumente de lucru. n
zona selectorului de rnd, va aprea o pictograma "cheie" n dreptul primului
cmp
Dac dorii s salvai tabelul fr o cheie primar Access v va ntreba dac dori s
creai una nainte de salvare. Dac se rspunde cu Yes se va crea un nou cmp de tip
Counter care va prelua rolul de cheie primar.
Dup terminarea lucrului cu un tabel acesta poate fi salvat astfel:
1. Din meniul File se alege opiunea Save AS sau se execut click pe butonul Save de
pe bara cu instrumente;
2. Introducei numele tabelului;
3. Alegei OK sau apsai j.
3.3.3 Prelucrarea datelor ntr-un tabel
n continuare vei afla cum se introduc nregistrarile ntr-un tabel i cum se tiparesc.
nainte de a putea aduga nregistrri unui tabel, trebuie s deschidei baza de date (daca nai facut-o deja) i tabelul. Pentru a deschide o baz de date, alegei Open Database din
meniul File, sau executai click pe butonul Open Database. Selectai baza de date dorit i
alegei OK. Putei folosi tasta ! ca sa revenii rapid la orice fereastra Database
deschis.
Dup ce ai deschis o baz de date, examinai fereastra Database. Asigurai-v c
deasupra casetei-lista apare cuvntul Tables. Dac aceasta nu exist, executai click pe
butonul Tables din stnga casetei-lista. Acum, lista afieaz obiectele tabelului curent din
baza de date. Executai click dublu pe numele tabelului dorit, sau selectai tabelul dorit (de
exemplu Vanzari), apoi selectai Open. Tabelul se deschide, afind rnduri i coloane
goale, similar unei foi de calcul. Acesta este modul Foaie de date (Datasheet View).

Baze de date n mediul Access. Tabele

49

Modul Datasheet Tabel ce afieaz datele n coloane i rnduri, cu rndurile drept


nregistrri, iar coloanele drept cmpuri (fig. 9). Pentru a trece modul Design n Foaie de
date (Datasheet), executai un click pe butonul Datasheet din bara de instrumente de
lucru.

Fig 9
Dac ai creat un tabel nou, el nu va conine nici o nregistrare. Pentru a introduce o
nregistrare, completai celulele din primul rnd. Folosii j i f, sau tastele cu sgei
pentru a deplasa cursorul de la o coloan la alta pe masur ce introducei datele. Apasnd
S+f, v deplasai napoi pe coloane. Dup ce ai completat introducerea unei
nregistrri, putei apsa tasta Tab, ca s v mutai pe primul cmp al urmtoarei
nregistrri i s-o introducei pe aceasta. Continuai pn ce ai introdus toate nregistrrile
dorite.
Dac un tabel conine deja nregistrri, orice alte nregistrri pe care le vei aduga
vor fi plasate la sfritul tabelului. De exemplu, la sfritul tabelului Vinzari, pe care l-ai
creat, vei vedea un asterisc ce marcheaza o nregistrare goal. Pentru a aduga o
nregistrare, completai acest rnd, care dup aceea va deschide o nou nregistrare goal.
n zona de selectare a nregistrrilor din stnga primului cmp, un triunghi mic marcheaz
nregistrarea curent. Dac ncepei s introducei o nou nregistrare fr s fi trecut pe
rndul gol, vei scrie peste datele din inregistrarea curent. ntr-un asemenea caz, putei
terge datele noi, selectndu-le i alegnd Undo Saved Records din meniul Edit. Datele
noi sunt terse, fiind readuse cele vechi. Cnd terminai de adugat nregistrri, nchidei
tabelul i baza de date.
Microsoft Access v salveaz nregistrrile pe disc, pe msur ce le introducei. De
fiecare dat cnd deplasai cursorul pe urmtoarea nregistrare, programul salveaz n mod
automat nregistrarea introdus (ori modificat).
Dup ce ai terminat de introdus date, trebuie s nchidei tabelul i baza de date. n
acest fel va asigurai c totul este salvat n mod corespunzator pe disc i nu s-au pierdut
date. Pentru a nchide tabelul, procedai astfel:
1. Alegei Close din meniul File. Tabelul e salvat pe disc i nu mai apare afiat.
2. Dupa ce ai terminat i cu baza de date, nchidei-o, alegnd Close Database din
meniul File.
Dup ce ai introdus nregistrri, s-ar putea s descoperii unele erori ce trebuie
corectate. Din fericire, deplasarea in interiorul unei foi de date este simpl. Ca s mutai
cursorul, putei utiliza tastele de comenzi rapide.

Baze de date n mediul Access. Tabele

Apsai

50

Pentru ca
Tab f
S deplasai cursorul de la stnga la
dreapta
ntre
cmpurile
unei
nregistrri
Shift+Tab S+f
S deplasai cursorul de la dreapta la
stnga
ntre
cmpurile
unei
nregistrri
Tastele cu sgei
S v deplasai n sus, n jos, la
dreapta ori la stnga
Page Up u
S derulai o foaie de date n sus ecran
cu ecran
Page Down d
S derulai o foaie de date n jos ecran
cu ecran
Home h
S deplasai cursorul la nceputul
nregistrrii curente
End e
S deplasai cursorul la sfritul
nregistrrii curente
Ctrl+Home C+h
S deplasai cursorul la primul cmp
al primei nregistrri
Ctrl+End C+e
S deplasai cursorul la ultimul cmp
al ultimei nregistrri
Ctrl+PageUp C+u
S v deplasai cu un ecran la stnga
Ctrl+Page Down C+d
S v deplasai cu un ecran la dreapta
De asemenea, putei folosi mouse-ul ca s selectai orice cmp al unei nregistrri pe
care dorii s-o editai; pur i simplu, executai click pe cmpul dorit. Putei executa click pe
sgeile din barele de derulare, ca s derulai n sus, n jos, la stnga sau la dreapta cu cte
un rnd sau o coloan. Similar, executand click n interiorul barei, putei deplasa un ntreg
ecran, sau deplasa casetele de derulare pe o alta poziie. Atunci cnd mutai caseta de
derulare, ecranul se deplaseaz corespunzator.
Pentru a edita o nregistrare dintr-o foaie de date, mai nti selectai cmpul pe care
dorii s-l editai. Utiliznd mouseul, putei poziiona cursorul oriunde n cmp. Pentru a
v deplasa la un cmp, putei folosi tastatura, fcnd unul din urmtoarele lucruri:
S nlocuii datele existente. Daca datele din cmp sunt selectate, putei ncepe
introducerea altor date. Zona selectat este tearsa i apar noile date.
S pstrai datele existente Dac datele din cmp sunt selectate, ns nu dorii s
tergei totul, apsai 2 aceasta va permite s v deplasai prin cmp cu ajutorul
tastelor cu sgei. Dup ce terminai, apsai iarai 2.
Dac dorii s tergei complet o nregistrare, executai click pe caseta selectorului
de rnd din stnga nregistrrii. n caset va aprea o sgeat i ntreaga nregistrare se
selecteaz. Din meniul Edit, alegei Delete, sau apsai tasta D. Apare o caset de dialog
care va cere s confirmai aciunea. Selectai OK.
ntruct Access sorteaz baza de date dup cmpul cheii primare, noile nregistrri
sunt inserate n mod automat la locul cuvenit. Dac folosii numere consecutive drept
valori ale cheii primare, va trebui s renumerotai nregistrrile, pentru a o cuprinde i pe

Baze de date n mediul Access. Tabele

51

cea nou (dac nu este ultima). De exemplu, s presupunem ca avei zece nregistrari i
trebuie s inserai o alt nregistrare la numarul opt. Atunci, schimbai valorile cheii
primare din nregistrarile opt, nou i zece. Dup aceea, introducei noua nregistrare n
ultimul rnd al tabelului, folosind o valoare diferit n cmpul cheii primare. Cnd Access
salveaza tabelul, el va aranja nregistrrile n ordine secvenial.
Pentru a simplifica editarea, putei utiliza meniul Edit, ca s "decupai" (s tergei)
sau s copiai un material selectat, pe care dup aceea l "lipii" (l inserai). Decuparea
unei selecii va muta datele din foaia de date n memoria-tampon "Clipboard". Copierea
unei selecii pstreaza datele n poziia iniial i, simultan, transfer o copie a lor n
Clipboard. Copierea datelor din Clipboard se face prin "lipirea" lor n foaia de date.
Clipboard este o zon n care datele pe care le decupai sau copiai sunt stocate temporar.
Atunci cnd inserai datele n alt loc, ele rmn disponibile n Clipboard, pentru alte lipiri,
pn ce decupai sau copiai altceva. n felul acesta, putei utiliza comanda Paste n mod
repetat, fr a fi nevoii s decupai, s lipii mereu aceleai date. Cnd prsii Windows,
coninutul memoriei Clipboard dispare.
De exemplu, considerm baza de date prezentat anterior. Dup ce ai introdus
nregistrrile, v dai seama ca numrul Marca al lui Oaida Valentin este de fapt 100, iar
cel al lui Ionescu Nicolae este 100. Putei muta nregistrarea lui Oaid Valentin, folosind
comanda Cut.
Procedai astfel:
1. Selectai datele care trebuie mutate. n cazul de fa, executai click pe caseta
selectoare de rnd din stnga rndului pentru a selecta ntreaga nregistrare a lui
Ionescu Nicolae.
2. Deschidei meniul Edit i alegei Cut.
3. Apare o caseta de dialog, care va cere confirmarea modificrilor. Selectati OK.
4. Ca s inserai selecia n alt loc, mai nti poziionai cursorul n rndul respectiv. n
acest exemplu, deplasai cursorul pe rndul de sub nregistrarea lui Oaid Valentin.
5. Selectai o zon care are exact aceeai mrime cu zona decupat n exemplul de
fa, executnd click pe caseta de selectare a rndurilor, selectai ntregul rnd.
6. Alegei Paste din meniul Edit.
Acum, pentru ca baza de date s fie corect, mai trebuie doar s schimbai numerele din
cmpul Marca pentru Ionescu Nicolae i Oaid Valentin.
Copierea unor date selectate este similar cu decuparea lor. Singura diferena este
faptul ca datele nu sunt terse din pozitia iniial. Pentru a copia date, procedai astfel:
1. Selectai datele pe care intenionai s le copiai.
2. Din meniul Edit, alegei Copy. Asigurai-v c zona selectat n care vei lipi datele
are aceeai mrime cu zona datelor pe care le-ai copiat n Clipboard.
3. Alegei Paste din meniul Edit.
Dac intenionai s copiai o ntreag nregistrare n alt locaie, asigurai-v c ai
modificat datele din cmpul cheii primare. Trebuie s avei informaii diferite mcar n
acest cmp, astfel nct Access s poat diferenia nregistrrile.
Dac dorii s lipii datele copiate sau decupate la sfritul foii de date, alegei Paste
Append din meniul Edit. Automat, datele sunt lipite n ultima nregistrare a foii de date.

Baze de date n mediul Access. Tabele

52

3.3.4 Modificarea structurii i prezentrii unui tabel


Modificarea structurii tabelelor nu duce la pierderea datelor, dect dac tergei un
cmp sau i modificai proprietile, n aa fel nct, noul format s nu accepte datele
existente. Ca msur de sigurana, salvai ntotdeauna o baz de date nainte s modificai
structura unui tabel din ea. Lucrul acesta se face copiind baza de date pe o discheta de
rezerv. Dac dorii s modificai structura unui tabel, executai click pe Design View
(modul Structura), butonul din bara cu instrumente de lucru, ca s trecei tabelul n modul
Design. Cmpurile reprezint ntr-un tabel coloanele i conn informaii despre toate
elementele tabloului. nregistrrile sunt stocate sub form de rnduri i conin informaii
legate de un anumit element.
Pentru a terge un cmp trebuie procedat astfel:
1. Deschidei baza de date;
2. Executai click pe numele tabelului dorit i pe Design;
3. Executai click pe selectorul de rnd, pentru rndul cmpului ce trebuie ters sau
folosii tastele cu sgei i apsai M+s pentru a activa selectorul de rnd;
4. Alegei Delete Row din meniul Edit sau apsai tasta Del;
5. Alegei OK, atunci cnd se afieaz cererea de confirmare;
Cmpul i toate datele din el sunt terse. Selectorul de rnd este indicatorul triunghiular
din stnga primei coloane a tabelului. Dup ce tergei un camp, toate datele din el sunt
pierdute. Datele din alte campuri nu vor fi afectate. Daca avei nevoie s recuperai un
cmp ters, trebuie s cerei imediat Undo delete din meniul Edit.
Dup ce ai conceput un tabel, putei dori s adugai un cmp nou. De pild, s
presupunem c ai creat o baz de date pentru membrii unui club i, ulterior, intenionai s
introducei nc un cmp pentru data intrrii n club. Microsoft Access va permite s
adugai oricnd cmpuri noi, far s pierdei datele din cmpurile existente.
Pentru a aduga un cmp:
1. Dac e necesar, trecei n modul Design. Pentru aceasta, executai click pe butonul
Design View din bara cu instrumente de lucru, sau alegei Table Design din meniul
View.
2. Executai click pe selectorul de rnd pentru rndul aflat sub locul unde dorii s
adugai noul cmp (ori folosii tastele cu sgei ca s v deplasai pn la rndul
respectiv, apoi apsai S+s);
3. Alegei Insert Row din meniul Edit, sau apsai tasta I
4. Definii noul cmp, introducndu-i denumirea, tipul de date i descrierea.
Uneori putei dori s rearanjai cmpurile unui tabel. De pild, s mutai un cmp
primar (folosit pentru index), aa nct s-l putei utiliza ca prim cmp, sau (n exemplul
bazei noastre de date) s mutai cmpul numerelor de telefon naintea cmpului cu adresa.
1. Dac este necesar, trecei n modul Design. Pentru aceasta, executai click pe
butonul Design View din bara cu instrumente de lucru, sau alegei Table Design
din meniul View.
2. Selectai ntregul rnd al cmpului pe care dorii s-l deplasai.
3. Executai click pe selectorul de rnd i inei apsat butonul stang al mousului. Apoi
deplasai rndul. Cnd acesta ajunge n locul dorit, eliberai butonul mousului.

Baze de date n mediul Access. Tabele

53

Dac apreciai c mutarea nu s-a facut acolo unde doreai, o putei anula, alegnd imediat
(Undo Move din meniul Edit).
Modificarea reprezentrii tabelului afecteaz ceea ce vedei n modul Foaie de date,
dar nu-i schimb structura fundamental. De exemplu, putei micora o coloana, ns
structura nu se modific, iar datele din coloana micorat nu sunt trunchiate.
Uneori putei dori s schimbai locul unde apare un cmp ntr-o foaie de date, fr a
schimba ordinea structurii. De pild, s pstrai o cheie primar drept prim cmp al
structurii, dar s-i conferii o poziie mai convenabil pe foaia de date. Ca sa modificai
poziia unui cmp pe foaia de date, procedai astfel:
1. Cu tabelul in modul Foaie de date, poziionai cursorul pe selectorul de cmp (zona
cu numele cmpului de deasupra rndului). Cursorul devine o sgeata descendent;
2. Executai click pe selectorul de cmp, pentru a seleciona intregul cmp;
3. Executai click pe selectorul de camp, inei apsat butonul stang al mousului i
deplasai coloana n noua poziie;
4. Ca s deselectai cmpul, executai click oriunde n alt parte pe foaia de date.
Unui cmp reordonat nu i se poate aplica Undo, totui reordonarea nu distruge datele.
Dac facei vreo greeala, reordonai cmpurile, ca s le readucei la situaia iniial.
Modificarea limii coloanelor cmpurilor ofer posibilitatea de afiare simultan a mai
multor date n fereastra. Ca s redimensionai laimea coloanei unui cmp, procedai dup
cum urmeaz:
1. Poziionai cursorul n dreapta coloanei pe care dorii s-o redimensionai, pe linia
dintre numele cmpurilor. Cursorul se modific, indicnd c latura poate fi mutat;
2. Deplasai linia pn ce coloana capt dimensiunile dorite. Putei redimensiona un
rnd n acelai fel, deplasnd linia ce separ rndurile. Atenie ns: redimensionarea
unui rnd afecteaz toate rndurile, care se redimensioneaz simultan.
Putei folosi comanda Save Table din meniul File, pentru a salva noua aezare n
pagin. Dup ce ai modificat structura bazei de date, alegei Close Database din meniul
File, ca s salvai modificrile.
3.3.5 Proprieti de ansamblu ale tabelelor
Proprietile n ansamblu ale tabelelor se introduc n fereastra Table Proprieties
care apare prin acionarea butonului Proprieties din fereastra Table Design View. Aceste
sunt:
1. Description (descriere) prezint explicaii privind o anumit tabel. Util la
dicionare de date;
2. Validation Rule (regula de validare) sunt diverse reguli sau constrngeri care pot fi
introduse cu ajutorul expresiilor i care se refer n ansamblu la o tabel;
3. Valdation Text (text de validare) reprezint textul care apare ntr-o caset de dialog
n cazul n care sunt nclcate regulile de validare stabilite. Aceste reguli se stabilesc
ulterior pentru fiecare cmp n parte;
4. Filter, specific Access 95, este un filtru care se aplic tabelei ori de cte ori aceasta
este deschis;

Baze de date n mediul Access. Tabele

54

5. Order By specific Access 95 (ordoneaz dup) reprezint o modalitate de ordonare


care se aplic tabelei ori de cte ori aceasta este deschis.
3.4

Relaiile ntre tabele

Relaiile dintre tabelele existente ntr-o baz de date ACCESS pot fi de mai multe
feluri:
one to one;
one to many;
many to one;
many to many.
Dou cmpuri care particip la o relaie trebuie s aib acelai tip de dat, sau cu
alte cuvinte atributele trebuie s aib acelai domeniu. n cazul cmpului de tip Number,
lungimea acestora trebuie s fie identic. n cazul n care dou tabele sunt asociate prin
intermediul unui cmp de tip text, este permis ca lungimea acestora s fie diferit. Totui
acest lucru poate genera neclariti n cazul interogrilor astfel nct este indicat s se
foloseasc cmpuri de aceeai lungime. Access folosete la afiarea i crearea relaiilor o
fereastr grafic numit Relationship.
Etapele pentru crearea unei noi relaii ntre dou tabele sunt :
1. Se activeaz fereastra bazei de date (click pe butonul
Database)
2. Se execut click pe butonul Relationship de pe bara cu instrumente. Va apare
fereastra relationship. n aceast fereastr sunt afiate toate tabelele pentru care sunt
definite relaii.

3. Cu ajutorul butonului Show Table pot fi adugate noi tabele n fereastra


Relationship;
4. O anumit relaie ntre dou tabele se realizeaz fcnd click pe cmpul
dorit i apoi innd butonul apsat plimbm mouse-ul peste cmpul unde dorim s
realizm relaia. n final apare urmtoarea caset de dialog

Baze de date n mediul Access. Tabele

55

5. Dac se alege tipul de relaie Join va aprea fereastra

Aceast fereastr are urmtoarele opiuni:


1. Creare de asociere de tipul one-to- many. Numai acele tuple pentru care cmpul de
legtur este egal;
2. Include toate articolele din fiierul Angajat i acele articole din fiierul Copii pentru
care cmpurile de legtur sunt egale;
3. Include toate articolele din Copii i numai acele articole din Angajat unde
cmpurile de legtur sunt egale.
Mediul Access realizeaz automat integritatea referenial. Aceast aciune
mpiedic utilizatorul s modifice sau s terg o tupl dintr-o tabel fr s fie afectate i
celelalte tuple din tabelele cu care acesta se gsete ntr-o relaie. Meninerea integritatii
refereniale se realizeaz astfel: se alege din fereastra Relationship, semaforul Enforce
Referential Integrity i se marcheaz casetele de validare Cascade Update Related
Fields (actualizare n cascad a cmpurilor asociate) i Cascade Delete Related Records
(tergerea n cascad a nregistrrilor asociate).
3.5

Indexarea tabelelor i cutarea informaiilor

Access creaz ntodeauna un index dup cheia principal. Exist cazuri n care ntrun program se dorete indexarea i dup alte cmpuri. Pentru fiecare tabel pot fi creai cel
mult 32 de indeci, intre care 5 multiplii. Fiecare index multicmp poate avea maximum

Baze de date n mediul Access. Tabele

56

10 cmpuri. Indecii se creaz la fel ca i cheia primar n modul Design Table prin
acionarea butonului Indexes de pe bara de stare.
Indecii sunt folosii pentru a gsi rapid o anumit nregistrare dintr-un tabel. Dac
avei tabele mari, vei constata ca utilizarea indecilor iuete procesul de localizare a
nregistrrilor. Atunci cnd indexai dup un cmp, indexul i comunic programului
Access unde anume s gseasca datele din tabel (aa cum face i indexul unei cri). Dup
aceea, putei folosi comanda Find ("Caut"), ca s cutai o anumit valoare n cmpul
indexat.
Un index nu poate fi vizualizat. El nu este un instrument de vizualizare a datelor, ci
doar o modalitate de cutare mai rapid. De exemplu, s presupunem ca avei un tabel
mare n care sunt stocate inregistrrile vnztorilor. Adeseori, trebuie s cautai n acest
tabel anumite nume, memorate n cmpul Nume. n aceast situaie, folosirea unui index
va permite s gsii mult mai rapid datele cautate.
Indecii sunt salvai mpreun cu tabelul i sunt actualizai n mod automat, atunci
cnd facei modificri n cmpurile indexate. Dac trebuie s schimbai multe date ntr-un
cmp indexat, nlturai indexul, actualizai cmpurile i apoi reindexai. Metoda aceasta
este mai rapid dect ncercarea programului Access de a actualiza toate cmpurile
indexate de fiecare dat cnd facei o modificare.
Pentru a crea un index:
1. Executai click pe butonul Design View din bara cu instrumente de lucru, dac nu
suntei deja n reprezentarea Table Design;
2. Executai click pe cmpul pe care-l dorii indexat. Proprietile acestuia vor fi
artate n fereastra din partea inferioar a ecranului. n exemplul nostru, vei executa
click pe campul Nume;
3. Executai click pe cmpul Indexed din caseta Field Properties;
4. Folosii caseta-list derulant pentru a selecta condiiile pentru index.
In etapa 4, putei stabili dac s se admit sau nu pentru cmpurile index valori duplicate.
n exemplul nostru, vei alege Yes (Duplicates OK), ntruct s-ar putea s existe mai muli
clieni cu acelai nume. Atunci cnd stabilii un cmp de cheie primar, Access realizeaz
n mod automat un index

Fig 10
al cmpului respectiv, i-l menine pe msura ce actualizai nregistrrile din tabel. Indexul
nu accepta valori duble, fiind de tip Yes - No Duplicates, astfel nct Access poate folosi
cmpul cheii primare pentru a deosebi intre ele nregistrrile.
Dac avei un tabel mare, putei cuta nregistrri folosind criterii din dou cmpuri

Baze de date n mediul Access. Tabele

57

diferite. n acest caz, trebuie s creai indeci pentru cele dou (sau mai multe) cmpuri n
care cautai mai frecvent.
De pild, tabelul folosit anterior ca exemplu conine numele clienilor. Dac avem sute de
nregistrri, exist anse sporite ca mai multe persoane s aib acelai nume. Dac, s
zicem, cautai un client cu numele Pop Ion, este mai uor pentru Access s gseasc
nregistrarea corespunztoare dac vei crea i un index al cmpului Prenume.
Pentru realizarea unui index compus, procedai astfel:
1. Executai click pe butonul Design View din bara cu instrumente de lucru, dac
nu suntei deja n reprezentarea Table Design;
2. Alegei Indexes din meniul View. Apare o fereastra, afiand indecii cureni;
3. Introducei cte un rand pentru fiecare cmp din index, dar tastai numele
indexului doar in primul rnd. Microsoft Access trateaz toate rndurile drept
componente ale aceluiai index, pn ce ajunge la un rnd coninnd alt nume de
index;
4. (Opional) Dac trebuie s inserai un rnd, executai click pe butonul drept al
mousului pe rndul deasupra locului unde dorii s facei inserarea. Apoi alegei
Edit Insert Row.
n figura 10 se observ crearea mai multor indeci compui, dup cmpurile Nume
i Prenume, dup cmpurile Ora i Nume. Cheia primar este format din cmpul Marca.
Putei crea orici indeci avei nevoie, dar nu uitai c folosirea lor va ncetini
procesul de actualizare al nregistrrilor. Trebuie s indexai doar acele cmpuri n care
cutai mai frecvent. Dac dorii s tergei un index pentru un cmp n care nu cutai
deseori, modificai proprietatea Indexed n No, utiliznd lista derulant din caseta Field
Properties. Ca s tergei un index compus, selectai indexul n fereastra Indexes i
apsai Delete. Atunci cnd tergei un index, n realitate nu tergei nici un fel de date.
Cmpurile i datele din ele rmn exact la fel. Pur i simplu comunicai programului
Access c nu mai trebuie s in minte unde se afl nregistrrile pentru cmpul cu pricina.
Dup ce ai creat un index, putei folosi comanda Find
ca s se gseasc datele de care
avei nevoie. Pentru a gsi o nregistrare dintr-un tabel n modul Foaie de date, urmai
aceti pai:
1. Executai click pe butonul Find din bara cu instrumente de lucru, sau selectai Find
din meniul Edit. Apare caseta de dialog Find;
2. n caseta de text Find What, introducei datele pe care dorii s le gsii;
3. Alegei oricare din opiunile listate pentru caseta de dialog Find in field (Tabelul 5);
4. Alegei Find First. Access caut prima apariie a datelor specificate;
5. Daca aceasta nu este nregistrarea dorit, alegei butonul Find Next, pentru a trece
la urmtoarea apariie;
6. Cnd cutarea s-a ncheiat, apare o caseta de dialog, ntrebndu-v dac dorii s
reluai cutarea de la inceput. Alegei No, apoi inchidei caseta de dialog Find.
Opiuni ale casetei de dialog Find sunt prezentate n tabelul 5.

Baze de date n mediul Access. Tabele

58

Tabelul 5
OPIUNEA
Where

SUBOPIUNEA
Any Part of Field
Match Whole Field
Start of Field

Search In
Direction

Current Field
All Fields
Up
Down

Match Case
Search fields as
Formatted
3.6

DESCRIERE
Accept cmpurile n cadrul crora
apar oriunde datele specificate
Accept doar cmpurile identice cu
datele specificate
Accept cmpurile n care datele
specificate apar la nceput
Caut numai cmpul selectat
Caut n toate cmpurile
Cutarea se face spre nceputul
tabelului
Cutarea spre sfritul tabelului
Caut doar datele scrise exact cu
acelai tip de litere (mari/mici) cu
datele specificate
Caut datele n funcie de modul cum
apar pe ecran, nu de formatul n care
au fost stocate

Filtrarea datelor dintr-o tabel

n loc s examinai (utiliznd comanda Find) una cte una toate nregistrrile ce
conin anumite informaii, putei cere ca acestea s fie afiate simultan; sau dorii s
specificai criterii n mai multe cmpuri. n oricare din aceste cazuri, folosii un filtru
pentru a crea un subset cu anumite date.
Filtrul utilizeaz datele pe care le-ai precizat n scopul de a forma, cu anumite nregistrri,
o foaie de date temporar numit subset.Un grup de nregistrri care conin datele
specificate n filtru se numete subset.
De exemplu, s presupunem c dorii s vedei un subset al nregistrrilor din tabela
Vnzri a bazei de date. Se dorete vizualizarea numai a acelor nregistrri pentru care
cmpul Judet are valoarea SB i cmpul Oras are valoarea Sibiu. nregistrrile se vor
afia n ordinea cmpului Marca. Pentru a crea filtrul, procedai astfel:
1. Deschidei baza de date i tabela Vanzari, dac nu este deja deschis;
2. Executai click pe butonul Edit Filter/Sort (Editare Filtru/Sortare) din bara cu
instrumente de lucru, sau alegei Edit Filter/Sort din meniul Records. Se deschide
fereastra Filter (fig. 10);
3. Calculele nu sunt permise! Putei defini criteriile i selecta ordinea de sortare, dar nu
putei efectua calcule.
4. Din lista cmpurilor, deplasai cmpul dorit n rndul Field. In exemplul nostru,
deplasai prima dat cmpul Jude n prima celul din prima coloan, apoi cmpul
Oras n rndul Field din cea de a doua coloan i cmpul Marca n cea de a treia
coloan;
5. n rndul Criteria, introducei datele care trebuie cutate. De pild, introducnd

Baze de date n mediul Access. Tabele

59

irul de caractere Sibiu n coloana 2, anunai programul s caute toate cmpurile


Ora ce conin aceast valoare.
6. Deschidei lista derulant din rndul Sort i selectai ordinea de sortare. n exemplul
nostru, vei alege Descending (descresctor), pentru cmpul Judet i cresctor
pentru cmpul Marca;
7. Pentru a vedea subsetul, executai click pe butonul Apply Filter/Sort (Aplicare
Filtru/Sortare) din bara cu instrumente de lucru, sau alegei Apply Filter/Sort din
meniul Records (fig. 11).
Un subset reprezint doar o foaie temporar de date. Atunci cnd creai un filtru, nu
modificai datele. Access pur i simplu extrage din tabel informaiile dorite i le afieaz
ntr-o form mai uor de ne!es. ntrucat subseturile sunt temporare, ele nu pot fi salvate.
Cu toate acestea, filtrele care creeaz subseturi se pot salva sub forma de cereri. Pentru a
salva un filtru, selectai Save As Query din meniul File, cnd v aflai n fereastra Filter.
Atribuii un nume filtrului, apoi apsai R, sau executai click pe OK.

Fig 11

Fig 12
Un filtru poate fi salvat sub forma unei interogri, putnd fi folosit ulterior n cadrul
unei aplicaii.
Un al doilea exemplu de filtru prezint modul n care se realizeaz o fereastr prin
care se introduc informaii de interogare. Se va realiza un filtru prin care sunt vizualizai
toi vnzatorii a cror nume incepe cu o anumit liter. Pentru acest exemplu se folosesc
funcii specifice mediului ca de exemplu funcia Left. Cmpurile care apar ntr-o expresie
a unei funcii trebuie ncadrate ntre paranteze mari [ i ]. Textul care apare n
fereastr trebuie de asemenea ncadrat ntre paranteze mari.

Baze de date n mediul Access. Tabele

60

Fig 13
n Access 95 filtrrile sunt de trei tipuri i anume:
Filter by Selection (filtrare conform seleciei) este cea mai simpl metod de filtrare,
ea aplicndu-se doar asupra unui singur cmp al tabelei. Se alege din cmpul dorit un
singur caracter sau mai multe caractere i se face click pe butonul Filter by Selection
fiind afiate doar acele nregistrri care ndeplinesc condiia stabilit. De exemplu
dac avem o tabel care conine date despre angajai i dorim s afim toi angajaii
a cror nume ncepe cu I se selecteaz dintr-un caracterul I dintr-un nume care ncepe
cu I i se face click pe butonul respectiv. Dac se alege I din interiorul unui nume
atunci se vor afia toate nregistrrile care au n cmpul nume litera i. Dac se alege
caracterul I de la sfritul numelui, atunci vor fi afiate toate nregistrrile a cror
nume se termin cu litera i. Aceast metod de filtrare mai poate fi aleas i din
meniul Record, opiunea Filter i subopiunea Filter by Selection.
Filter by Form (filtrare conform formularului) permite aplicarea criteriului de
filtrare n mai multe cmpuri. De asemenea permite ca n acelai cmp s putem avea
mai multe condiii legate ntre ele prin operatorul logic OR. Pentru a activa aceast
metod se face click pe butonul Filter by Form sau se alege opiunea Record din
meniul mediului, opiunea Filter i opiunea Filter by Form. De exemplu dac exist
o tabel n care se ine evidena mai multor firme din diferite ri i orae i dorim s
afim firmele din Romania i Germania se procedeaz astfel: se face click pe
butonul Filter by Form, din cmpul ri se alege Romania dup care se face click pe
butonul OR din partea de jos a ferestrei i se alege nc o ar i anume Germania. Se
face click pe butonul Applay Filter i pe ecran apare o fereastr ce poate fi listat n
care se gsesc doar firmele din cele dou ri. Dac de exemplu, se dorete
vizualizarea firmelor din Romania i oraul Sibiu, atunci aceste dou informaii se
aleg n fereastra Filter by Form, din cmpurile orae i ri. Rezultatul este
vizualizarea firmelor din Romania oraul Sibiu. Pentru a forma expresii mai
complexe de filtrare se folosesc funcii Built In ale mediului Access sau diverse
funcii utilizator. Pentru a nu avea surpize c filtrrile alese nu merg se alege opiunea
Edit, Clear Filter sau se face click pe butonul Clear Grid din fereastra Filter by
Form

Baze de date n mediul Access. Tabele

61

Advanced Filter/Sort (Filtrare ordonat avansat) este cea mai puternic dar i cea
mai dificil metod de filtrare. Cu ajutorul acestei metode se poate face pe lng
filtrare i o operaie de sortare. O astfel de metod se aseaman mult cu o metod de
interogare dar totui diferenele sunt urmtoarele:
caseta Show Table nu apare;
butonul SQL lipsete de pe bara de instrumente
Pentru acest tip de sortare nu exist buton pe bara de instrumente. Ea poate fi apelat din
meniul Record, Filter, Advanced Filter/Sort
3.7

Ordonarea datelor n tabele

O cerin fundamental a mediului de dezvoltare al bazelor de date este capacitatea


de a ordona rapid nregistrrile, astfel nct ele s apar n succesiunea dorit. n mod
implicit Access afieaz datele n ordinea n care ele au fost introduse. n cazul n care n
tabel se gsete o cheie primar, el va afia datele n ordinea cheii primare.
Dac tabela pe care dorim s o ordonm conine mai multe cmpuri dect pot fi
afiate n fereastra Datasheet, unele cmpuri pot fi ngheate folosind opiunea Freeze
Columns din meniul Format. Cmpurile ngheate rmn pe ecran putnd fi vizualizate
alte cmpuri existente n tabel.
Dac se dorete ordonarea unei tabele dup un
singur
cmp
se
selecteaz cmpul dorit dup care se apas butonul de
ordonare cresctoare sau
descresctoare.
Dac se dorete ordonarea dup mai multe cmpuri atunci se selecteaz aceste
cmpuri i se execut ordonarea. n mod automat prioritatea de ordonare se acord
cmpului selectat cel mai din stnga. Pentru o vizualizare ordonat dup mai multe
cmpuri se alege cmpul cel mai prioritar i duce n partea stng dup care se alege
urmtorul cmp ca nivel de prioritate i se procedeaz la fel etc. Dezghearea coloanelor
ngheate se realizeaz cu comanda Unfreeze All Columns.
3.8

Personalizarea modului Datasheet View

Dac se dorete ca modul Datasheet s fie vizualizat el poate fi personalizat prin


ascunderea cmpurilor care nu se doresc a fi listate, eliminarea liniilor grilei, selectnd
un font diferit i schimbnd nlimea rndurilor.
Pentru a ascunde un cmp se selecteaz cmpul sau se poziioneaz cursorul n
el dup care se alege din opiunea Format, Hide Columns. Pentru a dezvlui
cmpurile ascunse se alege opiunea Unhide Columns;
Pentru a schimba fontul folosit la afiarea foii de date se alege opiunea
Format, Font;
Pentru a elimina liniile grilei se poate folosi opiunea Format Cells.n aceast
caset de dialog se vor afia opiuni pentru distrugerea liniaturii pe vertical sau
pe orizontal, sau de a schimba modul de prezentare;
Pentru a schimba nlimea rndurilor afiate i tiprite se poate plasa
mouse-ul pe latura de jos a unei tuple i se trage pn la ajustarea dorit. Acelai

Baze de date n mediul Access. Tabele

62

lucru se poate realiza i prin alegerea opiunii Format, Rowheight (nalimea


rndului) sau Column Width pentru mrirea limii coloanelor. Se alege apoi
Best Fit (potrivire optim), pentru a permite programului Access stabilirea
dimensiunilor optime.
3.9

Probleme propuse

1. S se creeze o baz de date cu numele BD1 n care s se creeze tabela Angajai cu


structura:
Marca Nume Data nasterii Profesia Data Sex Salariu Adresa
Tabela s conin maximum 50 de nregistrri.
Condiiile care se pun asupra cmurilor sunt urmtoarele:
marca mai mare dect 1000;
Numele s fie tiprite cu litere mari;
Data natrii s fie mai mic dect data curent cu cel puin 16 ani;
Data angajrii s fie egal cu data curent;
Salariul mai mare dect 500000;
Adresa s nceap cu cuvntul Sibiu, presupunnd c toi angajaii au
domiciliul stabil n Sibiu.
S se realizeze urmtoarele filtre:
Toi salariaii a cror nume ncepe cu o anumit liter;
Toi salariaii care au o anumit profesie;
Toi salariaii cuprini ntre dou numere de marc;
S se ordoneze salariaii dup nume cresctor i descresctor;
Toi salariaii care locuiesc pe o anumit strad;
Toi angajaii a cror nume se termin cu o anumit liter.
S se realizeze urmtoarele filtre:
s se vizualizeze angajaii a cror nume ncepe cu o liter i au o anumit
profesie;
s se vizualizeze angajaii care au patru tipuri de maserii i sunt de sex
feminin;
s se vizualizeze toi salariaii a cror nume se termin cu o anumit liter i
au salariul mai mare dect 1,000,000;
s se vizualizeze toi salariaii angajai n trei zile consecutive care au
acelai salariu.
2. S se creeze n baza de date Biblioteca, tabela biblio cu urmtoarea structur:
Nume cmp
Nr_crt
Titlu

Tip dat cmp


Comentarii
Counter
Numrul curent al crii din bibliotec
Text
Numele crii din bibliotec

Baze de date n mediul Access. Tabele

Autor
Nr_inv
Data_I
Cititor

Text
Number
Date/Time
Boolean

63

Numele autorului crii


Numr de inventar al crii
Data intrrii n bibliotec
Cmp logic care are valoare True dac o carte este
mprumutat la un cititor i valoarea False dac
respectiva carte nu este mprumutat

Restriciile de tiprire i de scriere sunt urmtoarele:


numrul critic se autoincrementeaz;
autorul se tiprete cu caractere mari;
numrul de inventar este format in 10 caractere numerice +litera I pe prima
poziie;
data de intrare a crii se tiprete n forma 1998 - octombrie- 23;
S vor introduce maxim 20 de nregistrri n fiier. Se vor vizualiza informaiile din
fiier astfel:
Crile n ordine alfabetic;
Crile n ordinea alfabetic a autorilor;
Crile n ordinea vechimii n bibliotec;
Se vor realiza folosind filtrele mediului Access urmtoarele vizualizri:
Crile al cror nume ncepe cu o anumit liter;
Crile unui anumit autor aranjate n ordine alfabetic;
Crile nemprumutate ale unui anumit autor;
Toate crile intrate n bibliotec dup o anumit dat;
Crile care ncep cu o anumit liter i intrate dup 01.01.1998;
Crile a cror nume se termin cu trei litere diferite i care sunt mprumutate.
3. ntr-o baz de date s se realizeze tabelul Client cu urmtoarea structur:
Nume cmp
ID
Codclient
Codprodus
Numeclient
Locclient

Tip de dat
Counter
Number
Number
Text
Text

Comentarii
Cmp care va fi cheia primar
Codul clientului.
Codul produsului
Numele clientului
Localitatea clientului

S se realizeze urmtoarele:
Numele cmpurilor n modul Datasheet va fi diferit de numele cmpurilor;
Indexarea dup cmpurile Locclient i dup cmpurile Codclient Codprodus;
Sortarea clienilor dup nume;
Sortarea clienilor dup localitate;
Sortarea clienilor dup nume i localitate;
Filtru prin care se vizualizeaz clienii care ncep cu o anumit liter;
Filtru pentru vizualizarea clienilor sortai dup nume, dintr-o localitate care
ncepe cu o anumit liter;

Baze de date n mediul Access. Tabele

64

Filtru pentru vizualizarea unui anumit client;


Filtru pentru vizualizarea clienilor sortai dup nume dintr-o anumit localitate.
4. ntr-o baz de date s se realizeze tabelul Produse cu urmtoarea structur:
Nume cmp
Codprodus
NumeProdus
Greutate
Pret
Datafabric
Nr_buc

Tip de dat
Number
Text
Number
Number
Data/Time
Number

Comentarii
Codul Produsului
Numele produsului
Greutatea produsului
Pretul produsului
Data fabricaiei produsului
Numr buci produs

S se realizeze urmtoarele:
Numele cmpurilor n modul Datasheet va fi diferit de numele cmpurilor;
Cheia primar format din cmpurile Codprodus i Datafabric;
Sortarea produselor dup nume;
Sortarea produselor dup data fabricaiei i pre;
Sortarea produselor dup numr de buci pre;
Filtru prin care se vizualizeaz produsele care ncep cu o anumit liter;
Filtru pentru vizualizarea produsele sortate dup nume, care ncepe cu o anumit
liter;
Filtru pentru vizualizarea unui anumit produs;
Filtru pentru vizualizarea produselor realizate ntr-o anumit zi.

Capitolul

4
LIMBAJUL S.Q.L.
Limbajul SQL, este un limbaj utilizat n mod obinuit n gestionarea bazelor de
date client/server. Principalul avantaj oferit de limbajul SQL este standardizarea. Se
poate folosi un set obinuit de instruciuni SQL n oricare din sistemele de gestionare
a bazelor de date, compatibile SQL. SQL este un limbaj concis care conine
aproximativ 100 de cuvinte cheie n standardul ANSI pentru SQL (ANSI - American
National Standards Institute), dar este complect relaional. Un limbaj este complect
relaional dac instruciunile sale sunt suficient de puternice pentru a extrage
rezultatele oricrei relaii definite prin intermediul expresiilor de calcul relaional.
Instruciunile limbajului sunt mprite n patru instruciuni de definire a datelor
DDL (Data Definition Language): CREATE, ALTER, DROP, INSERT i 20 de
instruciuni de manipulare a datelor DML (Data Manipulation Language): SELECT,
UPDATE, DELETE etc. Limbajul mai permite instruciuni pentru interogarea
datelor,controlul cursorului, procesarea tranzaciilor, i administrarea sau controlul
bazei de date
SQL este un limbaj orientat ctre mulimi de date, spre deosebire de limbajele
din familia Xbase care sunt orientate pe nregistrare (tupl), avnd ntodeauna ca
rezultat o relaie. SQL lucreaz cu tabelele de date (relaiile) n cadrul unei baze de
date, concept strin programelor Xbase. Limbajul permite optimizarea interogrilor i
controlul accesului la datele utilizatorului. El lucreaz cu aa-zisul dicionar de date
care este o mulime de tabele coninnd metadate, adic anumite date despre datele
analizate.
4.1 Implementarea n produsul Access a limbajului S.Q.L
Proiectanii sistemului Access au conceput sistemul Access SQL pentru crearea
de interogri, nu pentru crearea sau modificarea tabelelor. Comenzile SQL se mpart
n urmtoarele categorii:
comenzi de extragere a datelor, sunt comenzi folosite pentru extragerea
datelor din tabele i pentru stabilirea modului de prezentare a rezultatelor.
Comanda SELECT este principala comand din aceast categorie;
comenzi care adaug, modific sau terg rnduri ntr-o anumit tabel.
Aceste comenzi sunt INSERT, UPDATE, DELETE;
comenzile de procesare a tranzaciilor, reprezint comenzile BEGIN
TRANSACTION, COMMIT, ROLLBACK, care reprezint comenzi de

Limbajul SQL

66

manipulare a datelor (DML), multiple. Dac o operaie de tranzacie


eueaz, atunci toate operaiile DML precedente, eueaz;
comenzi de definire a datelor (DDL), care definesc structura tabelelor i a
vizualizrilor. Aceste comenzi sunt: CREATE TABLE i CREATE
VIEW;
comenzile de procesare a cursorului care pot selecta un singur rnd, din
setul de rezultate al interogrii n vederea procesrii;
comenzi de control a datelor i de acordare a diverselor drepturi asupra
unei baze de date. Acestea sunt GRANT i REVOKE;
Cuvintele cheie care constitue limbajul SQL sunt alctuite din urmtoarele
categorii care constitue vocabularul limbajului:
Comenzi determin executarea unei aciuni (SELECT);
Calificative limiteaz domeniul unei entiti incluse n interogare
(WHERE);
Clauzele modific aciunea unei instruciuni(ORDER BY);
Operatorii care sunt relaionali sau logici i sunt folosii fr sintaxa
Join;
Funciile globale de grup ntorc un rezultat pentru un set de valori
(SUM(), MIN()).
Cuvntul rezervat DISTINCTROW, care este folosit n instruciunea SELECT,
determin programul ACCESS s elimine rndurile duplicat din interiorul interogrii.
El este asemntor dar nu identic cu cuvntul DISTINCT din ANSI SQL. Ambele
cuvinte determin eliminarea nregistrrilor duplicat, dar modul cum realizeaz acest
lucru este diferit:
DISTINCT elimin rndurile duplicat, innd cont numai de valorile
datelor incluse n rndurile interogrii de la stnga la dreapta;
DISTINCTROW elimin rndurile duplicat innd cont de ntregul
coninut al tabelei, indiferent dac sunt introduse cmpuri
suplimentare pentru a diferenia nregistrrile di tabel.
De exemplu dac ntr-o tabel avem dou cmpuri Nume i Prenume i n
cmpul Prenume avem Ion iar n cmpul Nume avem 10 valori diferite i se face o
interogare dup cmpul Prenume, atunci DISTINCT returneaz o singur valoare
deoarece n tabela cu rezultate lipsete cmpul Nume, pe cnd DISTINCTROW
returneaz 10 valori pentru c el consider tabela n ansamblu, chiar dac interogarea
se face pe un singur cmp.
n expresii limbajul SQL poate utiliza operatorii relaionali, operatorii logici i
semne de punctuaie:
virgula separ elementele listelor cu parametrii, de exemplu numele
cmpurilor;
parantezele drepte care ncadreaz numele de cmpuri sunt necesare doar
cnd numele cmpurilor conin spaii sau semne de punctuaie;

Limbajul SQL

67

apostroful i ghilimelele sunt folosite pentru a separa irurile de caractere;


asterisc i semnul ntrebrii specific zero sau mai multe caractere;
diez, folosit pentru a delimita datele de tip data/time sau pentru a reprezenta
un digit;
sfritul unei instruciuni Access SQL este obligatoriu s se termine cu
punct i virgul;
inegalitatea este specificat prin combinaia de caractere <>
4.2 Comenzi de manipulare a tabelelor folosind limbajul SQL implementat n
mediul Access
n limbajul SQL comanda pentru crearea unei tabele este: CREATE TABLE.
Sintaxa comenzii este:
CREATE TABLE nume_tabel (nume_cmp1 tip [(precizie], scal])
[,nume_cmp2 tip]) creaz structura unei noi tabele.
Semnificaia clauzelor comenzi sunt prezentate n tabelul 1
Tabelul 1
CLAUZA
(
<nume_cmp1,
nume_cmp2>
<tip>
<precizie>
<scal>
)

DESCRIERE
Paranteza se pune n momentul n care ncepe
descrierea cmpurilor tabelei
Definete numele cmpurilor din tabel
Definete tipul cmpului care poate fi:text,
Number, Datetime, Yes/No, OleObject, Counter,
Currency
Specific lungimea cmpului care se definete.
Definete numrul de zecimale n cazul tipurilor
numerice.
Paranteza se pune n momentul n care s-a
terminat definirea cmpurilor.

Clauza CONSTRAINT a comenzilor CREATE TABLE sau ALTER TABLE are


sintaxa:
CONSTRAINT nume_index {PRIMARYKEY | UNIQUE | REFERENCES
tabel_extern [(cmp_extern)] i are ca efect crearea unui index dup numele
cmpului care precede expresia. Indexul poate fi specificat ca PrimaryKey sau
Unique. Clauza Reference permite stabilirea unei relaii ntre cmpul specificat i un
cmp al unei tabele externe.
Comanda CREATE INDEX cu sintaxa:
CREATE [ UNIQUE ] INDEX nume_index ON table (field [ASC|DESC][,
field [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE

Limbajul SQL

68

NULL }] permite crearea unui index care permite sau nu prezena valorilor NULL n
cmpuri
Comanda ALTER TABLE cu sintaxa:
ALTER TABLE nume_tabel {ADD COLUMN nume_cmp|
CONSTRAINT nume_index}{DROP COLUMN nume_cmp| CONSTRAINT
nume_index} permite adugarea unor cmpuri noi, tergerea unora existente sau
adugarea i tergerea unor indeci.
Comanda DROP INDEX cu sintaxa
DROP INDEX nume_index ON nume_tabel terge indexul cu numele
specificat din tabela dorit.
Comanda DROP TABLE cu sintaxa:
DROP TABLE nume_tabel terge o tabel din baza de date.
Exemple
1. Create Table Fis2(camp1 text(30), camp2 integer, camp3 datetime, camp4
yes/no, camp5 counter, camp6 oleobject, camp7 currency) - se creaz o tabel
cu numele fis2 care conine cmpurile camp1-7, care au toate tipurile de cmpuri
permise de mediul Access;
2. Create Table Fis3 (camp1 text (10), data_nastere datetime, marca counter,
constraint index1 PrimaryKey) -creaz o tabel Fis3 i un index aferent tabelei
cu numele index1 ca i cheie primar. Dac nu este specificat numele cmpului,
acesta este implicit ultimul cmp descris n comand;
3. Create Table Angajat (matricol counter, nume text(20), varsta integer,
constraint matriol unique (matricol, nume)) - creaz tabela Angajat i cte un
index simplu dup cmpul Matricol i unul compus dup cmpurile Matricol i
Nume;
4. Create Table Angajat1 (Matricol counter, Nume text (30), Varsta integer,
constraint Pk Primarykey(Matricol), Constraint Index1 Unique (Matricol,
Nume)) - creaz tabela Angajat1 i cheia primar Pk, precum i indexul compus
Index1;
5. Alter Table Angajat Add Column Salar Number - adaug cmpul Salar la
tabela angajat;
6. Drop Table Fis2 - terge tabela Fis2;
7. Create Unique Index Index2 On Angajat (salar) with Disallow Null - creaz
un index simplu dup cmpul salar n tabela Angajat.
4.3

Scrierea interogrilor de selecie n SQL. Instruciunea SELECT

Comanda SELECT

Limbajul SQL

69

Sintaxa comenzii SELECT a limbajului S.Q.L implementat Access este


urmtoarea:
SELECT [All | Distinct|Distinctrow] list_selecie
From nume_tabele
[Where criteriu_de_cutare]
[Order By criteriu de sortare [Asc | Desc]
Comanda SELECT este cea mai important comand din SQL. Parametrul
list_de_ selecie, precizeaz cmpurile care intr n tabela cu rezultatele
interogrii. Dac avem mai multe cmpuri n interogare acestea sunt
desprite prin virgul. Pot fi unul sau mai multe cmpuri. Calificativele
All- toate rndurile, Distinc i Distinctrow (prezentate anterior) determin
modul de manipulare al rndurilor;
From nume_tabele specific numele tabelei sau tabelelor care intr n
interogare. Dac sunt specificate cmpuri din mai multe tabele fiecare
tabel trebuie specificat, numele lor fiind desprite prin virgul;
Where criteriu_de_cutare determin care nregistrri din lista de selecie
vor fi afiate. Parametrul criteriu_de_cutare este o expresie care conine
un operator de text sau ir de caractere sau un operator relaional. Clauza
este opional;
Order By criteriu de sortare [Asc | Desc] specific ordinea de sortare
dorit. n general n interogare se creaz un obiect Recordset de tip
Dynaset. Order By este opional. Ordinea de sortare este ascendent sau
descendent (ASC | DESC)
Exemple
Se consider baza de date producie care are urmtoarele tabele:
Produse
COD_PRODUS
prod001
prod002
prod010
prod060
prod080
prod500

DENUMIRE
recorder
televizor
walkman
videocasetofon
videocasetofon
radiocasetofon

COD_DEPOZI
dep01

COD_PRODUS
prod001

PRET
800000
160000
300000
430000
280000
105000

Stocuri
CANTITATE
50

Limbajul SQL

70

dep01
dep01
dep10
dep10

prod060
prod080
prod060
prod080

150
100
200
50

COD_DEPOZI
dep01
dep10

LOCALITATE
Bucuresti
Pitesti

Depozite

Beneficiari
COD_BENEFI
bnf011
bnf012
bnf013

NUME
Vasilescu
Georgescu
Marinescu

ADRESA
Bucuresti salcimilor 27
Bucuresti salcimilor 4
Pitesti privighetorii 12

Comenzi
NUMAR_COMANDA
1014
2200

DATA
11/23/96
6/28/96

COD_BENEFI
bnf011
bnf013

COD_PRODUS
prod001
prod002
prod020
prod500

CANTITATE
2
1
2
3

Facturi
NUMAR_COMANDA
1014
1014
2200
2200

1. Interogare pe un singur cmp al unei tabele.


S se scrie o interogare care vizualizeaz din fiierul Stocuri cmpurile
cod_depozit i cod produs
SELECT DISTINCTROW stocuri.COD_DEPOZI, stocuri.COD_PRODUS
FROM stocuri;
COD_DEPOZI
dep01
dep01

COD_PRODUS
prod001
prod060

Limbajul SQL

71

dep01
dep10
dep10

prod080
prod060
prod080

2. Interogare pe un singur cmp al unei tabele care ilustreaz diferena ntre


distinct i distinctrow:
SELECT DISTINCT cod_depozi
FROM stocuri;
cod_depozi
dep01
dep10
SELECT DISTINCTROW cod_depozi
FROM stocuri;
cod_depozi
dep01
dep01
dep01
dep10
dep10
Sfrtul instruciunii Select n versiunea Access 95 este opional.
3. Interogri ordonate dup mai multe cmpuri i interogri care folosesc
operatorii: between, like, in.
a)
SELECT *
FROM stocuri
WHERE cod_depozi="dep01" and cod_produs="prod001";
COD_DEPOZI
dep01
b)

CANTITATE

SELECT DISTINCTROW *
FROM produse
WHERE (((produse.PRET) Between 400000 And 500000));

COD_PRODUS
prod060
c)

COD_PRODUS
prod001

DENUMIRE
videocasetofon

SELECT DISTINCTROW *
FROM stocuri
WHERE cod_produs like "*1";

PRET

Limbajul SQL

72

COD_DEPOZI
dep01
d)

SELECT *
FROM depozite
WHERE localitate in ( 'bucuresti');

COD_DEPOZI
dep01
e)

COD_PRODUS CANTITATE
prod001

LOCALITATE
bucuresti

SELECT *
FROM stocuri
WHERE cantitate in(50,100,200);

COD_DEPOZI
dep01
dep01
dep10
dep10

COD_PRODUS
prod001
prod080
prod060
prod080

CANTITATE
50
100
200
50

4.
Interogri cu nregistrrile ordonate dup unul sau mai multe
cmpuri.
a)

SELECT denumire, cod_produs, pret


FROM produse
ORDER BY 1, 3
ordonarea dup anumite cmpuri se poate face alegnd cmpurile dup o
valoare numeric n ordinea n care ele apar n interogare

denumire
radiocasetofon
recorder
televizor
videocasetofon
videocasetofon
walkman
b)

cod_produs
prod500
prod001
prod002
prod080
prod060
prod010

SELECT DISTINCTROW *
FROM produse
ORDER BY produse.PRET DESC;

pret
105000
800000
160000
280000
430000
300000

Limbajul SQL
COD_PRODUS

prod001
prod060
prod010
prod080
prod002
prod500
4.4

73

DENUMIRE
recorder
videocasetofon
walkman
videocasetofon
televizor
radiocasetofon

PRET
800000
430000
300000
280000
160000
105000

Utilizarea funciilor globale SQL

n cazul n care se dorete folosirea funciilor globale pentru a obine totaluri,


medii sau valori statistice pentru grupuri de nregistrri, care au atribute cu aceeai
valoare, trebuie folosit clauza GROUP BY n instruciunea SQL. Limitarea aciunii
GROUP BY se poate realiza folosind calificativul opional HAVING.
SELECT [All | Distinct|Distinctrow]
funcii agregat(nume_cmp) AS alias
[,list_selecie]
From nume_tabele
[Where criteriu_de_cutare]
GROUP BY criteriu de grupare
[HAVING criteriu de agregare]
[Order By criteriu de sortare [Asc | Desc]
AS alias atribuie un nume coloanei;
GROUP BY criteriu de grupare precizeaz coloana pe care se grupeaz
coloana;
HAVING criteriu de agregare reprezint unul sau mai multe criterii
aplicate coloanei care conine parametrul funcie agregat Criteriul specificat
de parametrul criteriul de agregare din HAVING este aplicat dup
aplicarea gruprii.
n unele cazuri poate fi util corelarea unei tabele cu ea nsi. n acest caz
trebuie adugat la denumirea cmpului o liniu de subliniere urmat de o cifr
oarecare, pentru a deosebi prima tabel de a doua tabel.
Funcia agregat este o funcie care acioneaz pe domeniul unui atribut. n
mediul Access acestea sunt:
AVG calculeaz media aritmetic a valorilor domeniului unui anumit cmp;
COUNT calculeaz numrul de nregistrri care satisfac criteriul de
agregare;
SUM calculeaz suma nregistrrilor dintr-un domeniu al unui cmp;
MIN, MAX calculeaz valoarea cea mai mare respectiv cea mai mic dintrun anumit domeniu.

Limbajul SQL

74

Exemple
1. S se scrie o interogare care calculeaz cantitatea total de produse i

numrul de produse pe depozite


SELECT DISTINCTROW stocuri.COD_DEPOZI, Sum(stocuri.CANTITATE)
AS Cantitate, Count(*) AS Nr_inreg
FROM stocuri
GROUP BY stocuri.COD_DEPOZI;
COD_DEPOZI
dep01
dep10

Cantitate
300
250

Nr_inreg
3
2

2. S se scrie o interogare care afieaz codul depozitului, cantitatea i


numrul nregistrrilor a cror cantitate de produse este mai mare dect 250
SELECT DISTINCTROWstocuri.COD_DEPOZI, Sum(stocuri.CANTITATE)
AS Cantitate, Count(*) AS Nr_inreg
FROM stocuri
GROUP BY stocuri.COD_DEPOZI
HAVING sum (cantitate)>250;
COD_DEPOZI
dep01
4.5

Cantitate
300

Nr_inreg
3

Crearea asocierilor cu SQL

Pentru asocierea a dou sau mai multe tabele se folosete structura JOIN_ON
care specific tabela care va fi asociat i relaia dintre cmpurile pe care se bazeaz
JOIN:
SELECT [All | Distinct|Distinctrow] list_selecie
From nume_tabele
{INNER | LEFT | RIGHT} nume_tabel JOIN tabel de legtur ON
criteriu de legtur
Where criteriu_de_cutare]
[Order By criteriu de sortare [Asc | Desc]
nume_tabel JOIN tabel de legtur specific numele tabelei care este
asociat cu celelalte tabele din lista nume_tabele. Fiecare din tabelele care
particip la o asociere trebuie s fie inclus n lista nume_tabele i nainte i
dup JOIN. Tipurile de asociere INNER, LEFT, RIGHT trebuie s apar n faa
instruciunii JOIN. INNER este asocierea echivalent, LEFT este o asociere la
stnga, iar RIGHT este o asociere extern la dreapta.

Limbajul SQL

75

ON criteriu de legtur specific cele dou cmpuri care vor fi asociate i


relaia dintre elel. Unul dintre cmpuri se afl n tabel de legtur iar cellalt
ntr-o tabel din lista nume_tabele. Criteriu de legtur conineun operator de
comparaie de tip egalitate i returneaz valoarea adevrat sau fals. Dac
valoarea este adevrat atunci nregistrarea din tabela asociat este inclus n
interogare.
Exemple
1. S se realizeze o interogare care vizualizeaz cmpurile cod produs, cod depozit,

cantitate din fiierele stocuri i produsre. Legtura dintre tabele se realizeaz cu


ajutorul cmpului comun ca denumire Cod_Produs.
SELECT
DISTINCTROW
produse.cod_produs,
stocuri.cod_depozi,
stocuri.cantitate
FROM produse, stocuri
WHERE produse.cod_produs=stocuri.cod_produs;
cod_produs
cod_depozi
cantitate
prod001
dep01
50
prod060
dep01
150
prod060
dep10
200
prod080
dep01
100
prod080
dep10
50
SELECT DISTINCTROW produse.cod_produs,stocuri.cod_depozi,stocuri.cantitate
FROM produse INNER JOIN stocuri
ON produse.COD_PRODUS = stocuri.COD_PRODUS
COD_PRODUS
prod001
prod060
prod060
prod080
prod080

COD_DEPOZI
dep01
dep01
dep10
dep01
dep10

CANTITATE
50
150
200
100
50

Al doilea select este specific QBE i demonstraz echivalena ntre clazele WHERE
i INNER JOIN
n cazul cnd n interogare se folosesc operatori relaionali se poate obine
operaia definit n algebra relaional THETA JOIN
2.
S se realizeze o interogare prin care sunt selectate acele nregistrri pentru
care coninutul cmpului cantitate din tabela stocuri este mai mare dect coninutul
cmpului cantitate din tabela Facturi. n locul denumirii tabelului sau folosit literele a
i b.
SELECT DISTINCTROW a.cod_produs, a.cantitate, b.numar, b.cantitate
FROM stocuri a, facturi b

Limbajul SQL

76

WHERE a.cod_produs=b.cod_produs
and a.cantitate>=b.cantitate;
cod_produs
a.cantitate
numar
prod001
50
1014

b.cantitate
2

3. S se scrie o interogare pe aceeai tabel. S se afieze produsele care au aceeai


denumire i cu preul mai mare.
SELECT produse_1.cod_produs,produse_2.cod_produs,produse_1.denumire
FROM produse produse_1, produse produse_2
WHERE produse_1.denumire=produse_2.denumire
and produse_1.pret>produse_2.pret
Produse_1.cod_produs
produse_2.cod_produs denumire
prod060
prod080
videocasetofon
Dac condiia AND este tears deci se vor afia produsele cu aceeai denumire
atunci:
SELECT produse_1.cod_produs,produse_2.cod_produs,produse_1.denumire
FROM produse produse_1, produse produse_2
WHERE produse_1.denumire=produse_2.denumire
Produse_1.cod_produs
Prod001
Prod002
Prod080
Prod060
Prod080
Prod060
Prod500
Prod010
4.6

produse_2.cod_produs
prod001
prod002
prod060
prod060
prod080
prod080
prod500
prod010

denumire
recorder
televizor
videocasetofon
videocasetofon
videocasetofon
videocasetofon
radiocasetofon
walkman

Compunerea interogrilor cu ajutorul operatorului UNION

Interogrile UNION permit combinarea ntr-un singur set de rezultate a dou


sau mai multor seturi de rezultate produse de interogri SELECT. Restriciile impuse
instruciunilor care creeaz interogri UNION sunt:
numrul de cmpuri din fiecare interogare trebuie s fie acelai;
este permis doar o singur clauz SORT BY i aceasta trebuie s apar
dup ultima instruciune UNION SELECT;
tipurile de date corespunztoare numelor de cmpuri trebuie s fie identice.

Limbajul SQL

77

Exemple
S se afieze situaia stocurilor din depozitul Dep01 ct i situaia stocurilor
care sunt n cantitate mai mare de 50.
SELECT DISTINCTROW *
from stocuri
where cod_depozi= "dep01"
UNION select *
from stocuri
where cantitate >50;
COD_DEPOZI
dep01
dep01
dep01
dep10
4.7

COD_PRODUS
prod001
prod060
prod080
prod060

CANTITATE
50
150
100
200

Interogri imbricate

Se numesc interogri imbricate dou interogri dintre care una aplic


rezultatele celeilalte. Access permite scrierea unei interogri SELECT care utilizeaz
o alt interogareSELECT pentru a preciza criteriul clauzei WHERE. Sintaxa general
este:
SELECT [All | Distinct|Distinctrow] list_selecie
From nume_tabele
Where [nume_tabel.]nume cmp
IN SELECT [All | Distinct|Distinctrow] list_selecie
[GROUP BY Criteriu de grup]
[HAVING criteriu funcii de agregare]
[Order By criteriu de sortare [Asc | Desc]
Exemple
1. Se scrie o interogare care afieaz detaliile produselor comandate de ctre
beneficiarul Vasilescu
SELECT * FROM produse WHERE cod_produs IN
(SELECT cod_produs FROM facturi WHERE numar_comanda
IN (SELECT numar_comanda FROM benef, comenzi
WHERE benef.nume = Vasilescu" AND
benef.cod_benefi = comenzi.cod_benefi));

Limbajul SQL

78

COD_PRODUS
prod001
prod002

DENUMIRE
recorder
televizor

PRET
800000
160000

Interogrile imbricate pot folosi ali operatori specifici.


2. S se evalueze produsele comandate n cantitate mai mare dect oricare din
produsele aflate pe o anumit factur.
SELECT DISTINCTROW cod_produs
FROM facturi
WHERE cantitate > ANY (SELECT cantitate
FROM facturi
WHERE numar =1014);
Operatorul ANY se utilizeaz pentru a putea compara cantitatea comandat pentru un
produs cu oricare din cantitile de pe factura 1014. El verific dac valoarea unui
atribut este: mai mic; mai mare; egal; mai mic sau egal; mai mare sau egal;
diferit dect orice valoare din lista generat de ctre subinterogare.
= ANY este echivalent cu IN iar <> ANY este echivalent cu NOT IN
Operatorul ALL se utilizeaz pentru a returna nregistrrile pentru care valorile
atributului din clauza WHERE sunt >=,<=,>, < dect toate valorile generate de
interogarea interioar. Nu poate fi utilizat cu operatorul = care corespunde cazului n
care toate valorile din list sunt egale
3. S se selecteze toate facturile a cror cantitate este mai mic dect toate cantitile
pentru factura 2200, cea mai mare cantitate fiind de 3 buci.
SELECT *
from facturi
where cantitate < all (select cantitate
from facturi
where numar=2200);
NUMAR
1014
4.8

COD_PRODUS
prod002

CANTITATE
1

Interogri de aciune

Interogrile de aciune n Access sunt: de adugare, de tergere, de creare a


unei tabele i de actualizare
1. Interogrile de adugare utilizeaz urmtoarea sintax n cazul n care
datele se introduc din alt tabel:
INSERT INTO tabel_destinaie
SELECT [All | Distinct|Distinctrow] list_selecie
From tabel_surs
[Where criteriu_de_cutare]

Limbajul SQL

79

dac nu se introduce clauza WHERE, toate nregistrrile din tabelul surs sunt
adugate n tabelul destinaie.
n cazul n care se doresc inserate anumite valori n anumite cmpuri ale unei tabele
se folosete sintaxa:
INSERT
INTO
nume_tabel
(nume_cmp1,
nume_cmp2..
nume_cmpn)
VALUE (valoare1, valoare2,, valoaren)
INSERT INTO produse (cod_produs, DENUMIRE, PRET )
values ("prod12","aspirator",1500000)
2. Interogrile de tergere au urmtoarea sintax
DELETE FROM nume_tabel
[WHERE criteriu de tergere]
dac nu se introduce clauza WHERE, ntr-o interogare de tergere, vor fi terse toate
datele din nume tabel.
DELETE from prouse
Where cod_produs=Prod12)
3. Interogrile de creere a unei tabele utilizeaz sintaxa urmtoare
SELECT [All | Distinct|Distinctrow] list_selecie
INTO nume tabel nou
From nume_tabel_surs
[Where criteriu_de_cutare]
pentru a copia tabela original se nlocuiete lista de selecie cu un * i nu se
introduce clauza WHERE
SELECT cod_produs, denumire
into produse1
from produse
where cod_produs='prod12'
4. Interogrile de actualizare utilizeaz comanda SET pentru a atribui valori

coloanelor individuale:
UPDATE nume_tabel
SET nume_coloan= valoare [,, nume_coloan = valoare]
[WHERE criteriu_de_actualizare]
UPDATE produse
SET pret = 2000000
where cod_produs='prod12'

Limbajul SQL

80

4.9 Utilitarul pentru realizarea interactiv a interogrilor n mediul Access


QBE-SQL
Mediul Access prezint utilitarul QBE pentru realizarea interogrilor la nivel
de tabel sau tabele. Realizarea unei interogri sau QUERY se poate face din baza de
date creat alegnd opiunea Query. n fereastra queries care apare se poate alege
opiunea:
NEW - interogare nou;
OPEN - deschiderea unei interogri existente n vizualizare
(datasheet);
DESIGN - deschiderea unei interogri existente n modul proiectare.
Butoanele care se folosesc n cazul proiectrii unei interogri noi se gsesc pe
bara de butoane:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21
22
Butoanele au urmtoarea semnificaie:
1. comutare n modul design;
2. vizualizare comand proprie limbajului SQL;
3. comutare n modul Datasheet pentru vizualizare nregistrri;
4. salvare interogare;
5. lansare n execuie a unei interogri;
6. deschide fereastra de definire a proprietilor interogrii sau cmpurilor din
tabel;
7. deschide fereastra ADD TABLE (Show table in access 95);
8. activeaz opiunea total a ferestrei de definiie a interogrii;
9. selecie nume tabel pentru interogarea selectat;
10. selecie interogare;
11. selecie interogri incruciate;
12. interogare de aciune pentru crearea de tabele noi;
13. interogare de aciune pentru actualizarea unei interogri;
14. adugare de nregistrri noi ntr-o interogare;
15. tergerea de nregistrri dintr-o interogare;
16. creare interogare nou;
17. crearea unui formular nou;
18. crearea unui report nou;
19. activarea ferestrei bazei de date;
20. activarea constructorului de expresii, funcii etc;
21. buton pentru anularea unei comenzi nedorite;
22. butoane de help, de ajutor privind mediul Access.

Limbajul SQL

81

Dac n fereastra QUERY a bazei de date se apas butonul NEW va apare


fereastra ADD TABLE prin care se selecteaz tabela, tabelele, interogarea sau

Fig. 1
interogrile, care intr n interogare (Fig 1). Se nchide fereastra prin acionarea
butonului CLOSE i se trece la crearea structurii interogrii. Fereastra afieaz tabele,
interogri sau amndou tipurile de entiti. Dup nchiderea acestei ferestre va
aprea fereastra de realizare a interogrii (Fig 2). Cmpurile care vor aprea n
interogare sunt fie tastate, fie aduse din tabela ce apare n fereastra de creare prin
tragere n poziia dorit. Mai multe cmpuri pot fi selectate prin selecie cu ajutorul
mouse-lui i innd apsat tasta Shift sau Ctrl. Cmpurile care vor fi vizualizate n
interogare au setat butonul care apare n partea inferioar a cmpului Dac se
acioneaz butonul 9 de pe bara cu butoane atunci n fereastr va apare i numele
tabelei la care aparine cmpul.
Dac interogarea exist, atunci se apas butonul OPEN pentru vizualizare sau

Fig. 2

Limbajul SQL

82

butonul DESIGN pentru eventualele modificri asupra interogri sau vizualizarea


structurii existente a interogrii.
4.9.1 Exemple de interogri folosind QBE
n continuare se va prezenta modul de realizare a interogrilor. Se consider o
baz de date utilizator n care exist tabela Angajai cu urmtoarea structur:
Marca
Nume
Data
Profesia
Data
Sex
Salariu
Adresa
naterii
angajrii
Tabela conine un numr de minim 20 de nregistrri
Exemple
1.

Se consider urmtoarea interogare:


se vizualizeaz cmpurile: Marca, Nume, Salariu, pentru nregistrrile
care au n cmpul salariu o valoare mai mare dect 200000 i cmpul
Profesia =Economist(fig. 3)

Fig. 3
Dac se dorete realizarea unei interogri care s ofere posibilitatea de
parametrizare a cmpului profesia, adic la fiecare rulare a interogrii s se tasteze
profesia dorit, atunci se construiete o interogare conform cu figura (Fig 4).
2.
S se scrie o interogare prin care se vizualizeaz toate nregistrrile care n
cmpul Profesia conin aceeai valoare. Valoarea de cutare se introduce ntr-o
fereastr de interogare.
Va aprea o fereastr n care se va tasta profesia dorit, interogarea care va aprea
este legat de numele profesiei tastat. Cmpurile interogrii se iau din tabele sau pot
fi cmpuri calculate. Pentru a aprea o fereastr de interogare este necesar ca textul
care apare n fereastr s fie ncadrat ntre paranteze mari. Dac cmpurile tabelei
apar ntr-o tabel atunci este necesar ca aceste cmpuri s fie ncadrate ntre paranteze
drepte.

Limbajul SQL

83

Fig. 4

Fig. 5
3.
S se scrie o interogare care afieaz cmpurile Marca, Nume, Profesia i Data
Angajrii. Totodat interogarea afiaz i Vechimea care este un cmp calculat. Ca i
criteriu de evaluare se consider vechimea mai mare de 10 ani.(Fig 5)
4.
tiind c impozitul pe salar este 30% s se realizeze o interogare prin care se
vizualizeaz n ordine alfabetic angajaii, salariul lor i impozitul pe salar.(Fig 6)

Fig 6

Limbajul SQL

84

5.
S se realizeze o interogare care vizualizeaz angajaii cu vrsta mai mic de
50 de ani, ordonai descendent dup vrst i ascendent dup nume. Vrsta este un
cmp calculat (Fig 7).

Fig.7
6.
S se realizeze o interogare care grupeaz nregistrrile pe profesii, calculeaz
fondul de salarii pentru o anumit profesie (se nsumeaz cmpul salariu, pentru o
anumit profesie) i contorizeaz numrul de salariai pentru o anumit profesie(fig
8). Pentru gruparea articolelor se tasteaz butonul TOTALS i se alege opiunea

Fig. 8
Group By. Prin acionarea acestui buton devin disponibile funciile agregat care
acioneaz global asupra atributelor.
7.
Se consider tabelele Angajat i Copii. S se scrie o interogare prin care s fie
vizualizai copiii unui salariat. Relaiile ntre tabele au fost stabilite n fereastra
Relationship, activat cu butonul corespunztor din fereastra Table (Fig 9).
Tabela Copii are structura urmtoare:
Marca
Nume
Data nasterii Sex
nr copii
Marca este numele matricol al angajatului;
Nume este numele copilului;

Limbajul SQL

85

Data naterii este data naterii copilului;


Sex are dou valori: masculin sau feminin;
Nr copii este numrul de copii al angajatului.
8.
S se scrie o interogare prin intermediul creia se calculeaz reinerile pentru

diveri angajai. Reinerile pot fi:


asigurri sociale;
concediu de boal;
amenzi;
reineri diverse.
Strctura tabelei Reineri este urmtoarea:
Contor
Marca Tip_reinere

Suma

Luna

Fig. 10
Contor reprezint cheia primar fiind un cmp counter;
Marca este numrul matricol al salariatului;
Tip_reinere este un tip de reinere dintre cele enumerate;
Suma este suma reinut;

Limbajul SQL

86

Luna este luna n care se face reinerea.


Interogarea realizat este ilustrat de figura 10.
4.9.2 Interogri ncruciate
Interogrile ncruciate sunt interogri totalizatoare care permit vizualizarea
exact a modului n care apar pe ecran datele centralizatoare. Pentru a realiza o astfel
de interogare este necesar s alegem butonul Crosstab de pe bara cu butoane. Pentru
realizarea interogrii este necesar s se indice:
cmpul care creeaz etichete (titluri) ale rndurilor;
cmpul care atribuie valori interogrii rezultate;

Fig. 11
cmpul sau cmpurile care creeaz antetele coloanelor i criteriile care
determin valorile care apar sub ele.
S se realizeze o interogare n care sunt evideniate reinerile pentru fiecare
salariat pe lunile unui anumit an.
Pentru ca lunile s apar n ordinea fireasc este necesar ca ele s fie introduse
n aceast ordine n linia Column Heading din Query Properties.
Rezultatele interogrii sunt prezentate n tabelul urmtor:
Marc
Nume
jan feb mar apr ma jun jul aug sep oct nov dec
1020 Radulescu
3000
4000 50000
1030 Muntenas
50000
1040 Macrea Horia
20000
1100 Nora Daniel 12300
Cmpul pentru afiarea lunilor este Format ([Luna],mmm)
4.9.3 Interogri de aciune
Interogrile de aciune pot fi:
interogri care genereaz tabele noi;
interogri care adaug nregistrri noi n tabelele de date;

Limbajul SQL

87

interogri care terg anumite nregistrri din tabelele de date;


interogri care modific datele in tabelele de date.
Aceste tipuri de interogri se obin prin acionarea butonului corespunztor tipului de

Fig.12
interogare de aciune dorit, de pe bara cu butoane a ferestrei Query.
Se consider tabela Angajai n care se dorete creterea salariului cu 20%
pentru salariaii care au profesia inginer i economist (Fig. 12)
4.10 Probleme propuse
P1. Se consider baza de date admitere, care conine urmtoarele tabele: AC, AS,
DSUPCAND. Tabela AC conine informaii referitoare la candidaii nscrii la
admitere, avnd structura urmtoare:
COD CMP
Codf
Nr_leg
Nume
Datan
Locn
Judn
O1
O2
O3
O4
O5
Cods
Nota1
Nota2
Media

TIP CMP
Numeric
Numeric
Text
Dat calendaristic
Text
Text
Numeric
Numeric
Numeric
Numeric
Numeric
Text
Numeric
Numeric
Numeric

Fiierul As are urmtoarea structur:

SEMNIFICAIE CMP
Codul examenului
Numrul de legitimaie
Numele candidatului
Data naterii
Locul naterii
Judeul n care s-a nscut
Opiunea 1
Opiunea 2
Opiunea 3
Opiunea 4
Opiunea 5
Codul sli de concurs
Prima not obinut
A doua not obinut
Media notelor

Limbajul SQL

88

COD CMP

TIP CMP

Codf
Cods
Nr_Loc
Nr_Rep

Numeric
Text
Numeric
Numeric

Dest

Text

SEMNIFICAIE
CMP
Codul examenului
Cod Sala
Numr locuri n sal
Numr
candidai
repartizai
Disciplina la care se d
examenul

Fiierul Dsupcand are urmtoarea structur:


COD CMP
TIP CMP
SEMNIFICAIE CMP
Codf
Numeric
Codul examenului
Nrleg
Numeric
Numrul de legitimaie
Jud
Text
Judeul de domiciliu al candidatului
OPITM1
Numeric
Opiunea 1
OPITM2
Numeric
Opiunea 2
OPITM3
Numeric
Opiunea 3
OPIE1
Numeric
Opiunea 4
OPIE2
Numeric
Opiunea 5
SITMIL
Text
Incorporabil /neincorporabil
S se scrie interogri, folosind QBE care :
1. Afieaz toi candidaii care au opiunea 1 Calculatoare. Opiunile sunt: 1calculatoare, 2-electromecanica, 3-inginerie tehnologic i managerial, 4mecanic, 5-inginerie economic. Se va afia numele, numrul de legitimaie
i data naterii.
2. Afieaz toi candidaii care au opiunea OPIE1=1. Se va afia numele
candidatului, opiunea 1 (O1) i opiunea IE (OPIE1).
P2.
Folosind baza de date de la problema P1 s se scrie interogri care realizeaz
urmtoarele:
1. Afieaz toi candidaii nscui n aceeai lun i an i care se gsesc n
aceeai sal.
2. Afieaz toi candidaii incorporabili pe judee.
P3. Folosind baza de date de la problema P1 s se scrie interogri care realizeaz
urmtoarele:
1. Scrie ntr-o tabel toi candidaii care au obinut media mai mic dect 5.
2. Calculeaz numrul de candidai din Sibiu aflai ntr-o anumit sal.
P4. Folosind baza de date de la problema P1 s se scrie scrie interogari, care
realizeaz urmtoarele:
1. Dac numrul de locuri la inginerie economic este 45 afiaz primii 45 de
candidai care au opiunea 1(O1)=5, n ordinea mediilor.

Limbajul SQL

89

2. Pentru candidaii reuii la IE se va realiza o list care conine numele


candidatului, nota obinut i adresa.
P5.
Folosind baza de date de la problema P1 s se realizeze o interogare, care
realizeaz clasamentul pe opiuni la un examen de admitere. Numrul de opiuni sunt
: 1 - calculatoare, 2 - electromecanica, 3 - inginerie tehnologic i managerial, 4 mecanic, 5 - inginerie economic. Numrul de locuri este : 50-calculatoare, 20electrotehnic, 80-inginerie tehnologic i managerial, 20-mecanic, 45-inginerie
economic.
P6.
Folosind baza de date de la problema P1 s se scrie un program care verific
faptul c n fiierele Ac i Dsupcand exist numai nregistrri care au acelai numr
de legitimaie. Se vor folosi instruciuni select Sql imbricate.
P7.
Folosind baza de date de la problema P1 s se scrie un program care afiaz
numrul de candidai cu optiunea 1 O1= 5 i optiunea IE 1(OPIE1) = 2. S se
determine numrul de candidai nscui ntr-un anumit jude i numrul de candidai
care domiciliaz ntr-un anumit jude.
P8. Folosind baza de date de la problema P1, s se determine toi candidaii
incorporabili nscui ntr-un anumit an. Se va determina i numrul acestor candidai.
Rezultatele se vor memora ntr-o nou tabel

Capitolul

5
Formuri (Formulare)
Entitatea Formular, ofer n mediul Acces realizarea unor interfee (ecrane),
ntre utilizator i tabelele existente ntr-o aplicaie. Formurile prezint datele ntr-o
form organizat i atractiv. Cmpurile uneia sau a mai multor tabele pot fi aranjate
astfel inct introducerea sau afiarea datelor s se fac dup dorina utilizatorului.
Formularele permit selecia cmpurilor uneia sau mai multor tabele dup diverse
criterii.
Un formular este format dintr-o colecie de elemente specifice, numite obiecte
de control. n general un formular conine dou tipuri de obiecte de control:
cele care afieaz datele din tabele;
cele care afieaz informaii generale.
Formularele Access sunt multifuncionale; ele permit relizarea unor lucruri
care nu sunt permise n alte moduri de lucru ca de exemplu modul Table Viw sau
Query View. Astfel potfi validate datele de intrare ntr-o aplicaie pe baza datelor
existente n mai multe tabele. Un formular poate include alte formulare. Un formular
inclus n alt formular se numete subformular.
5.1 Tipuri de formulare
Coninutul unui formular depinde de tipul de date pe care-l conine. n general
o aplicaie pentru baze de date poate fi de urmtoarele tipuri:
Procesarea tranzaciilor, adic adaug noi informaii ntr-o tabel sau le
editeaz pe cele existente. Pentru acest tip de aplicaii, formularele trebuie
s permit scrierea n tabelele aplicaiei;
Facilitarea lurii deciziilor, furnizeaz diverse informaii fr a pemite
utilizatorului s modifice datele existente n tabele. Pentru acest tip de
aplicaii este necesar ca formularele s permit doar citirea datelor existente
n formular;
ntreinerea bazei de date, execut funcii de administrare, cum ar fi
crearea bazelor de date, a tabelelor, controlul accesului utilizatorilor la date,
asigurarea securitii informaiilor prin criptare, compactare periodic a
bazelor de date i salvarea lor. Pentru acest tip de aplicaii este necesar
accesul fr restricii la obiectele bazei de date.

Formuri n Access

92

5.1.1 Formulare pentru procesarea tranzaciilor


Acest tip de formular acioneaz direct asupra tabelei doar n cazul n care
acioneaz doar asupra unei singure tabele. n cazul n care formularul se refer la
mai multe tabele exist dou posibiliti:
se poate crea inial o interogare n care apar cmpurile dorite n mai multe
tabele, iar formularul s fie creat pe baza interogrii iniale;
formularul principal utilizeaz o singur tabel, dar s conin un
subformular care s conin date dintr-o tabel asociat
5.1.2 Formulare pentru facilitarea lurii deciziilor
Acest tip de formular este proiectat doar pentru a prezenta diverse informaii
referitoare la una sau mai multe tabele. Acest tip de formulare se bazeaz des pe
interogarea ncruciat care sumeaz datele funcie de o anumit perioad de timp. n
interiorul unui formular poate exista un alt formular numit subformular iar n
interiorul acestuia poate exista de asemenea un alt formular numit sub-sbformular.
Acestea se numesc formulare imbricate. Nivelul de imbricare este pe trei niveluri.
5.2

Crearea formularelor de procesare a tranzaciilor

n general crearea unui formular se poate face prin dou metode:


prin folosirea ferestrei de proiectare a formularului Design Form;
prin folosirea utilitarului (vrjitorului) de proiectare a formularului
FormWizard
Cea mai simpl soluie este crearea formularelor de procesare a tranzaciilor
sau formulare de baz, este folosind utilitarul FormWizard. Pentru realizarea primului
formular, vom folosi dou tabele:
Angajai, care conine informaii referitoare la angajaii unei societi;
Activitati_Personal, care ine evidena activitilor de personal referitoare la
salariai ntr-o anumit perioad de timp. Aceste activiti se pot grupa n
urmtoarele categorii:
date importante ca de exemplu data angajrii, data plecrii din
societate, data mririi de salariu etc;
tipuri de aciuni prin abrevierea acestora: A - angajare, P - plecare,
etc;
aprobarea aciunilor de personal de ctre eful departamentului sau
un ef ierarhic superior;
notarea activitii profesionale;
sumele de bani ncasate de ctre angajat sub forma unor comisioane,
prime sau salarii;
comentarii referitoare la un anumit angajat;

Formuri n Access

93

Cele mai multe formulare sunt de de tipul one -to - many , n majoritatea
acestor formulare fiind necesare subformulare care s afieze datele din tabelele
asociate tabelului principal
Informaiile din cele dou tabele sunt urmtoarele:

Angajati
Marc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Nume
David
Fulea
Lepad
Petrut
Bucna
Surian
Kovac
Calloi
Dodut
Hellst
Smirn
Pata
Britar
Marti
Pereir

Prenu
Nancy
Andre
Janeta
Marga
Stefan
Mihae
Robert
Laura
Anne
Albert
Timut
Caroli
Justin
Xavier
Laure

Functia
Vinzator
Viceprese
Vinzator
Vinzator
Manager
Vinzator
Vinzator
Coordona
Vinzator
Manager
Administ
Receptio
Director
Specialist
Specialist

Ziua Data Adresa


08-Dec- 29- Str
19-Feb- 12- B-dul
30- 27- B-dul
19-Sep- 30- B-dul
04- 13- B-dul
02-Jul- 13- B-dul
2929- B-dul
09-Jan- 30- Str
27-Jan- 12- Str
13- 01- B-dul
06-Jun- 15- B-dul
11-Sep- 15- B-dul
08-Oct- 01- B-dul
30- 15- B-dul
09-Dec- 01- B-dul

Or
Sib
Me
Sib
De
Ara
Ti
Lu
Bra
Ag
Ora
Ba
Iasi
Ba
Iasi
Ara

Ju
SB
SB
SB
H
A
T
T
B
SB
B
B
IS
B
IS
A

Co
240
240
240
270
280
290
290
250
240
210
200
180
200
180
280

Tara
RO
RO
RO
RO
RO
RO
RO
RO
RO
RO
RO
RO
RO
RO
RO

Nr
(206)
(206)
(206)
(206)
(71)
(71)
(71)
(206)
(71)
(206)
(206)
(206)
88 83
88 62
88 01

Nr F I S
5467
2
3457
5
3355
2
5176
2
3453
2
428
5
465
5
2344
2
452
5
7559
2
6261
3
1411
3
377
2
380
1
376

Actiuni_Personal
Nr_mat
1
2
3
4
5
6
7
8
9
10
11
12
13

Cod tip
h
h
h
h
h
Q
y
y
y
y
h
h
h

Nr
1
1
2
2
2
5
5
2
5
7
5
5
2

Data planif
Nr director
11/24/98
6
11/24/95
0
12/1/89
2
11/24/93
2
11/24/91
3
11/24/90
2
1/24/88
2
2/24/78
2
11/24/83
2
5/24/98
7
8/24/98
2
4/24/98
9
9/24/98
2

Data
Nota Salariul lunar
12/22/98
3 2,000,000.00
12/22/98
5 100,000.00
12/22/98
7 1,000,000.00
12/22/98
9 50,000,000.0
12/22/98
7 50,000,000.0
12/22/98
7
40,000.00
12/22/98
8 700,000.00
12/22/78
9 800,000.00
12/22/83
2 666,000.00
12/22/98
4
30,000.00
12/22/98
1 9,000,000.00
12/22/98
5 1,000,000.00
12/22/98
9 2,000,000.00

Comentariu

Formularul va conine date din tabele Angajai i un subformular care conine date
din tabela Actiuni_Personal. Folosind utilitarul FormWizard, formularul va fi creat
astfel:
1. Se execut click pe butonul Forms n fereastra Database dup care se apeleaz
butonul New;
2. n fereastra NewForm care apare se selecteaz tabela care se dorete pentru cazul
nostru tabela Angajai;

Formuri n Access

94

3. Se alege tipul de formular dorit adic modul n care se dorete s fie vizualizate
cmpurile tabelei:
Single Column pe o singur coloan;
Tabular, cmpurile sunt afiate pe linie;
Main/SubForm, permite crearea unui formular care conine un
subformular;
Graph permite crearea unui formular care conine un grafic;
AutoForm permite crearea unui formular simplu care conine toate
cmpurile tabelei
Pentru formul pe care dorim s-l realizm se alege opinea Main/Subform.
4. n fereastra Main/Subform Wizard se alege tabela a cror cmpuri se dorete s
apar n subformular. n cazul nostru aceasta este Actiuni_Personal dup care se
acioneaz butonul Next. Celelalte butoane au urmtorul rol:
Back ntoarcere la etapa anterioar;
Finish terminarea utilitarului;
Cancel ntrerupera folosirii utilitarului;
Hint comentarii
5. Se aleg cmpurile din tabela angajai care vor aprea n formular. Acestea vor fi
marca, nume, prenume, data angajarii, adresa, oras. Alegerea cmpurilor se
realizeaz astfel:
se selecteaz cmpul dorit;
se execut click pe butonul cu o singur sgeat. Cmpul este mutat din
fereastra Available fields n fereastra Fields on main form. Dac se
dorete mutarea tuturor cmpurilor dintr-o fereastr n alta se folosete
butonul cu sgeat dubl. Mutarea cmpurilor n sens invers se realizeaz
identic dar folosind butoanele cu sgeat n sens contrar;
Se execut click pe butonul Next;
6. Se aleg n mod identic cmpurile tabelei Actiuni_Personal. Iniial se selecteaz
toate cmpurile, dup care cmpul care conine marca salariatului se deselecteaz.
Se fae click pe butonul Next;
7. Se alege tipul predefinit al formularului, adic forma n care acesta va apare pe
ecran. Cmpurile tabelei pot apare n form standard, subliniate, ngropate, cu
umbre, etc. Se face click pe butonul Next;
8. Se alege numele care va aprea n formular, dup care se apas butonul Finish.
nainte de apariia formularului nou creat va aprea un mesaj prin care se cere
tastarea numelui subformularului. La nchiderea formularului se cere salvarea lui
sub un anumit nume.

Formuri n Access

95

Rezultatul celor enunate este urmtorul form:

Fig. 3
n partea superioar apar cmpurile fiierului angajai iar n partea inferioar
apare subformularul i toate cmpurile tabelei Actiuni_Personal cu excepia cmpului
marca care face legtura ntre cele dou tabele. Barele de derulare care apar n partea
de jos a ferestrei, permit poziionarea pe anumite nregistrri din tabele. Formularul
de baz creat astfel cu Form Wizard este utilizabil imediat, dar aspectul formularului
i al subformularului poate fi mbuntit ulterior, folosind fereastra Form Design.
5.3

Utilizarea ferestrei Form Design

Pentru a proiecta un formular sau pentru a modifica un formular deja existent


se folosete modul Design Form prin acionarea butonului corespunztor. Dac dintro baz de date existent se proiecteaz un formular nou sau se modific unul deja
existent se acioneaz butonul New sau Design din opiunea Forms a ferestrei
Database.

Fig. 4

Formuri n Access

96

Dac se acioneaz butonul Form Design se va afia fereastra cu acelai nume(fig. 2)


5.3.1

Elementele ferestrei Form Design

Bara cu instrumente Form Design, care conine butoane de comand rapid


pentru selectarea opiunilor din meniul disponibil n modul de lucru Form Design;
O mulime de rigle verticale i orizontale calibrate n inch sau centimetrii;
O linie vertical care marcheaz marginea din dreapta a formularului i permite
modificarea dimensiunilor acestuia pe orizontal;
O linie orizontal care marcheaz marginea de jos a formularului. Cu ajutorul
mouse-ului, prin tragerea barei se modific dimensiunile pe vertical ale
formularului;
Cte o bar de derulare pe orizontal sau pe vertical pentru vizualizarea
formularului n cazul n care nu ncape pe ecran;
O zon opional numit Form Header (antet) care este delimitat de o bar cu
acelai nume i care delimiteaz zona de antet a formularului. Dac formularul
este format din mai multe pagini, atunci antetul este afiat doar pe prima pagin;
O zon Form Detail (detaliu) delimitat de bara cu acelai nume care o desparte
de zona Footer. Aceast zon conine obiectele de control care definesc n
totalitate formularul;
Zona Footer este similar cu zona Header, doar c este definit n partea de jos a
formularului.
Butoanele de pe bara cu instrumente sunt prezentate n fig 3
12 3

4 5 6 7 8 9 10

11

12 13 14 15 16 17 18 19 20 21
Fig. 5

1. butonul de comutare n modul Design;


2. butonul de comutare n modul vizualizare a formului sau n modul de execuie a
acestuia;
3. butonul de comutare n modul de vizualizare datasheet pentru cmpurile tabelei
existente n formularul de baz;
4. salveaz formularul curent;
5. previzualizarea formularului ce va fi tiprit;
6. afieaz fereastra Proprieties asociat uneia din obiectele de control active n
formular la un moment dat;
7. prezint o list cu cmpurile rezultate dintr-o interogare sau ntr-o tabel existent
n formularul de baz;
8. deschide fereastra Module, de editare a codurilor surs VBA ale unui modul care
face parte integrant dintr-un formular;
9. activeaz sau dezactiveaz bara cu obiecte de control ale formularului;

Formuri n Access

97

10. activeaz sau dezactiveaz paletele de control pentru culoare necesare anumitor
obiecte de control ale formularului:culoarea textului, a fundalului sau culoarea
pentru chenar;
11. determin fontul dorit;
12. determin mrimea fontului dorit;
13. text ngroat;
14. text n modul italic;
15. alinierea textului la stnga;
16. alinierea textului la centru;
17. alinierea la dreapta;
18. activarea ferestrei Database
19. refacerea unei aciuni nterprinse din greal;
20. activarea instrumentului de ajutor Cue Cards;
21. activeaz Help-ul mediului Access.
5.3.2 Proprietile elementelor i obiectelor de control
Proprietile care se aplic unui formular n ansamblu, fiecrei seciuni a sa i
fiecrui obiect n particular sunt determinate de valori existente n fereastra
Properties. Pentru a vizualiza proprietile unui obiect sau element Access se
selecteaz fiecare element n parte dup care se face click pe butonul Properties. n
partea superioar fereastra permite alegera tipului de propriti referitoare la un
anumit obiect:
All properties se refer la toate proprietile care apar la un anumit obiect;
Data properties se refer la proprietile despre date ale obiectului;
Layout properties se refer la caracteristicile obiectului;
Other properties se refer la alte proprieti specifice unui anumit obiect;
Events properties se refer la diverse evenimente (cod program care poate fi
ataat la fiecare obiect);
Fiecare eveniment sau obiect Access are proprietile sale specifice.
Propriettile unui formular pot fi vizualizate prin selecia formularului, click pe
dreptunghiul alb din partea dreapt a acestuia urmat de selecia butonului Properties
Data Properties se refer la datele care apar n formular:
Record Source se refer la tabela sau interogarea care se ataeaz formularului i
care se gsete n baza de date;
Allow Editing se refer la faptul dac este sau nu permis editarea informaiilor;
Allow Updating se refer la permisiunea de actualizare a datelor;
Record Locks se refer la blocarea sau nu a articolelor i se folosete n special la
lucrul n reea.
Pentru cazul prezentat tabela ataat formularului este tabela Angajat avnd
permisiunea de editare i de actualizare.
Layout properties se refer la caracteristicile formului. Aceste sunt prezentate n
figura 4

Formuri n Access

98

Caption definete numele formularului, numele care apare n partea stng


sus a form-ului;
Default view definete vizualizarea implicit a formului. Aceasta poate fi:
single form se vizualizeaz un singur articol;
continuous form formularul este continuu vizualizndu-se mai
multe articole;
datasheet modul de vizualizare este pe linii i coloane, pentru
mai multe artucole
Scroll bars barele de derulare care pot aprea ntr-un obiect text box sau
form pot fi:
neither nu apar n text box i n formulare;
horizontal only bara de derulare apare doar n poziie
orizontal la formulare;
vertical only bara de derulare apare doar n poziie vertical la
fornulare;
both barele de derulare apar att n poziie orizontal ct i n
poziie vertical

Fig. 6
Record Selector selectorul de articole poate fi prezent sau nu;
Navigation Button butonul de derulare articole est prezent sau nu;
Auto Resize opiunea de redimensionare automat este prezent sau nu;
Auto Center proprietatea de poziionare a formului n centrul ecranului,
poate fi prezent sau nu;
Border Style definete stilul n care se face marginea formularului;
Control Box activeaz sau dezactiveaz butonul de mutare sau nchidere a
unei aplicaii dau a unei ferestre;

Formuri n Access

99

Width dimensiunile formularului pe orizontal;


GridX i GridY caroiajul n faza de proiectare. Implicit este 10 i 12;
Layout for Print este implicit No i folosete fonturi ecran.n caz contrar
formularul folosete fonturi de imprimant;
Palette Source poate direciona setul de culori implicite spre un fiier .DIB
sau .PAL etc.
Other properties conine o gam de proprieti care nu pot fi ncadrate n grupele
celelalte. Aceste proprieti sunt vizibile n figura 5.

Fig. 7
Views Allowed vederile permise sunt n modul Form, Datasheet sau
amndou;
Default Editing editarea implicit poate fi: permis adic pot fi modificate,
adugate, terse nregistrri(allow edit), numai n citire(read only), nu este
permis adugarea de articole noi(cant add records), este permis
adugarea de articole noi(data entry);
Allow Filters sunt permise sau nu filtrele;
Shortcut Menu permite sau nu vizualizarea unui meniu la apsarea
butonului drept al mouse-ului;
Menu Bar specific un meniu bar din macrouri folosit mpreun cu
formularul;
Pop Up formularul este deschis sau nu ca un formular popup;
Modal deschide formul ca o fereastr de interogri;
Help File specific un fiier help creat de ctre utilizator
n cadrul unui formular poate fi specificat doar seciunea natetului sau zona de
detalii sau zona de jos a formularului(footer) executnd click pe una dintre aceste
zone. Fiecare dintre aceste zone are proprieti specifice.
Modificarea zonei de antet sau de subsol se poate realiza relativ uor fcnd
click pe barele cu acelai nume i cu butonul mouse-ului apsat trgnd bara pn la
dimensiunile dorite.

Formuri n Access

100

5.3.3 Selectarea, deplasarea i dimensionarea unui obiect de control


n momentul n care efectueaz un click pe suprafaa unui obiect acesta este
selectat. Pentru mutarea obiectului n alt zon dect cea iniial, dup selectare se
poziioneaz mouse-ul n interiorul obiectului selectat i innd butonul mouse-ului
apsat se mut n zona dorit. Modificarea dimensiunilor se realizeaz astfel: dup
selecie se acioneaz dreptunghiul de redimensionare aflat pe una din prile
orizontale. Cursorul devine o sgeat vertical cu dou capete. Se execut click i se
deplaseaz sgeata n noua poziie. Astfel se modific dimensiunile pe vertical adic
nlimea obiectului. Pentru a modifica simultan limea i nlimea obiectului se
execut click pe marcajele de redimensionare aflate pe colurile conturului obiectului
de control. Cursorul mouse-ului devine o sgeat nclinat cu dou capete. Se execut
click i se trage sgeata pn n noua poziie.
Grila de control de pe suprafaa unui formular n faza de proiectare are rolul de
a alinia mai uor obiectele existente n cadrul formului. Comanda View Grid din
meniul modului design stabilete dac grila este activ sau nu.
Propritile subformularului se pot schimba asemntor cu cele ale
formularului. Pentru aceasta, trebuie nchis formularul curent i deschis
subformularul n modul design dup care este acionat butonul Properties.
Subformularul este prezentat fie n modul obinuit al unui form fie n modul
Datasheet, care este i modul implicit de prezentare a unui subformular.
5.4

Butoanele barei de instrumente n modul Form View

Se lanseaz form-ul proiectat n modul Run sau (Form View) .n ordinea in


care apar pe bar butoanele au urmtoarea semnificaie:
1. Selecteaz modul de proiectare al formularului (Form Design);
2. Selecteaz modul de prezentare Datasheet al formularului;
3. Tiprete formularul;
4. Vizualizeaz formularul n modul n care va fi tiprit;
5. Permite introducerea unui nou articol n formular deci i n tabelele asociate;
6. Cut;
7. Copy;
8. Paste;
9. Permite cutarea unei anumite nregistrri;
10. Sortare ascendent;
11. Sortare descendent;
12. Permite editarea unui filtru pe nregistrrile formului;
13. Aplic filtrul realizat;
14. Vizualizeaz toate nregistrrile;
15. Vizualizeaz fereastra database;
16. Reface articolul curent;
17. Reface o aciune nterprins din greeal;
18. Apeleaz Cue Card;

Formuri n Access

101

19. Apeleaz Help-ul mediului Acces.


Folosind aceste butoane asupra formularului se pot realiza o serie de aciuni ca
de exemplu: adugare de nregistrri noi, sortarea nregistrrilor ascendent sau
descendent, cutarea anumitor nregistrri precum i realizarea de filtre asupra
nregistrrilor. Pentru sortare se selecteaz n prealabil cmpul dorit dup care se
realizeaz comanda de sortare.
Folosind proprietile formularelor se poate valida modificarea datele existente
ntr-un formular sau se poate invalida acest lucru, formularul avnd doar rol n
vizualizarea datelor. Se poate aciona diferit din acest punct de vedere asupra
formularului i subformularului.
5.5

Caseta cu instrumente Toolbox

Am vzut n pn acum modul n care am realizat un formular folosind


utilitarul Wizard. Folosind instrumentele Toolbox avem posibilitatea de a realiza un
formular.
n formularele Access exist trei categorii de obiecte de control:
Obiectele de control asociate sunt obiecte ataate unui cmp din sursa
de date a formularului sau subformularului. Sursa de date poate fi o
tabel sau o interogare. Casetele de text sunt cele mai utilizate obiecte de
text asociate. n general obiectele de control asociate afeaz coninutul
unui cmp, ele fiind nsoite de etichete care afieaz proprietatea
Caption a obiectului respectiv. Aceste etichete pot fi terse fr a afecta
obiectul de control;
Obiectele de contol neasociate afieaz date furnizate de utilizator i
care n general sunt independente de sursa de date a formularului sau
subformularului. Acestea pot fi un desen sau imagine bitmap care se
introduc ntr-un formular. Casetele de text neasociate sunt utilizate
pentru introducerea valorilor care nu sunt utilizate pentru actualizarea
unui cmp din baza de date, ci altor scopuri ca de exemplu introducerea
unor valori destinate unor expresii. Unele obiecte neasociate conin i
etichete, altele cum ar fi obiectele OLE nu conin etichete;
Obiectele de control calculate folosesc ca surs de date expresiile.
0. Pointer (indicator) deselecteaz instrumentul selectat anterior. El este
instrumentul activ implicit;
1. Label (eticheta) creaz o caset ce conine texte fixe de descriere sau instruciuni;
2. Text Box (caset de text) creaz o caset care afieaz i permite editarea datelor
de tip text;
3. Option Group (grup de opiune) creeaz o caset dreptunghiular de dimensiune
variabil, n care se pot plasa butoane, comutatoare, butoane de opiune sau casete
de validare. Numai un singur obiect de control din interiorul casetei poate fi
activat la un moment dat;
4. Toggle Button (buton comutator) este un buton care atunci cnd este selectat
comut din starea On n starea Off i invers;

Formuri n Access

102

5. Option Buton (buton de opiune) se mai numete i buton radio care se comport
identic cu butonul comutator;
6. Check Box (caset de validare) creaz o caset de validare care atunci cnd este
selectat, comut ntre starea On i Off. Dac se doresc selectate mai multe opiuni
simultan atunci aceste casete trebuie plasate n afara grupurilor de opiune;
7. Combo Box (caset combinat) este format dintr-o caset de text editabil, n
care putei introduce o valoare i o list din care putei alege o valoare;
8. List Box (caset de list) creaz o caset care conine o list derulant de opiuni
din care putei selecta o valoare. Ea este de fapt o parte a unei casete combinate;
9. Graph (grafic) permite introducerea n formular a unui grafic;
10. Subform (subformular) ataeaz unui formular un subformular;
11. Unbound Object (obiect neasociat) include in formular a unui obiect OLE
obinut de exemplu cu Microsoft Graph sau Microsoft Draw;
12. Bound Object (obiect asociat) afieaz coninutul unui cmp OLE. Pot afia
obiecte grafice, sunete sau imagini video, etc;
13. Line (linie) creaz o linie dreapt care poate fi redimnsionat ulterior;
14. Rectangle (dreptunghi) creaz un dreptunghi ce poate fi redimensionat ulterior;
15. Page Break (delimitatorul de pagin) determin imprimant s treac la pagin
nou ncepnd de la poziia delimitatorului de pagin. n modul Run
delimitatoarele nu sunt afiate;
16. Command Button (buton de comand) execut la selectare o comad macro
Access sau o procedur VBA de tratare a evenimentelor;
17. Control Wizard activeaz utilitarul cu acelai nume;
18. Lock permite ca un element selectat s fie introdus de mai multe ori n form, prin
click pe butonul stng al mouse-lui fr s fie necesar reselectarea lui.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Fig. 8
n continuare, ne punem problema de a ilustra folosirea obiectelor de control.
Pentru aceasta, vom crea un formular nou. n formular se va afia numele i titlul

Formuri n Access

103

angajatului din tabela Angajat, precum i mai multe informaii legate de angajat,
informaii care se gsesc n tabela Actiuni_Personal.
Datorit faptului c tabela Actiuni_Personal conine mai multe informaii
despre un anumit angajat va trebui s realizm o interogare one-to-many prin care s
legm tabela Angajai de tabela Actiuni_Personal.
Se selecteaz:
opiunea query din fereastra database i se face click pe butonul New;
se aleg tabelele Angajai i Actiuni_Personal. Se face legtura ntre
cmpul Marca i nr_matricol din cele dou tabele;
se introduce n prima coloan din query caracterul * din tabela
Actiuni_Personale care semnific faptul c n interogare vor aprea
toate cmpurile tabelei respective;
din tabela Angajai se ale cmpurile Nume, Prenume, Titlu care se
introduc n coloanele 2,3,4i 5;
n coloana Nume se activeaz opiunea de sortare;
se salveaz interogarea sub un nume oarecare.
5.6

Crearea unui formular gol cu antet i subsol

Din fereastra Database se alege opiunea Form i se face click pe butonul New,
se alege din lista derulant care apare (parete superioar a ferestrei) introgarea
realizat anterior, dup care se face click pe butonul Blank Form. n continuare se
va afia caseta Toolbox corespunztoare executnd click pe butonul corespunztor
sau din opiunea View a meniului principal.
dac formularul nu are zonele de antet i subsol se alege din meniul principal
opiunea Format, Form Header/Footer. Dac se dorete ca formularul s apar
fr gril se deselecteaz opiunea din meniu, View. Dac nu se dorete s apar
riglele de pe margine se deselecteaz opiunea Ruler din View;

Formuri n Access

104

modificarea zonei Detail se poate face prin repoziionarea liniilor Detail respectiv
Form Footer de pe ecran;

Fig. 9
n continuare este prezentat modul de realizare al formului din figura 7
5.6.1 Adugarea unei etichete n zona de antet
Eticheta este obiectul cel mai uor de realizat. Se face click pe butonul
corespunztor din zona ToolBox (butonul 1 din fig 6) dup care se poziioneaz n
zona dorit. Pe linia de stare se afieaz numrul de linii i de caractere ce pot fi
scrise n respectiva etichet. Dac eticheta depete limitele zonei de antet atunci
bara Detail se deplaseaz automat, asfel nct eticheta s ncap n zon. Dac nu se
tasteaz cel puin un caracter caseta dispare la urmtorul click al mouseului. n mod
asemntor se creaz i celelalte obiecte de control. Dac se dorete schimbarea
fontului sau a dimensiunilor caracterelor se aleg butoanele corepunztoare de pe bar.
Dac textul nu ncape n caset se poate alege opiunea Format, Size, Size to Fit
pentru ncadrarea perfect a acestuia n caset. Asemntor cu celelalte obiecte, dup
selecia acestuia, i click pe butonul Properties apare o fereastr din care se pot seta o
serie de proprieti ale obiectului. Aceste proprietti sunt structurate ca i propriettle
celorlalte obiecte deci ca i cele enunate pentru formular.
Proprietile Layout se refer la posibiliti de modificare a fontului, a mrimii
acestuia, a culorii textului, a culorii fondului, a culorii marginii, a dimensinilor, a
modului de aliniere a textului n caset etc. Data properties nu are iar other Properties
se refer la numele care I se atribuie obiectului.

Formuri n Access

105

5.6.2 Crearea casetelor de text asciate, multilinie i casetelor calculate


Access utilizeaz urmtoarele patru tipuri de baz de casete de text:
Casete de text cu o singur linie asociate de obicei obiectelor de control din
formular ori cmpurilor unei tabele sau interogri;
Casete de text multilinie asociate de obicei cmpurilor memo i includ o
bar de derulare vertical care permite accesul la textul care nu apare n
caset;
Casete de text calculate, obin valori din expresiile care ncep cu semnul
egal i au de obicei o singur linie. O astfel de caset se poate asocia unui
cmp al unei tabele. Dac nu ea este un obiect neasociat Nu se poate edita
valoarea afiat de o caset de text calculat.
Casetele de text neasociate pot fi create pentru a furniza valori comenzilor
macro i procedurilor VBA.
5.6.3 Casete de text asociate cu o singur linie
Acestea sunt cel mai frecvent utilizate obiecte de control pe un formular
Access. Cu ajutorul acestor obiecte poate fi vizualizat coninutul unor anumitor
cmpuri existente n tabele. Pentru adugarea unei astfel de obiect se procedeaz
astfel:
1. Se activeaz butonul corespunztor listei de cmpuri de pe bara toolbars.
Din lista care apare se selecteaz cmpul dorit;
2. Dup selectarea cmpului, innd butonul mouse-lui apsat, se trage cmpul
peste formular n poziia dorit. n partea dreapt, este eticheta ataat
cmpului. Aceasta conine un anumit text ce poate fi schimbat dup dorina
utilizatorului;
3. Dimensiunile etichetei precum i ale cmpului pot fi modificate dup
dorina utilizatorului. Pot fi modificate i celelalte proprieti ale obiectului
folosind fereastra Properties care se activeaz cu ajutorul butonului
corespunztor.
Pentru exemplul dat, cmpurile din interogarea realizat sunt prezentate prin:
matricol;
nume;
prenume;
nota, comentariu, etc.
5.6.4 Adugarea unei casete de text multilinie, cu bar de derulare vertical
Acesta este un tip special de obiect oferit de ctre mediul Access. Casetele
multilinie permit afiarea irurilor lungi de text pe mai multe rnduri a cror lungime
este determinat de lungimea casetei. Pentru exemplul nostru este cazul casetei
comentariu.

Formuri n Access

106

5.6.5 Crearea unei casete de text calculate.


ntr-o caset de text calculat se poate afia rezultatul oricrei expresii Access
valide. O expresie trebuie s nceap cu sermnul egal i poate conine funcii Access
care returneaz valori. Pentru formularul prezentat este cazul casetei n care este
afiat data curent. Pentru acesta se vor efectua urmtoarele aciuni:
Se alege obiectul Text Box din caseta ToolBox;
Eticheta casetei de text este Date/Time;
n caseta de text se tasteaz =Now() prin care se afieaz valorile curente
ale datei i orei din calculator.
Cu ajutorul memoriei clipboard a mediului Windows folosind opiunile Copy,
Cut, Paste pot fi manevrate cu uurin obiectele existente ntr-un formular.
5.6.6 Modul de afiare a formularului.
Modul de afiare al unui formular este obinut prin opiunea Default View i poate fi:
Single Form prin care se afieaz un singur formular i se afieaz o
singur nregistrare la un moment dat;
Continous Forms sau formulare continue afieaz mai multe nregistrri
fiecare fiind o copie a zonei detail a formularului. Pentru subformularele
create cu utilitarul Form Wizard modul de afiare prestabilit este
Continuous Forms;
Datasheet (formulare tabelare), afieaz cmpurile formularului aranjate n
linii i coloane.
Schimbarea opiunii de afiare se face selectnd din fereastra Properties,
Layout Properties opiunea Default View (Access 2.0), din properties optiunea
Format, pentru Access 95.
5.6.7 Crearea grupurilor de opiune
ntr-un formular pot fi alese diverse butoane care definesc diferite aciuni.
Dac se dorete gruparea acestora se poate proceda n dou moduri: manual sau
folosind utilitarul predefinit Option Group Wizard. Pentru generarea grupului de
butoane de pe formularul nostru se va face click pe butonul Control Wizard i apoi
pe butonul Option Group
n prima fereastr care apare se aleg valorile pentru butoane: excelent, bun,
acceptabil, suficient insuficient. Se execut apoi click pe butonul Next. n cea de a
doua fereastr care va apare, se va stabili opiunea yes pentru valoarea prestabilit
(prima valoare din list, care va aprea la execuia formularului). Se face click pe
butonul Next i va apare cea de a treia fereastr de dialog. n aceast fereastr se vor
stabilii valori dorite pentru fiecare opiune. Se execut click. n cea de a patra
fereastr se va stabili legtura dintre grupul de butoane i un anumit cmp din tabel
sau dintr-o interogare. n cazul nostru cmpul ales este nota. Al cincilea dialog va
permite stabilirea stilului n care este afiat un anumit grup de butoane. Ultima caset

Formuri n Access

107

de dialog permite s se determine numele titlului care va apare deasupra grupului de


butoane.
n cazul n care se dorete o aciune manual fr afolosi utilitarul Wizard se
pot alege unul sau mai multe obiecte numite:
Toggle Button;
Option Button;
Check Box;
Aceste butoane pot fi folosite separat sau impreun pentru diverse aciuni. Se
vor aciona butoanele corespunztoare opiunii dorite dup care folosind fereastra
Properties acestea vor fi personalizate individual din punct de vedere al aciunii prin
acionarea butonului, dimensiunile acestuia, legtura cu un anumit cmp dintr-o
tabel etc.
5.6.8 Utilizarea casetelor list i casetelor combinate
Acest tip de obiect permite alegerea unei anumite informaii dintr-o list i nu
tastarea acestuia i introducerea ntr-o tabel. Casetele list permit vizualizarea
informaiilor tot timpul. Ele se numesc n mediul Access, ListBox. Casetele
combinate i listele derulante se mai numesc ComboBox. Ele ocup spaiu mai puin
pe formular i trebuie deschise pentru a putea selecta o anumit valoare. Acestea sunt
nsoite de ctre o caset de text, n care se poate tasta valoarea dorit pentru a putea
gsi mai rapid informaia dorit. O astfel de list poate conine unul sau mai multe
cmpuri ale unei tabele, ale unui query, o serie de valori ale utilizatorului sau funcii
proprii mediului Access. Cele mai frecvent utilizate obiecte sunt acelea care conin
doar dou cmpuri. Prima coloan conine codul care actualizeaz valoarea cmpului
la care este asociat obiectul de control, iar a doua coloan conine numele codului.
Pentru generarea acestor obiecte, poate fi folosit i utilitarul Wizard. Pentru aceasta
nainte de a alege obiectul ListBox sau ComboBox se exexcut click pe butonul
Control Wizard.
Generarea manual presupune urmtoarele etape:
se deschide formularul;
se dezactiveaz butonul Control Wizard;
se selecteaz obiectul ComboBox din bara de instrumente;
se selecteaz fereastra Properties (click pe butonul corespunztor) din care
se alege opiunea Data Properties;
se alege n opiunea Control Source numele cnpului din tabela sau
interogarea asociat formului n care se vor introduce valori din sursa
selectat n proprietatea Row Source;
din proprietatea Row Source se aleg cmpurile care vor aprea n lista
derulant i cmpul care va fi surs pentru caseta combinat;
se selecteaz Layout Properties din care se va selecta proprietatea Column
Count cu ajutorul creia se vor specifica numrul de coloane care va apare
n list;

Formuri n Access

108

prima coloan din tabela sau interogarea selectat ca i surs va fi funcie de


valoarea existent n coloana Bound Column (n data Properties)
Dac sursa de date specificat de ctre Row Source este Table Query atunci
se poate nlocui valoarea acestei proprieti cu o instruciune SQL.
O caset combinat se poate realiza selectnd valorile dintr-o list de valori creat
anterior. O astfel de caset se poate realiza cu ajutorul dialogului Combo Box
Wizard astfel:
n prima fereastr a dialogului care apare se selecteaz opiunea I will type
in values that I want, dup care se face click pe butonul next;
n urmtoarea fereastra care apare, se va selecta numrul de coloane necesar
i se va stabili mrimea coloanelor i se apas next;
Se stabilete coloana care conine valoarea pe care dorii s-o pstrai sau s-o
utilizai ulterior. Aceasta trebuie s fie o coloan care conine valori unice.
Se execut click;
A cincea caset de dialog stabilete dou posibiliti i anume: memorarea
valorilor din coloan pentru alte utilizri sau scrierea acestora n coloana n
care se dorete. Dup stabilirea opiunii dorite se activeaz butonul Finish i
dialogul se ncheie.
Dac se dorete ca acest proces s se desfoare manual, atunci n proprietatea
Row Source din caseta de dialog Properties - Data Proprties se va introduce un ir
de caractere astfel:
Valoare_n_coloana_1;valoare_n_coloana_2; pentru rndul 1
Valoare_n_coloana_1;valoare_n_coloana_2; pentru rndul 2 etc.
5.6.9 Crearea unui subformular al unui formular dat
n mediul Access 2.0 se poate introduce un formular n alt formular. Acest
lucru este posibil i n Access 95 dar n acest mediu, exist posibilitatea de a realiza
folosind utilitarul Wizard un subformular, care n prealabil nu exista. Dac dorim
introducerea unui subformular ntr-unul deja existent se va selecta din bara toolbar,
butonul care corespunde tipului subformular, iar n caseta Properties se alege din
opiunea Data Source numele formularul care se dorete s fie subformular.
Subformularul se poate comporta ca o entitate independent n cadrul formularului
printe precum i mpreun cu acesta. El poate conine cmpuri ale unei tabele sau ale
unui query etc, la fel ca orice formular de sine stttor.
5.6.10 Crearea formularelor continue
Pentru a prezenta informaiile din mai multe nregistrri se pot realiza
formulare continue, alegnd n procesul de realizare a formularului din caseta
Properties, a obiectului Form, opiunea Layout Properties, opiunea Default View,
valoarea Continuous Form.

Formuri n Access

109

5.6.11 Includerea antetului i a zonei de subsol n formular i n paginile tiprite


Seciunile Page Header/Footer selectate din meniul format, apar doar atunci
cnd este tiprit un formular. Ele nu apar pe ecran n modul Run. Seciunea de antet
permite utilizarea unui titlu diferit pentru formularul tiprit. Subsolul de pagin
permite introducerea numrului de pagin precum i data n care acesta este elaborat.
5.7

Probleme rezolvate

Se consider baza de date producie care are urmtoarele tabele:


Produse
COD_PRODUS
prod001
prod002
prod010
prod060
prod080
prod500

DENUMIRE
recorder
televizor
walkman
videocasetofon
videocasetofon
radiocasetofon

COD_DEPOZI
dep01
dep01
dep01
dep10
dep10

COD_PRODUS
prod001
prod060
prod080
prod060
prod080

COD_DEPOZI
dep01
dep10

LOCALITATE
bucuresti
pitesti

PRET
800000
160000
300000
430000
280000
105000

Stocuri
CANTITATE
50
150
100
200
50

Depozite

Beneficiari
COD_BENEFI
bnf011
bnf012
bnf013

NUME
vasilescu
georgescu
marinescu

ADRESA
bucuresti salcimilor 27
bucuresti salcimilor 4
pitesti privighetorii 12

Formuri n Access

110

Comenzi
NUMAR COMANDA DATA
COD_BENEFI
1014
11/23/96 bnf011
2200
6/28/96 bnf013
Facturi
NUMAR
1014
1014
2200
2200

COD_PRODUS
prod001
prod002
prod020
prod500

CANTITATE
2
1
2
3

Exemplul 1
Se consider tabela produse. S se realizeze un form prin care sunt vizualizate
informaiile din tabela produse.
Pentru a realiza acest form se realizeaz urmtoarele aciuni:
din fereastra database se acioneaz butonul Forms - New;
se definete tabela din care se vor prelucra datele i se alege modul de lucru
Blank Form;
n fereastra Form care apare se alege Form Header din meniul format;
n zona FormHeader se alege un control text care conne Coninutul tabelei
Produse;
n zona Details se introduc cmpurile din tabela Produse. Se alege controlul
Text Box i n Properties - Data Properties- Control Source se alege numele
cmpului. O alt metod de definire a obiectelor dorite este urmtoarea: se
acioneaz butonul Field List i se trage cmpul dorit n zona detail. Se
procedeaz identic pentru celelalte cmpuri;
Se definesc proprietile formului i ale obiectelor don Properties - Layout
Properties.
Formul realizat este prezentat n figura 8.

Formuri n Access

111

Fig. 8
Exemplul 2
S se realizeze un formular prin care sunt prezentate informaiile din tabelele
Produse i Stocuri.
Se realizeaz o interogare prin care sunt legate prin intermediul codului
produs cele dou tabele;

Fig. 9
Se acioneaz butoanele pentru crearea unui formular nou care are zonele
Details, Form Header, Form Footer.
Se introduc n zona Detail cmpurile din interogare.
Rezultatul este formularul din figura 9
Exemplul 3
S se realizeze un form prin care pot fi apelate alte formulare.

Formuri n Access

112

Formularul va conine diverse butoane prin care se apeleaz formularele dorite.


Etapele de realizare sunt urmtoarele:
se realizeaz un form nou;
se aleg controalele obiect pentru tipurile de butoane existente n Access.
Vor fi apelate formulare create anterior.
Formul realizat este prezentat n figura 10. Formularele sunt apelate prin
nscrierea n metoda (events) on click a urmtoarelor linii de comand:
DoCmd OpenForm "produse" pentru apelul form-ului cu numele produse;
DoCmd OpenForm "stocform" pentru apelul form-ului cu numele stocuri;
DoCmd Close pentru nchiderea formului care conine butoanele;

Fig. 10

Exemplul 4
S se relizeze un formular prin care pot fi vizualizate unele cmpuri dintr-o
tabel prin selectarea unui anumit cmp dintr-un control List Box sau Combo Box.
se creeaz un form nou;
n zona Form Header se introduc controalele de cutare List Box i Combo
Box. Cmpul Denumire din tabela Produse se ataeaz acestor controale ;
n zona Details se introduc cmpurile tabelei Produse.

Formuri n Access

113

Formularul realizat este prezentat n figura 11. Se alege denumirea dorit din unul
dintre cele dou controale i se vizualizeaz informaiile din tabela Produse.

Fig. 11
Exemplul 5
S se realizeze un form care conine un subform. Formularul care este subform
este realizat n prealabil. n formularul principal vor fi vizualizate informaii
referitoare la tabela Produse iar n subformular informaii referitoare la tabela stocuri.
se creaz subformularul n care, se introduce n zona Details cmpurile tabelei
stocuri. Acesta este de tipul Datasheet;
se creaz formularul principal n care se introduc cmpurile tabelei produse;
se realizeaz obiectul subformular n formularul principal cu ajutorul butonului cu
acelai nume de pe bara cu butoane.
Rezultatul acestor aciuni este formularul din figura 12

Formuri n Access

114

Fig. 12

Capitolul

6
Rapoarte
n aceast capitol este prezentat modul de obinere al unui raport simplu dintr-un
tabel. Rapoartele sunt utile pentru comunicrile cu alte persoane. n cazul
programului Microsoft Access, modalitatea optim de comunicare a unor date este
prin intermediul unui formular sau al unui raport. Capitolul 5 v-a artat cum s
folosii formularele pentru a v transmite rezultatele. Formularele sunt utile pentru
raportri simple, ca i pentru trecerea n revist i editarea datelor. Limitrile lor se
datoreaz faptului c nu pot grupa datele, pentru afiare i calcule pe grupuri, c avei
mai puin control asupra aezrii n pagin i nu putei insera un raport ntr-un
formular. Rapoartele nu pot fi utilizate la trecerea n revist ori editarea datelor, dar
permit un control superior n privina aezrii n pagin, posibilitatea gruprii datelor
pentru totaluri i de inserare n raport a unui grafic, ori chiar a altui raport.
6.1

Crearea unui raport

Microsoft Access include o facilitate Raport Wizard, care uureaz obinerea


rapoartelor din tabele sau cereri. Pentru a crea un raport, deschidei baza de date dac
nu este deja deschis. (Selectai Open Database din meniul File, sau executai click
pe pictograma Open Database din bara cu instrumente de lucru) Cnd apare
fereastra Database, alegei butonul Report din stnga, apoi selectai New. Putei
alege dup aceea ntre Report Wizards i Blank Report (fig 1).

Fig. 10
n caseta de text Select a Table/Query, executai click pe sgeata descendent din

Rapoarte n Access

116

dreapta. Se deschide o caset cu lista tabelelor disponibile din care putei construi
rapoarte. Executai click pe numele tabelului dorit pentru raport, apoi selectai
Report Wizards.
Urmtorii pai v permit s creai un raport cu ajutorul lui Report Wizard:
1. Pe primul ecran, selectai Single-Column drept instrument Wizard pe care dorii
s-l folosii, apoi executai click pe OK;
2. Alegei cmpurile pentru raport, sau selectai ca s mutai toate cmpurile n
caseta-list Field order on report (fig. 2). Apoi alegei Next >;
3. Alegei cmpul sau cmpurile dup care dorii s facei sortarea i selectai Next
>.
4. Alegei aspectul raportului. Pentru exemplul nostru, alegei Executive (fig.3) i
executai click pe Next >.
5. Introducei un titlu pentru raport, apoi alegei Finish. Report Wizard creeaz
raportul i afieaza imaginea prealabil a ceea ce se va tipri.

Fig. 11

Fig. 12

Rapoarte n Access

117

6.1.1 Vizualizarea prealabil a raportului


Imaginea prealabil a tipririi ofera o idee asupra felului n care va arta
raportul i cte pagini va avea. Paginile vor fi mrite i le putei derula folosind barele
de derulare orizontale i verticale; de asemenea, putei utiliza butoanele Pagin din
partea inferioar a ferestrei. Sgeile interioare v deplaseaz cu cte o pagin o dat,
iar sageile exterioare v deplaseaz rapid la prima sau la ultima pagin. Pentru a
vedea ntreaga pagin, deplasai cursorul mousului pe ea (cursorul se transform n
imaginea unei lupe) i executai click. Putei reveni la vederea mrit, executnd click
n locul unde dorii s privii. Putei oricnd intra n modul de vizualizare prealabil a
unui raport, alegnd Print Preview din meniul File.
6.1.2 Tiprirea raportului
Raportul poate fi tiprit, alegnd butonul Print (Tiprire) din bara cu
instrumente de lucru, ori Print din meniul File. Apare o caset de dialog. Indicai
opiunile dorite, apoi alegei OK.
6.1.3 Salvarea raportului
Dup ce ai creat un raport este bine s-l salvai. Pentru aceasta, alegei Save
As din meniul File. Introducei denumirea sub care dorii s salvai raportul i
executai click pe OK. Nu folosii numele unui tabel, raport sau cerere deja existente.
6.2

Configurarea personal a rapoartelor

6.2.1 Modificarea formei unui raport


Forma unui raport poate fi modificat n mai multe feluri. De pild, putei muta
obiecte n diferite locuri, le putei redimensiona, putei aduga etichete i prevedea
atribute de text. Ca s modificai un raport, procedai astfel:
1. Deschidei baza de date i alegei butonul Report din fereastra Database.
Lista arat toate rapoartele existente n baza de date.
2. Selectai raportul pe care intenionai s-l modificai i alegei butonul
Design din fereastra Database. Raportul este afiat (fig. 4). El poate fi
modificat precum un formular.
6.2.2 Redimensionarea controalelor
Fiecare obiect de pe raportul afiat este un control. n modul Design al
raportului, putei deplasa i redimensiona controalele, sau adaug altele noi. Controlul
este un obiect dintr-un raport sau formular care afieaz datele unui cmp, rezultatul
unui calcul, un text, un grafic, o imagine sau alt obiect. Pentru a manipula un control,

Rapoarte n Access

118

mai nti trebuie s-l selectai. Ca s selectai o caset de text cu etichet, executai
click pe caseta de text asociat. Caseta de text cu eticheta asociat va fi afiat cu
puncte de control impus. Acestea va permit urmtoarele modificri:
Pentru a redimensiona o caset pe vertical, tragei punctul impus, superior
sau inferior;
Pentru a redimensiona o caset pe orizontal, tragei punctul impus, drept
ori stng;
Pentru a redimensiona o caset att pe orizontal ct i pe vertical, tragei
pe diagonala punctele impuse din col.

Fig. 13
Ca s aliniai rezultatul obinut, utilizai riglele afiate. Putei selecta i mai
multe controale simultan, innd apsat tasta S i executnd click pe ele.
6.2.3 Deplasarea controalelor
Microsoft Access v permite s deplasai o caset de text i eticheta ei asociat,
laolalt sau separat. Pentru a le deplasa separat, selectai controlul, apoi tragei
punctul cel mare de control impus din colul stng superior. Acesta e cunoscut drept
punct de mutare. Pentru a deplasa laolalt caseta de text i eticheta, executai click pe
un control. Cnd sgeata mouse-ului se transform ntr-o palm, deplasai. caseta de
text i eticheta ei n noua poziie. Atunci cnd deplasai i redimensionai controalele,
putei efectua alinieri cu ajutorul riglelor.
6.2.4 Adugarea unei etichete
O etichet nu este altceva dect text adugat ulterior unui raport, pentru a afia
informaie. Titlul deja existent dat raportului reprezint un tip de etichet. Putei, de

Rapoarte n Access

119

asemenea, s adugai i alt text n raport ca de exemplu numele companiei


dumneavoastr. Eticheta nu este legat de alte controale. Ca s adugai o etichet,
folosii caseta cu instrumente de lucru (fig 5). Aceasta apare atunci cand deschidei
un raport n modul Design; dac nu apare pe ecran, alegei Toolbox din meniul View,
pentru a fi afiat. Executai click pe butonul Label (situat n stnga, n rndul al
doilea, marcat cu un A). Apoi executai click pe raport n locul unde vrei s fie
eticheta i introducei textul dorit.

6 7

9 10 11 12 13 14 15 16 17 18 19
Fig.14

Butoanele casetei de lucru au urmtoarea semnificaie


1. Pointer(indicator) deselecteaz instrumentul selectat anterior. El este
instrumentul activ implicit;
2. Label (eticheta) creeaz o caset ce conine texte fixe de descriere sau
instruciuni;
3. Text Box (caset de text) creaz o caset care afieaz i permite editarea
datelor de tip text;
4. Option Group (grup de opiune) creaz o caset dreptunghiular de
dimensiune variabil, n care se pot plasa butoane, comutatoare, butoane de
opiune sau casete de validare. Numai un singur obiect de control din
interiorul casetei poate fi activat la un moment dat;
5. Toggle Button (buton comutator) este un buton care atunci cnd este
selectat comut din starea On n starea Off i invers;
6. Option Buton (buton de opiune) se mai numete i buton radio care se
comport identic cu butonul comutator;
7. Check Box (caset de validare) creaz o caset de validare care atunci cnd
este selectat, comut ntre starea On i Off. Dac se doresc selectate mai
multe opiuni simultan atunci aceste casete trebuie plasate n afara
grupurilor de opiune;
8. Combo Box (caset combinat) este format dintr-o caset de text editabil,
n care putei introduce o valoare i o list din care putei alege o valoare;
9. List Box (caset de list) creaz o caset care conine o list derulant de
opiuni din care putei selecta o valoare. Ea este de fapt o parte a unei casete
combinate;
10. Graph (grafic) permite introducerea n raport a unui grafic;
11. Subform (subformular) ataeaz unui raport un subformular;
12. Unbound Object (obiect neasociat) include in raport a unui obiect OLE
obinut de exemplu cu Microsoft Graph sau Microsoft Draw;

Rapoarte n Access

120

13. Bound Object (obiect asociat) afieaz coninutul unui cmp OLE. Pot
afia obiecte grafice sau sunete sau imagini video, etc;
14. Line (linie) creaz o linie dreapt care poate fi redimensionat ulterior;
15. Rectangle (dreptunghi) creaz un dreptunghi ce poate fi redimensionat
ulterior;
16. Page Break (delimitatorul de pagin) determin imprimanta s treac la
pagin nou ncepnd de la poziia delimitatorului de pagin. n modul Run
delimitatoarele nu sunt afiate;
17. Command Button (buton de comand) la selectare execut o comad
macro Access sau o procedur VBA de tratare a evenimentelor;
18. Control Wizard activeaz utilitarul cu acelai nume;
19. Lock permite ca un element selectat s fie introdus de mai multe ori n
form, prin click pe butonul stng al mouse-lui fr s fie necesar
reselectarea lui.
6.2.5 Configurarea textului
Putei modifica textul oricrui raport, schimbnd fonturile, mrimile, culoarea,
alinierea i atributele (normal, ngroat, cursiv). Pentru a schimba aspectul textului
dintr-un control, executai urmtorii pai:
1 Executai click pe controlul pe care dorii s-l modificai.
2 Executai click pe oricare dintre butoanele Cut, Copy, Paste, Aliniere la
stnga, Aliniere la dreapta, Centrare, Justfy, Alegere Font i Mrime Font
ale barei cu instrumente de lucru, pentru a configura textul;
3 Pentru a stabili culoarea textului, executai click pe butonul Palette sau
selectai Palette din meniul View;
4 Dup ce ai terminat lucrul, alegei Size to Fit din meniul Format, pentru a
redimensiona eticheta la dimensiunile noului text.
6.2.6 Adugarea unui cmp la un raport
Dup ce ai creat un raport, i putei aduga cmpuri. Deschidei raportul n
modul Design, apoi deschidei lista de cmpuri. Dup aceea, putei deplasa cmpurile
n locul cuvenit din raport.
6.2.7 Crearea unui raport cu date grupate
Folosind Microsoft Access, puteti crea rapoarte cu date grupate, astfel nct s
v arate subtotaluri i totaluri. De exemplu, s presupunem ca dorii s creai un
raport care sa v arate vnzrile pe regiuni, indicnd i totalul general. Vei utiliza
Report Wizard pentru a crea raportul din acelai tabel (fig 6), n modul urmtor:
1 Selectai Report din fereastra Database;

Rapoarte n Access

121

2 Executai click pe butonul New din fereastra Database;


3 n fereastra New Report, alegei tabelul Angajatr din caseta-lista, apoi
alegei Report Wizards;
4 Din ecranul pe care se afieaz instrumentele Report Wizards, alegei
Groups/Totals, apoi apsai OK;
5 Pe urmtorul ecran, selectai cmpurile ce trebuie tiprite i ordinea lor;
Alegei Next >.
6 Pe urmtorul ecran, alegei sortarea dup cmpul dorit. Alegei Next >;
7 Pe urmtorul ecran, alegei modul de grupare Normal", apoi Next >;
8 Pe urmatorul ecran, alegei calculul totalului pentru cmpul PROFESIA,
apoi executai click pe Next >.
9 Configurai aspectul n modul Executive (aspectul prestabilit), apoi
alegei Next >;

Fig 6
10 Introducei titlul i alegei Finish pentru a vedea raportul.
6.3

Crearea graficelor

n aceast paragraf vei vedea cum se adaug cum se adaug i un grafic unui
raport. Graficele ofer informaii vizuale i sunt extrem de utile persoanelor care n-au
timp s citeasc un intreg raport. De pild, un director foarte ocupat poate prefera s
examineze graficul vnzrilor pe regiuni dect s descifreze un raport statistic.
Considerm baza de date prezentat n capitolele precedente. Considerm c
dorim s obinem un grafic care ilustreaz situaia salariilor pe profesii. Pentru
aceasta procedm astfel:
1. Se alege butonul Graph ntr-un raport nou sau ntr-un raport existent. Prin
acionarea butonului se declaneaz generatorul de grafice;

Rapoarte n Access

122

2. Se alege tabela Angajatr din care se va genera graficul;


3. Se aleg cmpurile Salar i Profesia, funcie de care se va genera graficul;
4. Se alege tipul de grafic dorit, precum i diverse particulariti ale acestuia.
Rezultatul este prezentat n figura 7

Fig. 7

Capitolul

7
Funcii referitoare la tipurile de date Access
Pentru a lucra eficient n Access este necesar s tii modul n care s creai expresii
folosind operatori, constante, identificatori i funcii.
Operatorii sunt aritmetici, de atribuire i comparare (relaionali), de concatenare,
de identificare i logici. De asemenea operatori sunt operatorii: Between, In, Is,
Like;
Constantele (literals) sunt introduse de utilizator. Ele sunt folosite la stabilirea
datelor iniiale i n combinaie cu identificatorii cmpurilor la compararea
valorilor din cmpurile tabelelor;
Identificatorii sunt numele obiectelor Access: tabele, interogri, rapoarte,
formuri, module. Mediul conine cinci constante predefinite denumite care
servesc i ca identificatori: True, False, Yes, No i Null. Constantele denumite i
variabile pe care le creai n limbajul de programare Access VBA sunt de
asemenea identificatori;
Funciile ntorc n general o valoare n locul numelui funciei.;
Perechea de paranteze drepte([]), trebuie s ncadreze numele obiectelor Access.
n general la definirea numelor obiectelor este bine s nu fie folosite spaii,
eventual liniua de subliniere (underscore)_.
7.1

Operatori care apar n expresiile Access


Operatorii sunt de mai multe tipuri i anume:
arimetici care sunt +, - (i pentru semn), *, /(mparte un operand la altul), \
(mparte un operand ntreg la altul), mod (ntoarce restul mpririi la un
ntreg), ^ (ridic un operand la o putere;
relaionali sunt <, >, <=, >=, <> (diferit), =. Operatorul = mai este
considerat i operator de atribuire. Rezultatul unei comparri este
ntodeauna un rezultat logic de tipul True sau False, cu excepia cazului
cnd unul dintre operanzi are valoarea Null. n aceast situaie orice
comparare ntoarce rezultatul Null, deoarece aceasta reprezint o valoare
necunoscut care nu se poate compara cu una tiut.
logici sunt and, or, not, xor (sau exclusiv), eqv(echivalent) i Imp
(implicaie). Ultimii trei operatori se folosesc foarte rar, de aceea, de obicei
se neglijaz;

Tema de cas

134

de concatenare, combin dou valori text ntr-un singur ir de caractere.


irul ABD concatenat cu irul FGH=> irul ABDFGH. Cel mai
uzual operator de concatenare este caracterul ampersand (&). Ca i
operator de concatenare mai poate fi folosit i caracterul plus +;
de identificare sunt !(semnul exclamrii, denumit adeseori i operatorul
bang) i .(punct). Ele execut urmtoarele operaii:
combin clasele de obiecte cu numele unui obiect pentru al
identifica;
deosebete numele obiectelor de proprieti;
identific anumite cmpuri din diverse tabele.
ali operatori care se folosesc n Access sunt:
Is folosit mpreun cu Null pentru a stabilii dac o valoare este Null
sau Not Null;
Like stabilete dac o valoare a unui ir ncepe cu unul sau mai
multe caractere;
In stabilete dac un anumit ir se gsete n interiorul altui ir sau
ntr-o list de caractere;
Between stabilete dac o valoare numeric se gsete ntre alte
dou valori numerice.
Constantele pot fi numerice pozitive sau negative, text sau ir de caractere, date
calendaristice/timp.
Variabilele de memorie sunt zone de memorie care primesc un nume i care conin
date de un anumit tip. Variabilele de memorie au tipul de dat identic cu tipul de date
folosit n tabelele Access.
Tipul de date Variant este un tip specific mediului Access, el permiind
concatenarea de valori de tipuri diferite, precum un ntreg i un ir de caractere, fr s fie
necesar folosirea instruciunilor de conversie a datelor.
Funciile au sintaxa format dintr-un nume urmat de paranteze rotunde (). ntre
paranteze pot exista mai muli parametrii. n general n mediul Access funciile sunt de
dou categorii:
cu carecter global care acioneaz asupra tuturor tipurilor de date ale mediului;
care aconeaz numai asupra unui anumit tip de dat.
7.2

Funcii pentru tipul de date data calendaristic i timp

Variabila de tip dat calendaristic este ncadrat ntre semnele #. De exemplu dac
dorim sdefinim variabila data_c de tip dat calendaristic avem:
data_c = #20-10-98#
Funcie
Date()
Date$()

Descriere
i Returneaz data i ora curent a
sistemului ca tip variant sau string.
La funcii n mediul Access 95

Exemplu
?date()
24.10.1998
?date

Tema de cas

135

parantezele pot s lipseasc.

Dateadd()

Returneaz o dat care poate fi mai


mare sau mai mic cu o valoare
numeric dect data considerat.
Numrul adugat poate fi zile(d)
sau luni(m) say ani(yyyy)

Datediff()

Returneaz un numar ntre egal cu


diferena
dintre
dou
date
calendaristice. Acest numr poate fi:
numrul de zile(d), numrul de
luni(m), numrul de sptmni
(w) sau numrul de ani(yyyy)
Returneaz
un
ntreg
care
reprezint: ziua sau luna sau
sptmna, sau anul, funcie de
caracterul de control de pe prima
poziie.

Datepart()

Dateserial()
Datevalue()
Day()
Hour()
Minute()
Month()
Now()
Second()

Returneaz subtipul Variant din


argumentele an, lun, zi
Returneaz data n formatul caracter
Returneaz un ntreg ntre 1 i 31
care reprezint ziua dintr-o dat
calendaristic
Returneaz un ntreg ntre 0 i 23
care reprezint ora dintr-o dat
calendaristic.
Returneaz un ntreg ntre 0 i 59
care reprezint minutul dintr-o dat
calendaristic.
Returneaz un ntreg ntre 1 i 12
care reprezint luna dintr-o dat
calendaristic.
Returneaz data curent i ora din
calculator
Returneaz un ntreg ntre 0 i 59

24.10.1998
?date$
10-24-1998
?date$()
10-24-1998
?dateadd("d",31,date)
?dateadd("m",31,date)
24.11.1998
24.05.2001
?dateadd("yyyy",31,date)
24.10.2029
?datediff("d","01-03-98",date)
237
?datediff("m","01-03-98",date)
7
?datediff("yyyy","01-03-98",date)
0
?datepart("d",date)
24
?datepart("m",date)
10
?datepart("yyyy",date)
1998
?datepart("w",date)
7
?dateserial(98,10,24)
24.10.1998
?datevalue("24-oct-98")
24.10.1998
?day(date)
24
?hour("01:20 PM")
13
?Minute("01:20 Am")
20
?month(date)
10
?now
24.10.1998 17:56:14
?second("01:24:23")

Tema de cas

136

care reprezint secunda dintr-o dat 23


calendaristic.
Time()
i Returneaz poriunea timp dintr-o ?time()
Time()$
valoare data calendaristic/timp
17:57:35
?time$
17:57:54
Timeserial() Returneaz valoarea serial a orei ?timeserial(17,58,34)
exprimat n ore minute i secunde 17:58:34
Timevalue() Returneaz ca tip Variant valoarea ?timevalue("17:59")
serial a orei introdus ca valoare 17:59:00
string
Weekday()
Returneaz ziua din sptmn ?weekday(date)
corespunztoare
datei 7
calendaristice. Duminica (Sunday)
este considerat prima zi a
sptmnii.
Year()
Returneaz anul dintr-o valoare ?year(date)
Date/Time
1998

?time
17:57:43

n general funcia fr caracterul $ returneaz subtipul Variant string iar cu $ tipul Text din
VBA.
7.3

Funciile matematice i trigonometrice

Funcie
Abs()
Atn()
Cos()
Exp()
Fix()
Int()

Log()

Descriere
ntoarce valoarea absolut a unei
valori numerice
Returneaz n radiani, arctangenta
unei valori numerice
Returneaz n radiani cosinusul
unghiului reprezentat de o valoare
numeric
Returneaz exponeniala unei
valori numerice
i Funcii identice dar care se
comport diferit pentru valori
negative. Ele trunchiaz partea
zecimal.

Sintax
?abs(-34)
34
?atn(1)
0,785398163397448
pi=3.141593
?cos(pi/4)
0,707106719949293
?exp(2.302585)
9.9999990700
?int(34.65)
34
?fix(34.65)
34
?int(-34.65)
-35
?fix(-34.65)
-34

Returneaz logaritmul natural al ?log(23)

Tema de cas

137

unei valori numerice


Returneaz un numr aleator

Rnd()

Sgn()

Returneaz semnul unei valori


numerice; 0 dac este pozitiv i 1 dac este negativ

Sin()

Returneaz n radiani sinusul unei


valori numerice
Returneaz rdcina ptrat a unui
numr
Returneaz n radiani tangenta
unei valori numerice

Sqr()
Tan()
7.4

3,13549421592915
?rnd
0,2895625
?rnd
0,5795186
?sgn(23.4)
1
?sgn(-23.4)
-1
?sin(pi/4)
0,707106842423796
?sqr(81)
9
?tan(pi/4)
1,00000017320512

Funcii care se refer la tipul de dat Textsau ir de caractere

Funcia
Asc()

Chr()
Chr$()

Returneaz
caracter

Descriere
valoarea numeric

Exemplu
a

unui ?asc("y")
121
?asc("Y")
89
i Returneaz irul de caractere corespunztor ?chr(121)
valorii numerice ASCII
y
?chr(89)
Y
?chr$(121)
y
?chr$(89)
Y

Format() i Aranjeaz o expresie conform formatelor ?format(date,"dd=mm=yy")


Format$() irurilor
24=10=98
?format$(date,"dd=mm=yy")
24=10=98
Instr()
Returneaz poziia unui ir n cadrul altui ir ?instr("aadgfhg","dg")
3
Lcase() i Returneaz irul iniial scris cu litere mici
?lcase("ABVCDE")
Lcase$()
abvcde
?lcase$("ABVCDE")
abvcde
Left()
i Returneaz cele mai din stnga caractere ale ?left("adfghty",4)
Left$
irului
adfg

Tema de cas

138

?left$("adfghty",4)
adfg
Len()
Returneaz ca tip Long numrul de caractere ?len("asdfgtrewqyutytttyt")
dintr-un ir
19
Ltrim() i Elimin spaiile de la nceputul irului
?ltrim("
asdferee")
Ltrim$
asdferee
Mid()
i Extrage un subir de caractere dintr-un ir ?mid("asdfgreteee",4,67)
Mid$()
dat de la o anumit poziie
fgreteee
?mid$("asdfgreteee",4,2)
fg
Right() i Returneaz cele mai din dreapta caractere ?right("asdfghhy",5)
Right$()
ale unui ir
fghhy
?right$("asdfghhy",5)
fghhy
Rtrim() i Elimin spaiile de la sfritul irului de ?rtrim("addsasffa ")
Rtrim$()
caractere.
addsasffa
?rtrim$("addsasffa ")
addsasffa
Space() i Returneaz un ir care conine numrul de ?space(20)
Space$
spaii specificat
?space$(20)
Str()
i Transform ntr-un ir valoarea oricrui tip ?str(12345645678.678)
Str$()
de dat
12345645678.678
?str$(12345645678.678)
12345645678.678
Strcomp() Compar dou iruri i returneaz un ?strcomp("ABCD","ABCD")
rezultat ntreg cu privire la comparare; 0 0
dac irurile sunt identice i -1 dac sunt ?strcomp("ABC","ABCD")
diferite.
-1
String() i Returneaz un ir format din caracterele care ?string(6,"a")
String$()
se repet de un anumit numr de ori.
aaaaaa
?string$(6,"a")
aaaaaa
Trim() i Elimin spaiile de la nceput i de la ?trim(" asaassa ")
Trim$()
sfritul unui ir de caractere.
asaassa
?trim$(" asaassa ")
asaassa
Ucase() i Transform un ir de caractere n caractere ?ucase("yyryryrt")
Ucase$()
mari
YYRYRYRT
?ucase$("yyryryrt")
Val()
Transform un ir de caractere ntr-o valoare ?val("34334.67")
numeric
34334,67
?val("34334n67")
34334

Tema de cas

139

?val("34334,67")
34334
7.5

Funcii de conversie a tipurilor de date Numeric, Logical, Date/Time i Text


Cu ajutorul acestor funcii se poate transforma o valoare numeric n orice tip de

dat.
Funcia
Descriere
Exemplu
Cbool() Transform o valoare numeric n tipul Logical sau ?cbool(56)
Boolean (True sau False)
True
?cbool(0)
False
Cbyte() Transform o valoare numeric n tipul Byte(0-255) ?cbyte(34)
34
Ccur()
Transform o valoare numeric n tipul Currency
?ccur(23)
23
Cdbl()
Transform o valoare numeric n tipul Double ?Cdbl(98)
Precision
98
Cint()
Transform o valoare numeric n tipul Integer
?cint(67)
67
Clng()
Transform o valoare numeric n tipul Long Integer ?clng(87)
87
Csng()
Transform o valoare numeric n tipul Single ?Csng(56)
Precision
56
Cstr()
Transform o valoare numeric n tipul String
?cstr(56)
56
Cvar()
Transform o valoare numeric n tipul Variant
?cvar(87)
87
Cvdate() Transform o valoare numeric n tipul Variant ?cvar(99)
subtipul 7
99
CVerr() Transform un numr valid de eroare crend erori
definite de utilizator
7.6

Funcii diverse
Funcia

Chosse()

Iif()

Descriere
Exemplu
Returneaz o valoare din ?choose(2,"a","b","c","d")
lista de valori pe baza b
poziiei ei din list
?choose(4,"a","b","c","d")
d
Returneaz o valoare dac a=2
rezultatul expresiei este True b=3
i o alt valoare dec ?iif(a > b,"a este mai

Tema de cas

140

rezultatul
False

este mare","b este mai mare")


b este mai mare
a=22
b=3
?iif(a > b,"a este mai
mare","b este mai mare")
a este mai mare
Isdate()
Returneaz
true
dac ?isdate(date)
argumentul este de tipul de True
Date/Time
Isempty()
Returneaz
true
dac ?isempty(g)
argumentul este o variabil True
neiniializat.
Altfel
returneaz False
Isnull()
Returneaz rezultatul True
dac argumentul este Null
Toate aceste funcii pot fi executate n fereastra Immediate ce devine accesibil
prin acionarea butonului corespunztor din bara de stare a entitii Module

7.7

expresiei

Probleme

1. Se consider irul Universitatea de turism. Cu ajutorul funciilor ce se refer la irurile


de caractere, folosind fereastra Immediate din obiectul Module al unei baze de date
oarecare numite BD1 s se realizeze urmtoarele:
irul se memoreaz n variabila denumit ir1;
se determin lungimea irului de caractere;
se afieaz primele trei caractere ale irului din partea stng;
se afiaz ultimele trei caractere ale irului;
se afiaz primul caracter al irului n dou moduri.

Tema de cas

141

2. Se consider irul Universitatea de turism i irul din Sibiu memorate prin operaia
de atribuire n variabilele ir1 i i ir2. Folosind funciile specifice irurilor de
caractere:
s se determine lungimea celor dou iruri;
s se concateneze cele dou iruri;
folosind cele dou variabile ir1 i ir2 s se afieze irul TURISM DIN SIBIU
s se determine poziia irului SIBIU din irul de mai sus.
3. Considernd funciile referitoare la tipul Date/Time:
s se afieze data i ora curent;
s se afieze data peste 20 de zile de la date curent;
s se afieze data peste 10 sptmni de la data curent;
s se afieze data peste 15 luni de la data curent;
s se afieze data peste 23 ani de la data curent.
4. Considernd funciile referitoare la tipul Date/Time:
s se calculeze numrul de zile ntre data curent i data 15-01-67;
s se calculeze numrul de sptmni ntre data curent i data 15-01-67;
s se calculeze numrul luni ntre data curent i data 15-01-67;
s se calculeze numrul de ani ntre data curent i data 15-01-67.
5. Se consider irul 345.56 56.89. S se scrie instruciunile n fereastra Immediate care
calculeaz suma 345.56+56.89, valorile fiind luate din irul dat.
6. S se calculeze partea ntreag a expresiei:
sin( x ) + cos( y )
unde x=pi/4 i y=pi/3 pi=3.141593
sin( x ) cos( y )

7. Folosind funcia de comparare a dou iruri s se testeze dac irurile ir1=turism este
identic cu irul ir2=TURISM. Folosind funcia IIF s se afieze n caz de identitate
mesajul iruri identice iar n caz contrar iruri neidentice.
8. Se consider irurile
Universitatea de Geografie
, din Sibiu
. S se
concateneze cele dou iruri obinnd irul Universitatea de Geografie din Sibiu.

S-ar putea să vă placă și