Sunteți pe pagina 1din 78

FONDUL SOCIAL EUROPEAN

Programul Operaţional Sectorial Dezvoltarea Resurselor Umane 2007 – 2013


Axa prioritară 3 „Creşterea adaptabilităţii lucrătorilor şi a întreprinderilor”
Domeniul major de intervenţie 3.2 „Formare şi sprijin pentru întreprinderi şi angajaţi pentru
promovarea adaptabilităţii”
Titlul proiectului: „Utilizarea TIC pentru servicii de calitate în domeniul financiar contabil”
Cod contract: POSDRU/81/3.2/S/59664
Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial Dezvoltarea
Resurselor Umane 2007-2013” – „Investeşte în oameni”

Tehnologii Office cu aplicabilitate în


domeniul financiar-contabil
- Microsoft Access -

Utilizarea TIC pentru servicii de calitate în domeniul financiar contabil


POSDRU/81/3.2/S/59664

Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial
Dezvoltarea Resurselor Umane 2007-2013
Conținutul acestui material nu reprezintă în mod obligatoriu poziția oficială a Uniunii Europene sau a
Guvernului României.

The document does not represent the point of view of the European Union or Romanian Government.

Autor: Cătălin Tudor


ASE Bucureşti

Data: Aprilie, 2012


Proiect: Utilizarea TIC pentru servicii de calitate în domeniul
financiar contabil

 Copyright 2012
Reproducerea este autorizată, cu condiţia menţionării sursei, cu excepţia cazului în care se prevede
altfel.

Utilizarea TIC pentru servicii de calitate în domeniul financiar contabil


POSDRU/81/3.2/S/59664

Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial
Dezvoltarea Resurselor Umane 2007-2013
Conţinut:

1 Prezentarea generală a unei baze de date ...................................................... 5

1.1 Conceptul de bază de date ........................................................................ 5

1.2 Delimitări conceptuale privind bazele de date relaţionale ..................... 6

1.3 Elementele unei baze de date Microsoft Access ................................... 12

1.4 Crearea bazelor de date Access 2010..................................................... 13

1.4.1 Crearea asocierilor între tabelele unei baze de date relaţionale .................... 18

2.2. Încărcarea datelor în tabele şi modalităţi de filtrare a datelor unei baze


de date. ............................................................................................................... 21

2 Interogarea datelor şi extragerea informaţiilor din cadrul unei baze de date


Access .................................................................................................................... 23

2.1 Tipuri de cerere pentru interogarea bazelor de date ............................. 24

2.2 Crearea obiectelor de tip cerere .............................................................. 26

2.2.1 Crearea cererilor de selecţie ......................................................................... 27

2.2.2 Crearea cererilor parametrizate ..................................................................... 35

2.2.1 Agregarea datelor din mai multe înregistrări ale unei interogări ..................... 39

2.2.2 Cereri de tip tabel încrucişat (CrossTab) ....................................................... 41

2.2.3 Crearea cererilor de acţiune .......................................................................... 42

3 Obiecte de tip formular într-o bază de date Access .................................... 49

3.1 Crearea formularelor legate ..................................................................... 53

3.1.1 Crearea rapidă a unui formular ...................................................................... 54

3.1.2 Utilizarea asistentului pentru crearea formularelor Access ............................ 55

Utilizarea TIC pentru servicii de calitate în domeniul financiar contabil


POSDRU/81/3.2/S/59664

Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial
Dezvoltarea Resurselor Umane 2007-2013
3.1.3 Crearea formularelor în modul de proiectare ................................................. 59

3.2 Crearea formularelor nelegate................................................................. 65

4 Obiecte de tip raport într-o bază de date Access ........................................ 66

4.1 Crearea obiectelor de tip raport .............................................................. 66

4.1.1 Generarea rapoartelor cu ajutorul asistentului (Report Wizard) ..................... 67

4.1.2 Modul de proiectare Design View .................................................................. 73

Bibliografie selectivă ............................................................................................. 77

Utilizarea TIC pentru servicii de calitate în domeniul financiar contabil


POSDRU/81/3.2/S/59664

Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial
Dezvoltarea Resurselor Umane 2007-2013
Baze de date – Microsoft Access

1 Prezentarea generală a unei baze de date


1.1 Conceptul de bază de date
În cea mai simplă formă, o bază de date reprezintă o colecţie de informaţii care este
organizată într-o listă. De fiecare dată când realizăm o listă de informaţii, cum ar fi
nume, adrese, produse sau facturi, se creează, de fapt, o bază de date.

O bază de date constă, deci, într-un ansamblu structurat de date înregistrate pe


suporturi accesibile calculatorului pentru a satisface simultan mai mulţi utilizatori de
o manieră selectivă şi într-un timp oportun.

Tehnic vorbind, nu este neapărat necesar să utilizăm un program de baze de date


pentru crearea de colecţii de date de mici dimensiuni. O listă de informaţii poate fi
creată utilizând o mare varietate de programe, cum ar fi Microsoft Excel, Microsoft
Word, chiar aplicaţia Notepad din Windows. Spre deosebire de acestea, însă, un
program de baze de date este mult mai puternic decât o simplă listă pe care o
păstrăm în cadrul unui document Word sau tabel Excel. Un program de baze de
date oferă celui care îl utilizează diverse avantaje în plus, cum ar fi:

 Stocarea informaţiilor: o bază de date păstrează colecţii de date şi


informaţii care sunt legate de un anumit domeniu. Aceste colecţii pot conţine
informaţii personale sau informaţii de afaceri. În plus, odată cu stocarea
acestor informaţii, o bază de date trebuie să ofere posibilitatea de a adăuga noi
date, de a le modifica sau şterge pe cele existente sau de a le organiza în
funcţie de diverse criterii.

 Căutarea informaţiilor: orice aplicaţie de baze de date trebuie să dea


posibilitatea celui care o utilizează să regăsească informaţiile conţinute de
aceasta cu uşurinţă şi foarte rapid. Astfel, toţi producătorii de astfel de aplicaţii
sunt preocupaţi de minimizarea pe cât posibil a timpului de acces la datele
conţinute de către bazele de date.

 Analiza şi imprimarea informaţiilor: într-o bază de date se pot


efectua diverse calcule, care ulterior pot forma diverse situaţii ce pot fi
prezentate sub forma unor rapoarte pe suport de hârtie.

 Partajarea informaţiilor: cele mai multe programe de baze de date


permit lucrul simultan cu baza de date a mai multor utilizatori, care pot utiliza
aceeaşi informaţie în acelaşi timp. Astfel de baze de date poartă denumirea de
baze de date multiuser sau multiutilizator.

Un program sau aplicaţie care oferă posibilitatea lucrului cu baze de date cu toate
avantajele prezentate anterior poartă denumirea de Sistem de Gestiune a Bazelor
de Date, recunoscut adesea sub acronimul de S.G.B.D. El permite lucrul cu mai

Pagina 5 din 78
Baze de date – Microsoft Access

multe baze de date, în acelaşi format, de unde şi denumirea de sistem de gestiune.


Un astfel de SGBD este şi aplicaţia Microsoft Access, distribuită de către Microsoft
în pachetul de aplicaţii Office. Cu toate că se regăseşte în aceeaşi suită de aplicaţii
cu Microsoft Word, Excel sau PowerPoint, printr-o comparaţie dintre Microsoft
Access şi celelalte aplicaţii Office putem observa că sistemul de gestiune al bazelor
de date din această suită este mai intimidant pentru utilizator decât celelalte aplicaţii
datorită modului în care o bază de date funcţionează. Pentru crearea, menţinerea şi
utilizarea oricărei baze de date, în adevăratul sens al cuvântului, sunt necesare
reguli stricte, fără de care baza de date n-ar putea exista. Înţelegerea acestor reguli
şi aplicarea lor dau robusteţea şi rigurozitatea unei baze de date care să răspundă
atât cerinţelor de accesare rapidă a informaţiilor, cât şi celor de partajare a acestora
între mai mulţi utilizatori.

1.2 Delimitări conceptuale privind bazele de date relaţionale


Datele formează cea mai importantă parte a unui sistem. Necesitatea organizării lor
într-o manieră structurată constituie o preocupare majoră pentru orice organizaţie,
fiind imperativul numărul unu când discutăm în termeni de rapiditate în accesarea
informaţiilor. Această structurare a datelor poate fi realizată prin intermediul bazelor
de date. O bază de date este o colecţie de date ce stochează informaţii despre mai
multe structuri de date. Gestiunea datelor se focalizează pe precizarea structurilor
de date şi a relaţiilor care există între realizările acestora.

O structură de date corespunde unei clase (grupări) de obiecte reale sau


conceptuale şi are ca atribute caracteristicile acestor obiecte. Aceste structuri de
date se identifică printr-un nume unic şi se reprezintă în planul datelor printr-o
mulţime de realizări (înregistrări). De exemplu, discutând despre entitatea Furnizori,
vom identifica ca făcând parte din structura acesteia caracteristici precum
Denumirea, Codul de identificare fiscală, Adresa, Pagina web, etc. Stocând câte o
valoare pentru fiecare asemenea atribut al unui furnizor, putem spune că la
completarea tuturor valorilor, obţinem o înregistrare a structurii de date Furnizori.

La realizarea unei baze de date relaţionale se impun câteva cerinţe pentru


gestiunea corectă a datelor:

 Independenţa datelor faţă de programele de aplicaţii: Baza de date trebuie


să aibă o structură de sine-stătătoare, a cărei existenţă să nu depindă de alte
programe care o utilizează.
 Asigurarea unei structuri cât mai puţin redundante: Informaţiile din cadrul
unei baze de date trebuie să fie unice (să nu se repete) în cadrul bazei de date.
 Integritatea datelor: Datele trebuie să respecte diverse restricţii şi corelaţii
logice între ele, restricţii ce împiedică apariţia erorilor logice sau structurale la
nivelul bazei de date.
Există mai multe modele de reprezentare a datelor, însă cel mai des întâlnit este
modelul relaţional, în cadrul căruia datele unei structuri de date sunt stocate într-o

Pagina 6 din 78
Baze de date – Microsoft Access

tabelă (sau tabel) bidimensională, alcătuit din coloane (atributele sau caracteristicile
structurii de date) şi rânduri (denumite înregistrări sau tupluri ale structurii de date).

Câţiva termeni aferenţi domeniului bazelor de date sunt esenţiali în înţelegerea


conceptelor de bază în proiectarea, crearea şi utilizarea unei baze de date Microsoft
Access:

 Tabel: o structură bidimensională, alcătuită din rânduri şi coloane, cu rol de a


reţine informaţii specifice unei singure entităţi.

 Câmp: O coloană a unui tabel care stochează date de acelaşi tip şi cu


aceeaşi semnificaţie.

 Înregistrare: Rând în cadrul unui tabel care cuprinde mulţimea valorilor


aferente unei realizări a tabelului (în tabelul Clienţi, o realizare cuprinde toate
informaţiile despre o singură persoană având această calitate).

 Domeniu: Mulţimea tuturor valorilor aferente unui anumit câmp al tabelei,


având acelaşi tip de date.

 Realizare a unui câmp: Valoarea unui câmp pentru o singură înregistrare a


unui tabel.

Figura nr. 1.1 Elementele structurale ale unui tabel specific modelului relaţional

Succesul realizării unei baze de date relaţionale constă în identificarea unor elemente
cheie care să asigure atât integritatea tabelelor cât şi a relaţiilor stabilite între acestea.
Câteva dintre conceptele de bază care definesc aceste elemente trebuie înţelese pentru
a construi coerent structura unei baze de date:
Cheia primară a unui tabel reprezintă acel câmp sau grup de câmpuri ale cărui
valori pot identifica, în mod unic, valorile celorlalte câmpuri din cadrul aceleiaşi
înregistrări. De exemplu, marca salariatului poate identifica în mod unic valorile pentru
celelalte câmpuri (Nume, Prenume, Data naşterii, Salariul de încadrare).

Pagina 7 din 78
Baze de date – Microsoft Access

Cheia externă exprimă acel câmp din cadrul unei relaţii, care, în cadrul altui tabel,
se regăseşte sub forma unei chei primare, având rol în asocierea dintre tabele.
Asocierea dintre două tabele exprimă legătura logică şi funcţională care se creează
între acestea, prin intermediul câmpurilor de legătură cheie primară - cheie externă.

Pentru asigurarea integrităţii informaţiei unei baze de date, tabelele care deservesc
structuri de date se asociază unele cu altele în vederea asigurării fluxului
informaţional. Nu se poate trata un furnizor separat de facturile pe care acesta le
emite. Prin urmare, soluţia este să se asocieze tabela Facturi cu tabela Furnizori,
astfel încât să se cunoască, pentru fiecare furnizor, ce facturi au fost emise de
acesta. Această asociere se realizează prin intermediul valorilor a două câmpuri
comune, ce desemnează acelaşi tip de informaţie. Astfel, asocierea reprezintă, de
fapt, totalitatea legăturilor care se formează între un număr de înregistrări din primul
tabel cu un anumit număr de înregistrări din cel de-al doilea, prin intermediul
valorilor egale a două câmpuri comune situate, fiecare, într-unul din cele două
tabele. În exemplul din Figura nr. 1.2 câmpul comun este denumire CodFurnizor,
prin intermediul său cunoscându-se care este denumirea şi adresa fiecărui furnizor
care a emis o anumită factură.

Figura nr. 1.2 Asocierea dintre două tabele ale unei baze de date relaţionale

Introducerea conceptului de asociere între tabele a fost răspunsul bazelor de


date relaţionale la asigurarea unei structuri de date cât mai puţin redundante.
Redundanţa semnifică duplicarea inutilă a datelor dintr-unul sau mai multe
câmpuri sau repetarea aceloraşi valori în două câmpuri din tabele diferite.
Inconvenientul principal este acela că o singură actualizare a unei date
redundante necesită modificări multiple în cadrul aceluiaşi câmp sau la nivelul
mai multor câmpuri (anomalii de actualizare). Un exemplu de redundanţă este
cel din Figura nr. 1.3 prin repetarea valorilor anumitor câmpuri în mai multe
înregistrări.

Pagina 8 din 78
Baze de date – Microsoft Access

Figura nr. 1.3 Exemplu de redundanţă a datelor

Aşa cum se poate observa, structurarea datelor în această manieră induce o


repetare a datelor legate de furnizori pentru situaţia în care aceştia au emis mai mult
de o factură. Eliminarea redundanţei presupune scindarea tabelului anterior în două
tabele diferite ce se vor asocia ulterior prin intermediul unui câmp comun. Acest
câmp comun trebuie să ia valori unice la nivelul unuia dintre tabele şi să identifice
valorile celorlalte câmpuri din acel tabel. În acest fel, redundanţa se va limita la
valorile acelui câmp ce va fi preluat în cadrul celui de-al doilea tabel pentru a nu se
pierde legăturile dintre informaţii (dacă s-ar separa datele despre furnizori de cele
despre facturi, fără a se păstra o legătură între ele, nu s-ar mai cunoaşte ce furnizori
au emis aceste facturi).

Figura nr. 1.4 Eliminarea redundanţei prin separarea datelor în mai multe tabele relaţionate

Eliminarea redundanţei prin modelul relaţional presupune separarea datelor în două


tabele diferite, dar care se vor asocia ulterior. Asocierea dintre cele două tabele constă
într-un procedeu simplu care presupune ca într-una dintre aceste tabele să fie preluat
câmpul (coloana) care identifică cealaltă tabelă (cheia primară). Acest câmp va deveni
în prima tabelă cheie externă şi are rolul de a asocia cele două tabele (Figura nr. 1.4).

Pentru orice asociere, este necesar să se cunoască tipul acesteia. În acest sens, o
asociere poate să se încadreze într-una din următoarele categorii:

 Unu-la-unu (1-1) – unei înregistrări dintr-un tabel îi corespunde o singură


înregistrare din cel de-al doilea tabel, şi reciproc.

Pagina 9 din 78
Baze de date – Microsoft Access

 Unu-la-mulţi (1-n) – unei înregistrări dintr-un tabel îi pot corespunde una


sau mai multe înregistrări din cel de-al doilea tabel, dar o înregistrare din
cel de-al doilea tabel poate avea cel mult o singură înregistrare
corespondentă în primul tabel.

 Mulţi-la-mulţi (n-n) – unei înregistrări dintr-un tabel îi pot corespunde una


sau mai multe înregistrări din cel de-al doilea tabel, dar şi o înregistrare
din cel de-al doilea tabel poate avea mai multe înregistrări corespondente
în primul tabel.

Cele mai frecvent întâlnite asocieri între două tabele sunt de tipul 1-n, definind
relaţia prin intermediul perechilor de câmpuri cheie primară-cheie externă. Asocierile
de tipul 1-1 sunt rar întâlnite, ele fiind determinate de necesitatea separării
câmpurilor unui tabel în două tabele din motive de securitate sau din alte motive
bine argumentate. De exemplu, definirea unei relaţii de tip 1-1 poate fi stabilită
pentru a separa datele personale ale angajaţilor unei companii de informaţiile legate
de accesul la date prin nume de utilizatori şi parole, întrucât confidenţialitatea
datelor pentru cel de-al doilea tabel are un grad mult mai ridicat decât pentru tabelul
care stochează datele personale.

Figura nr. 1.5 Exemplu de tip de asociere 1-1

Asocierile de tip n-n sunt relativ des întâlnite în conceperea unei baze de date
relaţionale, ele fiind înlocuite cu două asocieri de tipul 1-n prin interpunerea între
cele două tabele asociate a unuia nou, denumit tabel de joncţiune. Acest tabel are
responsabilitatea de a asigura legătura dintre cele două tabele care în mod normal
s-ar asocia potrivit tipului n-n. Pentru exemplificare propunem spre analiză o colecţie
de date în cadrul căreia se prezintă situaţia vânzărilor unui magazin către clienţi
persoane fizice (Figura nr. 1.6). Din punctul de vedere al conţinutului informaţional,
se observă că anumite date se repetă (codul intern al produsului, denumirea
acestuia, cantitatea per unitatea de măsură, nr bonului de casă, data şi ora bonului
de casă). Această redundanţă trebuie eliminată prin separarea şi gruparea
câmpurilor în tabele diferite, fiecare dintre acestea posedând o cheie primară ce
impune valori unice la nivel de tabel.

Pagina 10 din 78
Baze de date – Microsoft Access

Figura nr. 1.6 Colecţia de date redundante ce urmează a fi separate în mai multe tabele

Astfel, eliminarea redundanţei ar presupune definirea a două tabele principale în


care datele nu se repetă (Produse şi Bonuri de casă) asociate printr-o legătură de
tip mai mulţi la mai mulţi (Figura nr. 1.7).

Figura nr. 1.7 Obţinerea unei asocieri de tip N-N în urma eliminării redundanţei datelor

Această asociere nu exprimă suficient de clar legăturile ce se formează între tabelul


produse şi tabelul bonuri de casă, întrucât niciunul dintre ele nu poate furniza cheia
externă celuilalt (pentru că un singur produs nu trebuie vândut doar printr-un singur
bon de casă, aşa cum nici limitarea bonului de casă la un singur produs vândut nu
este corectă). În plus, datele privind cantitatea vândută din fiecare produs şi preţul
de vânzare al acestuia nu pot fi plasate în niciunul din cele două tabele, întrucât ar
induce duplicări de date în cadrul acestora, ceea ce ar încălca principiul integrităţii
entităţii (cheia primară a unui tabel trebuie să fie unică). Soluţionarea acestei
probleme presupune crearea unui tabel de legătură între cele două existente, care

Pagina 11 din 78
Baze de date – Microsoft Access

va conţine cheile primare ale acestora în postura de chei externe şi va deţine


câmpurile Cantitate şi Preţ vânzare, ce vor depinde de grupul format din cele două
chei externe.

Figura nr. 1.8 Soluţionarea tipului de asociere mai mulţi la mai mulţi dintre două tabele

1.3 Elementele unei baze de date Microsoft Access


O bază de date Microsoft Access este alcătuită din mai multe elemente
componente, denumite obiecte ale bazei de date. Unele obiecte sunt folosite
totdeauna (fără ele baza de date nu poate exista), iar altele pot fi utilizate ocazional.
Fiecare din aceste obiecte au funcţii diferite, urmărind realizarea avantajelor
prezentate mai sus, sau realizarea unei interfeţe cât mai agreabile pentru utilizator,
astfel încât să uşureze pe cât posibil lucrul cu baza de date. Următorul tabel
identifică şi prezintă obiectele conţinute de către o bază de date Access:

Obiect Descriere

Sunt utilizate pentru a asigura funcţia de stocare a


datelor structurate în cadrul bazelor de date, fiind
Tabele alcătuite din rânduri (înregistrări) şi coloane (câmpuri). O
bază de date trebuie să conţină cel puţin un tabel pentru
a exista. Celelalte obiecte sunt opţionale.

Oferă posibilitatea căutării şi regăsirii rapide a


informaţiilor stocate în tabele, prin chestionarea bazei de
Interogări date. Ele pot fi comparate cu anumite întrebări care i se
adresează bazei de date şi la care aceasta trebuie să
răspundă.

Pagina 12 din 78
Baze de date – Microsoft Access

Sunt ferestre din ecranul calculatorului care pot fi


personalizate pentru a prezenta datele conţinute în
tabele sau interogări sub o formă uşor de înţeles. Ele
Formulare
dau şi posibilitatea actualizării datelor din tabele, în
sensul că orice modificare efectuată la nivelul lor aduce
după sine modificarea informaţiilor stocate în tabele.

Prezintă datele din tabele sau interogări într-o formă


Rapoarte
care poate fi imprimată pe suport de hârtie.

Permit efectuarea unor sarcini de rutină, prin


automatizarea acestora într-o singură comandă, care
Macrocomenzi
poate fi apelată mult mai uşor de fiecare dată când este
necesar.

Sunt utilizate pentru automatizarea unor operaţii, la fel


ca şi macrocomenzile, însă utilizează un limbaj de
Module
progamare pentru aceasta, ele fiind accesibile celor care
dispun de cunoştinţe de programare.

Toate aceste obiecte din cadrul unei baze de date Microsoft Access interacţionează,
uneori unele fiind chiar dependente de altele.

1.4 Crearea bazelor de date Access 2010.


În Access, toate obiectele care alcătuiesc structura unei baze de date sunt stocate
într-un singur fişier. Astfel, orice bază de date Access va fi stocată sub forma unui
fişier distinct (începând cu versiunea Access 2007 acesta deţine extensia accdb).
Crearea bazei de date porneşte de la generarea acestui fişier şi continuă cu crearea
tabelelor şi definirea asocierilor dintre acestea, urmate de încărcarea înregistrărilor
în tabele şi completarea bazei de date cu celelalte tipuri de obiecte necesare.

Pentru crearea unei baze de date noi se apelează meniul File→New→Blank


Database. În cadrul casetei File Name ce apare în partea dreaptă a ferestrei se va
preciza numele fişierului ce va stoca baza de date alături de locaţia unde acesta va
fi salvat odată cu apăsarea butonului Create.

Formatul bazelor de date create cu versiunea Access 2010 este acelaşi cu cel
aferent versiunii Access 2007, asigurându-se în acest sens, compatibilitatea între
aceste două versiuni (ambele utilizând extensia .accdb). Access 2010 poate
deschide bazele de date create cu versiunile anterioare. Dacă, însă, utilizând
versiunea Access 2010, se vor apela obiecte care sunt prezente doar în acest
format, versiunile anterioare nu vor putea accesa bazele de date create cu
versiunea 2010.

Pagina 13 din 78
Baze de date – Microsoft Access

Figura nr. 1.9 Procedura de creare a unei baze de date noi (necompletate)

Baza de date nou creată va propune iniţial crearea unui nou tabel a cărui structură
va fi definită de utilizator prin precizarea denumirilor de câmpuri şi a valorilor
specifice înregistrărilor acestuia. Structura ferestrei bazei de date este aplicată în
Figura nr. 1.10.

Figura nr. 1.10 Explicarea ferestrei Access 2010

Pagina 14 din 78
Baze de date – Microsoft Access

1.3 Obiecte de tip tabel într-o bază de date Access


Access pune la dispoziţie mai multe metode pentru crearea tabelelor bazei de date:
crearea instantanee a unui tabel definind direct câmpurile şi înregistrările acestuia
sub forma unei structuri tabelare (opţiune ce poate fi apelată prin meniul
Create→Tables→Table), crearea tabelului prin proiectarea structurii acestuia înainte
de încărcarea înregistrărilor (opţiunea Create→Tables→Table Design) sau
construirea tabelului pornind de la o listă preluată din Microsoft SharePoint (Create
→Table→ SharePoint List). Cea mai utilizată metodă pentru crearea tabelelor
Access este apelarea modului de proiectare (Table Design). Ea presupune, mai
întâi, definirea câmpurilor tabelului respectiv, a tipurilor de dată şi a proprietăţilor
fiecărui câmp în parte. De aceea, apelarea acestei metode coincide cu deschiderea
unei ferestre pentru proiectarea tabelului, care conţine două panouri importante:
grila de câmpuri şi panoul de proprietăţi ale fiecărui câmp în parte (Figura nr. 1.4).

Figura nr. 1.11 Fereastra pentru definirea structurii câmpurilor din cadrul unui tabel

Descrierea câmpurilor se va realiza în cadrul grilei de câmpuri unde vor fi trecute


toate denumirile de câmpuri din cadrul tabelului respectiv, în fiecare celulă a
coloanei Field Name. În atribuirea numelui unui câmp trebuie să se aibă în vedere
anumite reguli: denumirea trebuie să conţină maxim 64 de caractere, să nu înceapă
cu spaţiu şi să nu conţină caractere speciale precum semnul punct, semnul
exclamării sau paranteze drepte.

Pentru fiecare câmp în parte este obligatorie precizarea tipului câmpului, adică ce
fel de date va conţine acesta (de tip text, de tip număr, de tip data calendaristică,
etc.). Tipul câmpului va fi ales dintr-o listă, în cadrul coloanei Data Type, pentru
câmpul a cărui denumire se află pe acelaşi rând. Principalele tipuri de dată pe care
un câmp le poate lua şi care se vor preciza în cadrul coloanei DataType sunt:

Pagina 15 din 78
Baze de date – Microsoft Access

Text, care admite o lungime maximă a realizării atributului de 255 caractere.


Pentru acest tip de dată, lungimea implicită este de 50 de caractere.

Memo, utilizat pentru stocarea datelor de tip text, mai precis pentru stocarea
blocurilor de text de până la 65.536 de caractere. Acest tip de dată este recomandat
atunci când se doreşte stocarea unei anumite descrieri cu privire la elementele unei
înregistrări, putând conţine text formatat (rich text) şi beneficiind de opţiunea Doar
adăugare (Append only) utilă atunci când nu se permite modificarea sau ştergerea
conţinutului existent.

Number, pentru stocarea datelor de tip numeric, fiind reprezentat de mai multe
subtipuri: Integer (cu valori cuprinse în intervalul [-32.768, 32.768]), Long integer (cu
valori între -2.147.483.648 şi 2.147.483.648), Byte (cu valori pozitive între 0 şi 255),
Single (cu 7 caractere după virgulă şi valori între -3,4*1038 şi 3,4*1038), Double (cu
15 caractere după virgulă şi valori cuprinse între -1797*1038 şi 1797*1038).

Date/Time, utilizat pentru stocarea datelor calendaristice sau de tip oră.

Currency, (format fix cu patru zecimale, prevenind erorile de rotunjire), al cărui


nume provine de la semnul monetar ($) pe care îl afişează automat înaintea valorii
câmpului.

Autonumber, caracterizat prin faptul că generează automat o valoare numerică


de tip Long Integer, prin incrementare cu o unitate (Increment) faţă de ultima valoare
a acestui câmp sau prin generare aleatoare (Random).

Yes/No, tip de dată de tip logic: adevărat sau fals.

OLE object, cu ajutorul căruia există posibilitatea de includere în cadrul unei


baze de date Access diverse fişiere care stochează imagini, sunete sau secvenţe
video.

Attachment, putând stoca unul sau mai multe fişiere, utilizând un sistem numit
„date complexe”.

Lookup Wizard, asistent pentru definirea regulilor pentru asigurarea integrităţii


bazei de date.

Cea de-a treia coloană din cadrul grilei este coloana pentru descrierea câmpului nou
introdus (Description), unde, opţional, utilizatorul poate face diverse comentarii cu
privire la câmpul precizat pe acelaşi rând.

Fiecare tabel trebuie să aibă definită o cheie primară. Cheia primară poate fi
alcătuită fie dintr-un singur câmp, fie din mai multe. Pentru definirea unei chei
primare, se selectează câmpul sau câmpurile dorite şi apoi se apasă butonul
(Primary Key) din grupul Tools al filei Design. Câmpul sau câmpurile care formează
cheia primară pot fi recunoscute prin „cheia” () care le însoţeşte în dreptul capului de
rând. Pentru definirea unei chei primare compuse din mai multe câmpuri, se vor

Pagina 16 din 78
Baze de date – Microsoft Access

selecta, în prealabil, toate câmpurile aferente (prin utilizarea procedeului de selecţie


multiplă – tasta CTRL apăsată) şi se va alege opţiunea de stabilire a cheii primare.
Simbolul de cheie primară va apărea, în această situaţie, pentru toate câmpurile
selectate.

Pentru salvarea tabelului creat, se apelează meniul File→Save sau se apasă


butonul Save de pe bara de acces rapid, după care se va preciza numele sub care
va fi salvat. După salvarea tabelului în cadrul ferestrei de navigare a bazei de date
(situată în partea stângă a ferestrei aplicaţiei Access) va apărea pictograma cu
denumirea tabelului nou creat, ceea ce indică faptul că acesta a devenit un obiect al
bazei de date.

Principalele proprietăţi atribuite unui câmp dintr-un tabel Access pot fi vizualizate în
tabelul următor:

Nume
Descriere
proprietate
Field Size Precizează dimensiunea maximă, prin stabilirea numărului de
caractere a unui câmp de tip Text sau a unui subtip de dată pentru
câmpurile Numerice.
Decimal Places Stabilește numărul de caractere afișate după virgulă pentru un
număr cu zecimale.
Format Determină modul de afișare a valorii câmpului:
- pentru tipul de dată Text – caractere majuscule, minuscule,
stabilirea unui text afișat pentru valori vide sau nule, etc.
- pentru tipuri de dată numerice sau dată calendaristică – modul de
afișare a valorii stocate, prin precizarea secvențelor pentru
formatare.

 Această proprietate vizează atribute definite cu tipul


numeric, dată calendaristică sau logic. Formatul dorit poate fi
ales prin selectarea dintr-o listă predefinită pentru proprietatea
Format. Pentru atributele numerice se poate opta pentru
următoarele formate de afişare: General Number, Currency,
Fixed, Standard, Percent, Scientific. În cazul atributelor de tip
dată calendaristică există formatele: General Date, Long
Date, Short Date, Medium Date, Long Time, Medium Time,
Short Time, iar în cazul atributelor logice: Yes/No, True/False,
On/Off. Fiecare astfel de format prezintă un exemplu pentru
vizualizarea sa.
Caption Specifică textul afișat în titlul unei coloane, fără a afecta denumirea
câmpului.
Default value Stabilește o valoare implicită atribuită automat pentru orice realizare
nouă a câmpului.
Input Mask Stabilește un șablon pentru încărcarea datelor, prin precizarea unor
caractere cu o semnificație specială. De exemplu, pentru a

Pagina 17 din 78
Baze de date – Microsoft Access

permite introducerea unui caracter de tip numeric (o cifră),


masca de introducere trebuie să conţină semnul #, cifra 9 sau
cifra 0.Proprietatea Format are prioritate în fața șablonului stabilit.

Validation Rule Restricție impusă valorilor câmpului, prin precizarea unei reguli ce
poate fi atribuită doar câmpului în cauză.
Validation Text Mesajul de eroare atașat regulii de validare.
Required Stabilește obligativitatea introducerii unei valori în câmpul respectiv.
Indexed Permite definirea unui fişier index pe atributul respectiv. Acest
fişier ajută la regăsirea rapidă a datelor din cadrul câmpului
respectiv.

Exerciţiu: Pentru exemplificare, propunem un exerciţiu privind realizarea structurii


unei baze de date pentru evidenţa vânzărilor unui magazin către clienţii persoane
fizice prin sistemul de autoservire şi plata la casă. Structura bazei de date este
prezentată în Figura nr. 1.12, unde pot fi observate tabelele şi asocierile între
acestea.

Figura nr. 1.12 Structura bazei de date propuse spre rezolvare

1.4.1 Crearea asocierilor între tabelele unei baze de date relaţionale


Pentru accesarea simultană a datelor din mai multe tabele, este necesar să se
definească asocierile standard dintre acestea. Acestea reprezintă colecţia de
legături care se stabilesc între o realizarea a unei tabele şi o realizare a tabelei
asociate. Crearea asocierilor standard între două tabele ale bazei de date se
realizează prin intermediul ferestrei Relationship ce poate fi deschisă prin opţiunea
Database Tools→Relationship. La prima deschidere a acestei ferestre, în cazul în
care nici o asociere nu a fost definită, se deschide automat fereastra de adăugare a
tabelelor ce urmează a fi asociate. Apelarea acestei ferestre ulterior se poate realiza

Pagina 18 din 78
Baze de date – Microsoft Access

prin apăsarea butonului Show Table situat pe bara de meniuri al grupului Design. În
cadrul ferestrei Relationship se vor plasa tabelele care trebuie asociate şi pentru
trasarea asocierii între două tabele se va proceda la apăsarea butonului Edit
Relationship ce va permite deschiderea unei ferestre cu aceeaşi denumire ce
permite precizarea numelor tabelelor care urmează a fi asociate şi a câmpurilor prin
care se va realiza aceasta.

Figura nr. 1.13 Stabilirea asocierilor între două tabele

1.4.1.1 Utilizarea asistentului de preluare a datelor Lookup Wizard


Pentru a uşura procesul de încărcare a datelor în tabele, precum şi pentru a
respecta restricţia de integritate referenţială (vezi definiţia), în cadrul aplicaţiei
Microsoft Access a fost introdus utilitarul Lookup Wizard. Acesta reprezintă un
asistent care oferă posibilitatea de a alege dintr-o listă valorile cheilor externe dintr-o
tabelă asociată, astfel încât aceste valori să se regăsească printre valorile cheii
primare din asociere. Luând drept exemplu tabelele CategoriiProduse şi Produse,
în cadrul cărora Codul categoriei este cheie primară în prima şi cheie externă în cea
de-a doua, la încărcarea datelor în tabele, pentru cheia externă din Produse se va
afişa o listă care va cuprinde toate valorile încărcate în cadrul câmpului
CodCategorie din tabela CategorieProduse. În acest fel, utilizatorul poate alege din
listă doar aceste valori, respectând astfel restricţia de integritate referenţială.

Figura nr. 1.14 Utilizarea asistentului Lookup Wizard pentru precizarea tipului de dată al unei
chei externe

Pagina 19 din 78
Baze de date – Microsoft Access

Pentru alegerea valorilor cheii externe dintr-o listă se procedează astfel:

1. Se introduce denumirea câmpului cheie externă;


2. Se alege utilitarul Lookup Wizard din lista disponibilă în coloana Data Type
(Figura nr. 1.14);
3. Se parcurg paşii pe care asistentul îi afişează:

Primul pas: Bifarea primei opţiuni, pentru preluarea datelor dintr-un alt tabel
sau o interogare;
Al doilea pas: Precizarea tabelului din care face parte cheia primară de unde
vor fi preluate datele în listă;
Al treilea pas: Selectarea câmpului sau câmpurilor ale căror valori vor fi
afişate în listă. Selecţia se face cu ajutorul butonului care selectează un
singur câmp, sau care selectează toate câmpurile din tabelul primar
pentru afişarea lor.
Al patrulea pas: Stabilirea lăţimii câmpului afişat;
Al cincilea pas: Precizarea denumirii sau etichetei pe care câmpul cheie
externă o va afişa.
4. Pentru finalizare, la apăsarea butonului Finish, Access afişează un mesaj prin
care va invita la salvarea tabelului pentru ca modificările să fie efectuate.

Figura nr. 1.15 Editarea asocierii între două tabele ale bazei de date

Pagina 20 din 78
Baze de date – Microsoft Access

În situaţia în care se apelează la utilizarea asistentului Lookup Wizard fereastra


Relationship va afişa cele două tabele asociate prin intermediul câmpurilor de
legătură. Pentru operaţiunile de ştergere sau modificare a unei asocieri deja create
se va selecta linia care desemnează această asociere şi se va apela meniul
contextual (afişat printr-un click dreapta) selectând ulterior, după caz, fie opţiunea
Delete pentru ştergerea asocierii, fie Edit Relationship pentru modificarea
proprietăţilor unei asocieri (Figura nr. 1.15).Dacă se bifează restricţia de
integritate referenţială (Enforce Referential Integrity), linia care desemnează
asocierea dintre cele două tabele va afişa 1 la capătul dinspre tabela primară şi
semnul ∞ la capătul dinspre tabela externă. Această proprietate este permisă
numai în cazul în care tipul asocierii este One To Many. Odată cu selectarea acestei
proprietăţi alte două proprietăţi ale asocierii pot fi activate: Modificarea în cascadă
a câmpurilor legate (Cascade Update Related Fields), prin care orice modificare
adusă câmpului cheie primară din cadrul asocierii presupune modificarea automată
a câmpului cheie externă pentru toate înregistrările asociate, şi Ştergerea în
cascadă a înregistrărilor legate (Cascade Delete Related Records), ce presupune
ştergerea tuturor înregistrărilor asociate din tabela externă odată cu ştergerea unei
înregistrări din tabela primară.

Aceste modificări se vor realiza pentru toate tabelele bazei de date Access pentru a
defini structura finală a bazei de date relaţionale.

2.2. Încărcarea datelor în tabele şi modalităţi de filtrare a datelor unei


baze de date.
Tabelele unei baze de date relaţionale sunt destinate stocării datelor ce pot fi
consultate sau actualizate ulterior. De aceea o etapă importantă în crearea bazelor
de date constă în încărcarea tabelelor cu date coerente. Aceste date sunt introduse
de la tastatură, fie direct în tabele, fie, cel mai des întâlnit în practică, prin
intermediul unor formulare create special pentru a asigura o interfaţă cât mai
agreabilă şi uşor de utilizat. Pentru încărcarea datelor în cadrul tabelelor trebuie să
se ţină cont de corelaţiile şi dependenţele dintre tabelele aflate într-una sau mai
multe asocieri. Astfel, mai întâi vor fi încărcate date în tabelele care deţin în cadrul
unei asocieri cheia primară, după care se va trece la încărcarea datelor în tabelele
ce conţin cheile externe aferente, pentru a se respecta restricţia de integritate
referenţială. De exemplu, o plată nu poate fi încărcată până când nu există bonul de
casă aferent vânzării în prealabil, aşa cum un produs care face parte dintr-o anumită
categorie de produse nu poate fi încărcat în baza de date dacă nu a fost încărcată
mai întâi categoria aferentă în cadrul tabelului CategorieProduse.

Încărcarea datelor se va face în modul de afişare a datelor în cadrul unui tabel.


Pentru aceasta, se selectează tabelul în cauză, apoi, fie se efectuează dublu clic, fie
se apasă butonul Open pentru deschiderea tabelelor. Înregistrarea introdusă se
salvează automat în momentul în care cursorul va părăsi rândul acesteia.

Pagina 21 din 78
Baze de date – Microsoft Access

La nivel de tabel, există posibilitatea de a sorta datele încărcate în tabele, în funcţie


de un anumit câmp. Pentru a sorta datele dintr-un tabel, se poziţionează mai întâi
cursorul în cadrul câmpului după care se va face sortarea, apoi, din grupul de
opţiuni Sort&Filter, se alege una din opţiunile prezente: Sort Ascending sau Sort
Descending.

Pentru filtrarea datelor, există posibilitatea definirii unor filtre cu ajutorul metodei
formularului (Home→Sort&Filter→Advanced→Filter By Form), prin care se poate
alege o valoare pentru unul sau mai multe câmpuri pentru care se aplică criterii de
filtrare.

Figura nr. 1.16 Utilizarea opţiunii de filtrare a datelor dintr-un tabel cu ajutorul formularului

O altă metodă este cea de filtrare prin selecţie. Pentru aplicarea acestei metode,
mai întâi se poziţionează cursorul pe valoarea care se constituie drept criteriu de
filtrare pentru câmpul respectiv, după care se alege opţiunea
Home→Sort&Filter→Selection. Mai departe se va selecta opţiunea de filtrare potrivit
criteriului selectat: afişarea înregistrărilor pentru care câmpul prezintă întocmai
valoarea selectată (Equals), pentru care câmpul diferă de valoarea selectată (Does
not equal), care conţine valoarea selectată (Contains) sau care nu conţine ca
valoare selecţia (Does not contain) (Figura nr. 1.17).

Pagina 22 din 78
Baze de date – Microsoft Access

Figura nr. 1.17 Modalitatea de filtrare a datelor dintr-un tabel prin metoda de filtrare prin
selecţie

2 Interogarea datelor şi extragerea informaţiilor din cadrul


unei baze de date Access

Structurarea unei baze de date relaţionale este un proces ghidat de reguli stricte
privind construirea tabelelor care să respecte modelul relaţional. Restricţiile impuse
de acest model implică obligativitatea stocării informaţiei în structura din care
aceasta face parte şi nu în locul unde apare. Deşi o informaţie poate să apară în
mai multe locaţii, totuşi ea va fi stocată într-un singur tabel, potrivit principiului non-
redundanţei datelor.

Interogarea unei baze de date este un proces foarte important pentru utilizatorii
acestora, întrucât presupune regăsirea şi extragerea informaţiilor dorite de către
utilizator. Pentru realizarea interogărilor, Access pune la dispoziţia utilizatorilor
obiectele de tip Cerere (Query). Rezultatul cererii se prezintă sub forma unei foi de
răspuns dynamic (ceea ce înseamnă că la fiecare apelare sunt afişate datele care
îndeplinesc criteriile şi structura interogării), foaie care nu mai există fizic după
închiderea cererii. Aşadar, o cerere de interogare a bazei de date nu măreşte spaţiul
ocupat în cadrul calculatorului de către baza de date. O cerere poate interoga date
din cadrul unuia sau mai multor tabele, sau chiar din cadrul altor cereri.

O cerere reprezintă, de fapt, o modalitate de a oferi răspunsuri la diverse întrebări


adresate bazei de date. Aceste răspunsuri pot fi formulate utilizând datele stocate
într-unul sau mai multe tabele. În procesul de interogare a mai multor tabele,
cererile utilizează un concept relativ simplu, denumit compunere. La bază, acest
concept constă în punerea laolaltă a datelor din mai multe tabele prin intercorelarea
lor, pornind de la egalitatea valorilor unor câmpuri cu aceeaşi semnificaţie din tabele
diferite. De exemplu, având structura tabelelor din Figura nr. 1.12, răspunsul la
întrebarea Care sunt denumirile produselor din categoria sosuri? va fi obţinut prin
compunerea tabelelor Produse şi CategoriiProduse, pentru care condiţia de

Pagina 23 din 78
Baze de date – Microsoft Access

compunere va fi egalitatea dintre valorile câmpului CodCategorie din tabelul


CategoriiProduse şi cele ale câmpului cheie externă CodCategorie din Produse.
Deci se va selecta categoria cu denumirea Sosuri pentru care se va afla care este
codul acesteia şi se vor afişa denumirile acelor produse pentru care codul categoriei
este cel aflat în tabelul CategoriiProduse (Figura nr. 2.1).

Figura nr. 2.1 Compunerea a două tabele pentru obţinerea informaţiilor cerute prin impunerea
unui criteriu de filtrare a datelor

Câteva dintre destinaţiile care se pot da cererilor de interogare a bazelor de date pot
fi:

 Regăsirea informaţiei în baza de date;


 Căutarea datelor în tabele legate;
 Afişarea unui subset de date prin impunerea anumitor condiţii;
 Sortarea informaţiilor obţinute din mai multe tabele;
 Efectuarea de calcule folosind date din tabelele bazei de date;
 Actualizarea bazei de date;
 Pregătirea datelor în vederea afişării lor în cadrul unor formulare sau
rapoarte.
În Access, interogările pe tabele multiple leagă date stocate în două sau mai multe
tabele legate prin una sau mai multe asocieri, astfel încât aceste date să devină
informaţii importante pentru analiză.

2.1 Tipuri de cerere pentru interogarea bazelor de date


Access oferă posibilitatea construirii următoarelor tipuri de cerere:

 Cereri de selecţie (Select Query), formează cel mai utilizat tip de


cerere de interogare, care dau posibilitatea stabilirii de criterii de

Pagina 24 din 78
Baze de date – Microsoft Access

căutare, regăsirii informaţiei dorite şi afişării acestei informaţii pentru


a fi accesibilă utilizatorului. Tot în această categorie se înscriu şi
cererile prin care se afişează rezultatul unor calcule dintre valorile
unor anumite câmpuri. La rândul lor, cererile de selecţie se împart în
alte categorii mai mici:

o Cereri de selecţie propriu-zisă: selectează date din unul sau


mai multe tabele şi/sau interogări, pe baza unor criterii
stabilite iniţial;

o Cereri parametrizate: presupune filtrarea datelor din tabele


sau interogări pe baza unor criterii precizate printr-un
parametru, adică, o valoarea care se va stabili de către
utilizator la executarea cererii;

o Cereri cu câmpuri calculate: afişează, pe lângă datele din


tabele sau interogări, şi rezultatul unor calcule efectuate între
valorile a două sau mai multe câmpuri, sau între acestea şi
valori scalare;

o Cereri de agregare a datelor: sintetizează date din tabele,


utilizând funcţii de agregare a datelor dintr-unul sau mai multe
câmpuri pentru mai multe înregistrări.

 Cereri de analiză încrucişată, care permit sintetizarea datelor şi a


rezultatelor obţinute din calcule, sub forma unei foi de calcul tabelar,
făcând informaţia mai uşor de citit şi de înţeles.

 Cereri de acţiune, care modifică date din cadrul tabelelor sau


crează noi tabele, pe baza unor criterii. Cererile de acţiune se împart
în următoarele subcategorii:

o Cereri pentru crearea de noi tabele (Make Table Query):


crează un nou tabel, cu toate înregistrările sau doar o parte a
acestora, din unul sau mai multe tabele asociate;

o Cereri pentru adăugarea de date în tabele (Append Query):


adaugă anumite înregistrări dintr-un tabel în altul;

o Cereri pentru modificarea datelor din tabele (Update


Query): Modifică date dintr-un anumit tabel, în funcţie de
anumite criterii precizate;

o Cereri pentru ştergerea datelor din tabele (Delete Query):


pe baza unui anumit criteriu, şterg înregistrările dintr-un
anumit tabel.

Pagina 25 din 78
Baze de date – Microsoft Access

Oricare ar fi tipul cererii de interogare, orice obiect de tip cerere este supus
următoarelor operaţii:

 Operaţia de construire sau de creare a cererii;

 Operaţia de utilizare, deschidere sau afişare a datelor interogate;

 Operaţia de modificare a definiţiei cererii realizate prin operaţia de creare.

2.2 Crearea obiectelor de tip cerere


Un obiect de tip cerere poate fi creat utilizând două modalităţi principale: prin
proiectare grafică a cererii (cunoscut şi sub denumirea de Modul Design), şi prin
utilizarea limbajului standard de interogare a bazelor de date (cunoscut sub
denumirea de limbajul SQL – Structured Query Language). În prezentul capitol ne
vom ocupa doar de prima modalitate, folosind interfaţa grafică Access.

Figura nr. 2.2 Regăsirea elementelor de tip interogare în cadrul unei baze de date

Toate obiectele de tip cerere sunt afişate în cadrul grupului de obiecte Queries din
panoul de navigare printre obiectele bazei de date. Efectuarea unui dublu click pe
numele unui asemenea obiect va deschide răspunsul la cererea pentru care obiectul
de tip interogare a fost creat. Pentru modificarea definiţiei unei interogări se va
efectua click dreapta pe numele acesteia şi se va apela opţiunea Design View din
cadrul meniului contextual care apare.

Pagina 26 din 78
Baze de date – Microsoft Access

Pentru a facilita modul de definire a structurii unei interogări, Microsoft Access


propune utilizarea unui set de programe ajutătoare, numite asistenţi, care au
menirea de a conduce utilizatorul la o anumită finalitate cu privire la scopul
interogării create prin parcurgerea succesivă a anumitor paşi. Apelarea acestor
asistenţi poate fi efectuată prin opţiunea Create→Queries→Query Design.

Figura nr. 2.3 Accesarea asistenţilor pentru crearea interogărilor

Caseta de dialog afişează următoarele moduri de creare a unei noi cereri:

 Asistentul pentru cereri simple (Simple Query Wizard);


 Asistentul pentru crearea tabelelor încrucişate (Crosstab Query
Wizard);
 Asistentul pentru căutarea înregistrărilor duplicat (Fiind Duplicates
Query Wizard);
 Asistentul pentru căutarea înregistrărilor care nu au corespondent în
cele două tabele sursă (Fiind Unmatched Query Wizard).
Deşi asistentul poate uşura munca celui care îl utilizează, în practică, cel mai des se
utilizează prima modalitate de creare a cererilor, şi anume modul grafic de
proiectare, din considerentul că permite personalizarea modului de definire a
obiectelor de tip interogare.

2.2.1 Crearea cererilor de selecţie


Cererile de selecţie a datelor formează categoria celor mai utilizate tipuri de
interogare a unei baze de date, întrucât sunt cele care permit aflarea răspunsurilor
la cele mai frecvente întrebări care interesează utilizatorul final. Construirea unei
cereri de selecţie a datelor porneşte de la analiza cerinţei pe care utilizatorul o
adresează bazei de date. Astfel, trebuie identificate, pe rând, ce informaţii trebuie
afişate, care sunt datele ce trebuie apelate pentru afişarea acestora, din ce tabele

Pagina 27 din 78
Baze de date – Microsoft Access

fac parte acestea şi cum se asociază aceste tabele. Foarte important este, în egală
măsură, identificarea tipului de interogare ce trebuie folosit pentru aflarea
rezultatului final.

Pentru cererile de selecţie a datelor, se alege opţiunea Design View din caseta
New Query. Access va afişa fereastra de interogarea a tabelelor după exemplu,
cunoscută sub denumirea Query By Example (prescurtat Q.B.E.). Alături de această
fereastră, se va afişa şi caseta de selectare a tabelelor care urmează a fi interogate,
denumită Show Table.

Figura nr. 2.4 Structura ferestrei de interogare QBE

Pentru a răspunde unei cereri de selecţie utilizând metoda de proiectare se


apelează opţiunea Create→Queries→Query Design. Pe rând, trebuie specificate
tabelele care oferă sursa informaţională pentru cererea specificată, alături de
câmpurile ale căror valori se vor afişa sau pentru care se impun condiţii. Panoul
tabelelor va fi completat prin selectarea acestora din fereastra Show Table (Figura
nr. 2.4). Atunci când aceste tabele sunt asociate, grila de tabele va afişa inclusiv
legăturile dintre acestea, fie că ele provin din fereastra Relationship, fie că sunt
rezultatul utilizării asistentului Lookup Wizard.

Specificarea câmpurilor interogării

Grila de câmpuri conţine mai multe rânduri care au destinaţii diferite. Fiecare
coloană din cadrul grilei este destinată unui anumit câmp din cadrul tabelelor aduse
pentru interogare. O scurtă descriere a rândurilor aferente grilei Query Design este

Pagina 28 din 78
Baze de date – Microsoft Access

necesară pentru a identifica rolul acestora în procesul de proiectare a modului de


interogare a bazei de date:

 Rândul Field din cadrul grilei se completează automat sau de la tastatură cu


denumirea unui câmp din cadrul tabelelor prezente.
 Rândul Table este destinat precizării tabelului din care face parte câmpul
introdus în cadrul primului rând din grilă, având în vedere că aceeaşi
denumire o pot lua două sau mai multe câmpuri, dar din tabele diferite.
 Rândul Sort oferă posibilitatea sortării datelor afişate la executarea interogării
prin ordonarea crescătoare sau descrescătoare a celor din câmpul sau
câmpurile unde se precizează sortarea. Valorile pentru acest rând pot fi alese
dintr-o listă derulantă.
 Rândul Show este destinat posibilităţii de afişare sau ascundere la
executarea interogării a datelor din câmpul pentru care se selectează sau
deselectează.
 Rândul Criteria prezintă importanţă prin prisma oportunităţilor oferite pentru
filtrarea datelor din tabele. Aici şi în cadrul rândurilor care urmează vor fi
introduse expresiile valide pe baza cărora se va efectua selectarea doar a
acelor înregistrări care îndeplinesc criteriile precizate. Criteriile vor fi precizate
utilizând anumiţi operatori de comparaţie sau logici.
Grila de câmpuri ale ferestrei de proiectare poate fi completată prin aducerea
câmpurilor pe coloane diferite ale rândului Field. Pentru completarea acestui rând
pot fi utilizate mai multe metode: prin efectuarea unui dublu click pe denumirea
câmpului selectat din cadrul tabelelor prezente în panoul de tabele, prin metoda
glisarea denumiri câmpului din tabelul din care acesta face parte situat în panoul de
tabele până pe rândul Field aferent unei coloane noi din grila de câmpuri, sau prin
selectarea din caseta derulantă aferentă rândului Field din grila de câmpuri.

Alături de aceste modalităţi de completare a rândului Field există posibilitatea


completării manuale a acestuia prin tastarea denumirii câmpului ale cărui valori
urmează a fi afişate la vizualizarea rezultatului interogării. Coloanele definite în
acest sens poartă denumirea de câmpuri cu expresii. Pentru situaţii speciale în care
valorile solicitate spre a fi afişate nu pot fi aflate printr-o simplă consultare a
câmpurilor din tabele ci necesită ajustări prin aplicarea de diverse operaţii de
prelucrare, Access permite tastarea modului de afişare a datelor direct în rândul
Field. Spre exemplu, dacă se cere doar o parte din informaţia deţinută de un câmp,
formula pentru extragerea valorii cerute este tastată sub forma:

Denumire câmp: Formulă de calcul

De exemplu, afişarea lunii în care a fost emis fiecare bon de casă presupune, pe
lângă afişarea valorilor câmpurilor care identifică fiecare bon de casă (regăsite în
câmpuri din tabelul BonCasă), şi definirea modului de extragere a lunii din data
bonului de consum. În acest sens, pe rândul Field, se va tasta formula de calcul
pentru afişarea lunii în care a fost emis fiecare bon de casă:

Pagina 29 din 78
Baze de date – Microsoft Access

LunaEmitereBonCasa:Month([DataBonCasa])

Există, de asemenea, situaţii speciale în care, alături de valori ale unor câmpuri din
cadrul bazei de date, un anumit câmp din cadrul unei interogări necesită doar
afişarea unor valori scalare. În asemenea situaţie, pe rândul Field al grilei de
câmpuri va fi tastată valoarea scalară care trebuie afişată fiind precedată de
denumirea atribuită acestei coloane.

Access oferă, de asemenea, posibilitatea de a aduce în grila de câmpuri a tuturor


atributelor unui tabel, prin efectuarea unui dublu clic pe semnul * care apare în
tabelul respectiv. Acelaşi lucru se poate obţine şi dacă se efectuează un dublu clic
pe denumirea tabelului din panoul superior, pentru a selecta toate câmpurile, şi
utilizarea metodei „Drag and Drop” pentru a aduce toate aceste atribute în cadrul
grilei.

Există posibilitatea ştergerii anumitor câmpuri din cadrul grilei de câmpuri, în situaţia
în care nu le mai considerăm necesare pentru interogare. Acest lucru se realizează
prin poziţionarea cursorului deasupra denumirii câmpului în cauză, şi efectuarea
unui clic când cursorul capătă forma unei săgeţi negre cu vârful în jos (). Apoi,
pentru ştergere, se apasă tasta Delete.

Precizarea criteriilor de filtrare

Criteriile se precizează pe rândul Criteria sau Or utilizând expresii valide, care să


poată fi “înţelese” de Microsoft Access.

În continuare, vom prezenta câteva modalităţi de specificare a condiţiilor de filtrare a


datelor introduse cu ajutorul unor operatori. Aceste condiţii vor fi introduse pe rândul
Criteria pe aceeaşi coloană cu denumirea câmpului asupra cărora acţionează.

Pe rândul Criteria pot fi utilizaţi diferiţi operatori prin care pot fi construite condiţii
complexe. Vom enumera cele mai importante categorii de astfel de operatori,
oferind o scurtă descriere de utilizare a lor în criteriul de filtrare:

 operatorii de comparaţie: (>, >=, <, <=, =, !=, <>);


 operatori logici: (AND, OR, NOT);
 Operatori aritmetici: +, -, *, /, mod
 Operatori de concatenare a mai multor texte: &, +;
 Operatori de identificare: . (operatorul punct)
 operatori specifici limbajului SQL: (IN, BETWEEN, LIKE, IS NULL);

Exemple:
Operator Exemplu Descriere
= =”Nicu” Caută valorile egale cu textul „Nicu”
<> <>”Mere” Afişează toate valorile, mai puţin „Mere”
< <10 Toate valorile câmpului mai mici ca 10

Pagina 30 din 78
Baze de date – Microsoft Access

>= >=2000 Toate valorile mai mari decât 2000


Between Between #1/2/2011# And #5/3/2011# Toate datele cuprinse în intervalul precizat
Like Like “S*” Returnează toate valorile care încep cu litera
S
NOT NOT “Pere” Se afişează toate valorile diferite de „Pere”
IN IN (5,8,4) Toate valorile de 5,8 sau 4
IS NULL IS NULL Caută înregistrările al cu valori nule
IS NOT IS NOT NULL Caută înregistrări care conţin valori
NULL
Operatori de <BonCasa.DataBonCasa Valorile câmpului curent se compară cu cele
identificare ale câmpului DataBonCasa din tabelul
BonCasa şi se afişează cele care respectă
condiţia.
Operatorul LIKE poate fi utilizat pentru căutarea valorilor unui câmp care corespund
unui anumit tipar folosind caractere speciale (*, ?, #, !). Semnificaţia acestor
caractere şi modul de utilizare a lor sunt exemplificate în continuare:

 Caracterul *: precizează posibilitatea căutării parţiale a textelor – sunt căutate


toate textele care la poziţia caracterului special * deţin unul sau mai multe
caractere aflanumerice, indiferent care sunt acestea.

 Caracterul ?: sunt căutate acele texte care pe poziţia în care acest caracter
apare se găseşte doar un singur caracter alfanumeric.

 Caracterul #: sunt afişate textele care conţin pe poziţia în care acest caracter
apare un caracter numeric sau caracterele + sau -.

 Caracterul ! exprimă negaţia tiparului precedat de acesta.

 Pentru a preciza o plajă de valori posibile, tiparul trebuie să fie încadrat între
paranteze drepte iar plaja de valori trebuie precizată utilizând limita inferioară
şi cea superioară, separate prin semnul -.

Tipar de căutare Valori care corespund Valori care nu


condiției corespund condiției
a*a aa, aBa, anca, alba aBC
*ab* abc, AABB, Xab aZb, bac
a[*]a a*a aaa
a?a aaa, a3a, a&a aBBBa
a#a a0a, a1a, a2a aaa, a10a
[a-z] a, p,n, z 2, &
[!a-z] 0, &, %, #, - b, a
[!0-9] A, a, &, ~ 0, 1, 9
C[!b-m]# Ca9, Cz0, C99 Cbc, Cj0

Atunci când sunt impuse mai multe condiţii este important să se precizeze modul în
care acestea sunt evaluate: obligatoriu toate sunt necesare (operatorul AND) sau
cel puţin una dintre acestea (operatorul OR).

Pagina 31 din 78
Baze de date – Microsoft Access

Pentru a exemplifica modalitatea de corelare a condiţiilor multiple prin operatorul


AND, propunem spre rezolvare următoarea cerere de interogare: Să se afişeze
denumirile produselor care au existat sau există în magazin din categoria Conserve
din fructe si legume pentru care termenul de valabilitate este mai mic de 25 zile.

Vom analiza cererea de interogare în vederea determinării tabelelor care vor


participa la afişarea rezultatului, a câmpurilor care se cer a fi afişate şi a celor pentru
care se impun condiţii. Urmărind structura bazei de date (a se vedea Figura nr.
1.12) vom observa că informaţiile necesare sunt plasate în două tabele: denumirea
categoriei produselor pentru care se impune condiţia să fie conserve din fructe şi
legume se găseşte în tabelul CategoriiProduse, în timp ce denumirea produselor
care se cere a fi afişată şi termenul de valabilitate sunt câmpuri ale tabelului
Produse.

Figura nr. 2.5 Modalitatea de rezolvare a unei cereri de interogare utilizând fereastra Query
Design

Cele două tabele sunt asociate prin intermediul perechii de câmpuri CodCategorie
(cheia primară) din CategoriiProduse şi CodCategorie (cheie externă) din Produse.
Proiectarea obiectului de tip interogare care va oferi răspunsul pentru această
cerinţă este explicată în Figura nr. 2.5.

Aşadar, toate condiţiile precizate pe acelaşi rând Criteria sunt combinate utilizând
operatorul AND. Dacă două condiţii sunt precizate pe rânduri Criteria diferite atunci
între cele două condiţii se interpune operatorul OR.

Pagina 32 din 78
Baze de date – Microsoft Access

Compunerea tabelelor în vederea interogării lor

În vederea interogării datelor din mai multe tabele sursă, fereastra QBE permite

1. Echicompunere (Inner Join) – se vor selecta înregistrările care au


corespondent în ambele tabele.

2. Compunere externă (OUTER JOIN) – se vor selecta toate înregistrările din


una din tabele, indiferent dacă au sau nu corespondent în cealaltă tabelă. În
funcţie de direcţia selectării datelor, aceasta poate fi compunere externă de
stânga (LEFT JOIN) sau de dreapta (RIGHT JOIN).

În privinţa cererilor de selecţie care au ca sursă mai multe tabele trebuie precizat că,
în mod implicit, Access utilizează operaţia de Echicompunere, fapt ce conduce la
selectarea înregistrărilor ce au corespondent în ambele tabele.

Notă:

Dacă o cerere de interogare presupune selectarea datelor din două tabele cu un


număr de x şi respectiv y înregistrări, şi între cele două tabele nu este implicit sau
explicit definite nici o asociere, atunci rezultatul va conţine un set de x * y
înregistrări, adică se formează produsul cartezian între cele două seturi de date.

Exemplu de echicompunere între două tabele: Să se afişeze toate denumirile


produselor care au fost vândute. Se vor afişa, prin urmare, toate denumirile acelor
produse pentru care valorile câmpului IdProdus se regăsesc şi în tabelul
ProduseVândute.

Figura nr. 2.6 Exemplu de interogare a două tabele prin echicompunere

Pagina 33 din 78
Baze de date – Microsoft Access

Figura nr. 2.7 Rezultatul interogării a două tabele compuse prin operaţiunea de
echicompunere

Exemplu de compunere externă: Să se afişeze toate denumirile produselor,


indiferent dacă au fost sau nu vândute. Se vor afişa toate denumirile produselor
chiar dacă valorile câmpului IdProdus nu se regăsesc şi în tabelul ProduseVândute.

Figura nr. 2.8 Selectarea datelor din două tabele prin compunere externă

Rezultatul afişat este cel prezentat în Figura nr. 2.9.

Pagina 34 din 78
Baze de date – Microsoft Access

Figura nr. 2.9 Afişarea rezultatului unei interogări având ca sursă două tabele compuse prin
compunere externă

Se observă, prin urmare, că pentru acele valori care nu au corespondent în cea


de-a doua tabelă, câmpul corespondent va prezenta valoarea NULL.

Dacă între două tabele nu există asocieri predefinite, acestea se pot stabili între
două câmpuri făcând parte din cele două tabele, prin glisarea mouse-ului de la
câmpul de legătură din primul tabel către câmpul de legătură din cel de-al doilea.
Ulterior, şi această asociere, reprezentată printr-o linie ce va uni cele două câmpuri
între care se realizează legătura, poate fi modificată în sensul schimbării tipului de
compunere între tabelele în cauză.

Lansarea în execuţie a cererii se realizează prin următoarele procedee:


 Utilizând butonul View, , primul din grupul Result al meniului Design (acest
buton poate permite comutarea între diversele tipuri de afişare a interogării);
 Utilizând butonul Run, din acelaşi grup Result;
 Efectuând dublu click pe numele interogării din panoul de navigare al bazei
de date.

2.2.2 Crearea cererilor parametrizate


Cererile parametrizate presupun introducerea unei valori pentru criteriul unui câmp
de către utilizator, în momentul în care interogarea este lansată în execuţie. Pentru
aceasta, se procedează la crearea unei cereri de interogare de selecţie, parcurgând
paşii pe care i-am prezentat, urmând să stabilim, în final, cărui câmp i se va atribui
parametrul pentru filtrarea datelor.

Un parametru constă, de fapt, dintr-un text pe care calculatorul îl va afişa în


momentul în care cererea este lansată în acţiune, text care va invita utilizatorul să
introducă valoarea în urma căreia se va face filtrarea. Acest text va trebui,

Pagina 35 din 78
Baze de date – Microsoft Access

întotdeauna, introdus între paranteze drepte, pentru ca Access să-l recunoască


drept parametru şi nu drept un criteriu stabilit anterior. De exemplu, se doreşte
afişarea tuturor produselor dintr-o categorie specificată de utilizator în momentul
execuţiei. Fereastra QBE va arăta astfel:

Figura nr. 2.10 Proiectarea unei interogări parametrizate

La executarea interogării nu sunt afişate direct rezultatele sub forma unui set de
înregistrări, aşa cum se întâmplă în situaţia unei interogări simple, ci se va afişa mai
întâi mesajul prin care se cere valoarea parametrului care va completa condiţia
impusă, urmând ca filtrarea să se realizeze în funcţie de această valoare.

În stabilirea mesajului parametrului unei interogări, câteva observaţii se impun a fi


precizate:

1. Mesajul se va introduce întotdeauna între paranteze drepte, pentru a fi tratat


ca parametru şi nu ca o valoare de tip text ce urmează a fi comparată cu
valorile câmpului în cauză;

2. Textul definit ca mesaj al parametrului trebuie să fie diferit de denumirea


oricărui câmp din cadrul tabelelor selectate, în caz contrar făcându-se
comparaţia între valoarea câmpului pentru care se impune condiţia şi
valoarea câmpului a cărui denumire apare între paranteze drepte pe rândul
Criteria.

Pagina 36 din 78
Baze de date – Microsoft Access

3. Parametrul face obiectul unei comparaţii, prin urmare orice parametru va fi


trecut pe rândul Criteria, precedat de operatori de comparaţie sau făcând
parte dintr-o formulă al cărei rezultat va fi comparat cu valoarea câmpului
pentru care s-a impus condiţia.

Figura nr. 2.11 Etapele executării unei interogări parametrizate

2.2.1.2 Crearea cererilor cu câmpuri calculate


Crearea unei interogări nu se limitează numai la câmpurile tabelei sau tabelelor
bazei de date. Se pot utiliza expresii pentru a crea câmpuri calculate. Aceste
câmpuri pot fi rezultatul unor operaţii între două sau mai multe câmpuri, sau între
unul sau mai multe câmpuri şi anumite valori scalare. Pentru a efectua operaţii cu
aceste câmpuri, sunt folosiţi operatorii aritmetici (+, -, *, /) şi parantezele rotunde.
Parantezele drepte sunt utilizate pentru desemnarea unui anumit câmp (cu alte
cuvinte, câmpurile trebuie trecute între paranteze drepte). Exemple de câmpuri
calculate:

Se cunoaşte că Valoare produs vândut=Cantitate*Preţ Vânzare. Această formulă


se exprimă, în limbajul Access, în următoarea formă:

[Valoare produs]: [Cantitate] * [PretVanzare]

Totodată Access dispune şi de o bibliotecă de funcţii predefinite la care utilizatorul


poate face apel în definirea unui câmp calculat. Spre exemplu, dacă se doreşte

Pagina 37 din 78
Baze de date – Microsoft Access

afişarea vechimii, în zile, de la emiterea unui bon de casă şi până în prezent poate fi
formulat următorul câmp calculat:

VechimeBonCasa: Date()-DataBonCasa

unde Date() este funcţia Access care returnează data curentă.

Aceste formule se introduc în grila de câmpuri, în următoarea coloană liberă, pe


rândul Field. Eticheta câmpului calculat va fi dată de partea din stânga semnului „:”.
În exemplul nostru, câmpul se va numi „VechimeBonCasa”.

Pentru exemplificare explicăm modul de proiectare a interogării pentru următoarea


cerinţă: Care sunt denumirile produselor şi valoarea vândută din fiecare prin
bonurile de casă din ultimele 30 de zile.

Figura nr. 2.8 Exemplu de proiectare a unei interogări cu câmp calculat

Observaţie: Aşa cum s-a putut vedea şi în cazul interogărilor parametrizate,


încadrarea între paranteze drepte este specifică şi modului de precizare a mesajului
unui parametru. De aceea, când denumirea unui câmp ce face parte dintr-o formulă
nu este corect tastată, ceea ce apare între paranteze drepte este considerat de
Access ca fiind un parametru şi la executarea interogării va fi afişată caseta Enter
Parameter Value specifică interogărilor parametrizate.

Pagina 38 din 78
Baze de date – Microsoft Access

2.2.1 Agregarea datelor din mai multe înregistrări ale unei interogări
Agregarea datelor defineşte o modalitate de calcul a unor valori statistice aplicând
diverse funcţii de sintetizare unui grup de valori ale aceluiaşi câmp provenind din
mai multe înregistrări ale unui set de date. Astfel, Access permite numărarea
elementelor unui anumit grup (funcţia COUNT), însumarea acestora (funcţia SUM),
valoarea cea mai mare (MAX), valoarea cea mai mică (funcţia MIN), deviaţia
standard (STDEV), varianţa (VAR), prima valoare a câmpului dintr-un set de
înregistrări (FIRST) sau ultima valoare (LAST). Toate aceste funcţii sunt numite
funcţii de agregare, acţionând doar la nivel de grup de înregistrări. Gruparea
înregistrărilor se realizează după valori egale ale unui anumit câmp al setului de
date supus agregării. Pentru înţelegerea agregării datelor în Access vom considera
următoarea cerinţă:

„Care este cantitatea cea mai mare vândută din fiecare produs?”

Sintetizarea presupune afişarea a două informaţii pentru fiecare produs din cadrul
nomenclatorului: denumirea produsului şi cantitatea maximă comandată din acesta.

Considerând, pentru exemplificare, următorul set de înregistrări aferent comenzilor


emise de clienţi pentru produsele firmei, vom detalia modul în care Access va
realiza gruparea datelor şi apoi agregarea cantităţilor comandate:

Figura nr. 2.12 Modalitatea de sintetizare a informaţiei prin gruparea înregistrărilor după
valorile unui anumit câmp

Pagina 39 din 78
Baze de date – Microsoft Access

În situaţia existenţei unei condiţii de filtrare în cerinţa interogării, această condiţie


este prioritară, Access realizând mai întâi filtrarea datelor, urmând a stabili câmpul
de grupare şi agregarea pe setul de înregistrări care va rămâne în urma eliminării
acelor înregistrări care nu respectă criteriul de filtrare impus.

Pentru exemplificare vom completa cerinţa anterioară cu o condiţie suplimentară


impusă asupra datelor: „Care este cantitatea cea mai mare vândută din fiecare
produs după data de 1.1.2012?”

Se observă că este necesară eliminarea unor înregistrări din setul produselor


vândute, astfel încât să rămână doar cele vândute după data impusă prin cerinţă.
Considerăm data vânzării ca fiind data bonului de casă. Atunci când filtrarea se
impune asupra unui alt câmp decât cele de grupare şi de sintetizat (a se vedea
Figura nr. 2.12) acest câmp va prezenta clauza WHERE.

Figura nr. 2.13 Exemplificarea modului de proiectare a interogării de sintetizare propuse spre
rezolvare

Acest tip de interogare se va rezolva ca o interogare obişnuită (prin precizarea


tabelelor sursă, a câmpurilor selectate şi a criteriului de filtrare) urmând ca
sintetizarea datelor să fie stabilită prin selectarea unor valori din lista de valori
aferentă fiecărui câmp pe rândul Total. Acest rând devine vizibil odată cu apăsarea
butonului Total situat pe bara de meniuri a grupului Design→Show/Hide (Figura nr.

Pagina 40 din 78
Baze de date – Microsoft Access

2.13). Pentru câmpurile de grupare se va alege întotdeauna Group By, pentru


câmpurile de filtrare opţiunea Where, iar sintetizarea datelor aferente câmpului
calculat se va realiza prin selectarea unei funcţii de sintetizare din lista aferentă
aceluiaşi rând Total.

2.2.2 Cereri de tip tabel încrucişat (CrossTab)


O categorie aparte de cereri care au la bază agregarea şi sintetizarea informaţiei pe
mai multe grupări de date o reprezintă interogările de tip analiză încrucişată. Aceste
interogări sunt utile în scopul analizei datelor permiţând obţinerea unor situaţii
sintetice asemănătoare tabelelor pivot realizate prin procesoarele de tabele (ca de
exemplu Microsoft Excel). Practic, este posibilă elaborarea unor tabele în care
gruparea şi ordonarea datelor se realizează atât pe linii cât şi pe coloane la
intersecţia cărora se pot efectua calcule complexe.

Etapele ce trebuie urmate pentru realizarea unei astfel de cereri de interogare sunt
următoarele:

 Se va crea o interogare de selecţie în modul Design View, pe baza tabelelor


ce conţin datele necesare şi se vor selecta câmpurile dorite pentru afişare şi
eventualele câmpuri pentru care se vor impune restricţii.

 Din grupul Design→QueryType se va selecta opţiunea CrossTab ce va avea


ca efect imediat afişarea rândurilor Total şi Crosstab în grila interogării.

 Se va specifica după care câmpuri se va realiza gruparea datelor, respectiv


funcţiile totalizatoare pe rândul Total, şi clauza Where pentru câmpurile de
filtrare suplimentară.

 Rândul CrossTab permite declararea modului de dispunere a informaţiei în


cadrul rezultatului: Row Heading în cazul câmpurile ce vor fi afişate pe liniile
tabelului, Column Heading pentru câmpul ce va fi afişat pe verticală, şi Value
pentru valorile ce vor fi afişate la intersecţia liniilor cu coloanele. Este permisă
existenţa mai multor câmpuri ordonate pe orizontală (Row Heading), dar a
unui singur câmp Column Heading şi a unui singur câmp Value.

Pentru exemplificare vom parcurge etapele prezentate anterior pentru a răspunde


cerinţei: Să se afişeze pentru fiecare produs care este valoare totală vândută de
fiecare vânzător pe anul 2011.

Vom conveni plasarea câmpurilor Nume, respectiv, Prenume din tabelul Vanzatori
pe liniile situaţiei centralizatoare, câmpul Denumire din tabelul Produse pe coloana
acesteia, iar la intersecţia lor se va plasa valoarea totală, calculată ca sumă a
produsului dintre câmpul Cantitate şi Preţ din tabelul ProduseVandute. Filtrarea
datelor se va realiza utilizând câmpul DataOraBonCasa din tabelul BonCasa din
care se va extrage anul utilizând funcţia Year. Modul de proiectare a interogării
potrivit cerinţei enunţate este prezentat în Figura nr. 2.14.

Pagina 41 din 78
Baze de date – Microsoft Access

Figura nr. 2.14 Modalitatea de rezolvare a interogărilor de tip CrossTab

2.2.3 Crearea cererilor de acţiune


Aşa cum am putut observa, la nivel de tabel sunt permise operaţiunile de actualizare
a datelor (adăugări, modificări sau ştergeri ale înregistrărilor din tabele). Există,
însă, situaţii când actualizările individuale ale anumitor înregistrări din cadrul
tabelelor nu sunt eficiente, atunci când numărul înregistrărilor care ar trebui
actualizate în acelaşi mod este mare. În asemenea cazuri, se justifică actualizarea
în masă a înregistrărilor (desemnând adăugarea, modificarea sau ştergerea mai
multor înregistrări din acelaşi tabel printr-o singură operaţie, specificând tiparul de
actualizare).

Cererile de acţiune sunt o categorie aparte a cererilor de interogare a bazelor de


date, pentru că efectuează schimbări la nivelul bazei de date, aceste schimbări
afectând atât structura tabelelor (interogări pentru crearea de noi tabele), cât şi
datele conţinute de acestea (celelalte interogări de acţiune). De aceea, se impune
să manifestăm o anumită prudenţă în lucrul cu aceste tipuri de cereri, întrucât
rezultatul lor este iremediabil (de exemplu, odată şterse anumite înregistrări, ele nu
mai pot fi recuperate).

Specific acestor tipuri de interogări este faptul că ele trebuie lansate în execuţie
doar prin comanda Run din meniul Query sau prin apăsarea butonului de pa
bara de instrumente.

Pagina 42 din 78
Baze de date – Microsoft Access

2.2.3.1 Cereri pentru modificarea datelor din înregistrările unui tabel (Update
Query)
Sunt interogări utilizate pentru actualizarea înregistrărilor dintr-o tabelă, care
corespund unui anumit criteriu. Pentru a se efectua actualizarea, trebuie să
precizăm, la nivelul unei astfel de cereri, care sunt câmpurile asupra cărora se
aplică criteriul de modificare, care sunt câmpurile ale căror date vor fi modificate şi
care este formula de modificare a acestor date, sau valoarea care se va stoca
pentru câmpurile de modificat. La fel ca şi în cazul celorlalte tipuri de interogări, mai
întâi are loc filtrarea înregistrărilor urmând ca setul de înregistrări rezultat în urma
filtrării să fie supus mai departe operaţiunii de modificare a datelor din câmpul sau
câmpurile actualizabile. Dacă nu există un criteriu de filtrare a înregistrărilor atunci
modificarea va afecta toate înregistrările din tabelul respectiv.

Actualizarea câmpului modificat se poate efectua fie pe baza unei valori scalare
(exemplu: Procentul de comision din vânzări ale casierilor angajaţi înainte de anul
2008 să fie 6%), fie prin implicarea valorilor existente ale câmpului modificabil
(exemplu: să se majoreze cu 2 procente comisionul casierilor angajaţi în anul 2008),
fie prin implicarea valorilor altor câmpuri (exemplu: dacă casierul a fost angajat în
anul 2008, procentul de comision este de 5%, altfel este de 6%).

Pentru exemplificare, vom enunţa o cerere de modificare prin majorarea valorilor


existente ale unui câmp dintr-un tabel: să se majoreze cu 30 zile termenele de
valabilitate în zile ale produselor din categoria cu codul 1. Câmpul de modificat, în
această situaţie, este Termenul de valabilitate din tabelul Produs. Actualizarea se va
realiza doar pentru produsele care fac parte din categoria cu codul 1, deci câmpul
de filtrare va fi CodCategorie din cadrul aceluiaşi tabel. Rezolvarea presupune
crearea unei interogări de selecţie având cele două câmpuri specificate mai sus, şi
criteriul de filtrare CodCategorie=1. Pasul următor defineşte tipul interogării: din Fila
Design grupul Query Type se selectează tipul de interogare Update care va
schimba grila de interogare potrivit capturii din Figura nr. 2.15.

Pagina 43 din 78
Baze de date – Microsoft Access

Figura nr. 2.15 Proiectarea unei interogări de modificare a datelor pe baza unei formule

Executarea interogării prin apăsarea butonului din grupul Design→Result va


aduce modificările solicitate la nivelul tuturor înregistrărilor din tabelul Produse
implicate potrivit criteriului de filtrare. Pentru a putea vizualiza rezultatele, se va
deschide tabelul Produse din grupul de obiecte Tables.

Exemplificarea modului de proiectare a interogărilor de modificare a datelor care ţin


cont şi de valoarea altor câmpuri în operaţiunea de actualizare, vom enunţa şi
explica modul de rezolvare a următoarei cerinţe: Să se majoreze termenul de
valabilitate al produselor din categoria cu codul 1 cu 5 zile, dacă acestea sunt
perisabile şi cu 30 de zile, dacă nu sunt perisabile.

Se observă, prin urmare, că alături de câmpul CodCategorie, considerat câmp de


filtrare pentru interogarea noastră, modificarea se va realiza diferenţiat, în funcţie de
valoarea unui alt câmp din tabelul de actualizat, câmpul Perisabil. Acest câmp ia

Pagina 44 din 78
Baze de date – Microsoft Access

valori logice (True sau False), în funcţie de care depinde cu câte zile se va majora
termenul de valabilitate a acelor produse vizate. Rezolvarea presupune o formulă de
modificare a câmpului TermenValabilitate(zile) care va verifica valoarea câmpului
Perisabil prin intermediul funcţiei IIF. Această funcţie permite evaluarea unei condiţii
şi returnarea a câte unui rezultat în funcţie de rezultatul condiţiei. Se va utiliza, prin
urmare, formula de actualizare:

IIF([Perisabil]=False;[TermenValabilitate(zile)]+30; [TermenValabilitate(zile)]+5)

Modul de proiectare al interogării este explicat în Figura nr. 2.16.

Figura nr. 2.16 Rezolvarea interogării de modificare a datelor utilizând o formula de


actualizare complexă

Se observă că pe rândul Update To toate denumirile de câmpuri trebuie încadrate


între paranteze drepte.

2.2.3.2 Cereri pentru ştergerea înregistrărilor din tabele


Pentru a şterge dintr-o tabelă anumite înregistrări care îndeplinesc un anumit criteriu
de selecţie, se pot defini interogări de acţiune. Cum ştergerea se realizează
întotdeauna la nivel de înregistrare (şi nu la nivel de câmp), important în această
situaţie este criteriul prin care se realizează filtrarea înregistrărilor care urmează a fi
şterse (dacă nici un criteriu nu se precizează, se vor şterge toate înregistrările din
cadrul tabelului respectiv).

Pentru efectuarea unei ştergeri în masă a înregistrărilor potrivit unui criteriu stabilit,
trebuie procedat astfel:

 Se va crea o interogare nouă pe baza tabelei în care se va efectua ştergerea


înregistrărilor;

Pagina 45 din 78
Baze de date – Microsoft Access

 Se aduce în cadrul grilei câmpul sau câmpurile pentru care se vor defini
criteriile de selecţie şi se vor preciza aceste criterii pe rândul Criteria;
 Se va schimba tipul cererii din Select Query în Delete Query, utilizând
opţiunea Query Type->Delete Query;
 Se lansează cererea în execuţie prin apelarea opţiunii Run.

Vom exemplifica prin crearea unei cereri de ştergere a produselor vândute prin
bonurile de casă cu numărul 2 şi 3. Se observă că tabelul din care se solicită
ştergerea este ProduseVândute. Se cere ştergerea acelor înregistrări pentru care
numărul bonului de casă este 2 şi 3. Prin urmare, câmpul de filtrare este NrBonCasă
situat în cadrul aceluiaşi tabel.

Fereastra QBE va conţine următoarele elemente:

Figura nr. 2.17 Definirea unei interogări de ştergere a datelor dintr-un tabel

Notă: Ştergerea înregistrărilor, la fel ca şi modificarea acestora, trebuie să respecte


restricţiile impuse la nivel de tabel şi asociere între tabele. Astfel, actualizările
asupra înregistrărilor unui tabel vor ţine cont de restricţiile asociate integrităţii
referenţiale (modificarea în cascadă a câmpurilor legate, respectiv, ştergerea în
cascadă a înregistrărilor asociate). Dacă aceste opţiuni nu sunt bifate la nivelul
proprietăţilor asocierii tabelului respectiv cu alte tabele care deţin o cheie externă
pentru acesta, atunci actualizarea acestuia nu va fi posibilă.

2.2.3.3 Interogările pentru crearea de noi tabele (Make Table Query)


Acest tip de interogare permite generarea unei noi tabele plecând de la datele
stocate într-una sau mai multe tabele, sau de la rezultatul unei interogări. La bază,
această interogare se va construi pe structura unei interogări de selecţie normale, la
finalul căreia se va schimba tipul de interogare într-una de creare de tabel pe baza
rezultatului acesteia. Prin urmare, scopul acestui tip de interogare rezidă în a stoca

Pagina 46 din 78
Baze de date – Microsoft Access

rezultatul unei foi de răspuns dinamic sub forma unui tabel pentru a surprinde o
situaţie dintr-un anumit moment dat.

Acest tip de interogare se poate crea urmând o anumită succesiune de paşi:

a. crearea unei interogări de selecţie cu toate elementele ei (câmpuri


sortate, criterii de filtrare, câmpuri calculate, sintetizări de date,etc.).
b. transformarea acestei interogări în tipul de creare a unui nou tabel. Acest
pas constă în alegerea tipului de interogare Make Table Query din grupul
Design→Query Type.
c. precizarea în cadrul casetei de dialog care apare a numelui tabelului nou
creat, tabel care se va regăsi după executarea cererii de interogare în
grupul de obiecte Tables.
d. executarea cererii de interogare prin apelarea meniului Query- Run.
Rezolvarea unei cerinţe exemplificative: Să se creeze un tabel nou cu toţi vânzătorii
care au vândut produse în valoare totală mai mare de 3000 lei în anul 2012.

Pasul 1: crearea interogării ce va afişa numele şi prenumele vânzătorilor care în


anul 2012 au vândut produse în valoare mai mare de 3000 lei (interogare pentru
sintetizarea datelor aferente câmpului calculat valoare). Modul de proiectare a
acestei interogări este prezentat în Figura nr. 2.18.

Figura nr. 2.18 Crearea unei interogări pentru generarea unui tabel nou

Pasul 2: Schimbarea tipului interogării din grupul Query Type al meniului Design din
Select în Make Table.

Pasul 3: Precizarea numelui tabelului ce va fi creat: CasieriVanzări (Figura nr. 2.19)

Pagina 47 din 78
Baze de date – Microsoft Access

Figura nr. 2.19 Modificarea tipului de interogare pentru crearea unui nou tabel

Pasul 4: Executarea interogării de creare a tabelului (prin apăsarea butonului Run)


şi vizualizarea informaţiilor din cadrul tabelului nou creat.

În fereastra de navigare a bazei de date va fi prezent un nou tabel cu numele atribuit


la pasul anterior care va conţine toate informaţiile pe care interogarea le-a specificat
prin fereastra de proiectare QBE.

2.2.3.4 Interogări pentru adăugarea de înregistrări (Append Query)


Interogările pentru adăugare oferă utilizatorilor posibilitatea inserării de noi
înregistrări într-un tabel existent în baza de date pornind de la înregistrările
existente.

Pentru a realiza o interogare de tip Append este necesară parcurgerea următoarelor


etape:

1. Elaborarea unei interogări de selecţie în modul Design View. Se va alege tabela ce


conţine datele şi vor fi luate în calcul doar câmpurile ce conţin valorile ce vor fi
adăugate, iar, în cazul în care se doreşte aplicarea unor criterii de selecţie a
acestora, se vor adăuga câmpurile de restricţionat.

2. Se vor tasta eventualele condiţii în rândul de criterii al interogării.

3. Din grupul Design→Query Type se va selecta opţiunea Append Query ce va


conduce la afişarea casetei Append în care se va selecta numele tabelei în care
dorim adăugarea.

Pagina 48 din 78
Baze de date – Microsoft Access

4. Transformarea interogării de selecţie într-o interogare de adăugare are ca efect


imediat apariţia rândului Append To în fereastra de proiectare a interogării. În acest
rând se va specifica pentru fiecare câmp din tabela ce conţine datele denumirea
câmpului corespondent din tabela unde vor fi adăugate.

Pentru exemplificare propunem spre rezolvare următorul exemplu: Să se adauge în


tabelul generat anterior prin interogare de tip creare tabel şi vânzătorii care în anul
2011 au vândut produse în valoare mai mică de 3000 lei.

Modul de rezolvare, respectând paşii expuşi anterior, este prezentat în Figura nr.
2.20.

Figura nr. 2.20 Proiectarea unei interogări pentru adăugarea datelor într-un tabel

3 Obiecte de tip formular într-o bază de date Access


Formularele (Forms) desemnează o categorie de obiecte specializate ale bazei de
date Microsoft Access cu rol de a facilita revizuirea şi editarea informaţiilor din
tabele. Pot fi asimilate ferestrelor Windows care asigură intermedierea între utilizator
și datele unei baze de date (Graphic User Interface). Un formular poate reasambla
informaţiile din tabelele normalizate ale bazei de date potrivit unui format cunoscut
din domeniul în care baza de date funcţionează: factură, chitanţă, cerere de
creditare, adeverinţe, etc. La nivelul formularelor pot fi definite reguli de validare

Pagina 49 din 78
Baze de date – Microsoft Access

suplimentare celor definite în cadrul tabelelor. De asemenea, există posibilitatea


definirii unor formulare care să preia datele din două sau mai multe tabele şi să le
afişeze sau actualizeze împreună.

Din punct de vedere structural, un formular Access este alcătuit din anumite zone
care interacţionează în diverse moduri cu utilizatorul. Aceste zone poartă denumirea
de controale şi alcătuiesc interfaţa grafică pentru gestiunea datelor. La baza
construirii formularului stă o sursă de date (formată din unul sau mai multe tabele
sau interogări existente la nivelul bazei de date). Sursa de date va fi cea care oferă
informaţii afişate prin intermediul controalelor şi care va fi actualizată în timp real
(orice modificare a datelor la nivel de formular se reflectă automat în tabelele sursei
de date).

Formularele din cadrul unei aplicaţii Access pot fi create în scopul de a afişa şi
actualiza datele din cadrul unor tabele (le vom numi Formulare legate), care prezintă
o sursă de date, sau pentru alte scopuri, cum ar fi afişarea unor mesaje, afişarea
meniurilor aplicaţiei, deschiderea altor formulare sau rapoarte, etc. (formulare care
se numesc nelegate).

Obiectele de tip formular sunt grupate în categoria Forms din cadrul ferestrei bazei
de date.

Câteva considerente care ar putea recomanda utilizarea formularelor în cadrul unei


baze de date Access ar fi:

 Interfața cu utilizatorul final prin intermediul controalelor (butoane, casete


text, etc.).
 Posibilitatea actualizării concomitente a mai multor tabele.
 Completarea regulilor de validare definite la nivelul tabelelor cu unele mai
complexe.
 O aranjare mai bună a informaţiilor de revizuit sau editat.
 Informaţii suplimentare faţă de cele existente în tabele (câmpuri calculate,
comentarii şi explicaţii, etc.)

Formularele legate de o sursă de date (unul sau mai multe tabele sau interogări) pot
afişa informaţiile din cadrul acesteia în diverse moduri:

Pagina 50 din 78
Baze de date – Microsoft Access

1. Sub formă de coloană (Single Form)

2. Sub formă tabelară (Multiple Items)

Pagina 51 din 78
Baze de date – Microsoft Access

3. Mixte (Split Form)

4. Tip foaie de calcul (Datasheet)

5. Tip grafic (Chart)

Pagina 52 din 78
Baze de date – Microsoft Access

3.1 Crearea formularelor legate


Pentru afişarea într-unul din modurile prezentate anterior, Access pune la dispoziţie
diverse modalităţi pentru crearea formularelor, prin selectarea uneia dintre opţiunile
prezente în grupul Create→Forms (Figura nr. 3.1)

Figura nr. 3.1 Modalități de creare a formularelor Access

Din lista de modalităţi afişate se va selecta cea dorită pentru crearea formularului:

 Form – generarea rapidă a unui formular având drept sursă un tabel sau
interogare selectat(ă) în prealabil;
 Design View – toate operaţiile de proiectare vor fi stabilite de utilizator;
 Blank Form – generarea unui formular gol care poate fi ulterior completat cu o
sursă de date;
 Form Wizard - utilizatorul va fi îndrumat pas cu pas în crearea formularului;
 Navigation – proiectarea unei ferestre de tip meniu prin care pot fi accesate
mai multe formulare pe care baza de date le deţine.

Pentru facilitarea efortului de proiectare a unui astfel de formular, Access ne pune la


dispoziţie o serie de asistenţi (Wizards), care ne invită să parcurgem anumiţi paşi în
urmă cărora formularul va fi finalizat. Aceasta este cea mai uşoară cale pentru
realizarea unui obiect de tip formular. Însă nu întotdeauna rezultatul obţinut în urma
utilizării asistentului este cel scontat, de multe ori fiind necesară personalizarea
formularului obţinut. În această situaţie utilizatorul va trebui să apeleze la cea de-a

Pagina 53 din 78
Baze de date – Microsoft Access

doua metodă pentru crearea formularelor şi anume, metoda de proiectare a


acestora (Design View).

3.1.1 Crearea rapidă a unui formular


Un formular poate fi realizat doar printr-un singur clic prin apelarea utilitarului Form,
apelabil din grupul de meniul Create→Forms. Este o metodă extrem de simplă,
Access apelând la un format predefinit pe care îl va folosi pentru a construi
formularul legat la o sursă de date selectată în prealabil (un tabel sau o interogare).
Pentru utilizarea acestei metode se vor parcurge următorii paşi:

1. Se selectează tabelul sursă din fereastra de navigare (Navigation Pane)


situată în partea stângă a ecranului bazei de date.
2. Se apelează opţiunea Form din grupul Create→Forms.
3. Se va deschide formularul în modul Layout ce va permite redimensionarea
controalelor ce vor afişa valorile câmpurilor din cadrul sursei de date.

Observaţie: Dacă tabelul sursă este asociat cu un singur tabel (care deţine o cheie
externă asociată cu cheia primară a acestuia) formularul generat automat prin
această metodă va afişa şi informaţiile tabelului asociat, filtrând datele din tabelul
asociat în funcţie de valoarea câmpului de legătură. Luând drept sursă de date
tabelul CategoriiProduse, observăm că singurul tabel cu care se asociază este
tabelul Produse, cel care deţine cheia externă CodCategorie.

Crearea formularului rapid pe baza tabelului CategoriiProduse va genera, de


asemenea, în baza acestei asocieri, o secţiune în cadrul acestui formular care va
conţine date despre produsele aflate în categoria de produse afişată la acel moment
(Figura nr. 3.2).

Pagina 54 din 78
Baze de date – Microsoft Access

Figura nr. 3.2 Crearea unui formular rapid utilizând o sursă de date

3.1.2 Utilizarea asistentului pentru crearea formularelor Access


Deşi maniera de realizare a formularelor rapide este una extrem de facilă, ea nu
implică deloc utilizatorul în personalizarea formularului realizat, oferind un design
predefinit. O altă variantă de realizare a formularelor legate (prezentând o sursă de
date) este utilizarea asistentului de proiectare a acestora. Prin această metodă de
lucru, utilizatorul poate răspunde la o serie de întrebări într-o manieră interactivă
comunicând asistentului informaţiile de care are nevoie pentru stabilirea sursei de
date a formularului şi a modului de personalizare a acestuia.

Proiectarea formularelor utilizând varianta Form Wizard presupune parcurgerea


anumitor paşi, atunci când sursa de date este o tabelă:

1. În fereastra Form Wizard se va selecta mai întâi tabelul sau tabelele care vor sta
la baza afişării datelor din cadrul formularului, după care se vor preciza care sunt
câmpurile care vor apărea în cadrul acestuia.

Pagina 55 din 78
Baze de date – Microsoft Access

2. Se alege tipul de formular dorit, precizându-se modul în care vor fi afişate datele.

3. Definirea titlului formularului, precum şi modul în care va fi deschis acesta (pentru


vizualizarea datelor sau pentru modificare).

Pagina 56 din 78
Baze de date – Microsoft Access

În urma utilizării asistentului se va deschide formularul în modul de editare a


informaţiilor, având sursa de date şi structura specificată prin răspunsurile la
întrebările de mai sus.

Observaţie: În primul pas al asistentului pentru proiectarea formularului, Access


oferă posibilitatea selectării mai multor tabele care vor constitui sursa de date a
formularului ce urmează a fi creat.

Pagina 57 din 78
Baze de date – Microsoft Access

Etapa 1: Selectarea câmpurilor aferente Etapa 2: Alegerea ca sursă de date a


tabelului cu cheia primară tabelului cu cheia externă şi selectarea
câmpurilor acestuia alături de cele selectate
anterior.

Etapa 3: Alegerea modului de grupare a Etapa 4: Selectarea modului de afişare a


datelor în cadrul formularului: datelor specifice tabelului cu cheia externă:

Etapa 5: Definirea numelor specifice formularului principal (care afişează date din tabela cu
cheia primară) şi a subformularului (cel bazat pe tabela cu cheia externă a asocierii):

Pagina 58 din 78
Baze de date – Microsoft Access

În această situaţie în care sursa de date a formularului este multiplă (mai multe
tabele asociate prin intermediul cheilor externe) succesiunea paşilor prezentaţi mai
sus va fi completată de alţii suplimentari care au rolul de a stabili precedenţa afişării
informaţiilor şi modul de vizualizare a acestora (toate într-un singur formular –
formular cu subformular asemănător exemplului cu furnizorii şi facturile) sau prin
formulare legate (pentru fiecare tabel se creează un formular, un formular putând
redirecta către celălalt).

3.1.3 Crearea formularelor în modul de proiectare


Modul de proiectare al formularelor este cea mai completă metodă de creare a unui
formular, necesitând o bună cunoaştere a detaliilor tehnice de funcţionare a unui
formular. Făcând apel la diverse metode de proiectare conţinutului formularului şi de
stabilire a proprietăţilor acestora, modul de realizare a unui formular prin metoda de
proiectare oferă posibilitatea modificării aspectului formularului sau stabilirii de reguli
suplimentare de validare a datelor.

Structura unui formular este descrisă în modul de proiectare. Orice formular conţine
3 secţiuni importante, secţiuni în care vor fi desenate controalele şi ulterior încărcate
cu date. Acestea sunt:

 Secţiunea de antet a formularului (Form Header), folosită, în general,


pentru a afişa titlul formularelor, sau alte informaţii referitoare la
utilizarea acestuia.

 Secţiunea de detaliu a formularului (Detail), este zona care va


conţine toate controalele necesare afişării datelor sau a altor acţiuni
cu privire la acestea.

 Secţiunea de subsol a formularului (Form Footer), zona care apare


în partea de jos a formularului şi poate conţine diverse informaţii,
cum ar fi totalul general, sau diverse controale.

În plus, orice formular conţine bara de navigare care prezintă butoanele de


deplasare prin înregistrări (prima înregistrare, înregistrarea anterioară, înregistrarea
următoare, ultima înregistrare şi butonul pentru adăugarea unei noi înregistrări).

Butoanele de navigare sunt afişate numai în timpul execuţiei formularului.


Controalele unui formular pot fi plasate în orice secţiune a formularului şi, la rândul
lor, pot fi legate de o sursă de date (situaţie în care menirea acestora este de a afişa
valoarea unui câmp din sursa de date a formularului) sau pot fi libere, îndeplinind
funcţii de informare a utilizatorului sau funcţii de interacţionare a acestuia cu
interfaţa grafică a formularului. Structura standard a unui formular este prezentată în
Figura nr. 3.3.

Pagina 59 din 78
Baze de date – Microsoft Access

Figura nr. 3.3 Explicarea structurii standard a unui formular

Proiectarea unui formular de la bun început prin precizarea tuturor elementelor


componente ale acestuia poate fi realizată prin apelarea opţiunii
Create→Form→Form Design. Aici se pot preciza, pe rând, informaţii privind sursa
de date a formularului, se pot selecta care din câmpurile acesteia vor fi plasate pe
suprafaţa formularului, se poate personaliza formatul de afişare a formularului prin
modificarea proprietăţilor de formatare a acestuia, etc.

Cu toate acestea, tehnica cea mai utilizată la crearea unui formular este
următoarea: într-o primă fază, formularele sunt generate cu ajutorul unui asistent,
după care sunt deschise în modul Design pentru a fi modificate, astfel încât să
corespundă cât mai bine cerinţelor utilizatorului final.

Figura nr. 3.4 Comutarea unui


formular în modul de proiectare
Design View

Pagina 60 din 78
Baze de date – Microsoft Access

Pentru accesarea modului de proiectare a unui formular creat anterior cu unul dintre
asistenţii prezentaţi se va deschide formularul dorit prin efectuarea unui dublu clic
pe numele acestuia, apoi se va comuta în modul de vizualizare pentru proiectare
prin apelarea opţiunii Home→Views→View→Design View.

La comutarea formularului în modul de proiectare pot fi observate controalele


aferente câmpurilor selectate spre a fi afişate din sursa de date. Aceste controale
sunt, în general de două tipuri: caseta text (Text Box) este folosită pentru afişarea
valorii unui anumit câmp aferente înregistrării curente şi eticheta (Label) destinată
afişării numelui câmpului, aşa cum apare el în cadrul sursei de date. În modul de
proiectare aceste controale pot fi personalizate prin redimensionare, mutare,
redenumire, formatare, etc. şi, de asemenea, pot fi adăugate şi alte controale din
grupul de opţiuni Design→Controls.

Multe din aceste tipuri de controale sunt însoţite de asistenţi specifici care oferă
utilizatorului diverse opţiuni pentru realizarea unei anumite funcţionalităţi specifice,
prin parcurgerea anumitor paşi. Plasarea unui control pe suprafaţa formularului se
face prin selectarea controlului dorit din grupul Controls urmată de schiţarea cu
ajutorul mausului a zonei pe care acesta o va ocupa pe suprafaţa formularului.

Odată cu deschiderea formularului în modul Design, este afişat grupul de opţiuni


denumit Controls, care conţine toate controalele pe care utilizatorul le poate ataşa
unui formular.

Figura nr. 3.5 Suita de controale disponibile spre a fi utilizate în cadrul unui formular

Alături de aceste controale, această bară de instrumente prezintă un buton pentru


activarea asistentului pentru acele controale pentru care există posibilitatea afişării
lui (Use Control Wizards). Dacă această opţiune este activată, atunci asistentul va fi
afişat de fiecare dată când utilizatorul plasează un control pe suprafaţa formularului.

Pagina 61 din 78
Baze de date – Microsoft Access

Pentru ataşarea unui control în cadrul unui formular, se efectuează clic pe


pictograma controlului dorit, cursorul va căpăta forma semnului plus, urmând ca
utilizatorul să traseze suprafaţa pe care o va ocupa controlul în cadrul formularului.

Dintre controalele puse la dispoziţia utilizatorului, cele mai importante sunt casetele
text (Textbox) şi casetele derulante (Combobox), utilizate pentru afişarea datelor din
cadrul câmpurilor sursei de date. Alături de acestea sunt utilizate şi etichetele
(Label), pentru afişarea denumirilor de câmpuri, sau butoanele de comandă
(Command button), pentru executarea diverselor acţiuni, de deplasare prin
înregistrări, de adăugare, modificare sau ştergere a înregistrărilor din tabela sursă.

Fiecare control poate fi deplasat oriunde pe suprafaţa formularului şi poate fi


redimensionat, cu ajutorul mausului, prin poziţionarea acestuia în diverse zone ale
marginii controlului, selectat în prealabil.

Prin trasarea butoanelor de comandă pe suprafaţa formularului, Access afişează


asistentul care oferă posibilitatea de a defini anumite acţiuni pentru butonul de
comandă nou creat. Prin parcurgerea paşilor acestui asistent, butonului de comandă
i se va ataşa un cod care va executa acţiunea aleasă la proiectare.

1. Precizarea categoriei de acţiuni şi a acţiunii pe care trebuie să o execute


butonul de comandă la efectuarea unui clic pe suprafaţa lui, în momentul
execuţiei formularului.

2. Precizarea textului sau pictogramei care va fi afişat/afişată pe suprafaţa


butonului de comandă.

Pagina 62 din 78
Baze de date – Microsoft Access

3. Precizarea numelui butonului de comandă, cu care va fi identificat în cadrul


formularului.

Prin apăsarea butonului Finish, butonul de comandă va fi creat, iar în momentul


vizualizării formularului, la efectuarea unui clic, butonul de comandă va executa
acţiunea precizată la proiectare.

Pagina 63 din 78
Baze de date – Microsoft Access

Fiecare formular, fiecare secţiune a formularului şi fiecare control din cadrul său
deţine un set de proprietăţi, grupate în cinci mari categorii de acţiuni:

a. Categoria Format, ce conţine proprietăţi cu privire la modul de


afişare a formularului sau controalelor din cadrul său;

b. Categoria Data, ce grupează toate proprietăţile care se referă la


sursa de date a formularului sau controalelor;

c. Categoria Event, grupând toate evenimentele la care formularul


sau controalele pot răspunde;

d. Categoria Other, ce conţine toate celelalte proprietăţi care nu se


regăsesc în primele trei categorii;

e. Categoria All, ce grupează toate proprietăţile prezente în primele


patru categorii.

Figura nr. 3.6 Proprietăţile unui formular

Aceste proprietăţi sunt diferite pentru fiecare control în parte, dar indiferent care ar fi
acestea, categoriile în care ele sunt grupate sunt aceleaşi.

Fiecare proprietate posedă o singură valoare. Precizarea valorii unei proprietăţi se


poate face fie prin tastarea valorii respective, fie prin selectarea valorii dintr-o listă
derulantă, fie cu ajutorul asistentului, care poate fi invocat prin apelarea meniului
contextual (click dreapta pe numele proprietăţii) şi alegerea opţiunii Build Wizard.

Pagina 64 din 78
Baze de date – Microsoft Access

Pentru a afişa caseta de proprietăţi a formularului, se va efectua dublu clic pe


caseta de selecţie a acestuia, situată între cele două rigle din cadrul formularului
deschis în modul de proiectare.

Figura nr. 3.7 Procedura de afişare a


proprietăţilor formularului deschis în modul
Design View

Pentru afişarea casetei de proprietăţi a unui control, se selectează mai întâi


controlul respectiv, după care se efectuează clic dreapta pe suprafaţa controlului
selectat şi se alege opţiunea Properties.

3.2 Crearea formularelor nelegate


Un formular nelegat se caracterizează prin faptul că nu prezintă o sursă de date
care să stea la baza lui, adică nu există o legătură între un tabel sau interogare din
cadrul bazei de date şi formularul în cauză.

Dintre proprietăţile unui formular, există una care ne oferă posibilitatea să


transformăm oricând un formular nelegat într-un formular legat.

Figura nr. 3.8 Stabilirea


manuală a sursei de date a
unui formular prin
selectarea tabelului sau
interogării necesare

Pagina 65 din 78
Baze de date – Microsoft Access

Aceasta este proprietatea Record Source, din categoria Data (Figura nr. 3.8).
Putem alege sursa de date din lista de tabele sau interogări care va fi afişată sau
putem construi o sursă de date pe baza a mai multor tabele sau interogări, cu
ajutorul asistentului pentru această proprietate (prin apăsarea butonului situat în
dreapta listei cu tabelele şi interogările).

Nota: Nu pot fi create formulare nelegate cu ajutorul unui asistent. De aceea, pentru
a putea realiza un astfel de formular, trebuie să se cunoască foarte bine metoda prin
care se pot ataşa controale formularului şi stabili ulterior proprietăţile acestor
controale, astfel încât rezultatul să fie cel scontat.

4 Obiecte de tip raport într-o bază de date Access


Înregistrările dintr-un tabel sau interogare pot fi uşor imprimate direct din cadrul
obiectelor care le conţin. Se poate deschide obiectul Access respectiv şi se
apelează meniul File->Print. Însă, dacă se doreşte ca situaţiile rezultat să apară într-
o formă mai atractivă, dacă se impune includerea de calcule sau crearea anumitor
grafice pe baza datelor din tabele sau interogări, sau, pur şi simplu, afişarea unui
antet sau a unui subsol personalizat care să apară pe fiecare pagină din situaţia de
ieşire, atunci trebuie creat un obiect de tip raport.

Rapoartele sunt, deci, obiecte din cadrul unei baze de date Access care sunt
destinate imprimării pe suport de hârtie şi care fac ca datele din tabele sau
interogări să fie afişate într-o formă atractivă, uşor de înţeles şi uşor de analizat.

4.1 Crearea obiectelor de tip raport


Rapoartele se aseamănă, din punctul de vedere al proiectării lor, cu formularele.
Pentru afişarea datelor din tabele sau interogări se utilizează controale de tip casete
text, pentru afişarea denumirilor de câmpuri se folosesc controale de tip etichetă, iar
pentru afişarea anumitor imagini grafice, controalele de tip imagine (Image). Însă,
dat fiind faptul că scopul acestor obiecte diferă de cel al formularelor, în sensul că
ele nu pot executa anumite operaţii care să se declanşeze la apariţia unor
evenimente (de exemplu, la efectuarea unui clic cu mausul), atunci este uşor de
înţeles că anumite controale destinate executării anumitor acţiuni nu-şi au sensul în
cadrul unui astfel de obiect, întrucât ele vor fi tratate ca simple imagini, şi nu-şi vor
executa acţiunile pentru care au fost create. În categoria acestor controale intră
butoanele de comandă, casetele derulante sau butoanele de opţiune (Option
Button).

Un obiect de tip raport pune la dispoziţia celui care îl proiectează unele avantaje:

o Opţiuni de formatare atractive: Putem schimba tipul, mărimea sau culoarea


fontului utilizat în cadrul rapoartelor, pentru a le face mai uşor de citit. Putem
adăuga linii, casete text, sau imagini grafice în cadrul raportului.

Pagina 66 din 78
Baze de date – Microsoft Access

o Opţiuni de sortare şi grupare a datelor după diverse câmpuri: Rapoartele din


Access sunt un instrument puternic pentru totalizarea şi organizarea informaţiilor
pe grupuri de date.

o Opţiuni de combinare a datelor din mai multe tabele legate: un singur raport
poate afişa date din mai multe tabele sau interogări care conţin câmpuri de
legătură, sau între care există deja creată o asociere.

Acest capitol descrie care sunt posibilităţile de creare a obiectelor de tip raport dintr-
o bază de date Access şi care ar fi principalele avantaje pentru care ar trebui să
folosim un anumit tip de raport pentru prezentarea unor situaţii diverse.

Elementele prezentate la crearea formularelor sunt asemănătoare cu cele specifice


creării obiectelor de tip raport.

Pentru crearea rapoartelor Access există câteva modalităţi la care utilizatorul poate
face apel:

 Crearea instantanee a unui raport pe baza unui tabel sau unei interogări
Sursă (opţiunea Create→Report)

 Crearea unui raport prin parcurgerea pașilor unui asistent (opţiunea Report
Wizard)

 Crearea unui raport prin proiectare și formatare manuală (opţiunea


Report→Design).

Obiectele de tip raport sunt grupate în categoria Reports din cadrul ferestrei de
navigare a bazei de date.

Grupul de opţiuni specifice realizării rapoartelor se află în meniul Create şi poartă


eticheta Reports. Pentru a crea un raport nou, fie se apelează opţiunea de generare
automată a unui raport rapid (Report), fie se apelează la ajutorul asistentului (Report
Wizard) din cadrul aceluiaşi grup de meniuri. În ambele situaţii trebuie selectată, în
prealabil, sursa de date a raportului care poate fi fie un tabel sau mai multe tabele
asociate, fie o interogare existentă.

Crearea rapoartelor cu ajutorul asistentului este o metodă flexibilă de realizare a


unor situaţii centralizatoare privind informaţiile furnizate de baza de date.
Construirea structurii raportului ţine cont de răspunsurile la întrebările pe care
asistentul le adresează utilizatorului prin paşii pe care îi afişează.

4.1.1 Generarea rapoartelor cu ajutorul asistentului (Report Wizard)


Cea mai simplă modalitate, şi în acelaşi timp şi cea mai utilizată, pentru crearea
unui raport, este utilizarea asistentului Report Wizard. Acesta prezintă o succesiune
de paşi, al căror număr diferă în funcţie de numărul de tabele sau interogări care

Pagina 67 din 78
Baze de date – Microsoft Access

stau la baza raportului. La finalul acestor paşi se va afişa raportul dorit, cu toate
informaţiile specificate în cadrul său.

Paşii pe care utilizatorul trebuie să-i parcurgă conţin o serie de întrebări la care
acesta trebuie să răspundă şi care se concretizează în opţiunile sale pentru raportul
dorit. Dat fiind faptul că numărul de paşi este mai mare în situaţia în care raportul
are ca sursă de date mai mult de o tabelă sau interogare, vom prezenta în
continuare crearea unui raport pe baza a două tabele (BonDeCasa şi
ProduseVândute):

1.Precizarea sursei raportului şi a câmpurilor pe care acesta le va


conţine.

Pagina 68 din 78
Baze de date – Microsoft Access

Figura nr. 4.1 Apelarea asistentului pentru crearea raportului şi precizarea sursei de date a
acestuia

2. Modul de organizare a datelor din raport, precizând care este tabela în funcţie
de care vor fi grupate datele. Între tabelele sau interogările sursei de date
trebuie să existe câmpuri de legătură.

Figura nr. 4.2 Specificarea priorităţii de afişare a datelor în cadrul raportului

Pagina 69 din 78
Baze de date – Microsoft Access

3. Precizarea câmpurilor suplimentare în funcţie de care se va face gruparea


datelor în cadrul raportului. (Datele vor fi afişate sub forma unor grupuri
pentru aceeaşi valoare a câmpului de grupare).

Figura nr. 4.3 Specificarea unor câmpuri de grupare suplimentare faţă de pasul precedent

4. Sortarea datelor în cadrul raportului. De reţinut că orice câmp pentru care s-a
făcut gruparea datelor este în acelaşi timp şi câmp de sortare, deci automat
valorile sale vor fi sortate crescător. Există posibilitatea de a efectua sortarea
datelor pe patru nivele, adică se va trece la sortarea de pe nivelul următor,
numai dacă valorile câmpului curent de sortare sunt egale. Sortarea se poate
face crescător sau descrescător.

Există, de asemenea, posibilitatea de a preciza opţiuni de totalizare la nivelul


fiecărui grup din cadrul raportului, prin apăsarea butonului Summary Options.

Pagina 70 din 78
Baze de date – Microsoft Access

Figura nr. 4.4 Specificarea modului de ordonare a datelor din cadrul raportului şi a opţiunilor
de totalizare la nivel de grup

5. Alegerea modului de aranjare în pagină a datelor. Access ne pune la


dispoziţie, pentru rapoartele cu sursă de date formată din mai mult de o
tabelă, şase posibilităţi de aranjare a câmpurilor şi valorilor acestora în cadrul
raportului. În funcţie de numărul câmpurilor sursei de date, el poate opta
pentru una din aceste opţiuni. De asemenea, tot aici, putem preciza şi cum
va fi imprimat raportul (pe orizontală – Landscape, sau pe verticală –
Portrait).

Pagina 71 din 78
Baze de date – Microsoft Access

Figura nr. 4.5 Precizarea modului de aranjare a datelor în cadrul raportului curent

6. Definirea numelui raportului, precum şi precizarea modului în care acesta va


fi deschis (pentru proiectare sau pentru vizualizarea datelor).

Figura nr. 4.6 Precizarea numelui raportului ce urmează a fi creat

Pagina 72 din 78
Baze de date – Microsoft Access

În urma finalizării acţiunii asistentului se va genera un raport nou, care poate fi


ulterior îmbunătăţit, prin modificarea sa utilizând modul de proiectare Design View.

Figura nr. 4.7 Raportul generat cu ajutorul asistentului

4.1.2 Modul de proiectare Design View


De multe ori, asistentul pentru crearea rapoartelor se dovedeşte a fi suficient pentru
a realiza situaţiile dorite. Însă, uneori, este necesar să modificăm structura unui
astfel de raport pentru a adăuga noi date sau pentru a modifica modul de afişare a
informaţiilor din cadrul său. Pentru această trebuie să deschidem raportul în modul
de proiectare a acestuia.

Vom observa ca orice raport conţine cinci secţiuni standard, în cadrul cărora vor fi
incluse controale pentru afişarea informaţiilor. Este important să cunoaştem aceste
secţiuni, întrucât ele apar în mod diferit în cadrul unui raport, iar includerea unui
control într-una din aceste secţiuni va conduce la apariţia controlului respectiv doar
când această secţiune va fi afişată în raport.

Cele cinci secţiuni standard din cadrul unui raport sunt:

1. Antetul raportului (Report Header). Este secţiunea care apare o


singură dată la afişarea raportului, la începutul acestuia, precedând orice
informaţie conţinută de celelale secţiuni.

Pagina 73 din 78
Baze de date – Microsoft Access

2. Antetul de pagină (Page Header). Apare pe fiecare pagină, la începutul


acesteia, afişând controalele conţinute în cadrul său, o singură dată pentru
fiecare pagină.

3. Conţinutul raportului (Detail). Conţine toate informaţiile afişate prin


intermediul controalelor din cadrul său. Această secţiune are proprietatea de
a se repeta de fiecare dată când întâlneşte o înregistrare nouă, astfel încât
toate înregistrările din cadrul sursei de date să fie afişate în cadrul său.

4. Subsolul de pagină (Page Footer). Este secţiunea care apare în cadrul


fiecărei pagini, o singură dată pe pagină, la finalul acesteia.

5. Subsolul raportului (Report Footer). Această secţiune afişează


controalele din cadrul său la sfârşitul raportului.

Figura nr. 4.8 Structura de bază a unui raport Acccess

Toate aceste cinci secţiuni apar în mod obligatoriu la nivelul unui raport. Însă,
uneori, în cadrul ferestrei Design View ale raportului mai apar şi alte secţiuni, în
urma stabilirii unor criterii de grupare a datelor din raport, fiecare câmp de grupare
fiind însoţit de un antet de grupare şi un subsol de grupare.

Pagina 74 din 78
Baze de date – Microsoft Access

Figura nr. 4.9 Structura unui raport ce prezintă grupări de date completată cu secţiunile de
grupare

Opţiunile de grupare a informaţiilor prezentate în cadrul raportului în funcţie de unul


sau mai multe câmpuri ale sursei de date selectate pot fi vizualizate şi modificate,
după caz, în panoul de grupare şi sortare a datelor ce poate fi apelat prin opţiunea
Design→Grouping&Totals →Group&Sort.

Figura nr. 4.10 Posibilităţi de modificare a opţiunilor de grupare la nivelul raportului

Pagina 75 din 78
Baze de date – Microsoft Access

Toate controalele conţinute de către un raport pot fi redimensionate, mutate sau li se


pot aplica diverse formate pentru afişarea în mod diferit a datelor din tabele sau
interogări. La fel ca şi în cazul formularelor, fiecare raport, control sau secţiune de
raport deţine un set de proprietăţi care pot fi modificate în fereastra de proiectare.
Aceste proprietăţi sunt grupate în aceleaşi categorii ca şi la formulare. Modalităţile
de afişare a acestor proprietăţi au fost prezentate în capitolul anterior.

Pagina 76 din 78
Baze de date – Microsoft Access

Bibliografie selectivă

1. Grupul BDASEIG - Baze de date, Ed. Infomega, 2002.

2. Florescu V., Stanciu V., Cozgarea G., Cozgarea A. – Baze de date,


Ed. Economică, 1999.

3. Jonathan Hide – Microsoft Access 2000, Ed. CustomGuide, 2000.

4. Roger Jennings, Utilizare Access pentru Windows 95, Ediţie Specială,


Ed.Teora, Bucureşti, 1997.

5. Faithe Wempen, Microsoft Office 97 Professional, 6 în 1, Ed. Teora,


Bucureşti, 1998.

Pagina 77 din 78
Titlul programului: Programul Operaţional Sectorial Dezvoltarea Resurselor
Umane 2007-2013

Titlul proiectului: Utilizarea TIC pentru servicii de calitate în domeniul


financiar contabil

Editorul materialului: Academia de Studii Economice

Data publicării: Aprilie, 2012

Citat: Conținutul acestui material nu reprezintă în mod


obligatoriu poziția oficială a Uniunii Europene sau a
Guvernului României.

Utilizarea TIC pentru servicii de calitate în domeniul financiar contabil


POSDRU/81/3.2/S/59664

Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial
Dezvoltarea Resurselor Umane 2007-2013

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