Documente Academic
Documente Profesional
Documente Cultură
Sumar:
Prezentare generală
Crearea şi actualizarea bazelor de date
Formulare
Interogare
Rapoarte
Programe, aplicaţii şi meniuri
2 Instrumente software pentru afaceri
ACCESS este un sistem de gestiune a bazelor de date integrat în pachetul MS Office destinat
pentru uzul personal, pentru munca în grup sau pentru mici afaceri. Fiind, probabil, cel mai utilizat
instrument software dedicat bazelor de date, ACCESS oferă următoarele facilităţi majore:
dispune de o interfaţă uşor de folosit pentru introducerea datelor;
„găseşte” rapid datele legate între ele;
asigură afişarea pe ecran sau tipărirea la imprimantă a datelor într-un format uşor de înţeles;
permite afişarea datelor sub formă de grafice sau ca pagini Web;
are incluse mecanisme pentru exportul datelor în Excel şi /sau Word;
asigură protejarea datelor de erori;
automatizează operaţiile comune pentru a reduce timpul de dactilografiere.
ACCESS este conceput pentru scenarii multiutilizator, ceea ce înseamnă că mai mulţi
utilizatori pot accesa aceleaşi tipuri de date în acelaşi timp. Teoretic o bază de date ACCESS 2003 se
poate adapta pentru 255 de utilizatori simultan.
Figura 5.1 Deschiderea sesiunii ACCESS din Figura 5. 2 Deschiderea sesiunii ACCESS din
meniul Start meniul rapid
meniul rapid (figura 5.2), selectând comanda New şi apoi opţiunea Microsoft Office ACCESS
Application;
shortcut-ul de pe Desktop (figura 5.3), accesând pictograma de pe desktop, dacă a fost creată o
scurtătură ACCESS 2003.
Interfaţa ACCESS
Dialogul utilizator-sistem se realizează, prin intermediul interfeţei ACCESS constituită, în
principal, din linia instrumente Database, linia de meniuri şi panoul de activităţi.
Linia /Bara de instrumente Database, pe lângă butoanele prezente în liniile Standard ale
altor produse MS Office, are în componenţă o serie de butoane specifice:
Figura 5.4 Task Pane Figura 5.5 Task Pane – New File
4 Instrumente software pentru afaceri
Dacă se optează pentru crearea unui nou fişier, Task Pane oferă mai multe variante (figura
5.5):
Blank database - crearea unei baze de date „goale” care nu conţine date sau orice alte obiecte
(opţiunea cea mai des utilizată);
From Existing File – crearea unei baze de date noi folosind structura unei baze de date
existente;
On my computer – construirea unei baze de date dintr-un fişier şablon;
Project using existing data şi Project using new data - proiectele ACCESS combină
interfaţa prietenoasă cu utilizatorul a programului ACCESS cu puterea unui server de baze de
date performant, cum este Microsoft SQL Server.
Proiectele ACCESS permit dezvoltarea unor noi aplicaţii client-server în următoarele situaţii
mai complexe:
datele sunt foarte importante; nu se acceptă nici un fel de pierderi de date şi nici o
indisponibilitate temporară a datelor;
datele vor fi folosite simultan de mai multe persoane. ACCESS admite cel mult 255 de
utilizatori, dar performanţele pot fi mult diminuate dacă utilizatorii sunt deosebit de activi;
baza de date va avea dimensiuni foarte mari.
Configurarea sesiunii de lucru în ACCESS
Ca şi alte produse software, ACCESS permite stabilirea unor parametrii de lucru pentru
sesiunea curentă şi, eventual, a sesiunilor următoare. În acest scop se activează din meniul Tools,
comanda Options. Fereastra acestei comenzi este structurată pe numeroase cadre de pagină: View,
General, Edit/Find, International etc.
Vizăm în continuare doar cadrul de pagină General care, printre altele, permite stabilirea unui
director implicit în care vor fi salvate fişierele. Pentru exemplificare, din raţiuni lesne de înţeles, în
zona Default database folder:, s-a declarat ca director curent D:\FEAA\Anul2005-
2006\Instrumente software pentru afaceri\ISA_ZI\Capitolul 5 (figura 5.6).
Date /Time General Date – este tipul de date folosit pentru a stoca data calendaristică
şi/sau timpul şi are mai multe formate: Long Date, Medium Date, Short Date, Long Time,
Medium Time, Short Time;
Currency – este asemănător datelor numerice, cu deosebirea că acceptă doar patru digiţi
pentru partea zecimală. Este conceput pentru a evita erorile de rotunjire, astfel încât
calculele cu bani să fie precise. Şi datele de acest tip pot avea mai multe formate: General
Number, Format Euro, Currency, Fexed, Standard, Percent, Scientific;
AutoNumber – este o variantă specială a datelor Number. Este recomandat în procedura
de stabilire a cheii primare, atunci când din structura tabelei este dificil de ales un câmp
reprezentativ. Formatele pentru AutoNumber sunt: Long Integer, Replication ID;
Yes /No - este conceput pentru a păstra înregistrări simple On /off. Formatele pot fi: True
/False, On/Off;
Ole Object – permite stocarea informaţiilor într-un format accesibil altor programe
(documente Word, foi de calcul Excel, imagini, fişiere cu muzică etc.)
Hyperlink – este un tip de date text special conceput pentru a stoca hyperlink-uri către
site-uri Web sau alte resurse Internet;
Lookup Wizard – câmp special de căutare.
Remarcăm disponibilitatea datelor de tip Lookup Wizard care sunt folosite pentru a declara
câmpuri de căutare. Majoritatea bazelor de date organizează două tipuri de tabele: cele care includ
date primare şi cele care conţin liste de valori folosite în tabele. Aceste tabele auxiliare se numesc
tabele de căutare (lookup tables) şi prezintă două avantaje: pun la dispoziţia utilizatorului opţiuni
consecvente şi simplu de utilizat şi permit validarea datelor, acceptând numai datele din tabel. Dacă
lista intrărilor posibile pentru un câmp este redusă şi are o perioadă mare de valabilitate se poate crea
un tabel de căutare bazat pe o lista de valori introduse, nu pe tabel (de exemplu, pentru câmpul stare
civilă, se poate introduce o listă de valori Căsătorit şi Necăsătorit). Dacă se optează pentru utilizarea
unui câmp cu valori posibile, este necesară crearea unui tabel de căutare înainte de a putea folosi
tabelul pentru a crea un câmp de căutare într-un alt tabel.
Fiecare tip de date poate fi personalizat prin intermediul proprietăţilor. Aceste proprietăţi se
stabilesc prin fereastra proiectantului de tabele Design View.
Observaţie: În expresii constantele de tip text sunt incluse între ghilimele (de exemplu, „FEAA”),
iar datele calendaristice sunt încadrate de semnul # (de exemplu, #12/18/2005#).
O noutate deosebită în ACCESS 2003 o reprezintă etichetele inteligente (Smart Tags) care
pot fi aplicate câmpurilor. Această facilitate este preluată din Excel care foloseşte etichete inteligente
pentru a semnaliza erorile din foile de calcul şi pentru a oferi soluţii posibile. Prin etichete inteligente
se pot accesa informaţii de pe Internet sau îndeplini anumite sarcini. În principal, aceste etichete sunt
oferite de Microsoft şi cele mai multe dintre ele sunt gratuite.
locaţia, numele şi tipul unui astfel de fişier. Implicit, ACCESS atribuie numele md<n> şi extensia
.mdb (figura 5.7). Este recomandat ca numele fişierului să sugereze conţinutul informaţional sau
apartenenţa de o aplicaţie sau un utilizator. Exemplificările din acest capitol au ca suport baza de date
vinzări.mdb.
Locaţia în care va fi
salvată BD
Numele BD
Extensia implicită
a BD
Pentru crearea unui tabel ACCESS oferă trei posibilităţi (figura 5.8):
Obiectele unei BD
Create table in Design view - folosind modul de proiectare a tabelului; este cea mai
puternică şi mai flexibilă modalitate fiind specificate detaliile fiecărui câmp;
Create table using wizard - apelând asistentul Table Wizard care precizează paşii care
trebuie urmaţi pentru construirea unor tabele obişnuite;
Create table by entering date – introducând datele în câmpurile create de ACCESS;
această metodă este apropiată de modul de lucru în Excel.
Crearea tabelelor prin introducerea datelor
Cea mai „confortabilă” pentru începători este crearea tabelelor prin introducerea datelor. Dacă
se alege aceasta opţiune, în etapa imediat următoare se cere confirmarea salvării tabelului şi, implicit,
precizarea numelui acestuia într-o fereastră Save As. Pentru exemplificare, în baza de date Vinzări se
creează tabela Clienti (figura 5.9).
8 Instrumente software pentru afaceri
Figura 5.10 Fereastra Create table by entering date pentru tabela Clienţi
Pentru stabili nume de atribue care sugerează conţinutul este necesară redenumirea. Se
foloseşte comanda Rename Column apelată fie din meniul rapid (activat de pe antetul /header-ul
câmpului /coloanei), fie din meniul Format (figura 5.11). Intrarea în modul de editare este posibil şi
prin dublu click de mouse de pe antetul câmpului al cărui nume urmează a fi schimbat.
Crearea tabelelor folosind Table Wizard
Table Wizard este un instrument care permite crearea tabelelor prin parcurgerea unor paşi
prestabiliţi. Pentru exemplificare s-a dorit crearea tabelei CodPost_loc. Într-un prim pas sunt stabilite
câmpurile care vor constitui structura noii tabele. ACCESS oferă variate şabloane atât pentru domeniul
afacerilor (Business) cât şi cu caracter personal, după uzanţele americane. Folosind butonul Rename
Sistemul de gestiune a bazelor de date ACCESS 9
Field se pot personaliza machetele pentru articole, în sensul că structurile pot fi adaptate la specificul
aplicaţiei ce se proiectează (figura 5.12).
Tipuri de şabloane
Structuri de articole
Redenumirea unui
câmp
După stabilirea câmpurilor, în pasul următor se precizează numele sub care va fi salvată tabela
şi modalitatea în care va fi stabilită cheia primară (vezi paragraful 4.3.4), de către utilizator sau,
implicit, de către ACCESS (figurile 5.13 şi 5.14).
Numele tabelei
După precizarea cheii primare se alege modul în care se va continua după crearea tabelei, fiind
disponibile opţiunile (figura 5.15):
modificarea în Table Design;
introducerea datelor direct în tabelă; aceasta este varianta pentru care am optat în
exemplificarea de mai jos;
introducerea datelor în tabelă folosind un formular creat de un asistent /wizard ACCESS.
4
Introducerea datelor în
tabelă
După parcurgerea acestor paşi are loc introducerea datelor în tabelă (figura 5.16).
Stabilirea cheii
primare
Primul câmp, numărul facturii, este de tip numeric şi este reprezentat în formatul Long
Integer. Acest format a fost ales ca proprietate din lista General. În plus, acest câmp a fost desemnat
cheie primară. Stabilirea acestei chei se poate realiza fie activând pictograma Primary Key din
linia cu instrumente Database, fie selectând comanda Primary Key din meniul rapid activat de pe
numele câmpului (figura 5.17). Din lista General se stabilesc proprietăţile şi pentru celelalte câmpuri
(figurile 5.18 şi 5.19).
După crearea tuturor tabelelor şi popularea acestora cu articole fereastra Database, pentru
baza de date vinzari este prezentată în figura 5.20. Pictogramele din linia cu instrumentele Database
permit realizarea unor operaţii specifice.
Este posibilă modificarea structurii unei tabele în sensul că pot fi adăugate şi /sau şterse
câmpuri sau pot fi modificate atributele acestora. Adăugarea unui câmp se realizează fie din meniul
Insert, fie din cel rapid, ambele selectate când prompterul este poziţionat pe câmpul la stânga căruia
se va insera unul nou (figura 5.21).
Ştergerea unuia sau mai multor câmpuri presupune selectarea şi apoi activarea comenzii
Delete fie din meniul Edit, fie din cel rapid (figura 5.22).
tabele (vizualizare realizată prin folosirea opţiunii Relationship din linia de instrumente). De
fapt, ceea ce afişează figura reprezintă aşa numitele legăturile permanente dintre tabele. Regulile
pentru păstrarea integrităţii referenţiale se stabilesc în fereastra Edit Relationships (figura 5.24)
activată prin dublu click de pe oricare legătură permanentă din fereastra Relationships (figura 4.12).
Opţiuni pentru
Integritatea
referenţială
bifând opţiunea Cascade Delete Related Records la ştergerea unei înregistrări din tabela părinte se
vor elimina automat toate înregistrările copil.
Din fereastra Database pot fi realizate diverse operaţii cu tabelele şi înregistrările încărcate în
acestea. Pentru a vizualiza conţinutul unei tabele este suficient un dublu click de mouse de pe numele
tabelei. La afişare unele tabele au în stânga o coloană în care apare semnul plus (+) sau spaţiu. Semnul
plus în dreptul unei înregistrări semnifică faptul că aceasta este legată prin chei străine de înregistrări
aflate în alte tabele. Click pe semnul plus determină schimbarea în semnul minus (-) şi afişarea
înregistrărilor „înrudite” (copil) într-o subfoaie de date (figura 5.25).
Semnul +
înregistrarea are cel
puţin o înregistrare
“înrudită” într-o altă
tabelă
Pentru a vedea toate înregistrările subordonate articolelor dintr-o tabelă părinte se poate lansa
comanda Subdatasheet din meniul Format (figura 5.26).
La capitolul (de fapt, paragraful) restricţii utilizator de tipul regulilor la nivel de atribut (figura
4.10) am rămas datori cu expresia de la Validation Rule a atributului NumeClient din tabela CLIENŢI:
StrComp(UCase([NumeClient]),[NumeClient],0)=0. Exotismul expresiei ţine nu atât de folosirea
funcţiei UCase care converteşte toate literele din valoarea argumentului (atributul NumeClient, în cazul
nostru) în majuscule, cât de funcţia StrComp, prin care, în formatul prezentat se compară două şiruri
16 Instrumente software pentru afaceri
de caractere, dintre care unul (cel din dreapta) este valoarea atributului, iar celălalt aceeaşi valoare, dar
scrisă cu majuscule. Dacă cele două şiruri diferă câtuşi de puţin, rezultatul evaluării expresiei este
False, iar modificarea atributului (sau inserarea liniei) este respinsă. Practic, regula acceptă numai
valori în care literele sunt exclusiv majuscule.
Bănuind că explicaţia n-a fost suficientă, vă supunem atenţiei regula de validare a atributului
Adresa prin care prima literă din valoarea oricărei adrese va fi majusculă, restul valorii fiind lăsat la
latitudinea utilizatorului: StrComp(Left(UCase([Adresa]),1),Left([Adresa],1),0)=0. Funcţia LEFT
extrage primele n caractere de la stânga valorii argumentului.
Orice regulă la nivel de înregistrare, aşa cum a fost cea pentru tabela FACTURI prezentată în
figura 4.11, se poate introduce în proiectantul de tabelă apelând opţiunea Properties din linia de
instrumente (simbolul acestei opţiuni în linia de instrumente este chiar cel al ferestrei Table Properties
din figură).
Atunci când numărul de linii dintr-o tabelă este imens, iar datele trebuie modificate după
criterii riguroase, este necesară recurgerea la interogări pe care le vom discuta în paragraful 5.4 şi
capitolul 6.
1 2
Urmare a acţiunii 2 din figura precedentă se va activa fereastra New Form (figura 5.29), în
care va trebui să selectăm varianta de lucru pentru organizarea câmpurilor (1) şi tabela de legătură (2)
aşa cum se prezintă în figura 5.29.
6
5
4
2 3
În urma operaţiei de salvare va apare în proiectantul bazei de date pentru formulare noul
formular creat, cu numele clienti.
2. Utilizarea asistentului în generarea de formulare
Continuăm crearea unui formular pentru tabela CODPOST_LOC, dar prin apelarea
asistentului în generarea de formulare. În figura 5.32. avem marcate etapele necesare lansării
asistentului.
20 Instrumente software pentru afaceri
3
2
1
După activarea butonului Ok (5) vom intra în fereastra din figura de mai jos, din care va
trebui să selectăm câmpurile care să fie trimise în formular. În cazul nostru vom trimite toate
câmpurile, ceea ce înseamnă că vom da click pe butonul >>, apoi Next.
După activarea butonului Next vom intra în fereastra de organizare a datelor, din care vom
selecta butonul radio Columnar şi Next, ceea ce va face trecerea în fereastra de stabilire a stilului, din
care vom selecta Standard şi Next (figura 5.34).
După selectarea stilului se va solicita ataşarea unui nume pentru formular. În cazul nostru îi vom
da numele Coduri şi vom activa butonul Finish (figura 5.35).
Utilizarea unui formular se realizează direct din proiectantul bazei de date prin dublu click pe
numele acestuia sau cu selectare Form, selectare nume formular şi activarea butonului Open. Dacă ne
propunem să utilizăm formularul Coduri, astfel (figura 3.36):
a. selectăm Form;
b. selectăm Coduri;
c. activăm butonul Open.
În cazul în care se doreşte adăugarea unei înregistrări se activează butonul din zona
butoanelor de defilare sau din liniile de instrumente, ceea ce va determina golirea formularului, cu
posibilitatea completării datelor despre altă localitate (figura 5.37).
ACCESS-ul a fost, încă din tinereţea sa, un reper în materie de facilităţi de obţinere a
informaţiilor dintr-o bază de date relaţională, printr-un mecanism simplu de creare a interogărilor.
Vis-a-vis de terminologie, în engleză, verbul care desemnează explorarea bazei de date pentru a obţine
informaţiile necesare este to query pe care-l traducem prin a interoga. Chiar dacă la noi interogatoriul
ne duce cu gândul mai degrabă la beciurile securităţii şi bătăile crunte aplicate duşmanilor poporului,
sensul interogării unei baze de date este de a o investiga pentru a “stoarce” informaţii. Astfel încât, în
cele ce urmează ne vom transforma în storcători de informaţii, este drept, fără bastoane de cauciuc,
reflectoare în ochi şi pumni la ficat.
Într-un proiect ACCESS, la loc de cinste între obiecte, imediat după tabele (Tables) apar
interogările (Queries). Selectarea acestora, click-ul de rigoare pe butonul New şi apoi a opţiunii Design
Sistemul de gestiune a bazelor de date ACCESS 23
View determină afişarea pe ecran a “proiectantului” de interogări, un cadru foarte versatil prin care
putem formula o cerinţă informaţională (figura 5.38).
Partea de sus a ecranului (în spatele ferestrei de alegere a tabelelor) serveşte la afişarea
tabelelor implicate în interogare, precum şi a legăturilor (restricţiilor referenţiale) dintre ele. În cadrul
propriu zis, fiecare coloană corespunde unei coloane din lista ce se doreşte a fi obţinută, informaţiile
specificate fiind: numele atributului (Field), tabela în care se află acesta (Table), dacă valorile
atributului vor fi ordonate crescător sau descrescător (Sort) în listă, dacă respectiva coloană va fi
afişată în listă sau serveşte doar la precizarea filtrului de selecţie a înregistrărilor (Show) şi condiţiile
pe care trebuie să le îndeplinească înregistrările (liniile) pentru a fi incluse în raport, altfel spus,
condiţia a filtrate a liniilor în rezultat (Criteria).
Ar mai trebui spus că putem include în rezultat nu numai atribute din tabele, ci şi expresii de
atribute, după cum vom vedea imediat.
Figura 5.39 Facturile (inclusiv valoarea fără TVA) emise după 20 iunie 2005
Figura 5.40 Macheta interogării pentru obţinerea listei din figura 5.39
Mai întâi, în linia Criteria a coloanei Data este formulat criteriu de filtrare a liniilor din
rezultat: > #6/20/2005#. Este modalitatea de a indica faptul că valorile de pe coloana Data trebuie să
fie mai mari decât 20 iunie 2005. Dar cel mai captivant este ceea ce se petrece pe a treia coloană a
machetei. În prima fază pe linia Field se introduce expresia ValoareTotala – TVAColectata. Apoi se
face un click discret pe butonul Properties (pasul 2) şi se obţine pe ecran modesta fereastră Field
Properties. Aici vom indica formatul de afişare – fix (Format...Fixed) cu două zecimale (Decimal
Places...2), precum şi numele coloanei calculate (Caption...ValoareFaraTVA). Simplu, nu ? (vă
aşteptăm cu drag la restanţe !).
Se salvează macheta (celebra pictogramă a dischetei din figura de mai sus) sub numele
Facturi_dupa_20iunie2005, o imagine izbitor de asemănătoare figurii 5.39 fiind obţinută după click-ul
de rigoare pe butonul View din stânga-sus-ul ferestrei interogării.
Figura 5.41. Interogare ce foloseşte trei tabele, două condiţii de filtrare şi ordonare
Pentru declararea modalităţii de grupare trebuie mai întâi folosit simbolul de însumare din
linia de instrumente a interogării. Ca urmare, în machetă, între liniile Table şi Sort apare linia Total.
Pe această linie, pentru coloanele TVAColectată şi ValoareTotală este suficientă selectarea opţiunii
Sum, în timp ce pentru valoarea fără TVA trebuie selectată opţiunea Expression, deoarece valoarea sa
se determină prin diferenţa dintre celelalte două (vezi în linia Fields expresia ValFaraTVA:
SUM(ValoareTotala – TVAColectata)).
Un alt artificiu care face o impresie bună este noul criteriu prin care utilizatorul poate indica în
momentul vizualizării rezultatelor interogării intervalul de vizualizare, adică data iniţială şi data finală
a acestuia: BETWEEN [Data Initiala:] AND [Data finala:]. La vizualizare (click pe simbolul View
din stânga liniei de instrumente a interogării) pe ecran apare o fereastră minusculă, ca în figura 5.43,
urmată de o alta, le fel de minusculă, în care se solicită data finală şi numai după aceea se afişează
rezultatul cu liniile ce desemnează zilele din intervalul specificat în care există măcar o factură.
Figura 5.43. Solicitarea valorii primului parametru de intrare (data iniţială a intervalului)
La proiectarea şi construirea rapoartelor în format tabelar se vor lua în considerare cinci secţiuni
principale, la care mai pot fi adăugate altele două, dacă se doreşte gruparea datelor. Aceste secţiuni,
prezentate în structura raportului din figura 5.48, sunt (redăm şi denumirea lor în limba engleză, pentru
o mai bună recunoaştere a lor în generatoarele de rapoarte):
Antetul şi sfârşitul (subsolul) raportului (Report Header şi Report Footer). Antetul raportului
conţine elementele care vor apare o singură dată, la începutul raportului. Aici se includ, de obicei,
titlul raportului, data obţinerii şi numele destinatarului. În secţiunea de sfârşit (subsol) se prevăd
elementele care vor apare o singură dată în raport, la sfârşitul acestuia. Aici se pot include totalurile
generale pentru câmpurile numerice şi numele persoanelor care au generat şi certificat raportul
respectiv.
Antetul şi sfârşitul paginii (Page Header şi Page Footer). În aceste secţiuni vor fi incluse acele
elemente ale raportului care vor apare o singură dată pe fiecare pagină, la începutul sau la sfârşitul
ei. De regulă, numele coloanelor sunt prevăzute în antetul paginii astfel încât ele să fie afişate la
începutul fiecărei pagini. Totalurile la nivel de pagină, dacă sunt necesare, trebuie incluse în
secţiunea de sfârşit (subsol) a paginii. Numărul paginii poate apare în oricare din cele două
secţiuni.
Secţiunea de detaliu (Detail). Este secţiunea principală a oricărui raport şi conţine valorile
câmpurilor din baza de date şi a expresiilor calculate ce vor forma o linie cu date. Pentru fiecare
înregistrare prelucrată din baza de date se va crea câte o linie în raport.
Antetul şi sfârşitul grupului (Group Header şi Group Footer). Aceste două secţiuni apar în
rapoarte numai atunci când se doreşte gruparea datelor. În exemplul din figura 5.48, vânzările sunt
grupate pe clienţi, iar codul clientului reprezintă câmpul de control, adică acela după valorile căruia
se va face gruparea. Elementele incluse în aceste secţiuni vor apare o singură dată pentru fiecare
grup de date, deasupra primei linii cu date din grup, respectiv sub ultima linie. În antetul grupului
se includ, de regulă, datele de identificare ale grupului adică, în exemplul nostru, codul şi numele
clientului. În secţiunea de sfârşit se pot afişa totaluri sau rezultatele altor operaţiuni de agregare la
nivelul grupului, precum numărul elementelor, valoarea medie, valoarea minimă şi valoarea
maximă pentru câmpurile numerice.
În ACCESS, rapoartele pot fi construite în trei moduri:
Crearea rapidă a unui raport pe baza unei singure tabele sau interogări, prin utilizarea facilităţii
AutoReport (Columnar sau Tabular). Utilizatorul trebuie doar să specifice tabela din care se vor
extrage datele, iar raportul va fi generat şi afişat pe ecran imediat. Dacă se optează pentru
Columnar, raportul obţinut va fi de tip coloană, adică datele unei linii din tabelă vor fi aranjate pe
o singură coloană. Dacă se alege Tabular, raportul generat va fi de tip tabel, rezervându-se câte o
coloană pentru fiecare câmp din tabelă.
Apelarea la vrăjitor (Report Wizard). Utilizatorul va construi raportul, pas cu pas, sub
îndrumarea vrăjitorului, rolul său constând în furnizarea de răspunsuri la anumite întrebări, care
privesc sursa datelor (tabelele şi/sau interogările), câmpurile de date care vor fi reţinute în raport,
modul de grupare şi ordonare a datelor, formatul şi titlul raportului. Spre deosebire de cazul
anterior, acum pot fi create rapoarte pe baza mai multor tabele şi/sau interogări.
Utilizarea ferestrei de proiectare (Design View). În acest mod de lucru, rapoartele vor fi create
fără ajutorul vrăjitorului. În schimb, utilizatorul va avea posibilitatea să creeze rapoarte mai
28 Instrumente software pentru afaceri
complexe, pe care să le personalizeze conform cerinţelor sale. Ca şi în primul caz, raportul poate
conţine date dintr-o singură tabelă sau interogare.
Pentru crearea unui raport, indiferent de modalitatea dorită, se selectează opţiunea Reports din
fereastra bazei de date şi apoi butonul New din linia de instrumente, situată în partea superioară a
ecranului. În urma acestei acţiuni se afişează fereastra de dialog din figura 5.44.
Figura 5.44 Fereastra de dialog pentru alegerea modalităţii de realizare a unui raport
În continuare vom descrie numai ultimul mod de lucru, întrucât acesta ne permite realizarea de
rapoarte complexe şi personalizate.
Ne propunem să construim un raport privind situaţia vânzărilor după 20 iunie 2005, pe
categorii de clienţi. Cerinţele raportului sunt următoarele:
vor fi incluse următoarele informaţii: codul şi numele clientului, numărul şi data facturii,
valoarea totală şi valoarea TVA;
datele vor fi grupate pe clienţi (după codul clientului), iar pentru fiecare client se va calcula
şi afişa valoarea totală a facturilor şi valoare totală TVA;
datele vor fi ordonate după numărul facturii;
se vor include totaluri pentru coloanele valoare totală şi valoare TVA, atât pentru fiecare
client, cât şi la sfârşitul raportului.
Etapele de creare a raportului sunt următoarele:
1. Crearea interogării pentru extragerea datelor necesare raportului din tabele. Aşa cum
spuneam anterior, în fereastra de proiectare pot fi construite rapoarte pe baza unei singure tabele sau
interogări. Întrucât raportul solicită date din două tabele, CLIENTI şi FACTURI, va trebui să creăm o
interogare care să extragă datele din cele două tabele. La construirea raportului se vor folosi datele
extrase prin interogarea FAC_DUPA20IUNIE2005V2, creată anterior, în paragraful destinat
interogării bazei de date.
2. Deschiderea ferestrei pentru construirea raportului. În acest sens, se activează fereastra
de dialog New Report, prezentată anterior în figura 5.44. Se selectează opţiunea Design View după
care, din căsuţa combinată (combo box) situată mai jos se alege interogarea
FAC_DUPA20IUNIE2005V2. După apăsarea butonului OK, se deschide fereastra pentru construire a
rapoartelor, prezentată în fig. 5.45.
Sistemul de gestiune a bazelor de date ACCESS 29
În cadrul ferestrei se poate observa pagina raportului care, pentru început, este goală, linia de
instrumente şi o mică fereastră ce conţine lista câmpurilor tabelei sau interogării selectate anterior. Se
observă că pagina conţine numai trei din cele cinci secţiuni ale unui raport. Pentru adăugarea celorlalte
două, Report Header şi Report Footer, se va accesa meniul View şi se va selecta opţiunea Report
Header/Footer.
3. Adăugarea obiectelor în cele cinci secţiuni ale raportului. Pentru includerea obiectelor în
raport se utilizează de instrumente, în aceeaşi manieră ca la construirea formularelor. În acest sens, vor
fi utilizate următoarele butoane:
etichetă , pentru specificarea de constante, respectiv pentru specificarea titlului
raportului, denumirii coloanelor sau a altor texte cu rol explicativ;
căsuţă de text , pentru specificarea de variabile, respectiv pentru adăugarea câmpurilor
de date şi a expresiilor de calcul ale căror valori vor fi afişate la vizualizarea /tipărirea
raportului.
linie şi dreptunghi , pentru trasarea liniilor şi chenarelor necesare pentru
înfrumuseţarea raportului;
săgeată , atunci când dorim selectarea unui obiect din raport.
Pentru adăugarea unui text, se selectează butonul etichetă, se poziţionează mouse-ul în poziţia
din care dorim să înceapă textul şi se dă clic, după care se introduce textul. Pentru a continua textul pe
linia următoare, dar în aceeaşi căsuţă, se foloseşte combinaţia de taste CTRL+ENTER.
Mai întâi se completează antetul raportului (Report header), în care se include data afişării sau
tipăririi, şi antetul paginii (Page header). Pentru includerea datei curente se adaugă o căsuţă de text
care va avea ca expresie de calcul funcţia DATE(). Specificarea expresiei de calcul se face astfel: se
selectează căsuţa, se apasă butonul dreapta al mouse-ului şi se alege opţiunea Properties din meniul
afişat. Efectul acestei acţiuni constă în afişarea ferestrei cu proprietăţi, prezentată în figura 5.46.a). În
această fereastră se alege proprietatea Control Source şi se apasă butonul „trei puncte”, din dreapta,
pentru deschiderea ferestrei Expression Builder (construirea expresiilor de calcul). În figura 5.46.b) se
30 Instrumente software pentru afaceri
poate vedea conţinutul acestei ferestre şi modul în care a fost introdusă expresia DATE(). Expresia de
calcul poate fi introdusă şi de la tastatură, direct în căsuţa de editare. Se revine în pagina raportului
prin apăsarea butonului OK şi închiderea ferestrei cu proprietăţi.
Pasul următor vizează introducerea câmpurilor număr factură, data factură, valoare totală şi
valoare TVA în secţiunea de detaliu (Detail). În acest sens, din lista câmpurilor se trag, pe rând, cele
patru câmpuri în locul dorit. Eticheta adăugată automat pentru fiecare câmp introdus în raport poate fi
ştearsă deoarece rolul explicativ îl îndeplineşte numele coloanei în care acesta este plasat. Dedesubtul
celor patru câmpuri se trasează o linie pentru a delimita rândurile cu date în momentul vizualizării
/tipăririi raportului.
În subsolul paginii (Page Footer) se vor introduce numărul paginii curente şi numărul total de
pagini din raport. Se va adăuga o căsuţă de text, urmându-se paşii descrişi anterior pentru data curentă,
a cărei expresie va avea forma:
= „Pagina” & [Page] & „ din ” & [Pages].
Variabila [Page] livrează numărul paginii curente, iar variabila [Pages] numărul total de
pagini. Operatorul & este utilizat pentru adunarea şirurilor de caractere.
În subsolul raportului (secţiunea Report Footer) se adaugă o linie pentru totalul general, în
care vor fi însumate valoarea facturilor şi valoarea TVA. Cele două formule de calcul se introduc tot
prin intermediul căsuţelor de text şi vor avea forma:
= SUM ([ValoareTotală])
= SUM ([TVAColectata])
ValoareTotala şi TVAColectata sunt câmpurile din rezultatul interogării pentru valoarea totală a
unei facturi şi valoarea TVA aferentă.
4. Gruparea şi ordonarea datelor. Liniile din raport pot fi ordonate sau grupate în funcţie de
mai multe criterii, iar pentru fiecare grup de date se pot introduce în raport alte două secţiuni: antetul şi
subsolul grupului. Cele două operaţiuni sunt realizate din fereastra Sorting and Grouping. Deschiderea
ei se face prin selectarea opţiunii Sorting and Grouping din meniul View sau prin apăsarea butonului
din linia cu instrumente, situată deasupra ferestrei de construire a raportului.
Fereastra (prezentată în figura 5.47) conţine un grid (tabel), format din două coloane, Field
/Expression şi Sort Order, şi un grup de proprietăţi pentru definirea grupurilor de date, în partea sa
Sistemul de gestiune a bazelor de date ACCESS 31
inferioară. Coloana Field /Expression este utilizată pentru specificarea câmpurilor sau expresiilor după
care se face gruparea şi /sau ordonarea datelor în raport. În raportul nostru datele trebuie grupate după
codul clientului şi ordonate după numărul facturii. De aceea, vom selecta în prima linie câmpul
CodClient, iar în cea de-a doua Nrfact. Această coloană poate conţine cel mult zece nume de câmpuri şi
/sau expresii, adică pot fi utilizate cel mult zece criterii de grupare şi sortare.
Coloana Sort Order permite alegerea ordinii crescătoare (Ascending) sau descrescătoare
(Descending) pentru câmpul sau expresia din linia respectivă. În momentul completării coloanei
Field/Expression, în coloana Sort Order va fi atribuită implicit valoarea Ascending. Dacă se doreşte
modificarea ordinii de sortare pentru un anumit câmp sau expresie, atunci se selectează printr-un clic
elementul respectiv, după care în coloana Sort Order se alege valoarea Descending.
În cazul în care pentru un câmp sau o expresie se doreşte nu doar sortarea datelor, ci şi
gruparea lor, atunci se selectează elementul respectiv şi se vor configura proprietăţile din jumătatea
inferioară a ferestrei Sorting and Grouping. Aceste proprietăţi au următoarele semnificaţii:
Group Header prezintă două valori posibile Yes /No. Dacă se alege valoarea Yes, atunci pentru
câmpul sau expresia selectată din coloana Field /Expression se adaugă în raport o secţiune nouă
pentru antetul grupului. Valoarea implicită este No, adică nu se creează automat o secţiune pentru
antetul grupului.
Group Footer este asemănătoare cu proprietatea anterioară, numai că se referă la secţiunea de
sfârşit (subsol) a grupului respectiv. Pentru includerea ei în raport se va alege valoarea Yes.
Group On stabileşte modul de grupare a valorilor câmpului selectat. Valorile posibile depind de
tipul câmpului sau expresiei de grupare (text, numeric sau dată calendaristică). De exemplu, dacă
s-a ales data facturii drept câmp de grupare, atunci prin această proprietate se va stabili dacă datele
vor fi grupate pe fiecare valoare distinctă (se alege valoarea Each Value), pe fiecare an (Year),
lună (Month), săptămână (Week) s.a.m.d.
Group Interval specifică un interval sau un număr de caractere pe care se bazează gruparea
liniilor din raport. În cazul unui câmp de grupare de tip Date/Time, stabilirea valorii 12 semnifică
gruparea liniilor care aparţin aceleiaşi jumătăţi de zi, dacă pentru proprietatea Group On a fost
stabilită valoarea Hour.
Keep together se referă la modul de tipărire a liniilor raportului care fac parte din acelaşi grup.
Pentru această proprietate există trei valori posibile: No – permite tipărirea liniilor dintr-un grup şi
pe pagina următoare, dacă s-a ajuns la sfârşitul paginii; Whole group (Grupul întreg) – are ca efect
32 Instrumente software pentru afaceri
tipărirea tuturor secţiunilor grupului (antetul, detaliile şi subsolul) pe o singură pagină, dacă este
posibil; With First Detail (Cu prima linie de detaliu) – antetul grupului va fi tipărit pe aceeaşi
pagină cu prima linie a secţiunii de detaliu.
După adăugarea tuturor câmpurilor şi expresiilor de ordonare şi grupare şi configurarea
proprietăţilor de grupare, se închide fereastra Sorting and Grouping şi se trece la completarea
secţiunilor nou introduse în pagina raportului. Cerinţele raportului ales de noi ca exemplu impun
crearea unui grup de date, în funcţie de codul clientului. În secţiunea de antet se introduc codul şi
numele clientului, iar în cea de subsol se adaugă sumele calculate pentru valoarea facturilor şi valoarea
TVA, în maniera descrisă pentru secţiunea Report Footer.
Forma finală a raportului privind vânzările pe clienţi, cu toate obiectele incluse, este
prezentată în figura 5.48. Acum se salvează raportul (este recomandabil să salvaţi mai des, fără a
aştepta să finalizaţi construirea raportului), după care se face vizualizarea acestuia, prin selectarea
opţiunii Print Preview din meniul View sau prin apăsarea butonului din linia cu instrumente. În
continuare se poate configura pagina (dimensiune, orientare, margini etc.), folosind opţiunea Page
Setup din meniul File. De asemenea, se poate tipări raportul prin comanda Print din acelaşi meniu
File.
La vizualizare raportul va arăta ca în figura 5.49.
Odată salvat, raportul poate fi ulterior modificat. În acest sens, se alege obiectul Report din
fereastra bazei de date, apoi se alege raportul dorit din fereastra din dreapta, ce conţine rapoartele
create deja, şi se apasă butonul din linia cu instrumente. Efectul acestei comenzi va consta
în deschiderea ferestrei de proiectare a raportului (figura 5.48), în care vor fi regăsite toate obiectele
raportului şi care pot fi modificate în conformitate cu noile cerinţe.
Sistemul de gestiune a bazelor de date ACCESS 33
Ca orice aplicaţie din pachetul MS Office pentru scrierea de proceduri se foloseşte Visual
Basic for Application. Programele VBA sunt numite proceduri şi sunt grupate în:
Subrutine, care se referă la instrucţiuni VBA cuprinse între Sub … End Sub şi care nu
returnează o valoare;
Sub nume_proc()
…
End sub
Funcţii procedurale care se referă la instrucţiuni VBA cuprinse între Function … End
Function şi care returnează o valoare.
Function nume_funct(param)
…
End Function
Orice procedură cuprinde un set de instrucţiuni care îndeplinesc o anumită sarcină. În scrierea
unei proceduri se folosesc cuvinte cheie, adică acele cuvinte de culoare albastră, care reprezintă
cuvinte rezervate ale mediului VBA. Celelalte cuvinte de culoare neagră sunt cuvinte utilizator de
natura variabilelor sau valorilor.
La rândul lor, procedurile şi modulele se regrupează în module, care pot fi: clase de module şi
module standard.
34 Instrumente software pentru afaceri
Toate aceste proceduri se scriu în VBA şi devin parte a componentei Modules din proiectantul
de bază de date (vezi figura 5.50). Tot ca proceduri şi funcţii se scriu şi interogările aplicate asupra
bazei de date. Pentru a vizualiza conţinutul unui modul este necesar să se dea dublu click pe numele
acestuia şi astfel se va intra în VBA.
Dublu
click
Figura 5.50 Componenta Modules din BD Vinzari şi vizualizarea conţinutului pentru Meniu în VBA
Pentru apelarea unei interogări (query), a unui formular sau raport într-o procedură VBA se
foloseşte instrucţiunea DoCmd, astfel:
Pentru baza de date Vinzari am apelat varianta a doua în sensul că am scris o procedură sub
VBA, cu numele Auto_Open, prin care am dezactivat meniul standard al ACCESS-ului şi am creat
propriul nostru meniu cu opţiunile din figura 5.51.
Pentru a renunţa la meniul ACCESS şi a obţine opţiunile din meniul aplicaţiei Vinzari avem
următoarea procedură în modulul Meniu:
Sub Auto_Open()
'* setari fereastra
Dim oComandBar As Object
Set oComandBar = Application.CommandBars("Menu Bar")
oButton.OnAction = "InterogareIN2"
oButton.OnAction = "InterogareSUBCONSULTARI3"
End Sub
Spre exemplu:
- pentru a apela opţiunea Clienti din meniul Actualizare avem procedura Clienti din modulul
Capitolul_5, care conţine instrucţiunea de apelare a formularului Clienti;
Sub Clienti()
DoCmd.OpenForm "Clienti"
End Sub
- pentru a apela opţiunea Between din meniul Interogari avem procedura ”InterogareBetween” din
modulul Capitolul_6;
Sub interogareBETWEEN()
Dim consultare As QueryDef
Set consultare = CurrentDb.QueryDefs("interog")
consultare.SQL = "SELECT * FROM facturi WHERE nrfact BETWEEN 111120 AND 111124 ; "
DoCmd.OpenQuery ("interog")
End Sub
- pentru a apela opţiunea Situatia vanzarilor din meniul Rapoarte avem procedura ”Sit_vanz” din
modulul Capitolul_5;
Sub Sit_vanz()
DoCmd.OpenReport "Situatia vanzarilor", acPreview
End Sub
Observaţie:
Este important ca după lansarea procedurii Auto_Open() să se apeleze opţiunea Iesire din
Fisiere sau Iesire, pentru a se reseta parametrii meniului ACCESS. În caz contrar aceste opţiuni vor fi
prezente la următorul utilizator. Deci nu trebuie părăsită sesiune de lucru ACCESS cu butonul !