Sunteți pe pagina 1din 32

erban CRICOT

Proiectarea n ACCESS
a aplicaiilor informatice








Editura CARMINIS
Piteti, 2003


I -2
Coperta: Raluca Cri cot





Refereni tiin ifi ci:
Prof. univ. Dr. Gheorghe SECAR
Lector univ. Drd. Viorel PUN






Redactor: erban Cricot
Tehnoredact ori: Marius H rzoiu, erban Cri cot










ISBN 973-8418-71-2


I -3
Prefa
Desfurarea n zilele noastre a oricrei activiti economice, financiare sau bancare, necesit un
puternic suport informaional, capabil s menin concurena cu competitorii de pe pia, informaia
devenind de la un simplu instrument n fundamentarea deciziilor, unul dintre cei mai importani factori ai
cunoaterii. Rolul tehnologiei informaiei (IT) este acela de a dobndi cunoatere prin informaie.
Tehnologia informaiei nseamn hardware, software, reele, comunicaii, baze de date, etc., precum
i toate echipamentele i componentele software necesare prelucrrii informaiei.
n prezent, se manifest necesitatea realizrii n diferite domenii de activitate, a unui numr din ce n ce
mai mare de aplicaii informatice cu baze de date relaionale, de diferite complexiti, care pot conine structuri
de la cteva sute pn la structuri cu milioane de entiti.
n acelai timp, instrumentele puse la dispoziie pentru realizarea unor astfel de aplicaii trebuie s
depeasc ca arie de utilizare cercul restrns al specialitilor n programare i s se adreseze direct specialitilor
din domeniile respective.
Access este primul i cel mai performant produs informatic care satisface aceste cerine. El poate permite,
pe de o parte, realizarea unor aplicaii informatice cu baze de date relaionale fr scrierea vreunei instruciuni de
program, fiind produsul cel mai indicat pe care specialitii din diferite domenii de activitate l pot utiliza direct
pentru gestionarea complex a structurilor de date pe care le manipuleaz, iar pe de alt parte, prin diferite
instrumente puse la dispoziie (limbajele de programare SQL i VBA, sincronizare, cuplarea la un ODBC)
posibilitatea de realizare de ctre specialitii n informatic a unor aplicaii profesionale performante de tip front-
end.

Prof. univ. dr. Gheorghe Barbu
Rectorul Uni versi ti i Pit eti


I -4
GHID RAPID
Bara general de meniu - Menu Bar
Esc - Anularea modificrilor din cmpul curent;
Esc (de 2 ori) - Anularea modificrilor nregistrrii curente;
Tab / Shift + Tab - Deplasare nainte / napoi cu un cmp;
Click pe selectorul de nregistrri + Del - tergere nregistrare(ri);
Click selector nregistrri + Copy + Click nregistrare nou + Paste --
Duplicare nregistrare(ri);
Shift + F2 - Zoom (fereastr mrit pentru introducerea datelor);

File
New Database
Page Setup
Open Database
Get External Data
Save
Save As/Export
Print Preview
Print
Send
Database Properties
Edit
Undo
Delete (Del)
Cut (^X)
Copy
Paste (^V)
Create Shortcut
Rename
View
Database Objects
Small Icons
Properties
Code
Toolbars
Large Icons
List
Details
Arrange Icons
Line Up Icons
Tools
Spelling (F7)
Database Utilities
Auto Correct
Office Links
Relationships
Analyze
Security
Replication
Startup
Macro
ActiveX Controls
Add-Ins
Options


I -5
C U P R I N S
CAP.I OBIECTE ACCESS - FORMULARUL........................................................................... I-7
I.1 Prezentarea general a unui formular..............................................................................................I-7
I.1.1 Rolul formularului................................................................................................................................................ I-7
I.1.2 Strile unui formular ............................................................................................................................................ I-7
I.1.3 Seciunile unui formular ...................................................................................................................................... I-7
I.1.4 Tipuri de formulare.............................................................................................................................................. I-8
I.1.5 Structura unui formular........................................................................................................................................ I-8
I.1.5.1 Personalizarea obiectelor utilizate n formular prin proprieti metode i evenimente.................................I-9
I.1.5.2 Polimorfismul obiectelor utilizate n formular.....................................................................................................I-9
I.1.5.3 Natura obiectelor utilizate n formular.............................................................................................................. I-10
I.1.6 Utilizarea controalelor n formulare.................................................................................................................I-11
I.1.7 Utilizarea proprietilor, metodelor i evenimentelor obiectelor din formulare..........................................I-13
I.2 Obiectul FORM.................................................................................................................................I-14
I.2.1 Structura coleciei de obiecte Forms ................................................................................................................I-14
I.2.2 Proprietile formularului ..................................................................................................................................I-14
I.2.2.1 Numele formularului............................................................................................................................................ I-14
I.2.2.2 Pagina FORMAT................................................................................................................................................. I-14
I.2.2.3 Pagina DATA....................................................................................................................................................... I-15
I.2.2.4 Pagina OTHER.................................................................................................................................................... I-16
I.2.3 Evenimentele formularului................................................................................................................................I-16
I.2.4 Metodele formularului.......................................................................................................................................I-17
I.3 Obiectele Detail, Form Header, Form Footer ................................................................................I-18
I.4 Controalele folosite n formulare.....................................................................................................I-18
I.4.1 Text_Box - caseta de text ..................................................................................................................................I-18
I.4.1.1 Proprietile controlului Text Box...................................................................................................................... I-18
I.4.1.1.a) Text Box - pagina FORMAT........................................................................................................................................... I-18
I.4.1.1.b) Text Box - pagina DATA................................................................................................................................................. I-20
I.4.1.1.c) Text Box - pagina OTHER.............................................................................................................................................. I-20
I.4.1.1.d) Text Box - proprietile implicite..................................................................................................................................... I-21
I.4.1.1.e) Text Box - proprietile dinamice.................................................................................................................................... I-22
I.4.1.2 Evenimentele controlului Text Box.................................................................................................................... I-22
I.4.1.3 Metodele controlului Text Box ........................................................................................................................... I-22
I.4.2 Combo Box - list ascuns................................................................................................................................I-22
I.4.2.1 Combo Box - proprieti specifice...................................................................................................................... I-23
I.4.2.2 Combo Box - evenimentul specific..................................................................................................................... I-23
I.4.3 List Box - list desfurat ................................................................................................................................I-23
I.4.4 Option Button, Check Box, Toggle Button.....................................................................................................I-23
I.4.5 Option Group - grup de opiuni ........................................................................................................................I-24
I.4.6 Label - etichet ...................................................................................................................................................I-24
I.4.7 Line, Rectangle, Picture - controale grafice ....................................................................................................I-24
I.4.8 Command Button - buton de comand............................................................................................................I-24
CAP.II OBIECTE ACCESS - RAPORTUL.............................................................................II-25
II.1 Prezentarea general a unui raport............................................................................................. II-25
II.1.1 Rolul rapoartelor ..............................................................................................................................................II-25
II.1.2 Strile unui raport.............................................................................................................................................II-25
II.1.3 Seciunile unui raport.......................................................................................................................................II-25
II.1.3.1 Seciunile Report Header, Report Footer.......................................................................................................II-25
II.1.3.2 Seciunile Page Header, Page Footer.............................................................................................................II-25
II.1.3.3 Seciunea Detail.................................................................................................................................................II-25
II.1.3.4 Seciunile Group Header, Group Footer........................................................................................................II-26
II.1.3.4.a) Sortarea i gruparea.........................................................................................................................................................II-26
II.1.3.4.b) Comanda Sorting and Grouping...................................................................................................................................II-26
II.1.4 Utilizarea funciilor agregate SQL.................................................................................................................II-27
II.1.5 Utilizarea funciilor agregate de domeniu.....................................................................................................II-27
II.2 Proiectarea rapoartelor................................................................................................................. II-27


I -6
II.2.1 Obiectul REPORT...........................................................................................................................................II-28
II.2.1.1 Proprietile obiectului REPORT....................................................................................................................II-28
II.2.1.1.a) Numele raportului............................................................................................................................................................II-28
II.2.1.1.b) Pagina FORMAT...........................................................................................................................................................II-28
II.2.1.1.c) Pagina DATA..................................................................................................................................................................II-29
II.2.1.1.d) Pagina OTHER...............................................................................................................................................................II-29
II.2.1.2 Evenimentele obiectului REPORT...................................................................................................................II-29
II.2.2 Obiectele ce coin seciunile raportului..........................................................................................................II-29
II.2.3 Controalele folosite n rapoarte ......................................................................................................................II-29
II.3 Controlul Subraport / Subformular ............................................................................................ II-30



I -7
Cap.I Obiecte Access - Formularul
Formularul i raportul sunt obiectele de rang superior specializate n prezentarea datelor, pe
monitor respectiv imprimant, ntr-o aplicaie Access.
Din punct de vedere structural i funcional cele dou obiecte sunt foarte asemntoare. Diferenia
esenial dintre aceste obiecte, determinat de natura perifericului utilizat, este aceea c formularul, fa
de raport care nu permite dect prezentarea datelor, ofer i posibilitatea de actualizare a datelor
prezentate, ceea ce de altfel reprezint funcia sa principal. Deci din punctul de vedere a interfeei
aplicaiei cu utilizatorul:
Formularul este un obiect de intrare - ieire;
Raportul este numai un obiect de ieire;
I.1 Prezentarea general a unui formular
I.1.1 Rolul formularului
Rolul unui formular depinde de relaia existent ntre acesta i tabelele bazei de date. Din acest
punct de vedere sunt:
Formulare legate de tabelele bazei de date
Acestea permit vizualizarea i actualizarea datelor din una sau mai multe tabele, direct sau prin
intermediul unei cereri de selecie.
De asemenea formularele conin elemente performante de asistare (ndrumare) a utilizatorului n
funcie de contextul de lucru.
Termenul folosit pentru a defini un obiect care este configurat n funcie de un anumit context este
personalizare. Formularele reprezint obiecte care permit un grad ridicat de personalizare.
Se poate considera un formular legat, ca pe un obiect care faciliteaz operaiile de actualizare a
datelor din tabelele unei baze de date, permind n primul rnd accesarea prin intermediul unor obiecte -
numite controale - a cmpurilor tabelelor respective.
Deoarece un formular se poate lega prin intermediul unei cereri de selecie de mai multe tabele, ar
trebui folosit termenul de subschema formularului. Totui, pentru simplificare se va folosi n continuare
noiunea de formular legat de o tabel.
Deci, putem considera:
Formularul ca pe obiectul care permite legarea de o tabel;
Controlul ca pe obiectul care permite legarea de cmpurile tabelei respective.
Formulare nelegate
Acestea sunt folosite n special n gestionarea asistat a modulelor aplicaiei, permind
utilizatorului lansarea n execuie a unor formulare, rapoarte, cereri aciune, macro-comenzi, secvene de
cod de program, etc.
Un asemenea formular reprezint practic un obiect cu ajutorul cruia se pot activa dintr-o aplicaie
Access, n general prin intermediul unor controale specializate numite butoane de comand (evident
nelegate), a unor obiecte din respectiva aplicaie sau din afara ei (de pe platforma Windows).
Acelai lucru se poate face i prin crearea unui meniu personalizat al aplicaiei.
I.1.2 Strile unui formular
Aa cum se observ din figura alturat, un formular se poate afla n trei stri. De obicei se folosesc
urmtoarele dou forme:
Design View - n proiectare;
Form View n execuie;
Trecerea de la o stare la alta se poate face prin meniul contextual sau prin
pictograma specific de pe ToolsBar.
I.1.3 Seciunile unui formular
De obicei un formular are 3 seciuni (sau pri), opionale:


I -8
Form Header Reprezint partea de nceput a unui formular. Apare o singur dat i va fi
prezent tot timpul n partea superioar a ferestrei
formularului. Se folosete de obicei numai la
formularele continue(*
5
), pentru a afia capul de
tabel al formularului.
Form Footer - Reprezint partea de sfrit
a unui formular. Apare o singur dat i va fi
prezent tot timpul n partea inferioar a ferestrei
formularului. Se folosete de obicei, pentru a
introduce n formulare: controale buton de comand
pentru lansare unor comenzi, sau controale de
afiare a unor informaii de sintez.
Detail Este cea mai important seciune a unui formular. Ea se repet, n execuia formularului,
pentru fiecare nregistrare a tabelei legate la formular. Deci la execuia unui formular vor exista un numr
de seciuni detail egal cu numrul de nregistrri ale tabelei ataate formularului.
n aceast seciune se vor introduce controale pentru date (n exemplul afiat, TextBox -
DenProdus- sau ComboBox -UM-), care vor fi legate la cmpurile tabelei formularului, n triplu scop i
anume:
Vizualizarea datelor din cmpurile nregistrrilor tabelei legate la formular;
Modificarea acestor date;
Adugarea de noi nregistrri n tabela legat la formular, prin completarea pentru o nregistrare
nou (marcat cu semnul *) a datelor din cmpuri;
inndu-se seama i de posibilitatea tergerii de nregistrri - care se efectueaz prin selectarea
nregistrrilor (obiectul Record Selectors din faa fiecrei nregistrri) urmat de tergerea acestora (prin
tasta DEL sau pictograma specific)- se observ c printr-un formular se poate vizualiza sau actualiza
tabela legat de acesta.
Seciunea de detail activ este aceea care are la un moment dat focusul ntr-un formular n execuie
(n aceasta se pot accesa cmpurile unei nregistrri).
I.1.4 Tipuri de formulare
n funcie de numrul de zone de detail deci de nregistrri ale tabelei legate la formular - care se
pot vizualiza n acelai timp n fereastra formularului, acestea pot fi:
Continous Forms(*
5
) sau Tabular Form, care prezint toate nregistrrile n mod continuu, n
scroll, n aa fel nct ntr-o fereastr vor apare mai multe seciuni detail - i anume attea cte ncap. Este
cel mai indicat tip de formular, pentru introducerea de date, cu condiia ca numrul de cmpuri s nu fie
prea mare sau de mari dimensiuni (practic este bine ca toate cmpurile s ncap pe o linie a
formularului).
Single Form sau Columnar Form se caracterizeaz prin aceea c n fereastra formularului nu
se va afia dect o nregistrare (o singur seciune de detail se poate vedea la un moment dat). Este folosit
n general pentru introducerea de date n tabele cu un numr mare de cmpuri (sau cmpuri de dimensiuni
mari) care nu ncap pe o linie a formularului.
Stabilirea tipului formularului se face prin proprietatea, Default View. Aceasta este practic prima
proprietate care se configureaz la proiectarea unui formular nou.
I.1.5 Structura unui formular
1

Aa cum s-a artat ntr-un formular se gsesc seciuni, iar n acestea sunt controale (legate de
cmpuri sau nelegate).
Att formularul (form), ct i seciunile i controalele sunt obiecte.
Ele provin din clase de obiecte, avnd definite proprieti, metode i evenimente.
Configurarea acestor caracteristici, determin obinerea unor obiecte cu un grad ridicat de
personalizare.

1
n foarte marea msur, ceea ce se prezint n acest capitol, este valabil i pentru obiectul de rang
superior raport.


I -9
I.1.5.1 Personalizarea obiectelor utilizate n formular prin proprieti metode i
evenimente
Personalizarea reprezint posibilitatea de adaptare a caracteristicilor unui obiect funcie de
contextul n care este folosit.
Gradul de personalizare al obiectelor este determinat n special de dou aspecte:
Complexitatea setului de proprieti pe care l are respectiva clas de obiecte, ceea ce permite ca
prin atribuirea de valori acestora, s se obin obiecte adaptabile la o multitudine de contexte n care pot fi
folosite.
Definirea pentru obiectul respectiv a unui set numeros de evenimente, care permit declanarea la
producerea lor a unor aciuni (metode), care sunt stabilite la proiectarea formularului.

Explicaie: Un eveniment al unui obiect reprezint o aciune extern (din afara sistemului) sau intern
(determinat de execuia unei metode) produs asupra acelui obiect, pe care acesta o sesizeaz i la care
poate reaciona numai n cazul n care n prealabil s-a creat o metod specific evenimentului, prin
execuia acesteia (se efectueaz o aciune).
Exemplu: Un eveniment extern este micarea mouseului, clic sau dublu clic cu mouseul sau apsarea pe
o tast cnd focusul se afl pe un obiect (un formular, o caset de text, un buton de comand etc.) iar un
eveniment intern este apariia unei erori n execuia unei metode sau scurgerea unui anumit interval de
timp.

Adaptabilitatea la contextul de folosire al obiectului respectiv se datoreaz i faptului c aciunile
(metodele) respective, prin felul n care pot fi create, ofer practic orice fel de posibilitate de prelucrare.
Astfel, metodele ataate evenimentelor pot fi create n trei feluri, funcie de complexitatea lor:
1) Prin introducerea unei expresii
2
. n acest caz la producerea evenimentului respectiv se evalueaz
(execut, calculeaz) expresia.
2) Prin folosirea oricrei macro-comenzi (sau macro-grup) din fereastra Database. n acest caz la
producerea evenimentului respectiv se va executa automat aceast macro-comanda.
Exemplu: n formularul prezentat anterior, exist un control, buton de comand, n care, n faza de
proiectare, la evenimentul clic s-a ataat macro-grupul mesaj.trei (prezentat ntr-un exemplu de la cap. VI
i care nchide aplicaia Access). Astfel, dac atunci cnd formularul este n execuie, se va face clic cu
mouseul pe butonul de comand, atunci aplicaia se va termina.
3) Prin folosirea unei proceduri eveniment scris n limbajul VBA. n acest caz la producerea
evenimentului respectiv se va executa automat secvena de cod a acestei procedurii eveniment.
Explicaie: n VBA, codul de program, indiferent de locul unde se gsete, nu este ca n programarea
clasic o secven de instruciuni care au un nceput i un sfrit i care reprezint aciunile pe care le va
efectua sistemul de calcul ntr-o ordine precis, stabilit (programare continu), ci este format din
module (rutine) care se execut numai la producerea asupra obiectelor aplicaiei Access a unor
evenimente (programare discontinu). Din aceast cauz aceste rutine se numesc proceduri eveniment.
I.1.5.2 Polimorfismul obiectelor utilizate n formular
S-a artat pn acum c obiectele utilizate n formulare, adic controalele, seciunile i chiar
formularul, dispun de o mare varietate de posibiliti de configurare. Aceast constatare ar putea conduce
la concluzia c activitatea de configurare a acestor obiecte ar fi foarte specializat, cu particulariti unice
pentru fiecare tip de obiect, ceea ce nu este totui adevrat datorit unei caracteristici a acestor obiecte, i
anume polimorfismul.
Polimorfismul este caracteristica unui grup de obiecte, de a prezenta utilizatorului o interfa
foarte asemntoare pentru configurarea acestora.
Acest lucru se realizeaz n principal prin intermediul unui control de tip tab ce se utilizeaz n
faza construirii obiectului.

2
Reamintim c la scrierea expresiilor se pot folosi ca termeni printre altele i datele din obiecte (de
exemplu controalele legate) sau funciile utilizator i standard. Pentru utilizarea acestora de un real
ajutor este constructorul de expresii.


I -10
Acest control va apare la solicitarea proprietilor
obiectului, din meniul contextual sau prin pictograma
specific proprietilor (vezi figura) de pe ToolsBar.
Aa cum se vede i din figura controlului tab, acesta este
format dintr-o caset cu 4 pagini, utilizat pentru configurarea
obiectului respectiv (nu s-a evideniat a cincia pagin All - deoarece
ea reprezint numai o regrupare a celorlalte 4 pagini) care au
urmtorul rol:
Proprietile obiectului se gsesc grupate dup rolul lor n trei
pagini, i anume:
Pagina Format cuprinde proprietile referitoare la modul de
prezentare a obiectului, ca de exemplu dimensiunile acestuia sau dac
este sau nu vizualizat.
Pagina Data cuprinde proprietile referitoare la datele cu care lucreaz obiectul. Astfel pentru
obiectul formular, exist Record Source, adic proprietatea prin care se indic tabela de care se leag
formularul, iar pentru un control tip Text Box, proprietatea Control Source care desemneaz cmpul (din
tabela legat la formular) de care se leag respectivul control.
Pagina Other - conine restul proprietilor obiectului, cea mai important fiind Name, care
reprezint numele acestuia, necesar atunci cnd este referit (n VBA, n macro-comenzi sau n expresii (de
exemplu se poate referiri un control din formular ntr-o expresie aflat ntr-o cerere).
Exist o excepie, i anume la obiectul formular (form) numele acestuia nu se gsete n pagina
Other. Stabilirea numelui formularului se face dup crearea unui formular nou iar modificarea acestuia, n
fereastra Database la fel ca i la tabele, cereri sau macro-comenzi. Acesta este foarte important deoarece
se va folosi pentru a se face referire la acest obiect de oriunde, dar evident calificat dac este necesar.
Pagina Event grupeaz toate evenimentele definite pentru obiectul respectiv. Ea este folosit
pentru ataarea la un eveniment a unei metode, realizat dintr-o procedur eveniment (scris n VBA -
Visual Basic for Application), sau dintr-o macro-comand sau dintr-o expresie. Construirea acestei
metode, care se va declana la producerea evenimentului respectiv, poate fi asistat de un Wizard.
I.1.5.3 Natura obiectelor utilizate n formular
n Access, obiectele utilizate n formulare - controale, seciuni sau obiectul form - pot fi proprii sau
transferate prin diferite tehnologii de la alte aplicaii numite aplicaii server.
n continuare se prezint succint, din punct de vedere al principiilor, aceste tehnologii.
ActiveX
Un ActiveX este un obiect independent care poate fi folosit i personalizat ntr-o aplicaie (client),
fr ns a mai fi necesar prezena aplicaiei (server) care l-a creat.
n Windows, exist anumite sisteme de programare de exemplu Visual Basic, Visual C sau Delphi
- care permit crearea acestor obiecte, numite aplicaii server.
Alte aplicaii pot numai folosi un obiect de tip ActiveX (ca de exemplu Access). Acestea se numesc
aplicaii client.
Unele dintre obiectele ActiveX, cum este un control de exemplu, chiar dac sunt utilizate de o
aplicaie, poate avea o existen de sine stttoare, executndu-se n general n propriul lor fir de execuie,
pe cnd alte obiecte de acest tip, constituite sub forma unor biblioteci, nu pot exista dect n aplicaia care
le folosete.
Obiectele din care sunt create formularele sunt obiecte ActiveX.
Explicaie: Fir de execuie
Orice sistem de calcul are n componen un procesor prin care sunt executate instruciunile unei
aplicaii.
Dac sistemul este multitask procesorul trebuie s execute simultan instruciuni din mai multe
aplicaii. Pentru a face acest lucru se folosete de obicei procedeul time-sharing. Prin acesta se mparte
timpul procesorului n cuante de timp i se repartizeaz acestea - funcie de o anumit politic de prioriti
- fiecrei aplicaii. De exemplu dac sunt 3 aplicaii n execuie, atunci n cuanta 1 de timp se va executa
aplicaia 1, n cuanta 2 aplicaia 2, n cuanta 3 aplicaia 3, dup care n cuanta 4 se va relua execuia


I -11
aplicaiei 1 .a.m.d. Viteza procesorului fiind mult mai mare dect a celorlalte componente ale sistemului
de calcul, practic un numr rezonabil de aplicaii pot fi executate simultan fr a se micora simitor
viteza de execuie a acestora. n acest caz spunem c fiecare aplicaie are propriul ei fir de execuie.
Acesta n afara timpului de calcul, va conine i alte resurse ale sistemului de calcul care se vor partaja
ntre aplicaii (de exemplu memoria de lucru).
Transferul de obiecte n Windows.
Practic, se poate considera un ActiveX ca pe un obiect care se transfer dintr-o aplicaie server la
o aplicaie client, printr-o anumit tehnologie, numit Automation care reprezint un standard. Acest
procedeu este cel mai nalt nivel de transmitere a informaiilor ntre aplicaiile care funcioneaz pe o
platforma Windows.
Pe platforma Windows mai exist dou nivele de transmitere a obiectelor (utilizate i n aplicaiile
Access), i anume:
Transferul simplu care se poate efectua prin dou metode, i anume:
prin Cut sau Copy
3
la surs, urmat de Paste la destinaie, care se realizeaz prin intermediul
memoriei clipboard;
direct prin tragerea obiectului cu mouseul de la surs la destinaie (procedeul Drag and Drop);
Transferul OLE, realizat prin Cut sau Copy la surs i Paste Special la destinaie, care permite
odat cu transferul obiectului ntre aplicaii i posibilitatea de a activa respectivul obiect, la noua
destinaie, prin lansarea n execuie a aplicaiei care l-a creat. n funcie de felul n care se face transferul
sunt:
Transfer ncapsulat (embedded), care copiaz efectiv obiectul la noua destinaie.
Transfer prin legtur (linked), care nu transfer obiectul ci numai adresa acestuia, permind
accesul la obiectul original prin aceasta.
Exemplu: Dac ntr-o tabel, ntr-un cmp exist un obiect OLE multimedia (de exemplu de tip AVI) i
dac se face dublu clic pe el, atunci se lanseaz n interiorul aplicaiei Access, aplicaia multimedia
desemnat n sistemul de operare s gestioneze obiecte de tip AVI (de exemplu aplicaia Media Player)
I.1.6 Utilizarea controalelor n formulare
Scopul crerii formularelor este n general acela de a oferi utilizatorului, o modalitate asistat de
ntreinere a datelor din baza de date. Pentru aceasta se au n vedere urmtoarele aspecte:
informarea utilizatorului asupra aciunilor pe care le are de efectuat;
limitarea la maximum a posibilitilor utilizatorului de a strica ceva;
folosirea unor obiecte semi-standardizate, ceea ce ofer utilizatorilor care lucreaz pe platforma
Windows a unor comenzi i aplicaii cu interfee utilizator asemntoare, permindu-se astfel o
implementare rapid i comod a aplicaiilor noi.
Realizarea acestui lucru este determinat n mare parte prin folosirea de ctre diferite aplicaii,
indiferent de limbajul n care sunt create, a acelorai controale (de exemplu controlul Common Dialog
prin intermediul cruia se realizeaz comenzi de genul Open, Save sau Save As).
n Access plasarea controalelor n formular, se realizeaz prin intermediul unei bare, numit
caseta de instrumente ToolsBox (vezi pictograma acesteia).
Vizualizarea ToolsBox, se poate face atunci cnd formularul este n Design, prin folosirea
pictogramei specifice de pe bara cu pictograme (ToolsBar) sau direct din meniul View | ToolsBox.
Dei implicit ToolsBox conine cele mai utilizate controale necesare n proiectare, exist
posibilitatea reconfigurrii acesteia.
Din punctul de vedere al modalitii de utilizare, controalele se pot mpri n patru grupe, i anume:
Controale legate la cmpurile tabelelor sau cererilor ataate formularelor de exemplu Text Box
sau listele derulante Combo Box sau List Box.
Controale de prezentare a unor informaii text, grafice, desene (poze) etc. de exemplu Label,
"Line", Image.

3
Copy, se utilizeaz la copierea obiectului (dup operaie obiectul rmne i la surs) - iar Cut, la
mutarea obiectului (obiectul este ters de la surs).


I -12
Controale de lansare a unor comenzi de exemplu Command Button. Evident un asemenea
control se va utiliza n formulare dar nu i n rapoarte.
Controale invizibile de exemplu Common Dialog, controale multimedia (pentru sunete sau
imagini filmate) - care permit prin activarea lor anumite aciuni specifice.
Access folosete n proiectare i n execuie, meniuri i bare cu pictograme. Implicit, acestea sunt
configurate variabil, funcie de locul n care sunt folosite. De asemenea utilizatorul poate s le modifice
sau s creeze altele noi, folosind comanda Customize, care se gsete n View | ToolBars.
Access folosete urmtoarele bare pentru lansarea comenzilor:
Menu Bar meniurile folosite de aplicaie.
ToolsBars Bare de pictograme cu cele mai importante comenzi, grupate pe categorii de
exemplu ToolBox, Formatting, Database etc.
Shortcut Menu Bar meniul contextual al obiectelor, care se lanseaz prin efectuarea unui clic
dreapta pe obiectul respectiv.
Plasarea controalelor pe formular, asistat de un wizard, se face prin selecia din ToolsBox, prin
clic, a pictogramei care reprezint controlul respectiv, urmat imediat de eliberarea butonului mouseului
(deci NU ca la "Drag and Drop"), ceea ce va duce la ataarea de cursorul mouseului a unei pictograme,
care reprezint controlul respectiv. n continuare se aduce cursorul pe formular n poziia dorit i se
plaseaz controlul printr-un nou clic.
Controalele sunt configurate implicit cu anumite proprieti. Acestea se gsesc n obiectul Default
Control al controlului respectiv i se pot vizualiza i eventual reconfigura. Activarea obiectului Default
Control se face n felul urmtor
selectarea controlului respectiv pe ToolsBox;
acionarea pictogramei de proprieti;


I -13
n figura de mai jos este prezentat caseta cu instrumente:

(*6)
Butoanele booleene pot
fi setate i cu trei stri: False,
True i Null, prin proprietatea
Triple State din pagina Data, caz
n care n ele nu mai pot fi
utilizate dect date de tip numeric
ntreg pozitive i negative (integer
sau longinteger).

(*7)
Controalele ActiveX (se
gsesc n fiiere cu extensia OCX)
trebuiesc nregistrate. Acest lucru
se face prin comanda
Tools|ActiveX i se datoreaz
faptului c un ActiveX reprezint
de fapt - aa cum am mai artat - o
aplicaie independent.
Access are n
componen un wizard pentru
realizarea automat a
formularelor, care va solicita
informaii referitoare la:
tabela sau cererea legat
de formular;
cmpurile care se vor
introduce n formular;
tipul formularului:
columnar sau tabular;
stilul de prezentare;
Folosirea acestui wizard va duce la preluarea de ctre controalele legate a proprietilor cmpurilor
respective setate la crearea tabelelor, precum i stabilirea ntr-un mod unitar a proprietilor implicite ale
controalelor, funcie de stilul folosit.
Dup aceast activitate, care dureaz cteva minute, se poate interveni direct pentru a reconfigura,
acolo unde este cazul, proprietile formularului i a obiectelor pe care le conine.
Aceast metod de proiectarea a unui formular nou (prin wizard i retuare este recomandat
fiind foarte eficient.
I.1.7 Utilizarea proprietilor, metodelor i evenimentelor obiectelor din formulare
Aa cum s-a artat, prin meniul contextual sau prin acionarea pictogramei de proprieti a
obiectului selectat formular, seciune sau control se lanseaz caseta tab cu proprietile i
evenimentele obiectului respectiv.
Cteva dintre caracteristicile acestora sunt prezentate n continuare:
1) Proprietile pot fi modificate n dou moduri:
Static - n faza de proiectare, Design View;
Dinamic - n timpul execuiei formularului, Form View, prin secvene de cod VBA.
2) Exist i anumite proprieti ale obiectelor, numite dinamice, care nu pot fi setate dect atunci
cnd formularul este n execuie i care nu sunt incluse n caseta tab cu caracteristici. Acestea, ca i
metodele obiectelor se gestioneaz prin cod VBA sau prin macro-comenzi.
3) Exist un mare numr de proprieti, metode i evenimente (85%) comune mai multor obiecte.
Ele vor avea acelai nume.
4) Numele proprietilor care conin spaii, cnd se folosesc n codul VBA, se scriu fr acestea.
5) Aproape toate proprietile au liste ascunse sau wizard-uri (existena acestora este semnalizat
cu trei puncte) care nlesnesc configurarea lor.
Controalele de pe ToolsBox
Selectorul de controale de pe ToolsBox / tot timpul este apsat.
Wizard pentru asistarea configurrii anumitor controale / se ine apsat.
Text Box (caseta de text) - pentru vizualizare sau introducere de text / se
poate lega de orice tip de cmp.
Label (eticheta) - numai pentru afiare de informaii / nu se poate lega.
Option Group (grup de opiuni) - conine mai multe controale booleene, din
care numai unul se selecteaz / se poate lega de cmpuri numerice ntregi
Toggle button - buton boolean cu 2 stri
(*6)
: apsat / neapsat - se leag de
cmpuri booleene sau numerice ntregi, pozitive i negative (deci nu byte)
Option button buton radio boolean / se folosete la fel ca Toggle button
Check Box (caset de validare) - tip boolean / la fel ca Toggle button
Combo Box (list ascuns) - datele se pot introduce i prin preluarea dintr-
o list ascuns / se poate lega de orice cmp.
List Box (list derulant). - datele se pot introduce i prin preluarea dintr-o
list desfurat / se poate lega de orice cmp.
Command Button (buton de comand) - folosit pentru lansarea unor aciuni
/ nu se leag de cmpuri.
Image Button pentru afiarea de imagini de diferite tipuri din fiiere / sunt
aduse prin metoda OLE, ncapsulate sau legate.
Unbound Object Frame pentru obiecte nelegate.
Bound Object Frame pentru obiecte legate de cmpuri
Page Break - control invizibil / salt la pagin nou / nu se leag de cmpuri.
Tab Control are mai multe pagini pe care se pot plasa controale / nu se
leag de cmpuri
Control pentru subformulare.
Line Control - control grafic, nelegat.
Rectangle Control - control grafic, nelegat.
Afieaz toate controale ActiveX
(*6)
de pe platforma Windows, dup care
se poate selecta i plasa n formular sau pe aceast bar (pentru utilizare).
ActiveX - Calendar Control.
ActiveX - Spin Button.
ActiveX - Common Dialog.
ActiveX - Progress Bar.
ActiveX - Microsoft Data and Time Control.



I -14
I.2 Obiectul FORM
I.2.1 Structura coleciei de obiecte Forms
Un obiect Form reprezint un formular deschis. El face parte din colecia Forms, care se gsete n
Application-Access. El are proprieti, metode i evenimente (la care se pot ataa metode).
Un obiect Form conine o colecie de controale numit Controls, format din obiecte Control.
I.2.2 Proprietile formularului
Majoritatea proprietilor formularului se pot accesa att static (prin cele 3 pagini ale controlului tab
al formularului) ct i dinamic, prin cod VBA.
I.2.2.1 Numele formularului
Stabilirea numelui formularului se face dup crearea unui formular nou iar modificarea acestuia, n
fereastra Database la fel ca i la tabele, cereri sau macro-comenzi.
I.2.2.2 Pagina FORMAT
Cele mai utilizate proprieti din aceast pagin,
referitoare la forma de prezentare a formularului, sunt:
Caption Titlul formularului. Apare n bara de titlu a
acestuia. Nu trebuie confundat cu numele formularului.
Implicit, dac proprietatea nu este completat, numele
formularului se va folosi i ca titlu.
Default View Tipul formularului, care poate fi
Continous (mai multe nregistrri pe pagin) sau Single (o
nregistrare pe pagin).
Scroll Bars Specific dac exist sau nu bare de
derulare, orizontale i/sau verticale.
Record Selectors Specific dac exist sau nu n
stnga nregistrrii, buton de
selecie a acesteia.
Navigation Buttons
Specific dac exist sau nu n partea de jos a formularului
butoane pentru accesarea anumitor nregistrri. Prin acesta se
poate ajunge la:
prima sau la ultima nregistrare a formularului (se consider ordinea de afiare i nu aceea a
plasrii fizice a nregistrrilor n tabelele legate);
nregistrarea precedent sau urmtoare;
o nou nregistrare n vederea adugrii;
De asemenea se afieaz numrul curent al nregistrrii, cte nregistrri sunt n formular i dac
formularului i se aplic un filtru de selecie.
Dividing Lines Specific dac exist sau nu linii de separare a nregistrrilor.
Auto Resize Specific dac formularul i modific forma, prin tragere, dac se recalculeaz
sau nu dimensiunile obiectelor care sunt cuprinse n acesta.
Auto Center Specific dac se poziioneaz sau nu formularul la mijlocul ecranului.
Border Style exist urmtoarele posibiliti:
Sizable Formularul poate fi maximizat, minimizat sau i se poate schimba forma prin tragere
de margini;
Legend
Obiecte Colecii
Forms
colecia formularelor deschise
Controls
Produse
CodProdus
UM
Pret




I -15
None Nici una din facilitile de mai sus nu este valabil, i de asemenea nu are nici buton X
de nchidere;
Thin E ca Sizable, dar nu are margini de tragere;
Dialog E ca None, dar are buton X de nchidere;
Control Box Specific dac exist sau nu caseta de butoane din stnga barei de titlu.
Min Max Button - Specific dac exist sau nu butoanele de maximizare / minimizare n
Control Box.
Close Button Specific dac exist sau nu buton X de nchidere.
Width Limea efectiv a formularului (nu a ferestrei de vizualizare a acestuia), n unitatea de
msur stabilit n Windows | Control Panel | Regional Settings.
Whats This Button Se poate seta pe Yes numai dac Min Max Button este No, i duce la
introducerea n Control Box a butonului specific de Help Assistant din MS Office.
Picture Formularele pot avea eventual, o imagine de fundal, Background. Adresa
fiierului care conine imaginea (sunt acceptate mai multe tipuri: bmp, ico, wmf, emf, dib) se introduce n
aceast proprietate.
Picture Type Se stabilete dac fiierul respectiv este ncapsulat (embedded) sau legat (linked).
ncapsularea n mai multe formulare a aceluiai fiier grafic duce la ocuparea spaiului pentru fiecare
fiier n parte.
Picture Size Mode exist urmtoarele posibiliti:
Clip imaginea este preluat la dimensiunile ei reale;
Zoom imaginea va fi mrit pn la dimensiunea ferestrei formularului dar i pstreaz
proporiile;
Stretch imaginea va fi mrit pentru a ocupa ntreaga fereastr dar nu i pstreaz
proporiile;
Picture Alignement Se stabilete unde se plaseaz n fereastra formularului imaginea grafic.
Picture Tiling Setat pe Yes, duce la repetarea imaginii grafice pentru a ocupa ntreaga
fereastr a formularului.
Grid X, Grid Y Distana dintre liniile grilei de proiectare, n pixeli. Afiarea grilei de
proiectare se face din View | Grid. Alinierea controalelor la aceast gril se face din Format | Snap To
Grid.
I.2.2.3 Pagina DATA
Aceast pagin conine proprietile referitoare la datele formularului.
Record Source Tabela sau cererea, de care este legat formularul. Se poate introduce i direct o
instruciune SQL Select.
Filter Se poate introduce o expresie care are rolul de a face o selecie a nregistrrilor din
surs. Dac se creeaz un filtru prin meniul Records cnd formularul este n execuie, atunci va fi introdus
automat n aceast proprietate filtrul respectiv.
Order By Se introduc cmpurile dup care se sorteaz nregistrrile din formular (aranjarea
tuturor nregistrrilor din formular dup ordinea ascendent sau descendent a unuia sau mai multor
cmpuri). Dac se dorete sortare descendent se introduce dup numele cmpului respectiv un spaiu i
DESC. Implicit se consider sortarea ascendent. Dac sunt mai multe cmpuri de sortare, acestea se
separ prin virgul. Ca i la filtre, dac se stabilete un cmp de sortare prin meniul Records cnd
formularul este n execuie, atunci va fi introdus automat n aceast proprietate cmpul respectiv.
Crearea unui filtru sau al unui criteriu de sortare nu implic i activarea automat a acestuia.
Activarea sau dezactivarea lor se poate face n timpul execuiei formularului n dou moduri:
Fie din meniul de comenzi prin:
Records | Apply Filter, Sort sau
Records | Remove Filter, Sort
Fie din cod VBA, prin setarea la True sau False, a proprietilor dinamice ale formularului:
FilterOn
OrderByOn


I -16
Allow Filters, Allow Edits, Allow Deletions, Allow Additions Setate pe No, blocheaz
comanda respectiv.
Record Locks Se ntlnete i la cereri. Are rolul de a stabili ce nregistrri se blocheaz,
atunci cnd se lucreaz n reea i mai muli utilizatori acceseaz aceeai tabel sau cerere ncercnd s
scrie n ea. Blocarea se refer la faptul c numai primul utilizator care modific zona respectiv este
acceptat, ceilali urmnd a fi Read Only. Posibilitile de blocare oferite de sistem sunt:
No Loks nregistrrile nu sunt blocate, toi utilizatorii putnd scrie n acelai timp n aceeai
nregistrare, ceea ce face ca sistemul s cear ce modificare rmne valabil, printr-un mesaj
specific. Se folosete cnd aplicaia nu este folosit n reea;
All Records ntreaga tabel este blocat, numai un singur utilizator avnd dreptul s efectueze
modificri, ceilali putnd numai s citeasc din tabela respectiv;
Edited Record Numai nregistrarea curent este blocat. Practic se blocheaz o zon de 2KB,
ceea ce poate duce ns i la blocarea altor nregistrri;
I.2.2.4 Pagina OTHER
Pop Up Specific dac fereastra formularului va fi sau nu deasupra celorlalte ferestre.
Modal Un formular modal se caracterizeaz prin aceea c, o dat preluat controlul, nu l mai
cedeaz dect la nchiderea lui. Acest lucru poate fi valabil pentru aplicaia Access sau pentru toate
aplicaiile aflate n execuie n momentul respectiv.
Cycle Stabilete care este ordinea de accesare a nregistrrilor cnd se trece cu <Enter> sau
<Tab> de la un control la altul i se ajunge la ultimul control din seciunea de detail, stabilit conform
ordinii tab (care se lanseaz din meniul contextual al formularului i prin care se fixeaz care este ordinea
de parcurgere a controalelor dintr-o seciune atunci cnd se trece de la un control la altul prin tastatur
cu <Enter> sau <Tab>).
Dac proprietatea este setat pe:
All Records - se va continua cu nregistrarea urmtoare;
Current Record - se va reveni la primul control din aceeai nregistrare.
Menu Bar Numele unei alte bare de meniu creat de proiectant, care s nlocuiasc meniul
standard din Access.
Toolbar Numele unei alte bare de pictograme creat de proiectant, care s nlocuiasc bara de
pictograme standard din Access, care apare la execuia unui formular, i anume Form View.
Shortcut Menu Specific dac se va permite sau nu apariia meniului contextual al
formularului.
Shortcut Menu Bar Numele unui meniu contextual creat de proiectant, care s nlocuiasc pe
cel standard care apare la execuia unui formular.
I.2.3 Evenimentele formularului.
Evenimentele sunt localizate n pagina Event.
Cele mai importante sunt:
On Open i On Close Se produc la deschiderea, respectiv nchiderea formularului.
Aceste evenimente pot fi anulate. Aceasta va duce la anularea aciunii de deschidere / nchidere a
formularului. n general se folosesc pentru ca utilizatorul s confirme aceste aciuni.
Explicaie: Anularea unui eveniment se face printr-o comand specific (Cancel=True n codul VBA
sau macro-instruciunea CancelEvent) introdus n metoda ataat evenimentului. Deci executarea acestei
comenzi ntr-o metod va anula evenimentul care a lansat metoda
respectiv.
Exemplu: Fie macro-comanda CanceForm din figur. n pagina
Event a formularului Miscare, n dreptul evenimentului OnOpen se
va introduce numele macro-comenzii: CancelForm.
Efectul va consta n aceea c dac se ncearc execuia
formularului, se va afia mesajul din macro-instruciunea MsgBox,
dup care formularul nu se va mai deschide. Aciunile efectuate de
sistem, pas cu pas au fost:
S-a efectuat comanda de execuie a formularului;


I -17
Se produce evenimentul OnOpen.
Acest eveniment are o metod ataat, i anume macro-comanda CancelForm.
Se execut macro-instruciunile din aceasta, i anume:
MsgBox - afieaz mesajul;
CancelEvent - anuleaz deschiderea formularului.
On Load i On Unload Se produc la ncrcarea n memorie a formularului, respectiv
eliberarea spaiului ocupat de el. Se produc dup, respectiv nainte de On Open / On Close. Nu pot fi
anulate.
Before Update Se produce dup modificarea
nregistrrii, atunci cnd se iese din aceasta. Poate fi anulat.
Se folosete n general pentru a verifica anumite corelaii
ntre cmpurile unei nregistrri i a nu permite utilizatorului
trecerea la o alt nregistrare (deci modificrile efectuate)
dac acestea nu sunt corespunztoare.
After Update Se produce dup modificarea unei
nregistrri, atunci cnd se iese din nregistrarea respectiv.
Acest eveniment nu se poate anula, modificarea devenind
definitiv.
Se folosete n general pentru a calcula anumite valori
i a le introduce n controale, la terminarea modificrilor dintr-o nregistrare.
Before Insert i After Insert Este la fel ca cele dinainte dar se produc numai cnd se introduc
nregistrri noi.
On Current Se produce cnd se trece pe o alt nregistrare. Se folosete n general, pentru a
efectua calcule, la ntrarea ntr-o nregistrare, cu datele din aceasta.
On Timer Se produce dac proprietatea Timer Interval este diferit de zero. Dac n Timer
Interval este o valoare numeric, atunci acesta va specifica, n milisecunde, intervalele de timp la care se
lanseaz metoda introdus la On Timer.
Exemplu: Fie macro-comanda UnMin din figur, care afieaz un mesaj. n
pagina Event a formularului Miscare, n dreptul evenimentului OnTimer se
introduce numele macro-comenzii: UnMin, iar proprietatea Timer Interval se
face 60000. Aceasta va avea urmtorul efect: la fiecare 60 sec, se va produce
evenimentul On Timer, care va lansa macro-comanda UnMin, ceea ce va duce
la afiarea mesajului: "A trecut un minut".
On Click, On Dbl Click, On Mouse Down, On Mouse Up, On
Mouse Move Se produc la aciunea respectiv a mouseului pe formular.
On Key Down, On Key Up, On Key Press Se produc la aciunea respectiv a tastaturii.
On Error Se produce la o eroare datorat datelor.
On Got Focus, On Lost Focus Se produc la primirea, respectiv pierderea focusului de ctre
formular.
I.2.4 Metodele formularului
Activarea acestor metode se face de obicei din modulul de cod VBA ataat formularului.
n continuare prezentm cele mai utilizate metode ale formularelor.
Metoda Refresh
Metoda Refresh va determina pentru un formular o remprosptare cu datele tabelei ataate.
Acest lucru este necesar numai n cazul actualizrii tabelei printr-un proces din afara formularului
(deoarece actualizarea direct a tabelei prin formular va fi imediat sesizat).
Un astfel de proces se poate efectua dac:
printr-o cerere aciune, se modific tabela ataat formularului;
aplicaia ruleaz ntr-un mediu multiutilizator (ntr-o reea de calculatoare) i un alt utilizator
modific aceast tabel.
Metoda Refresh se poate face i manual, cnd formularul este n execuie prin acionarea
comenzii Records | Refresh.


I -18
Aceast metod sistemul o face automat la un interval de timp care se stabilete pentru toate
formularele deschise, prin completarea proprietii bazei de date Refresh Interval (n sec) din meniul
Tools | Advanced.
Metoda Refresh acioneaz numai asupra setului de nregistrri care exista la lansarea
formularului, ea neavnd efect asupra:
nregistrrilor noi introduse sau terse;
tabelelor folosite n diferite controale (de exemplu ntr-un control Combo Box care afieaz date
dintr-o tabel care se modific dup lansarea formularului, metoda Refresh nu va avea efect).
Metoda Requery
Metoda Requery acioneaz ca i metoda Refresh dar este mult mai puternic deoarece ea reia
execuia tuturor cererilor aferente formularului. Aceast metod este destul de lent, deoarece ea se
comport ca i cum s-ar lansa din nou formularul (inclusiv poziionarea focusului pe prima nregistrare).
Metoda Recalc
Aa cum am mai artat, ntr-un formular pot exista controale calculate, care vor afia expresii n
care pot interveni date din alte controale legate la cmpurile tabelei ataate formularului. n momentul n
care se modific definitiv (se iese din control sau se trece la alt nregistrare) datele dintr-un control, se
vor reface i calculele controalelor calculate n care acesta intervine. Sunt ns cazuri n care este
necesar refacerea imediat a calculelor controalelor calculate, fr a modifica poziia cursorului dintr-un
control. Metoda Recalc face aceast aciune. Deci ea se comport ca i cum s-ar da o comand de trecere
pe un alt control i o alt nregistrare, cu meninerea ns a cursorului pe poziia sa.
Metoda Set Focus
Cu aceast metod se poate muta focusul ntr-un alt formular care este n execuie.
I.3 Obiectele Detail, Form Header, Form Footer
Toate aceste seciuni au aceleai proprieti i evenimente. Pagina de Date nu are proprieti. Sunt
puin folosite n practica proiectrii formularelor, configurarea acestor obiecte. Singura proprietate mai
folosit este:
Back Color - prin care se stabilete culoarea de fundal.
I.4 Controalele folosite n formulare
I.4.1 Text_Box - caseta de text
Cele mai utilizate tipuri de controale, folosite n proiectarea
formularelor (ca i a rapoartelor) sunt prezentate n continuare prin prisma
proprietilor, metodelor i evenimentelor lor.
Text Box este cel mai utilizat control folosit att n
formulare ct i n rapoarte. Este un control care se poate lega la un cmp al
unui tabel. Reprezint practic o caset n care se vor vizualiza datele din
cmpul de care este legat, permind actualizarea acestora. De obicei este
nsoit de un control Label, n care se va specifica ce reprezint datele din
Text Box.
I.4.1.1 Proprietile controlului Text Box
Prezentm n continuare proprietile cele mai utilizate ale acestui
control, cu observaia c exist o serie de proprieti care au mai fost explicate
anterior (la obiectul Form).
I.4.1.1.a) Text Box - pagina FORMAT
Pagina Format conine proprietile prin care se configureaz formatul
i stilul textului din caset.
Font Name Felul fontei, adic tipul de liter folosit. Fontele care
accept diacriticele romneti sunt cele cu terminaia 'CE'.
Pentru a se putea lucra cu diacritice romneti, tastatura trebuie setat
corespunztor n Windows pentru a doua limb, n Control_Panel |


I -19
Keyboard.
Fore Color Culoarea fontei.
Font Size Mrimea n pixeli a fontei.
Font Weight Grosimea fontei.
Font Italic Litera aplecat.
Font Underline Subliniere.
Text Align Alinierea textului n csu.
Border Style, Border Color, Border Width Se folosesc pentru configurarea marginii
controlului.
Special Effect - Stabilete un tip standardizat de margine pentru control. Uneori setarea acestei
proprieti are efect i asupra celor trei proprieti de mai sus. Exist 6 tipuri:
Flat plat;
Raised n relief;
Sunken ngropat;
Etched poansonat, zgriat;
Shadowed cu umbr;
Chiseled subliniat.
Back Color Culoarea fundalului.
Back Style Dac fundalul este sau nu transparent. n cazul transparenei se va vedea obiectul
de sub control, de obicei culoarea seciunii n care se gsete acesta.
n bara de meniu, n Format, exist dou proprieti, care atunci cnd sunt activate vor seta toate
obiectele selectate n momentul respectiv, n felul urmtor:
Bring to Front aduce obiectele la suprafa;
Send to Back duce obiectele n spate;
Prin aceste proprieti se poate stabili cum "se vd" obiectele suprapuse.
Aceast proprietate poate fi folosit pentru a se marca explicit care este controlul n care se gsete
cursorul (controlul activ), prin folosirea unei culori unice pentru controlul activ. Pentru aceasta se
procedeaz astfel:
Se face controlul cu Back Color culoarea controlului activ (de exemplu verde) i Back Style
transparent.
Se creeaz un control grafic, de tip Rectangle, "umplut" cu culoarea pe care o va avea controlul
(de exemplu galben) i de dimensiunile acestuia, care se aeaz dedesubt.
n felul acesta controlul fiind transparent, va avea culoarea dreptunghiului de dedesubt (galben), iar
cnd va primi focusul, culoarea setat pentru el (verde).
Toate proprietile prezentate mai sus se pot configura i direct de pe bara cu pictograme
"Formatting".
Format n csua de text se gsete o dat de tipul cmpului de care controlul este eventual
legat. Exist posibilitatea s se aleag ntre mai multe tipuri de afiare specifice tipului respectiv de dat.
De asemenea tipul de afiare se poate defini i cu caracterele specifice de construire a formatelor.
Decimal Places Numrul de zecimale al datelor de tip numeric.
Visible Permite ca un control construit s poat fi fcut vizibil sau nu, n funcie de un anumit
context.
Scroll Bars Exist posibilitatea ca acest control s poat conine mai multe linii de date. n
acest caz este indicat s i se ataeze bara derulant vertical.
Can Grow, Can Shrink Permite ajustarea controlului pe vertical, n cazul n care n control
sunt un numr variabil de linii.
Aceste proprieti sunt valabile numai la tiprire nu i la afiarea pe ecran. Deci ele sunt folosite n
special la rapoarte.


I -20
Left, Top, Width, Height Poziia (relativ la seciunea unde se gsete) i mrimea controlului
pe ecran, dat n cm sau inches, n funcie de cum e setat unitatea de msur
4
n Windows. Ele se vor
completa automat n momentul n care se va "aeza" pe ecran controlul.
Access folosete i celelalte setri din Widows | Control Panel | Regional Settings ca punctul
zecimal, formatul pentru or i dat, perioada anului din 2 cifre etc.
I.4.1.1.b) Text Box - pagina DATA
Control Source Numele cmpului (din tabela sau cererea ataat la formular sau raport) de
care se leag controlul. Este cea mai important proprietate a controlului.
Este posibil i legarea controlului de o expresie (control calculat). Pentru
aceasta se va pune =expresie la Control Source.
O expresie ntr-un formular va avea pe lng toate facilitile acceptate n
Access o nou posibilitate, i anume aceea de a folosi ca termeni nume de controale
din formular (inclui ntre paranteze drepte ca i cmpurile).
Exemplu: n formularul Produse n zona:
Form Footer, se introduce un control de tip Text Box, pTVA, care la
Control Source are: < =19 >
Detail pe lng controlul legat, Pret, se introduce un control de tip Text
Box, TVA, care la Control Source are introdus urmtoarea expresie: < =[Pret]*[pTVA]/100 >
n acest fel:
n controlul pTVA va fi mereu afiat 19;
n controlul TVA se va afia tot timpul evaluarea expresiei introduse n proprietatea Control
Source, n care aa cum se observ se folosesc datele dintr-un control legat la un cmp, Pret (cu
valorile respective din nregistrrile tabelei ataate) i datele dintr-un control calculat, pTVA.
De asemenea se pot folosi i controale nelegate (unbound). n acest caz de obicei se introduc
date n control prin codul VBA, prin proprietatea dinamic implicit Value (nu se poate utiliza dect cnd
formularul este n execuie). Aceast proprietate este Input / Output.
n faza de proiectare, n interiorul controlului este afiat valoarea proprietii Control Source.
Input Mask, Default Value, Validation Rule, Validation Text Funcioneaz la fel ca la
proprietilor tabelelor. Dac nu se completeaz se preiau setrile fcute cmpului respectiv la crearea
tabelei. Setarea n formular a acestor proprieti este valabil numai n acest obiect, proprietile tabelei
rmnnd neschimbate.
n Default Value, Validation Rule, Validation Text se pot face referiri i la alte nume de obiecte
accesibile, spre deosebire de tabele n care nu se pot referi alte cmpuri.
Enabled, Locked: Permisiunea de intrare n control, respectiv de modificare a datelor din el.
Deci exist posibilitatea s se creeze controale Read Only (numai citete). Sunt mai multe posibiliti:
Dac Enabled = Yes i Locked = No se poate intra n control (se plaseaz cursorul n control) i
modifica datele din el;
Dac Enabled =No nu se poate plasa cursorul n control (evident nici modifica datele);
Dac Enabled = Yes i Locked = Yes se poate poziiona cursorul n control dar nu se pot
modifica datele din el;
Dac Enabled = No i Locked = No (nu are sens) controlul apare ters;
I.4.1.1.c) Text Box - pagina OTHER

4
Unitile de msur utilizate n aplicaiile informatice sunt:
Pixel unitate dependent de rezoluia ecranului.
Inches sau Cm n funcie de setarea din Windows. Se folosete de obicei n paginile de
proprieti 1 Inch=2,54 cm.
Punct 72/inch
Twips 1440/inch, 567/cm, 20/punct. Se folosesc cnd se introduc prin cod VBA dimensiuni
pentru controale.



I -21
Name Nume control. Acesta
este numele care se folosete cnd se fac
referiri la acest control. Dei nu este
obligatoriu este indicat ca n cazul
controlului legat, numele lui i al
cmpului s fie acelai.
Status Bar Text Cnd focusul
ajunge n control, pe bara de stare (care se
gsete n partea de jos a ecranului) va
apare textul introdus aici.
Tab Stop n momentul n care
se termin introducerea datelor ntr-un
control, focusul se va poziiona pe urmtorul control din seciune care are setat aceast proprietate cu
Yes.
Ordinea de parcurgere a controalelor se stabilete prin comanda Tab Order. Aceasta se gsete n
meniul contextual sau n View i permite aezarea controalelor din seciuni n ordinea dorit prin
"tragere".
Auto Tab Trecerea de la un control la altul se face cnd:
se apas pe tasta <ENTER> sau <TAB>.
sau dac Auto Tab = Yes atunci trecerea la urmtorul control se va face i automat n momentul
n care s-au completat toate datele din control conform formatului specificat. Astfel dac un control este
legat la un cmp de tip text cu lungimea de 3 caractere, dup introducerea celui de-al treilea caracter, fr
s se apese pe <ENTER> sau <TAB> se va trece automat la urmtorul control stabilit prin ordinea tab.
Enter Key Behavior Dac aceast proprietate este = New Line in Field, atunci la apsarea lui
<ENTER> cursorul se va poziiona pe urmtoarea linie din control, iar trecerea la urmtorul control se va
face numai prin apsarea tastei <TAB>. Evident, proprietatea are sens dac controlul are mai multe
rnduri.
Shortcut Menu Bar Se poate crea un meniu contextual specific pentru control. Acesta se face
prin comanda Customize.
Control Tip Text Va apare textul introdus n aceast proprietate cnd se poziioneaz mouseul
deasupra controlului.
Allow Auto Correct Setat pe Yes, va determina efectuarea automat a coreciilor textului
introdus, conform specificaiilor stabilite prin meniul Tools | AutoCorrect.
I.4.1.1.d) Text Box - proprietile implicite
Generarea obiectelor dintr-o clas de obiecte se face prin setarea corespunztoare a proprietilor
obiectului i prin ataarea de metode evenimentelor. n momentul n care se creeaz o clas de obiecte se
stabilesc practic care sunt proprietile, metodele i evenimentele obiectelor care sunt create din aceasta.
Obiectele provenite dintr-o clas vor avea evident aceleai metode, evenimente i tipuri de proprieti. Ele
vor forma o colecie de obiecte, care este privit ca un tablou cu o dimensiune (vector), n care elementele
sunt indexate (de la 0). Crearea controlului Text Box se face prin generarea acestuia din clasa de obiecte
cu acelai nume, prin luarea i plasarea controlului din ToolsBox. n momentul crerii acestui obiect,
proprietile lui trebuiesc setate la anumite valori implicite (default), urmnd ca proiectantul s le
personalizeze ulterior n funcie de contextul n care va fi folosit. Aceste proprieti implicite se pot
modifica prin acionarea n caseta tab: Default Text Box, care se poate afia prin selecia de pe ToolsBox
a controlului i acionarea pictogramei de proprieti.
Evident, la generare, controlul trebuie s primeasc un nume unic, care va fi constituit din numele
controlului plus un numr de ordine n cadrul formularului sau raportului unde este plasat.
Dintre proprietile implicite mai utilizate sunt:
Auto Label yes, ataeaz o etichet controlului;
Add Colon yes, eticheta se va termina cu dou puncte;
Label X, Label Y poziia etichetei fa de control;


I -22
I.4.1.1.e) Text Box - proprietile dinamice
Proprietile unui obiect pot fi statice i / sau dinamice.
Proprietatea static este proprietatea care se poate modifica cnd formularul este n proiectare, prin
caseta tab.
Proprietatea dinamic este proprietatea care poate fi modificat n momentul cnd obiectul este n
execuie, n general prin codul VBA.
Majoritatea proprietilor sunt att statice ct i dinamice. Anumite proprieti sunt numai
dinamice, ele neregsindu-se n caseta tab a controlului.
Dintre proprietile dinamice, cea mai important este VALUE. Aceast proprietate este implicit,
numele ei putnd fi omis. Ea este Input / Output (poate fi i citit i scris) i reprezint valoarea care se
gsete n control. Dac acesta este legat, aceast valoare se va gsi i n cmpul ataat.
Dac controlul este calculat, atunci Value nu poate fi dect citit.
SelLength, SelStart, SelText Se folosesc pentru a manevra cursorul i valoarea din interiorul
unui control Text Box. Sunt proprieti Input/ Output.
SelStart reprezint poziia de start a cursorului n control;
SelLength reprezint lungimea textului selectat din control;
SelText reprezint valoarea textului selectat.
I.4.1.2 Evenimentele controlului Text Box
Before Update Acest eveniment se produce dup ce a avut loc o
modificare a datelor n control, dar care nu este definitiv, putnd fi anulat. n
acest caz, focusul va rmne n control pn cnd utilizatorul introduce o alt
valoare care nu va mai produce anularea acestui eveniment.
Acest eveniment se folosete de obicei pentru a executa o metod mai
complex de verificare a datelor introduse n control, care depete posibilitile
oferite de proprietatea Validation Rule.
After Update Se produce imediat dup evenimentul Before Update,
modificrile fiind acum ns definitive, nemaiputnd fi anulate. Se folosete cnd
valoarea introdus aici va furniza datele necesare calculelor din alte controale.
On Change Se produce dup fiecare tastare n interiorul controlului.
On Enter i On Exit Se produc la intrarea i la ieirea din control.
Got Focus i Lost Focus Se produc la primirea / pierderea cursorului n / din control.
On Click, On Dbl Click, On Mouse Down, On Mouse Up, On Mouse Move Se produc la
aciunea respectiv a mouseului pe control.
On Key Down, On Key Up, On Key Press Se produc la aciunea respectiv a tastaturii cnd
focusul se gsete n control.
I.4.1.3 Metodele controlului Text Box
Metodele cele mai folosite sunt:
Set Focus plaseaz focusul n controlul text.
Requery, Recalc acelai efect ca i la metodele similare de la formulare, dar referitoare numai
la controlul asupra cruia se aplic metoda.
I.4.2 Combo Box - list ascuns

Acest control este asemntor cu Text Box, dar are posibilitatea derulrii unei liste
din care se pot prelua datele care se introduc.
n momentul cnd ntr-o tabel un cmp a fost creat cu proprietatea Look Up, iar acel
cmp e legat ntr-un formular de un control Combo Box, proprietile definite n tabel nu
trec automat i n formular. Acest lucru se face ns automat dac formularul este creat cu wizard-ul de
formulare.
Controlul Combo Box are aceleai proprieti i evenimente ca ale lui Text Box. n plus mai sunt
proprieti i evenimente, care se refer la lista ascuns.


I -23
I.4.2.1 Combo Box - proprieti specifice
n pagina DATA sunt:
Row Source Type Tipul sursei de date care va fi afiat n lista
derulant.
Aici se folosete:
Table/ Query cmpuri din alt tabel;
Value List list de valori (ca n exemplu);
Field List denumiri de cmpuri din alt tabel;
Row Source n cazul n care Row Source Type = ?
Table/ Query sau Field List este numele unei tabele, cereri sau direct o instruciune SQL
Select (ca la legarea formularului la o tabel);
Value List este o list de valori, separate prin <;>
Bound Column Numrul coloanei de legtur (datele din aceast coloan vor fi preluate ca
valoare pentru control);
Limit To List Dac proprietatea este Yes nu se vor putea introduce n control dect datele care
se gsesc n lista derulant iar dac este No, atunci se pot introduce i alte date dect cele din list;
Auto Expand Dac proprietate este Yes, atunci se caut i se afieaz cea mai apropiat
denumire din list care s aib n partea de nceput caracterele introduse n control pn n acel moment
de la tastatur;
n pagina FORMAT sunt:
Column Count Numrul de coloane care apar la desfacerea
listei;
Column Head Dac se afieaz sau nu denumirea coloanelor;
Column Widths Limea coloanelor. Se separ cu <;>
List Rows Numrul de rnduri care se afieaz cnd se desface lista. Dac lista are mai multe
rnduri dect sunt setate a se afia, vor apare barele de derulare verticale;
List Width Limea listei derulante. Dac aceasta este mai mic dect suma tuturor coloanelor
afiate, vor apare barele de derulare verticale. Setat pe Auto, limea listei va fi la fel ca limea
controlului Combo Box;
Toate dimensiunile se dau n unitatea de msur setat n Windows. Aceast caracteristic este
general n tot mediul Access. Reamintim c n VBA, dimensiunile sunt cerute n Twips.
I.4.2.2 Combo Box - evenimentul specific
Not In List Evenimentul se produce atunci cnd Limit To List=Yes, i se introduce o valoare
din afara listei. Metoda ataat evenimentului (scris n VBA) de obicei va completa, dup o confirmare,
lista derulant cu aceast valoare. n continuare, aceast valoare, fiind n list, va putea fi folosit.
I.4.3 List Box - list desfurat
List Box este asemntoare cu combo box, dar lista nu este ascuns, ci este afiat tot timpul.
I.4.4 Option Button, Check Box, Toggle Button
Sunt controale booleene. n Access valoarea boolean poate lua ca de obicei 2 valori i anume:
True (adevrat);
False (fals);
Exist ns posibilitatea ca o valoare boolean s mai aib o valoare, i anume: - NULL
(nedeterminat, nu se tie).
Pentru setarea numrului de stri al valorilor booleene, aceste butoane au o proprietate: Triple
State.
Dac Triple State este:
No, butonul are 2 stri: True i False;
Yes, butonul va avea toate cele trei stri: True, False i Null.
n acest din urm caz controlul trebuie legat numai de un cmp integer sau long.


I -24
Valoarea NULL se va reprezenta printr-o imagine tears a controlului.
I.4.5 Option Group - grup de opiuni
Option Group este un control n care se pot introduce dou sau mai multe dintre controale
booleene prezentate mai sus (toate vor fi de acelai fel).
Specific acestui grup este c numai unul dintre controalele din interiorul lui se poate poziiona pe
True, celelalte devenind automat False.
Un control individual boolean se leag aa cum am vzut la cmpuri de tip boolean sau integer,
putnd lua dou sau trei valori booleene.
Cmpul de care se leag Option Group este o dat de tip integer. Valoarea introdus va fi n
general numrul de ordine n grup al controlului boolean care este pe True.
Pe Tools Box se afl un buton pentru activarea unui Wizard. Dac este apsat atunci cnd se face
controlul grup de opiuni, sistemul va ndruma configurarea lui, punnd ntrebri referitoare la numele
controlului Option Group, la ce fel i cte controale booleene s conin, la ordinea i valoarea butoanelor
n grup, la cmpul de legtur i care dintre butoane va fi implicit pe True.
I.4.6 Label - etichet
Este cel mai utilizat control nelegat de un cmp. Proprietatea cea mai important a controlului este
Caption, care va conine textul afiat de control. Forma controlului se configureaz la fel ca la Text Box.
I.4.7 Line, Rectangle, Picture - controale grafice
Aceste controale sunt nelegate de cmpuri. Ele vor crea figura specificat n titlu. Controlul
Rectangle, poate fi i umplut n interior.
I.4.8 Command Button - buton de comand
n general se ataeaz evenimentului Click o metod care s efectueze o comand specific.


I I -25
Cap.II Obiecte Access - Raportul
II.1 Prezentarea general a unui raport
II.1.1 Rolul rapoartelor
Raportul este ca i formularul un obiect de rang superior.
El permite afiarea pe ecran sau tiprirea pe hrtie a unor informaii extrase din baza de date.
Ca i formularul se poate lega la o tabel sau cerere.
n comparaie cu formularul care este dinamic (dup afiare, pe ecran, se pot modifica datele din
acesta) raportul este static (dup tiprirea lui nu va mai suporta modificri).
n general, proiectarea rapoartelor este foarte asemntoare cu aceea a formularelor. Din aceast
cauz n cele ce urmeaz se vor prezenta n special problemele specifice ale proiectrii rapoartelor.
II.1.2 Strile unui raport
Un raport poate fi n una din urmtoarele 3 stri:
Design View - Proiectarea raportului;
Print Preview - Afiarea pe monitor a raportului cu toate datele;
Layout Preview - Afiarea pe monitor a raportului cu un set redus de date;
n modul Preview, exist o bar de pictograme, care, n scopul punerii la punct a unor detalii, permite
anumite comenzi ca: zoom, afiarea concomitent a mai multor pagini etc.
Pentru ca s se permit proiectarea rapoartelor, este necesar ca n Windows s fie instalat cel puin o
imprimant.
Primul lucru cu care ncepe proiectarea unui raport nou este setarea formatului paginii de
imprimare. Acest lucru se face prin comanda File | Page Setup.. Imprimarea raportului se face cu
comanda File | Print, sau prin pictograma specific.
II.1.3 Seciunile unui raport
Obiectul raport are obiecte seciuni, care la rndul lor vor conine controale legate sau nelegate.
n afara seciunilor prezentate la formularele, n rapoarte se folosesc i seciunile: pagin (care se
pot utiliza i n formulare) i grupare.
II.1.3.1 Seciunile Report Header, Report Footer
Report Header Reprezint partea de nceput a unui raport. Apare o singur dat la nceputul
acestuia. Se folosete de obicei pentru a pune titlul raportului i antetul instituiei care l editeaz.
Report Footer - Reprezint partea de sfrit a unui raport. Apare o singur dat la sfritul acestuia.
Este folosit de obicei pentru introducerea unor controale calculate cu date totalizatoare referitoare la
ntregul raport. De asemenea se mai folosete pentru introducerea unui modul 'de semnturi'.
II.1.3.2 Seciunile Page Header, Page Footer
Page Header Apare la fiecare nceput de pagin. Este folosit de obicei pentru afiarea 'capului
de tabel' al raportului, creat cu controale Label.
Page Footer Apare la fiecare sfrit de pagin. Este folosit de obicei n felul urmtor:
La stnga se pune: ora i data execuiei raportului, cu comande Insert | Date and Time;
La mijloc se pune titlul raportului;
La dreapta se pune numrul paginii curente / numrul total de pagini al raportului (ex.3/10), cu
comande Insert | Page Numbers;
II.1.3.3 Seciunea Detail
Detail Ca i la formulare, aceast seciune se repet pentru fiecare nregistrare a tabelei (cererii)
legate la raport. Deci seciunea detail, se va repeta de attea ori cte nregistrri are tabela sau cererea
ataat.
n aceast seciune se introduc de obicei:


I I -26
controale legate la cmpurile tabelei ataate raportului, n scopul vizualizrii nregistrrilor
acesteia;
controale calculate, prin care se introduc expresii; acestea au ca domeniu pentru date,
cmpurile nregistrrii;
II.1.3.4 Seciunile Group Header, Group Footer
II.1.3.4.a) Sortarea i gruparea
Sortarea (Order) reprezint aranjarea ntr-o ordine cresctoare sau descresctoare a
nregistrrilor unei tabele sau cereri dup una sau mai multe chei (o cheie fiind un cmp).
Sortarea se poate realiza n Access n 2 moduri:
Un prim mod de realizare a sortrii l reprezint rearanjarea fizic a tuturor nregistrrilor
conform cheilor de sortare. Aceast prelucrare cere mult timp de execuie i foarte mult memorie de
lucru.
Un al doilea mod de realizare a sortrii folosete indexarea, mai precis tabelele de indeci care se
pot ataa cmpurilor unei tabele. n acest caz avantajul const n faptul c nu se schimb fizic ordinea
nregistrrilor n tabela. Sortarea se va face practic prin sortarea fizic numai a tabelei de index asociate
cheii (cmpului) de sortare, nregistrrile tabelei putnd fi accesate sortat prin folosirea adreselor
nregistrrilor care se gsesc n tabela de indeci.
Calculatorul va efectua sortarea n funcie de cum a fost creat tabela, i anume: dac s-a indexat
sau nu cmpul care este cheie de sortare. Astfel dac acesta este indexat, sortarea tabelei se va realiza prin
sortarea tabelei de indeci asociat cmpului, iar dac nu, sortarea tabelei se realizeaz prin aranjarea
fizic a tuturor nregistrrilor din tabel.
Gruparea
Toate nregistrrile unei tabele care pentru un anumit cmp, numit cheie de grupare, au aceiai
valoare, reprezint o grup de nregistrri. Fiecrei grupe de nregistrri, i se pot ataa, la nceput i la
sfrit, cte o seciune, i anume: Group Header / Group Footer.
Group Header - Apare la nceputul unei grupe. Se folosete de obicei pentru a afia valoarea
cmpului care este cheie de grupare.
Group Footer - apare la sfritul unei grupe. Este folosit de obicei pentru introducerea unor
controale calculate cu date totalizatoare referitoare la ntreaga grup.
n aceste seciuni, dac se folosete o funcie agregat SQL definit pe un cmp, atunci, aceast
funcie va avea domeniul datelor de intrare format din toate valorile pe care le ia acest cmp n
nregistrrile grupei respective.
Exemplu: - n partea dreapt se afl sortat i grupat tabela (din stnga) dup cmpul: ANUL DE
STUDIU.
VRSTA NUME
ANUL DE
STUDIU
VRSTA NUME
ANUL DE
STUDIU
20 A 2 20 D 1
20 B 3 19 C 1
19 A 2 20 A 2
20 D 1 19 A 2
19 C 1 20 B 3
Dac se dorete afiarea numrului de studeni din fiecare an se creeaz o seciune Group Footer,
n care se introduce un control calculat Text Box, care la Control Source va avea: =Count(*)
O grupare nseamn implicit i sortarea nregistrrilor dup cheia de grupare.
II.1.3.4.b) Comanda Sorting and Grouping
Comanda se activeaz din meniul View. Se poate lansa i din meniul contextual sau direct
de pe ToolsBar (vezi pictograma afiat n stnga).
Aa cum se observ din caseta din figur, la nceput se completeaz n partea de sus, n
ordine, care sunt cheile de sortare i felul acestora (Ascending sau Descending).


I I -27
Dup aceea dac se dorete ca un cmp dup care se face sortarea, s fie i cheie de grupare, se
selecioneaz cmpul respectiv dup care se completeaz n partea de jos caracteristicile grupei, astfel:
Group Heder, Group Footer - se precizeaz ce seciuni de grupare vor
apare n raport.
Group On - se stabilete cum se fac grupele i anume:
Each Value: fiecare valoare a cmpului creeaz o grup, sau
Interval: grupa se creeaz pentru fiecare valoare a unui anumit numr
de caractere din cmp care se precizeaz n proprietatea Group Interval.
Keep Together - se poate impune fiecrui grup s fie inclus ntr-o
singur pagin.
II.1.4 Utilizarea funciilor agregate SQL
O funcie agregat, este specific prin faptul c datele ei de intrare sunt constituite din valorile pe
care le ia un cmp n toate nregistrrile (sau numai o parte din acestea) unei tabele.
n rapoarte se folosesc frecvent controale calculate care conin funcii agregate SQL
5
. Ele
calculeaz expresii al cror domeniu de intrare este format din valorile unui cmp din nregistrrile unei
tabele care se utilizeaz n obiectul unde sunt folosite. n cazul raportului, funciile agregate SQL, se
calculeaz pentru cmpurile din tabela legat la acesta (nu se pot defini funcii agregate SQL pe controale
calculate!)
Funciile agregate SQL sunt:
SUM: calculeaz suma valorilor dintr-un cmp;
MAX, MIN: ntoarce valoarea maxim / minim a datelor ce se gsesc ntr-un cmp;
AVG: calculeaz media aritmetic a valorilor dintr-un cmp;
COUNT: calculeaz numrul de nregistrri ale cmpului (diferite de Null6). Dac se dorete ca
s se ia n calcul i cmpurile cu valoarea Null, atunci se va folosi expresia COUNT(*);
VAR, VARP, STDEV, STDEVP: calcule statistice;
n rapoarte, domeniul pentru datele de intrare al funciilor agregate SQL depinde de seciunea
unde este plasat controlul calculat care conine expresia respectiv. Astfel dac:
controlul calculat este n seciunile: Report Header, Report Footer sau Detail, domeniul va
conine toate nregistrrile raportului;
controlul calculat este n seciunile Group Header sau Group Footer, domeniul va conine toate
nregistrrile care aparin grupei respective;
controlul calculat este n seciunile de pagin nu se pot introduce controale calculate care s
conin funcii agregate SQL, deoarece nu sunt ataate nregistrri la aceste seciuni;
II.1.5 Utilizarea funciilor agregate de domeniu
De multe ori sunt necesare afiarea unor expresii care s conin funcii agregate, dar nu din tabela
sau cererea legat de raport, ci din alte tabele sau cereri din baza de date local. n acest scop se folosesc
controale calculate n a cror expresii se folosesc funciile agregate de domeniu. Reamintim c numele
funciilor agregate de domeniu este acelai cu a funciilor agregate SQL, la care se adaug n fa litera
D.
II.2 Proiectarea rapoartelor

5
Funciile agregate au fost prezentate n Cap.V-2.7
6
Valoarea Null, n funciile agregate (SQL sau de domeniu) nu se ia n considerare. n celelalte
funcii sau operaii, valoarea Null a unui termen duce, la rezultatul Null al expresiei, indiferent de felul
n care e constituit aceasta.


I I -28
Aa cum am mai artat, proiectarea rapoartelor nu difer mult de proiectarea formularelor. n
exemplul prezentat, se vor evidenia cteva dintre elementele specifice ale proiectrii rapoartelor.
Obiectele care se configureaz vor fi, ca i la formulare, obiectul report, obiectele seciunilor i
controalele care vor fi plasate n raport.
II.2.1 Obiectul REPORT
II.2.1.1 Proprietile obiectului REPORT
II.2.1.1.a) Numele raportului
Stabilirea numelui raportului se face dup crearea unui formular nou iar modificarea acestuia, n
fereastra Database la fel ca i la tabele, cereri, macro-comenzi sau formulare.
II.2.1.1.b) Pagina FORMAT
Proprietile din aceast pagin sunt mai puin folosite.
Caption Titlul raportului. Apare n bara de titlu a acestuia. Nu
trebuie confundat cu numele raportului. Implicit, dac proprietatea nu
este completat, numele formularului se va folosi i ca titlu. De
asemenea nu trebuie confundat cu adevratul titlu care se afieaz pe
raport n seciunea Header Report.
Page Header, Page Footer Se specific dac se dorete ca
aceste seciuni s apar sau nu alturi de Report Header, Report Footer.
Rapoartele pot avea un fundal care se configureaz prin cele 6
proprieti Picture.
Picture - Adresa fiierului cu imaginea ce se dorete ca fundal
a raportului.
Picture Type - Specific dac fiierul cu imaginea v-a fi copiat
efectiv n baza de date local - Embedded, sau se v-a folosi numai
adresa fiierului original - Linked.
Picture Size Mode - Poate fi:
Clip - Se folosete imaginea fr factor de multiplicare, eventual trunchiat.
Report
Header
Detail
Group
Footer
Group
Footer
Group
Footer
Detail
Detail
Report
Footer
Page
Footer
Group
Header
Group
Header
Group
Header
Execuia raportului i tabelele utilizate de acesta


I I -29
Stretch - Se folosete imaginea cu factor de multiplicare diferit pe X i Y, n aa fel nct s
cuprind tot spaiul rezervat. Imaginea va arta n general deformat.
Zoom - Se folosete imaginea cu acelai factor de multiplicare pe X i Y, n aa fel nct s
cuprind tot spaiul rezervat.
Picture Alignment Locul de plasare al imaginii.
Picture Tiling Dac imaginea este mai mic dect pagina, posibilitatea de a se folosi de mai
multe ori, n aa fel nct s umple tot spaiul rezervat.
Picture Pages Dac imaginea este inclus numai pe prima pagin sau pe toate paginile.
II.2.1.1.c) Pagina DATA
Are aceleai proprieti ca pagina respectiv de la formulare.
Proprietatea cea mai important a raportului, Record Source, stabilete
obiectul (tabel, cerere, instruciune SQL Select) de care e legat raportul.
Dac nu se completeaz, atunci raportul este nelegat. Acest tip de rapoarte
se proiecteaz foarte rar; n ele de obicei sunt utilizate funcii agregate de
domeniu.
Printre primele activiti care se fac la proiectarea unui raport este
completarea acestei proprieti.
Proprietile Order, n general nu se folosite, sortarea activndu-se prin comanda prezentat
anterior, Sorting and Grouping.
II.2.1.1.d) Pagina OTHER
Conine proprieti mai puin folosite, prezentate i la formulare.
II.2.1.2 Evenimentele obiectului REPORT
n cea mai mare parte obiectul report are aceleai evenimente cu cele de la formulare. Specific este
evenimentul:
On No Data - evenimentul se produce atunci cnd tabela legat la raport nu are date. n acest caz
este indicat s se anuleze execuia raportului, i s se afieaz un mesaj de avertizare, ca n exemplul de
mai jos (procedur eveniment n cod VBA):
Private Sub Report_NoData(Cancel As Integer)
MsgBox "Lips date - raportul nu se va executa!"
Cancel = True ' se anuleaz execuia raportului.
End Sub
II.2.2 Obiectele ce coin seciunile raportului
n general toate seciunile raportului au aceleai proprieti i evenimente. Cele mai importante sunt
cele care se refer la controlul paginaiei.
Prezentm n continuare cteva din cele mai folosite.
Force New Page - prin aceast proprietatea se poate face un salt la pagin nou la nceputul,
sau/i la sfritul seciunii respective.
Keep Together - permite ca toat seciunea s fie pe o singur pagin.
Can Grow, Can Shrink - permit mrirea pe vertical a dimensiunilor obiectului respectiv,
funcie de datele cu care lucreaz.
On Format - eveniment care se produce la intrarea n seciune.
II.2.3 Controalele folosite n rapoarte
Specific acestor controale, este faptul c nu au evenimente.
n figura urmtoare se observ cteva din modalitile de folosire a controalelor necesare raportului
prezentat anterior.
Page Header, fiind fr dimensiune n formularul de proiectare, nu va fi afiat. Controalele
Label, folosite pentru capul de tabel sunt plasate n seciunea Group Header.
Cu controale Line, seciunile sunt delimitate prin linii.
n Group Header, CodProdus, va fi codul pentru ntrega grup.


I I -30
n Group Header, sunt dou controale calculate, care prin funcia agregat de domeniu
DLookUp, afieaz date din alt tabel dect cea legat la raport. Ele au n Control Source:
=DLookUp("DenProdus";"ProduseC";"CodProdus=" & [CodProdus])
=DLookUp("UM";"ProduseC";"CodProdus=" & [CodProdus])
n secia Detail, este un control calculat pentru Valoare, care va folosi datele din nregistrarea
respectiv. El va avea n Control Source:
=[Pret]*[Cantitate]
n Group Footer, sunt dou controale calculate, care prin funcia agregat SQL SUM, vor folosi
datele numai din nregistrrile grupei respective. Ele au n Control Source:
=Sum([Cantitate])
=Sum([Pret]*[Cantitate])
n Report Footer, sunt aceleai dou controale calculate, cu aceleai proprieti la Control
Source, dar care, datorit locului unde sunt plasate, vor efectua calculele cu datele din toate nregistrrile
tabelei legate.
n Page Footer, sunt controale calculate care folosesc funcia:
Now - ntoarce data i ora curent.
i obiectele:
Page - conine pagina curent
Pages - conine numrul de pagini ale raportului.
II.3 Controlul Subraport / Subformular
Acest control se gsete pe ToolsBox i reprezint un obiect care se introduce n raport /
formular. Se folosete mai des n formulare.
Exemplu: Formularul FACULTATI este legat de o tabel n care fiecare nregistrare se refer la o
anumit facultate:
ASE.
Facultatea de tiine..
Facultatea de inginerie..
Etc.
De asemenea mai exist un formular, SPECIALIZARI, legat la o alt tabel, n care corespunztor
fiecrei faculti vor fi mai multe nregistrri n care fiecare din acestea descrie o specializare.


I I -31
Astfel corespunztor nregistrrii ASE din formularul Facultati, vor exista n formularul
Specializari, mai multe nregistrri referitoare la specializrile acesteia ca: Management, Contabilitate i
informatic de gestiune, Finane-Bnci, Turism, etc.
Subformularul reprezint formularul Specializari introdus n formularul Facultati.
n acest fel vor fi afiate pentru fiecare nregistrare din formularul Facultati, n subformular, numai
datele referitoare la specializrile aferente acesteia.
Pentru realizarea acestui lucru, cele dou obiecte, formularul i subformularul, trebuie s aib cel
puin un cmp comun (n exemplul de mai sus, facultatea), denumit Link Fields.
n pagina DATA, a formularului, sunt dou proprieti care vor conine cmpurile de legtur:
Link Master Fields - numele cmpurilor de legtur din formular.
Link Child Fields - numele cmpurilor de legtur din subformular.
Observaie-1 n cazul existenei mai multor cmpuri de legtur, acestea se separ prin < ; >
Observaie-2 Numrul de cmpuri din cele dou proprieti trebuie s fie egal.
Observaie-3 Cmpurile de legtur corespondente din cele dou proprieti, trebuie s fie de acelai tip
i s reprezinte aceleai date.
Observaie-4 Access accept i subformulare incluse dar numai pentru 3 nivele.


I I -32
BIBLIOGRAFIE
Building Applications with MS Access 97,
MS Corporation 1996
Allen Browne, Alison Balter, Bazele ACCESS 95,
Editura TEORA, 1997
Roger Jennings, Utilizare ACCESS 95,
Editura TEORA, 1997
Microsoft Office 97 - Object Model Guide,
MS Corporation 1996
Microsoft Office 97 - Integrarea programelor,
Editura TEORA, 1997
Ilie Popa, Baze de date - Elemente de teorie, proiectare i aplicaii n Access, Editura
Universitii Piteti, 2001
Microsoft Office 97 - Visual Basic, Programmer's Guide,
MS Corporation 96
Rick Winter, Patty Winter, Utilizare Microsoft Office,
Editura TEORA, 1997
Russell Borland, Introducere n MS Windows 98,
Editura TEORA, 1999
Microsoft - SQL Server, MS Corporation 1995
Michael Antonovich, Utilizare Visual FoxPro 3,
Editura TEORA, 1997
Jeb Long, FoxPro 2.6 - Ghidul Programatorului,
Editura TEORA, 1996
erban Cricot, Programarea n Visual Basic for Application, Editura Carminis, 2003

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