Sunteți pe pagina 1din 99

ACADEMIA DE TRANSPORTURI, INFORMATIC I COMUNICAII

Seria Teorie Economic, Matematic, Informatic

ILIE COAND

Ghid de iniiere (proiectarea i utilizarea Bazelor de Date)

Chiinu, Evrica 2001

CZU 004.6 (075.3) 58 Descrierea CIP a Camerei Naionale a Crii Coand Ilie Access: Ghid de iniiere (proiectarea i utilizarea Bazelor de Date) / Ilie Coand; Academia de Transporturi, Informatic i Comunicaii. - Ch.: Evrica, 2001 (Tipogr. AM). - 100 p. Seria Teorie Economic, Matematic, Informatic ISBN 9975-941-81-8 1000 ex. 004.6 (075.3)

Lucrarea constituie descrierea unor elemente necesare i suficiente pentru elaborarea proiectelor Bazelor de Date. ntr-un mod accesibil, cu explicarea noiunilor strict necesare, n baza exemplelor de creare a Bazelor de Date, se demonstreaz tehnologia proiectrii. Includerea noiunilor noi prin exemple de folosire a acestora, n scopul de a mbunti n continuare performanele acelorai Baze de Date se presupune a fi destul de util att pentru lrgirea posibilitilor pe orizontal, care permit gestionarea informaiei mai diverse i mai complete, ct i pe vertical, care permit includerea unor noi obiecte, ce asigur exploatarea Bazei de Date la un nivel mai sigur i mai comod la utilizare. Cartea este adresat elevilor, liceenilor, studenilor, cadrelor didactice - tuturor celor care doresc s-i nsueasc ntr-un timp scurt noiunile eseniale i s deprind cele mai simple tehnologii de proiectare a Bazelor de Date n mediul Access din Microsoft Office.

Lucrarea a fost realizat n cadrul Institutului de Matematic Aplicat i Informatic al Academiei de Transporturi, Informatic i Comunicaii. Seria Teorie Economic, Matematic, Informatic Redactor: Dumitru Solomon, Academician al Academiei Internaionale de Informatizare, Doctor habilitat Autor: Ilie Coand, confereniar, Doctor n tiine fizico-matematice

M-208-96 ISBN 9975-941-81-8

Editura Evrica, 2001 Ilie Coand, 2001

Argument

ARGUMENT

aarea Bazelor de Date (BD) la gestionarea informaiei n diverse domenii ale -i istre devine din ce n ce mai insistent. Apariia pe pia a pachetului Vlkrra>of Office, care include i aplicaia Access, un soft destul de convenabil i - .; : aenani oricare, a accelerat simitor implementarea proceselor automatizate de Trei i datelor. e, ca o BD s funcioneze eficient n favoarea utilizatorului, acesta din irs.i i : : e. n primul rnd, s cunoasc bine modul ei de exploatare, precum i cele ~ -j :: "_mte principii de funcionare a ei. De asemenea, utilizatorul trebuie s fie ..." - ' i cont de posibiliti i necesiti, s fac unele modificri pentru a se :<aa i i lucreze i n alte condiii, similare celor iniiale. Pentru un utilizator mai . x.portant este s cunoasc i cele mai simple elemente i tehnici de : : c i _nei BD. a~ma vedere, condiiile descrise mai sus pot prea, pentru majoritatea .: . : : : greu de realizat. Aceast carte are intenia de a spulbera astfel de preri. 1s&zi posesia unui calculator este o realitate pentru majoritatea celor care se a. i.3-1 i : : ucrarea informaiei oriunde ar activa. Dou lubruri simple pot lipsi: ae i-i organiza mai eficient lucrul cu volume mari de informaie i deinerea a ra -a r asemenea acestuia. Astzi la dispoziia noastr snt puse destul de multe - : - : aespre BD, de la cele mai simple pn la cele mai complicate tehnici de i in _ unei BD. ns cu greu vei putea gsi unul, care, fr a v familiariza cu un : liiiiii- r e ie noiuni noi i complicate, s v conduc ntr-un mod clar la proiectarea . ' - D : -ie, care, ct de ct, s constituie un exemplu de nceput i s v conving .. . : _ :;i _~ei BD este un lucru accesibil i pentru dumneavoastr. . zarea metodei de cunoatere de la simplu la compus pentru proiectarea unei KD : ir. venit pentru nceptori, de aceea pe parcursul expunerii materialului, iu ic i>:i 'snt explicate n msura necesitii i la momentul utilizrii acestora. :i_' de proiectare a unei BD este prezentat iniial prin crearea celei mai g ii |pig i a care conine doar o singur tabel. Apoi se extrage i se analizeaz :, a n ea. Ulterior se ajunge ia concluzia c mai este nevoie de folosit i alte aa:.r....: s asigure informaie mai detaliat. Se demonstreaz ntr-un mod accesibil : am :: a:e realiza acest lucru. Se explic cum trebuie de procedat la modificarea BD a.:a.r. antele cresc. Astfel, cititorul va fi ndrumat spre a nelege din ce n ce : : irnnicile de proiectare a unei BD.

Argument

Volumul lucrrii date permite studierea tehnicilor de proiectare a BD utiliznd un numr relativ mic de elemente i noiuni din Access. ns instrumentele folosite n modul de utilizare practic i concret snt suficiente pentru a nva proiectarea unei BD simple. S fim contieni c proiectarea unei BD poate fi privit ca o activitate de creaie. Dou baze de date pot pstra i furniza aceeai informaie, ns, dup structur i dup modul de exploatare, ele pot fi cu totul diferite. M aterialul lucrrii este repartizat n lucrri de laborator, fiecare avnd un anumit scop. Repartizarea este foarte relativ i depinde, n mod direct, de capacitatea cititorului de a realiza cele expuse timpul rezervat pentru o lucrare de laborator. Atenionm c studierea noiunilor i a tehnicilor de proiectare trebuie fcut anume n ordinea n care este expus materialul. La sfritul fiecrei lucrri este prezentat o list de ntrebri, probleme, discuii, care vor spori eficiena studierii, cititorului oferindu-i-se posibilitatea de a-i ncerca forele la proiectarea i a altor obiecte.

Access. Ghid de iniiere

Lucrarea de laborator nr. 1

Lucrarea de iaborator nr. 1 1. C ite va etape principiale la nceputul proiectrii unei Baze de Date " - Hi S se proiecteze o baz de date (BD) care ne-ar ajuta s facem un : ~ : u al informaiei despre mrfurile vndute pe parcursul unei perioade. Ne ^ ;rem o BD, care ne-ar da posibilitate s analizm, n orice moment, : sir. : :i e pentru fiecare tip de marfa vndut. - r : scop, mai nti, trebuie s stabilim urmtoarele: .:'nd s se ia la eviden informaia despre vnzri?Rspunsul poate fi la fiecare operaie de vnzare s se fac nregistrrile cu informaia : : i Astfel s-a ajuns la concluzia ca imediat, dup sau poate chiar n ~ :~ : . inzrilor, s se nregistreze informaia necesar i suficient pentru a : ms -iaunde la ntrebrile formulate. 1 s fie nregistrat informaia? Una dintre cele mai obinuite i comode : j t nregistrare este forma de tabele. Deci informaia poate fi nregistrat n mbele. : laicele vor fi necesare? De regul, ntr-o tabel se conine informaie ..: la un grup de particulariti ale unui obiect, proces etc. n cazul nostru - ' : a despre informaia referitoare la vnzri. Prin urmare, pentru acest proces 11 : r - cerca s folosim doar o singur tabel. :: : e i obinuit const din coloane (n terminologia BD coloanele se numesc i rnduri (informaia dintr-un rnd ntreg al unei tabele se numete 'ir ;: i;e l De regul, ntr-o coloan se introduce informaie omogen, de acelai : ::: rindurile. Cte coloane va avea tabela i ce fel de informaie va fi n i nire ele? Lund n consideraie condiiile problemei, rspunsul poate fi JL-Tiiii:. tabela urmeaz s conin 5 coloane pentru informaia despre : e i mrfii, unitatea de msur, data vnzrii, cantitatea i preul, : I :c im stabilit c vom avea doar o singur tabel i c ea va conine coloanele ^ H ir o ta ia respectiv, este util s se fac o mic analiz, pentru a stabili dac ~ ~ f ' gur tabel este suficient. n cazul dat, problema formulat este simpl, i r. : e comod i suficient s folosim doar o singur tabel, compus din cele 5 - : m e. In care vom nregistra informaia precizat mai sus. .....^nentiil n care am determinat rspunsurile, cel puin la aceste 5 ntrebri, : I crearea unei Baze de Date noi. ' . funcie de versiunea pachetului M icroSoft Office, dup activarea i l ..... \ceess (mediul Access poate f activat n diferite moduri: se poate face un : - 1 >: r.;ia cu denumirea respectiv din meniul Program s din S tart sau* se^poate : 7..i :: respectiv de pe Desktop), pe ecran pot s apar diferite imagini X } "t -":V": * de lucru. De fiecare dat trebuie s acionm conform indicaiilor i ire a lii :* : >:nse. n funcie de scop. n fig. 1.1 este prezentat imaginea la prima ::: cescr.idere a Access-ului. Observm n ea mai multe opiuni, dintre care, : t* i " doar una este potrivit, i anume, opiunea Blank Access Database. : : ci ;: 5ie mediul pentru crearea unei Baze de Date noi.

Access. Ghid de iniiere

Lucrarea de laborator nr. 1

Atragem atenia c pentru nceptori ar fi foarte bine s studieze cu atenie imaginile i comentariile ataate la fig. 1.1-1.7. ncercai s creai Baze de Date, deocamdat goale, cu aceleai (sau alte) denumiri i n diferite directorii, apoi, folosind tehnica din Windows, s modificai denumirile, s le copiai n alte directorii, s le lichidai definitiv. n aa mod vei nsui bine gestionarea fiierelor de tip mdb. S trecem la aciuni concrete pentru proiectarea unei Baze de Date noi. innd cont de comentariile din fig. 1.1-1.3, n versiunea Access-2000, sau din fig. 1.4-1.7, n versiunea Access-97, acionm respectiv ca s obinem o imagine asemntoare cu cea din fig. 1.8, desigur, la nceput, far informaia respectiv completat. Citii cu atenie comentariile din fig. 1.8 i completai informaia n modul respectiv, pentru a obine ntocmai ceea ce este n ea. Imaginea din stnga apare n versiunea Access-2000. Avem posibilitatea de a deschide una dintre bazele de date deja Create a new database using create. n acest scop trebuie de activat opiunea Open an existing file (aa cum este artat aici), apoi de fcut un click pe vizards, pages; and proje QdejJW Tfire din :ta ataat cu denumirile Tierelor,j^C de fapt, snt nite baze de un click pe butonul OK, BD, fiierul respectiv, va fi deschis. n care dorii s creai o baz de date More Files nou, treBtrk^ictivat opiunea respectiv A:\planificare zi\planificare zi A:\planificare\planificare zi Blank Access database, apoi - OK. F:\planificare zi\planificare zi Exist i alte modaliti de deschidere a F:\planificare ff\planificare ff unei baze de date, de exemplu, cu dublu click pe denumirea fiierului. Fig. 1.1. Opiunile n prima etap de lucru n mediul Access.

'^M y Documents Computer Network Places ^Shortcut to 3.5 Floppy (A) Shortcut to DOS (C)

'O O C U f f le n f c S

Dup ce am determinat c intenionm s crem o baz ie date nou, adic, dup ce am acionat n modul deSmmai sus, pe ecran apare urmtoarea imagine (n Access-^, n aceast etap trebuie s artm locul unde dorim caBa^a de Date nou s fie salvat. n acest scop acionniici. Apoi atribuim un nume pentru Baza de Date n curs de proiectare, introducem numele^ici, avem grij ca ajci s fie indicat infoprfaia respectiv^pcfi acionm butonul Create. Jtentru a evita cop&fii, trebuie s fim aj atribuirea Bazei de Date^&gTs nu coincid cu v reu n o ra creat i salvf^falte directorii. 18 re a te
Zj
Cancel

Fferjame:

|db2

Saveasjype: jjvBcrosoft Access Databases

Fig. 1.2. Locul de pstrare i denumirea BD.

Access. Ghid de iniiere

Lucrarea de laborator nr. 1

Imediat dup acionarea butonului Create, apare fereastra u imaginea din fig. 1.3. n aceast etap, cnd Baza de Date^ste^goal, nici un obiect nu este creat, ni se ofer trei opiuniT^ste-^blaes ncepei cu crearea unei tabele n y'egimul de proiect (D esgl^k^Observai butoanele Open, Design, New, care pot fi ac^nate^entru a ncepe proiectarea unei tabele noi, trebuie de acionatNew entru a deschide proiectul unei tabele deja proiectate, ale^bfiaDesign, iar pentru a o deschide cu afiarea datelor din ea S fim ateni ca s fie activat pagina cu obiectele respectv&^Dac se lucreaz cu tabelele, atunci trebuie s fie activat abeast pagin -- lista tipurilor de te din care poate fi construit o Baz de Date n Access^ZOOft^omparai-o cu lista de obiecte respective din versiunea Acbesscg? (fig. 1.7). Fcnd cte un click pe fiecare denumire din aceast list, vom obine lista cu obiectele deja create de tipul dat. Fig. 1.3. Fereastra de baz a bazei de date db2.
C re a t e a N e w D a ta b a s e U sin g

Q a ta b a s e W iz a rd

n fig. 1.4 este artat imaginea care apare n Access-97, corespunztoare cu cea din fig. 1.1. Aceasta este lista celor mai recent d#s6mse Baze de Date.

M o re Files, D :\ F U R N M E 1 D :\ca lcN M P IA N l D:\calc\ 3 IBLIO D:\ 3 D Stu d\u lici 9 7

Fig. 1.4. Prima imagine la activarea Access-ului-97. S avein ; jw J fffT ^: ^jD o22 V ]F 3ez222 : ^jFaez222s

zl

--- ---F ifen^m e: )db^ S aveas rp e: jM icro so ft A ccess D atabases

Imaginea n Access-97, corespunztoare celei din fig. 1.2. Atenionm c diferenele snt minifne. De fiecare dat, la deschiderea unei Baze de Date, trebuie s fim ateni la ceea ce ni se propune i s alegem opiunea potrivit, innd cont de stogurile concrete. n cazul dat, Baza de ^Dal^W^va fi salvat, creat n directoriul nff.

Fig. 1.5. Locul de pstrare i atribuirea numelui db2.

Access. Ghid de iniiere


New T a b le

Lucrarea de laborator nr. 1

Datasheet V
T able'W ^ ar Im port Tatii*

Create a new tabfe in Design view, /

Link Table

Imaginea n Access-97 corespunztoare celei din fig. 1.3. Observm componentele comune .sens, ns plasate diferit. Lista de paginheu^obiecte este plasat aici orizontal, acrte^-vertical. Atragem atenia c caseta New table apare dup acionarea butonului New, apoi putem alege o opiune din list. Ateniei urice obiect deja creat poate fi deschis n regim de proiect (Design View) pentru &modific structura iui.

Fig. 1.6. Alegerea opiunii Design View la proiectarea unei tabele noi.
1Tablei : Table
I Reports ] 3 Macros j ^

PagirnleTculista de obiecte de tipurile Tjjt icord; h i Queries care pot fi create n Accgs&^L La nceputul a b le l : T a b le crerii BD toate paginilej^ft^goale. Dac vom alege I Field Name I Data Type I Description M opiunea DataSheeHfiew, atunci vom obine Field Properties imaginea asemntoare cu aceasta, iar opiune Design View asigur imaginea-proiec n sr a l ILookup )
Fig. 1.7. Alegerea opiunii respective la crearea unei tabele noi.

1.1. Crearea tabelelor - fundament al Bazelor de Date


Dup ce ai pregtit totul, aa cum este artat n fig. 1.8, ncercai s nchidei tabela prin acionarea semnului X din colul dreapta-sus; ca rezultat vei fi prentmpinai c trebuie atribuit un nume tabelei date. Rspundei cu Vinzari, iar la ntrebarea, dac dorii s avei o cheie primar, alegei varianta No, i, n aa mod, tabela va fi salvat cu numele atribuit. Aadar, proiectul tabelei este gata. n fereastra Bazei de Date, pe pagina Tables, trebuie s observai acest obiect, Vnzri. Facei un click, apoi Open, sau un dublu click, i tabela se va deschide n forma ei de tabel obinuit coloanele cu denumirile respective, introduse n coloana Fied Name din imaginea-proiect a acestei tabele. La nceput tabela este absolut goal. Informaia urmeaz s fie introdus pe parcursul operaiilor de vnzare n modul stabilit mai sus. Este important s facei deosebire dintre imaginea proiect a unei tabele i cea propriu-zis, cu informaia respectiv. Atragem atenia c n fig. 1.8 se arat imaginea n care apare aceeai tabel n ambele moduri (imagini): de proiect, cea din stnga, i tabel obinuit _ cea din dreapta.

Access. Ghid de iniiere

Lucrarea de laborator nr. 1

O dat creat aa-zisul fundament al bazei de date, se poate trece la o etap nou: organizarea introducerii continue a informaiei. La prima vedere, totul pare destul de simplu, clar i evident, ns modul n care vom organiza procesul de introducere a informaiei va determina volumul de erori, date introduse greit etc. la nregistrarea informaiei. Iat de ce, n etapa de proiectare a tabelei, este util s folosim, cel puin, unele dintre cele mai simple, mai accesibile procedee de verificare a informaiei. n cazul nostru, putem pune sub control cantitile i preurile controlnd ca valorile s fie pozitive, iar data vnzrii s fie introdus n mod automat i s coincid cu data zilei curente. Acest lucru poate fi asigurat dac determinm proprietile n modul indicat (fig. 1.8). n acest caz concret, pentru coloana C ant se pune o restricie: valorile trebuie s fie pozitive, fapt artat prin Validation rule >=0, iar mesajul Cantitatea trebuie s fie >=0 va aprea imediat pe ecran n cazul cnd va fi vreo ncercare de a introduce valori negative. Cifra 0 (zero) n rndul Default value arat c valoarea 0 (zero) n coloana C ant se va nregistra n mod automat. Pentru a asigura nregistrarea automat a datei curente, e necesar de selectat rndul DataVinz i de scris funcia care calculeaz data zilei curente Date() n rndul Default Value.
Vnzri: Table
Field Name Den UnMas* DataVif Cant Pret Data Type

w
Description I

| Vv

Vomzafi :
I Desi

\
100 20.7 30 50.25 100 30 50.5 0
1M

1UnMas I Dat&ViiiJ * 1

General I ookup Field Size Format Decimal Places Input Mask Caption Default Value Validation Ruli Validation Texo Single Auto

0 >0

Date/Time Currency AutoNumber Yes/No OLE Object Hyperlink Lookup Wizard.,

Came Lapte Apa Came Apa Apa ''Kapte

Kg L But.2L Kg But.3L But.2L L

05/05/01 06/05/01 06/05/01 06/05/01 05/06/01 06/05/01 06/05/01


6

^ 4 R e c o r d ; I {

\ >*\ of 7

30 5 2 25 3 2 5 0 zJ

Cantitatea trebuie sa fie >-Q!

Tabela Vinzari Ia etapa de proiect. nainte de aavea posibilitatea de a introduce informaia n tabel, este necesar de a determina coloanele i tipurile de date n ele. n cazul nostru, se planific 5 coloane, cu denumirile indicate n coloana Field Name i cu tipurile de date respective indicate n coloana Data Type.

TabelaWmzari inl^m de tabel, care conine o m careva inwmMie. Atragem atenia: n coloanele Deibi UsiMas se conine inforhaaie de tip Text, m'sqloanele Cant i Pret -Nnformaie de tip Number (numr), iar n DataVinz informaie de tip Date/Time conform tipurilor de date artate n coloana Data Type din figura din stnga,

Fig. L8. Proiectarea unei tabele.

Atenie. Atunci cnd selectm un alt rnd n coloana Field Name (vezi imaginea din stnga fig. 1.8), lista de proprieti, afiate puin mai jos n aceeai imagine-proiecL poate fi alta i, pentru fiecare cmp, trebuie de ales proprietile cuvenite. Aceasta

Access. Ghid de iniiere

Lucrarea de laborator nr. 1

nseamn c fiecare coloan din tabela care o proiectm poate avea setul su stabilit de proprieti. Introducerea datelor poate fi organizat n diverse moduri. Ne vom opri la cel mai simplu mod, care ntru totul ne convine. Deschidem tabela (selectm tabela n fereastra bazei de date, acionm butonul Open (deschide)) i pe ecran apare tabela gata pentru a primi informaia. Introducerea informaiei n cazul dat este un proces simplu, trebuie doar s fim ateni la ceea ce introducem. Se presupune c informaia introdus este cea indicat n fig.1.8, partea din dreapta. Aceast tabel poate fii completat n momentul vnzrii n fiecare zi. In aa mod vom reui s nregistrm informaia necesar la timpul potrivit. Deci, pentru asigurarea pstrrii informaiei primare despre vnzri, persoana competent trebuie s introduc toat informaia care se cere conform coloanelor din tabela proiectat. In scopul de a v nsui la nivelul cuvenit proiectarea tabelelor: 1) proiectai aceeai tabel atribuindu-i un alt nume; 2) facei o copie a unei tabele create, ca i n sistemul Windows; 3) deschidei n imagine de proiect o tabel deja creat i ncercai s schimbai locul unor coloane (se procedeaz asemenea ca la copierea informaiei n W ord); 4) facei modificri n tipurile de date pentru unele coloane i analizai rezultatul; 5) modificai formatul datelor, n special, al datei calendaristice; 6) exersai cu introducerea datelor, lichidarea informaiei din cteva rnduri, lichidarea total a informaiei din tabel; 7) introducei informaie care contravine condiiilor puse la proiectare i analizai modul de afiare a mesajelor; 8) introducei cmpuri noi; 9) copiai cteva nregistrri dintr-o tabel n alta (se face ca n Word); 10) modificai dimensiunile coloanelor n tabele (se face ca i n Excel); 11) deschidei n fereastra de baz paginile Quieries, Forms, Reports, Macros, Modules ca s v convingei c snt goale.

ntrebri i probleme
1. Care obiect poate fi considerat element al fundamentului unei BD? 2. Cum se atribuie denumirile unei coloane? 3. Ce este un tip de date al unui cmp? 4. Cum putem modifica tipurile de date la un cmp? 5. Ce este i cum poate fi folosit For mat-ui? 6. Ce este o restricie i cum poate fi atribuit? 7. Cum putem modifica ordinea coloanelor? 8. Cum putem modifica denumirea unei tabele? 9. n cte forme de imagini putem deschide o tabel? Care ar putea fi cmpurile, dac am dori s crem o tabel cu informaia despre: 1) vnzri la un magazin de nclmin te; 2) mprumutri de cri la o bibliotec; 3) persoane pentru o cltorie turistic; 4) transmiterea unor mrfuri dintr-un depozit n altul; 5) achiziionarea unor produse de la populaie.

Access. Ghid de iniiere

Lucrarea de laborator nr. 2

Lucrarea de laborator nr. 2 1.2. rea ea obiectelor de tip Select Query (cerere, interpelare) 51 .cclm s crem o cerere, care ne-ar afia rspunsul la problema formulat iierirs& ie Laborator precedent. Atenionm c9 dup cum vom vedea mai trziu, :r ; i ; : : - : : lem poate f rezolvat doar prin crearea unei singure cereri. : : Irr. pagina Queries din fereastra BD curent, acionam butonul New i pe icrm ti. :cdne o imagine asemntoare cu cea din fig. 1.9 ~ fereastra cu imagineai~ jr : cereri. Selectm tabela Vinzari, apoi acionm butonul Add (sau facem : ,: l : :.:k pe denumirea tabelei), dup care nchidem cutia Show table. In . : uii-t, :1c :nd cte un dublu click pe denumirile coloanelor din lista Vinzari, vom i iimacrjea din fig. 1.3. Confirm c acionm n BD Labor.
. * *Q L iC Ji |
Macros

Modules

Suntem pe pagin Queries din Labor.


S h ow T able

Tables | ~

Lista din care a fost trecut lista cmpurilor. Queries j Both | f.... :
flose

jf

Fereastra-proiect a unei Select Query, numele Queryl. ista cu denumirile coloanelor (cmpurilor) din tabela adugat Vinzari. De aici vor fi copiate n gridul cererii, rndul Field. Fig. 1.9. Imaginea-proiect a unei cereri (Select Query). :! La nceput imaginea aprut nu va conine rndul Total din Gridul r,rc -i aduga, facem un click pe 2 (totals) din bara cu butoane respectiv " grid se va insera rndul Total cu Group By n fiecare coloan (cmp). ir ce fcut cte un click n fiecare coloan, n zona din dreapt a celulelor, r : : :es:a Group By i, din lista aprut de fiecare dat, de selectat cuvntul i i apar aa cum e artat n fig. J .10. , : : din fig-1-10 este o cerere de tip Select, care are un cmp calculat, cmpul Zr: se obine rezultatul nmulirii numerelor din coloana (cmpul) Cant cu acife raoana (cmpul) Pret n fiecare rnd (nregistrare, record) din tabela V1 jffliiam riL .. : eres:a Group by din celula (Den, Total), coloana Den, rndul Total din : : roat informaia din tabel se divizeaz n attea grupe cte denumiri

4'

11

Access. Ghid de iniiere

Lucrarea de laborator nr. 2

diferite avem n coloana Den. n cazul dat vom obine trei grupe: Lapte, Apa Carne, deoarece n coloana Den snt doar aceste trei denumiri diferite. Funcia Sum din (Cost, Total) semnific c se va calcula suma costurilor n fiecare grup, deci v o r avea trei sume rezultante. Funcia Avg din coloana Pret va calcula media aritmetic preurilor n fiecare grup. Funcia First din DataVinz va determina data din prima nregistrare din fiecare grup, iar funcia Last din UnMas - unitatea de msur din ultima nregistrare fcut n fiecare grup. Funcia Ascending (cretere) va sorti informaia n ordinea alfabetic a denumirilor din coloana Den.
'vdit ery Tools Window Help

.
I L *b c * : D a ta b a s e

It G& . . -

I j j
Reports

W
j 3
Macros ]

'

Forms

Mocjies

CSickam acest buton pentru a afia rezultatul cererii create. Ljsta din care se aleg netiile oentru Total.
Un cmp de calcul cu numele Cost: valoarea din Cant sfe nmulete

Fig. 1.10. Imaginea-proiect a unei Select Query cu calcularea sumelor totale pe grup. n aceast etap putem spune c am creat deja obiectul numit TotalGr - o cerere de tip Select, care n orice moment ne asigur afiarea pe ecran a rezultatului rspunsul la problema formulat la nceput. Adic ni se arat (vezi fig. 1.11) c Apa a fost vndut n sum de 420, Carne - 4256.25, Lapte ~ 356 de uniti bneti. Modul de funcionare a acestei BD: pe parcursul vnzri lor s se fac nregistrrile respective n tabela Vinzari; cnd dorim s aflm ct s-a ncasat pentru fiecare tip de marfa vndut, trebuie doar sa selectm cererea TotalGr, apoi s acionam Open i rezultatul va fi afiat imediat pe ecran.

12

'

Access. Ghid de iniiere

Lucrarea de laborator nr. 2

2l

; ?1 ! ^ ^ : 1 ^ ; || Clickai acest buton pentru a trece la imaginea-proiect,

& few

rfP Quepgg_j__(^1 _!__(-ftepniis-} TI M arm* 1 M odules -------- 1 Denumirea cererii create i salvat cu acest nume ' ^ r<si> G R ^ _____ Y --l^per Cererea a fost salvat, i s- fost select^tfs^a | : ickat Open i s-a obinut rezultatul.
^
06/05/01 05/05/01 06/05/01 i V fM lB M bf 3 V .

juc* ToMaBR - S e le c t Query . SB 1 Zmmm le o r s ; LastOfUtMas But.2L Kg L H1L d l SiisnOfCai 160 2.333333333 150.25 27.5 71.200001 5 c o st. 420 4256.25 356 1

:g. 1.11. Rezultatul cererii create (proiectul din fig. 1.10). " ii: I : -ai convins c cererea afieaz rezultate corecte, facei urmtoarele (de - 1.1 ; ~ 1 ~:" idei i deschidei cererea din nou i ncercai s dai explicaii): T ^ i:: doar ntr-un rnd o liter mare n aceeai liter mic n tabela Vinzari
'in s i i a u D e n .

1 liierii: : ; i: ntr-un rnd un spaiu gol n interiorul sau n faa unei denumiri din Bfet . i _are s analizm succint ce posibiliti ni se ofer prin utilizarea riteria i Or din Gridul cererii. Realizai urmtoarele: : :r:e a cererii TotalGr (selectai-o, agai-o i, innd CTRL apsat, ~ ^ : cu mouse-ul ntr-un loc liber (observai c de imaginea mouse-ului *-x aam t :eva cu semnul +), relaxai mouse-ul i vei avea o copie a cererii). Apoi .: > aenumirea, asemenea ca i la modificarea denumirii fiierelor, enumirea, de exemplu, TotalCarne. - - :: : ere rea TotalCarne n imagine de proiect (selectai aceast cerere, apoi r io a it Deagn). .: r .'.iul Criteria, coloana Den, cuvntul Carne, aa cum este artat n I ipci acionai butonul respectiv pentru a afia rezultatul. Explicai ismtjffini,. : -1 : copie, numii-o TotalCarneLapte, apoi deschidei-o n forma proiect - Carne O r Lapte n rndul Criteria, coloana Den sau Carne n rndul 1 .a Lapte n rndul Or, apoi clickai butonul pentru a vedea ce se obine. >: ibc:iTr :.a:a cnd nchidei cererea, rspundei cu Yes pentru a salva cererea
W M S3L

13

Access. Ghid de iniiere

Lucrarea de laborator nr. 2

Field: Table: Total: Sort: Show:

Den Vinzari Group By Ascending

UnMas Vinzari Last

DataVinz Vinzari First

Cant Vinzari Sum

Pre_____ cost: Sum([cant]x[pret]) Vinzari

C riteria

0
Carne

__

^e^Lista funciilor opionale ataat Expression la rndul Total.

Informaia din rndurile Criteria i Or este baza construirii expresiilor logice, care determin care informaie s fie afiat i care nu.

Wher/

nsriind condiiile logice n rndurile Total, Criteria i Or i selectnd corect funciile opionale respective din lista ataat celulelor din rndul Total n gridul cererii, avem posibilitate de a gsi rspunsuri la un numr destul de mare i variat de ntrebri despre vnzri (doar n cazul c rspunsul poate fi gsit n baza acestei unice tabele).

Fig. 1.12. Utilizarea expresiilor logice la selectarea informaiei,

ntrebri i probleme
n care scopuri se proiecteaz cererile? Cum se ataeaz o tabela la o cerere? Ce este grid-ul cererii i cum se completeaz cmpurile? Cum poate fi modificat denumirea unui cmp? La ce se folosete rndul Criteria i Or din grid? Cum s facem ca s apar sau s dispar rndul Total din grid? Pentru ce i cum se aleg funciile n rndul Total din grid? Explicai folosirea informaiei din rndurile Sort, Show? Explicai cnd i pentru ce se folosesc funciile din lista ataat la rndul Total din gridul cererii. ' 10. Creai cereri pentru a afia informaia despre (un rnd din tabel corespunde / unei vnzri): ^ a) costul produselor la fiecare vnzare; b) costul crnii la fiecare vnzare; c) produse care au fost vndute la kg; d) produsele care au fost vndute ntr-o anumit zi; ^ e)^ costul total al produselor vndute ntr-o anumit zi; f) costul total al produselor vndute la un pre anumit; g) costultotal al produselor din carne vndute ntr-o anumit perioad; h) costul total al produselor din lapte i din came (luate mpreun) n dou zile anumite (zilele nu snt una dup alta).
O O ON

1. 2. 3. 4. 5. 6. 7.

Access. Ghid de iniiere

Lucrarea de laborator nr. 3

Lucrarea de laborator nr. 3 \ E xem ple de Select Q u ery la rezo lv area p ro b lem elo r cabelei Vinzari create n modul descris n lucrrile de laborator : w: ~ crea cteva cereri. Astfel vom nsui mai profund tehnologia utilizrii x : exemple de cereri pentru a determina urmtoarele: i ; asrii la fiecare operaie de vnzare. : ire: Proiectm urmtoarea cerere:
ii?1 "
nilM uC : r

' TolalGR : S e le c t Query

Zm r W E tm : * a r
B ac . *TL

UnMas Vinzari E

DataVinz Vinzari 0

Cant Vinzari 0

Pret Vinzari 0

cost: fcantipret]

ZJkm sm .

ilit! ! S S n t1~e ^rmtoarea tabel cu rezultatele extrase de cerere:


I b C R : S e le c t Q u e ry

S t '" i liLjMpae 1

0 100 20.7

U n M as

~ ] D a t& V Im

I jlJiiifflptti __ 1 i .. IH I.il

Bo lZL ILe 5 i'sl3 L 5 i3b..21, H i H H 1 ...

05/05/01 06/05/01 06/05/01 06/01/01 05/06/01 06/05/01 06/05/

cost

30 50.25: 100 30 50.5

30 5 2 25 3

2
5

Observm c la 1 informaia din 3000 tabela Vinzari s-a 103.5 mai adugat nc 60 0 coloan, Cost .1256.25 . un cmp calculat 300 din cerere. 60 252.5

V^

..., Z i ' '

'

1 u f ~casrilor n umia vnzrilor crnii n iuna mai i vnzrilor de ap n .iirl. B oi i i urs Proiectm cererea
! : Select Query
*---------------

Ilar

J n ria t

ftmmm

''rz& i
a

DataVinz Vinzari

Cant Vinzari

Pre Vinza

cost [cantllpret]

s !

0
>=801 /06/018 <=#30/06/01 $ 1

El

o : btine rezultatul (vezi tabela de mai jos). |e?jepf Of Cost Aman : Select Query ir"' " * " _ D Cant Pret DataYInz UnMas 05/05 100 30 K g I B
B ut.3L 053631 107/01 1 100 0 3

U M *11 c&st
3000 30d!

\LlJI---------

G : 1

1 ! *! o f 2
15

Access. Ghid de iniiere

Lucrarea de laborator nr. 3

3,. ncasrile totale. Rezolvare. Proiectm cererea (imaginea din stnga). Vom obine rezultatul (imaginea din dreapta):
J otallncas : Select Query

> otallncas: Select Q ueiy


.. 1
[

HE3E3

Field: cost: fcantx[pret|

T otal:
Sort:

Show C riteria
or:

Avg Min Max Count

A
cost: fcantl"fpretl

Record: l< I 4

4. ncasrile totale n fiecare zi. Rezolvare. Proiectm cererea. Obinem rezultatul (vezi tabela de mai jos).
T otalPezile : S e le c t Query
Field: Table: Vinzari Total: Group By Sort: A scending Show: Criteria: V - or: I H H i S l s i 0 T o ta lP e z ile : S e le c t Query

DaiaVbtz
06/01/01 05/03/01
Avg Min Max Count StDev Var
First

cost 1236.251 3000 l i .4761 300|1 4 : '

_c

06/05/01 05/06/01 1 Record: N. 1 1

mm.

US

Concluzie: Introducerea continu a informaiei curente despre vnzri n tabela respectiv i crearea doar o singur dat a unui numr suficient de cereri, conform necesitilor, asigur ntr-un mod destul de convenabil i rapid obinerea informaiei nesesare

-inixi Tables
Queries J [ Forms j 11 Reports j 3 Macros j ^ Modules j
Open

Copy Of CU pt Aman Cost Aman TotalCarne TotalGR Totallncas


Lista (n stnga) de cereri (Queries) create pentru fiecare problema formulat, r ecran rspunsul la o problm'concret pe necesar de selecai-ecferea respectiv<^56i de acionat OpenTButoanele DesigfTsau N ew p offi acionate n cazul dac dorim s modificm proiectul unei cereri deja create sau s crem o cerere nou.

W rn

Fig. 1.6. Pagina Queries din Baza de Date Labor cu lista de cereri create.

16

Access. Ghid de iniiere

Lucrarea de laborator nr. 3

n nrtbri i probleme
I. I fa: r ; : _ e i cnd nu trebuie inclus n gridul cererii rndul Total? I..fac rsocie folosit W here i cnd Group By? ; zl: : ferite proiecte i determinai care este deosebirea dintre folosirea ' up E 5 W here cu aceeai condiie logic n rndul Criteria. - I : rrc-.ie s folosim Last, First, Max? Dai exemple. 5. I . de folosire concomitent a rndului C riteria i a rndului Or, dar ici :i< rea rndului Total din grid. * : = i rect: s se foloseasc funcia Group By n cmpul Cod sau n cmpul t a i . - _ produs i de ce? Argumentai prin exemple. : r r necesar de folosit opiunea Expression n rndul Total din gridul 1 iwr . : cerere care poate rezolva o problem prin utilizarea doar aunui rnd i~ - - agice, rndul Criteria, apoi o alt cerere, care rezolv exact aceeai i n i~i_ cir care conine condiii i n rndul Criteria, i n rndul Or. ! ; .;mple de cereri cu Where, cu Group By i cu condiii logice, att "ir . cit i n Or. ii : :
Or

: _m se

* L. I .

: : - :ie de utilizare a funciei Count. ir: -portant ordinea coloanelor n cererile cu opiunea Group By? Dai

fcia: :;are este deosebirea dintre folosirea unei condiii logice n cmpul cu Group By n Total i folosirea aceleiai condiii logice cu opiunea ,.:c de G roup By. : .m.cereri care conin i Where, i Group By (n aceeai cerere) i j mi ~ : i u l de selectare. * : i : resiile logice conform condiiilor din rndurile Criteria i Or din piiHxatefe cererilor, lit : r : 1 e de utilizare a opiunii Average. L necesitatea utilizrii opiunilor respective n rndul Total. IU. a : : : e de utilizare a opiu ' i. E : iicai necesitatea utilizrii Group By n mai multe cmpuri.

17

Access. Ghid de iniiere

Lucrarea de laborator nr. 4

Lucrarea de laborator nr. 4

2. O Baz de Date cu dou tabee


Problema formulat n paragraful 1 poate fi rezolvat n mai multe moduri. Am creat o BD simpl, ns utilizarea ei nu este destul de comod i eficient. De aceea ne propunem s-o perfecionm. S ncercm s repartizm informaia din tabela Vinzari n dou tabele: DetVinz (Detalii despre vnzri) i Product (Lista de produse) (vezi fig. 2.1). La prima vedere, se pare c lucrurile se complic, ns aceasta se refer doar la procesul de proiectare a BD. Persoanele care vor nregistra informaia despre vnzri vor completa doar coloanele Cod i Cant din tabela DetVinz (coloana DataVinz va fi completat automat), desigur, avnd la ndemn i tabela Product, care trebuie s fie rennoit pe parcursul achiziionrii i stabilirii preurilor mrfurilor noi. De regul, acest lucru se face de o alt persoan i n alt timp. n acest caz, introducerea informaiei n baza de date se mparte n dou procese: rennoirea n permanen (o dat cu apariia unor mrfuri noi) a informaiei din tabela Product i introducerea continu a informaiei despre vnzri n tabela DetVinz n momentul efecturii acestora. Este evident c tabela DetVinz va crete cu mult mai repede dect tabela Product. Iat de ce introducerea i pstrarea informaiei n dou tabele, DetVinz i Product, n loc de una Vinzari, este mult mai eficient i mai convenabil pentru cei care utilizeaz o atare Baz de Date. Desigur, n acest caz utilizatorii snt n ctig, iar proiectanii - n pierdere, ns proiectarea se face o dat, iar utilizarea - n permanen.
^
Den . came _Lapte UuMas Kg 05/05/01 06/05/01 06/05/01 06/05/01 05/06/01 06/05/01 06/05/01 11/05/01 11/05/01 11/07/01 acord; .0 1 M IT g x | Pret 30 5 2 25 3 2 _ 1 3 1 _ CodjDuit DataTm : 1 4 6 7 6 4 2 3 5 100^ 20.7 30 100 30 50.5 30 20 10 05/05/011 __ 06/05/01 __ 06/05/01 * 06/05/011 4 05/06/01 06/05/01 * 06/05/01 11/05/01 11/06/01 11/05/01 ll/07/01| cod den liMas Kg Pachet lKg Pachet 0.5K{ L Pachet0.5L But.2L But.3L Pret 30 30 15 5 2.5 2 3

DataVuiz mi 100 20.7 30 50.25 100 30 50.5 30 20 10 0

1 Came 2 Came 3 Came 4 Lapte 5 Lapte 6 Apa 7 Apa

1
But.2L Kg But.3L But.2L L Pachet 1kg Pachet0.5L

. Ap
; Came

1 50.25

. ^P .A ?*
Lapte

5
30

[ came
came j Lapte

>]

o '

Pachet 0.5 kg; 11/06/01

15 . ___ 2.5 _

<1

of 10

1 |T | 0 0 inSord? ! V ii

Record:

l<| < j|

8 Hnj

Fig. 2.1. Tabelele Product i DetVinz n care a fost repartizat informaia din Vinzari. S proiectm o alt BD pentru rezolvarea problemei formulate n paragraful 1. n modul descris mai sus proiectm tabela DetVinz cu coloanele (cmpurile): Cod (cu informaie de tip Integer number sau Long Integer); Cant (numr de tip Single

18

Access. Ghid de iniiere

Lucrarea de laborator nr. 4

D-ataVinz (cu tip de Date/Time). S nu uitm s fixm DefaultValue=Date() pentru : : oana DataVinz i Validation rule=>0 pentru coloana Cant. Proiectm i tabela Product cu cmpurile respective (fig. 2.1). S se in cont de rele artate i explicate n fig. 2.2. Dup ce tabelele DetVinz i Product au fost proiectate,deschidei-le i 'traducei informaia indicat n fig. 2.1 Proiectarea cererii pentru a rspunde Ia ntrebarea form ulat n problem a din paragraful 1: In funcie de versiunea pachetului Access, acionai nmodulrespectivpentru a ij unge n fereastra de proiect a unei cereri noi. La proiectarea tabelei Product m m cmpul ui Cod i se atribuie rolul de Cmp Cheie primar (Primary Key). Aceasta Text nseamn cel puin c codurile Text n aceast coloan nu se pot Number repeta, ceea ce se confirm i leld Propertie prin valoarea proprietii Genera! Indexed: Yes (No Field Size Long nt Facem un clicTtci /pentru a Duplicates). Atribuirea rolului Format selecta rndul, apoi fclickm de Cheie se face prin Auto Decimal Places butonul Primary Key pentru a selectarea mai nti a cmpului, Input Mask atribui, pentru a anula Caption astfel ca acest rnd sa fie atribuirea, mai repetm o dat. Default Value evideniat aa cum este artat Validation Rule n figura din stnga, apoi Validation Text Required No clickm butonul Primary Indexed Yes (No Duplicates) Key. Fig. 2.2. Proiectul tabelei Product.

Show Table
b e V in z :- ;

* Cod
Cant DataVinz

Icod
jden UnMas Pret

Tables

{IP

Queries

Both

Copy Of Cost Aman Cost Arv

JLL Linia de legtur ntre aceste tabele


Tafcte'

TotalCar otalGR otallnc otalPes Vinzari

Soft Show:
Diana:

- .

Au fost selectatg^fcfele DetVinz i T Produc^ataafe la cerere prin acionarea AddTCa rezultat apar listele cmpurilor chre jtomat prin linia de legtur, (ficai dac fiecare legtura a fost fcut^ko^ct. Deoarece este activ pagina Both, nista de obiecte disponibile pentru ataare la cererea care se proiecteaz snt i tabelele, i cererile. Acionm Close pentru a termina procesul de ataare a
obiectelor la cerere.

Fig. 2.3. Proiectarea unei cereri bazate pe mai multe tabele.


19

Access. Ghid de iniiere

Lucrarea de laborator nr. 4

Pentru ca dou sau mai multe tabele s fie ataate corect la cerere, ele trebuie s fie legate ntre ele. Fiecare tabel trebuie s fie legat cel puin cu o alt tabel dintre cele ataate. Legtura dintre dou tabele poate fi fcut n diferite moduri ~ n mod automat sau manual, n mod permanent sau temporar .a.m.d. Pentru un nceptor este bine ca de fiecare dat cnd se proiecteaz o cerere nou legturile s se fac n mod manual i temporar. Cmpurile prin intermediul crora se face legtura trebuie s conin aceeai informaie dup sens. Nu denumirile cmpurilor snt importante, ci sensul datelor, care se conin n aceste dou cmpuri prin intermediul crora se leag tabelele. Pentru a lichida o legtur, se face un click pe linia de legtur; legtura devine mai pronunat semn c ea este selectat, apoi se apas tasta Delete. Pentru a lega doua tabele, agai cmpul respectiv dintr-o tabel i trasai-1 pe cmpul respectiv din cealalt tabel. La relaxarea mouse-ului apare linia de legtur. Dup ce am ataat toate obiectele la proiectul cererii, nchidem Fereastra Show table, verificm i corectm (dac este necesar) legturile, apoi completm rndul Field din gridul cererii cu cmpurile din listele ataate. Trebuie s obinem imaginea din fig. 2.4. n fig. 2.4 este redat imaginea cererii, care calculeaz rspunsurile la aceeai problem, rezolvat deja mai sus n alt mod. n acest caz, BD const din dou tabele. Dac analizm cu atenie proiectul cererii TotalGr i proiectul cererii TotalGrM, putem constata c ultimul este mai complicat. Da, este mai complicat pentru procesul de proiectare, deoarece a fost necesar de a folosi ca izvor de informaie dou tabele, ceea ce a condus la complicarea proiectrii. ns, acest mod de proiectare are o proprietate destul de eficient i mai comod pentru utilizatori - va fi cu mult mai uor i mai sigur de introdus informaia iniial.
TotalGiM : Select Query

Dac dorim, putem modifica 1 ------------denumirile/Cmpurilor n

Cererea a fost deja salvat cu numele TotalGrM.

!od

a nu provoca confuzi/ se qbcomand ca s nu coincid lumire a vreunui i tabele.

rteiu, cod Pretl: Pret Cant:Canl UnMasI: UnMc Den1: den Tabie: Product Product DetVinz Product Product ; -T o ta l *teup By Sum Max Last Last Soit 0 Show: 0 0 Criteria: n rndul Table^trfdenumirile tabelelor din care se or:

co$f[cant]x[pret Sum

DataVinzI: DataVr DetVinz Last

3 0 1 E ia informaia n cmpul dat Semnui^acesta arat c acest cmp este marcat i va fi afiat pe ecran. Fig. 2.4. Proiectul cererii pentru rezolvarea problemei din paragraful 1.

20

Access. Ghid de iniiere

Lucrarea de laborator nr. 4

. d Deni 1 Came
2 Came 3 Came 4 Lapte 5 Lapte 6 Apa j 7 Apa

UnMas 1 Kg:
Pachet 1Kg

Cantl
150.25 30

Protl
30 30 15 5 2.5 2 3

cost
4507.5 900 300 356 25 120 300

Pachet 0.5Kg 20 L ............... .. 71.20000076 Pachet 0.5L 10 But. 2L 60 But. 3L J00

- [ | X Atragei atenia BataYmzl la denumirile 06/05/01 coloanelor: snt /05/01 cele noi, care au 11/06/01 fost introduse n 06/05/01 proiectul cererii, 11/05/01 desprite de 06/05/01 numele respectiv 05/06/01 prin semnul

acord; < j * 1 1

* | of 7 | m \r

Fig. 2.5. Rezultatul cererii cu proiectul din fig. 2.3.

den UnMas

Pentru a asigura ca numerele s apar cu un numr dat de semne zecimale dup virgul, facem un click dreapta npmpul respectiv, apare o

list n care
Field:
Table: Product Product

selectm

Total: Group By

Properties, apare :>?H4ist.


Xlickm ^ici apoi alegem Ftxd, apoi clickrnrici i alegem 2 (dou semne zecimale).

Sort
Show: C riteria:

or.

Fig. 2.6. Stabilirea numrului de semne zecimale. n calitate de exerciii creai alte cereri pentru a rspunde la ntrebrile formulate r lucrrile de laborator precedente. ntrebrile snt aceleai, dar proiectele vor f diferite. Argumentai avantajele acestei variant de BD bazat pe dou tabele n comparaie cu BD bazat doar pe o singur tabel.

21

Access. Ghid de iniiere

Lucrarea de laborator nr. 5

Lucrarea de laborator nr, 5

3. BD bazat pe 3 tabele - posibiliti i avantaje noi


n lucrrile de laborator precedente au fost demonstrate cteva exerciii de utilizare a BD. n scopul familiarizrii cititorului cu principalele noiuni i tehnici aplicate la crearea unei BD simple, a fost descris procesul de creare a unei BD cu un volum limitat de informaie despre caracteristicile operaiunilor care apar la vnzri. A fost formulat o problem destul de simpl, care poate fi rezolvat proiectnd o BD tot att de simpl. Probabil, v-ai convins: crearea unei Baze de Date este un proces destul de accesibil ca realizare, dar totodat destul de complicat. Totul depinde de scopul, gusturile i, nu n ultimul rnd, de posibilitile fiecruia. Cu ct mai voluminoas i mai diversificat este informaia pe care dorii s-o pstrai i s-o prelucrai i cu ct este mai mare confortul pe care dorii s-l creai pentru utilizarea ei, cu att mai complicat i sofisticat va fi BD. Orice BD, n funcie de scop, poate fi modificat n diverse direcii: att pe vertical, ct i pe orizontal. Perfecionarea unei BD poate fi continuat pn la infinit, nimic nu poate fi absolut perfect. n continuare vom modifica BD deja creat, pentru a arta posibilitile acestei BD lrgite. Nu n toate cazurile trebuie de nceput de pe poziii noi. Desigur, cnd sructura BD deja create nu permite mbuntirea ei, mai indicat este de creat o BD nou. n cazul nostru, vom lrgi baza de date deja proiectat, att pe vertical, ct i pe orizontal. Presupunem c este necesar de a face calcule nu numai pentru fiecare produs, dar i pentru anumite grupuri de produse, grupuri formate conform anumitor criterii. Fie c se vinde nu numai lapte, ci alte feluri de produse: lactate (brnz, cacaval, smntn, lapte acru e tc .); carne (de porc, de vit, de pasre); buturi (ap mineral, ap dulce, bere etc). Evident c toate aceste produse pot fi deocamdat mprite n trei grupuri (categorii): Lactate, Carne, Buturi. Este firesc s apar necesitatea de a face diverse calcule pentru fiecare dintre aceste categorii, cel puin din cauza c vnzri le se fac n diferite secii ale uneia i aceleiai uniti comerciale. Se propune urmtorul mod de rezolvare a problemei de perfecionare a BD deja proiectate: 1. Se proiecteaz o tabel nou, Categorii, cu cmpurile CodCat, DenCat, Descriere, tabel, care va conine informaia, respectiv, despre codul categoriei, denumirea categoriei i descrierea categoriei. Se completeaz tabela cu informaia respectiv (fig. 3.1, 3.2). 2. Se modific structura tabelei Product - se mai adaug un cmp nou - CodCat care va conine codul categoriei din care face parte produsul dat (fig. 3.3, 3.4). 3. Se deschide tabela Product i se completeaz coloana CodCat nou aprut cu informaia corespunztoare (codurile categoriilor se iau din Categorii pentru fiecare produs). 4. Se modific structura tabelei Product prin adugarea unui cmp nou - CodCat.

Atenie! La crearea cererilor nu este necesar de ataat toate tabelele. Le ataam doar pe acele de care avem nevoie i pe acele fr de care nu putem face careva
22

Access. Ghid de iniiere

Lucrarea de laborator nr. 5

legaturi ntre tabele. Nu oricare dou tabele pot f i legate ntre ele. Uneori este nevoie ie ataat nc una sau mai multe tabele doar pentru a face legtura necesar dintre careva tabele date.
C a te g o rii : T a b le

Data Type Number Text Text

Description Codul categorii un numar intreg Denumurea cate goriei, pina la 255 caractere Descrierea, pe ;curt, despre ceea ce se conine in FieldProperti ss

Generai j Lookup Field Size Format Input Mask Caption Default Value Validation Rule Validation Text Required Allow Zero Length Indexed

No No No

Cmpului CoCat i s-a atribui Cheia. Cmpurile DenCat i Descriere pot coni ne maximum \ 2 5 5 de caractere. n coloana Description se conine informaia care apare n partea de jos a ecranului Status Bar.

t tor the fteli Iiter a custc help on Porn

Fig. 3.1. Proiectul tabelei Categorii.


% Microsoft Access
File Edit View Insert Fgmat Records Iools Window Help

Aceasta este StatusBar n

: fereastra (injterfaa)
Access4rftii. Deoarece n moipdntul dat ne aflam n )escriere (se vec^bara vertical), n status Bar apare exact ceea ce a fost scris in coloana Description n etapa de proiectare a tabelei ( fig. 3.1).

Categorii: Table

CodCat.

DenCat

Descriere Lapte, cacaval, smintma... Came de porc, bovine,.. Apatmnerala, apack^FaSa,...

} 1 Lactate 2 Came , 3'Buturi

0
{Descrierea, pe scurt, despre ceea ce se conine in acesstr categorie,

Fig. 3.2. Utilizarea informaiei din States Bar.

Fig. 3.3. Obinerea proiectului tabelei Product

23

Access. Ghid de iniiere

Lucrarea de laborator nr. 5

P r o d u c i ;' T a b l e Field N am e

"...

.
D a ta T yp e N um ber Text Text N um ber N um ber T " ----------- -Description

2 _ cod d en U nM as P re t O codcat

i Codul c a te g oriei al produsului d a t |

Field P ro p er Lookup Field Size F o rm at Decimal Places In p u t M ask C aptio n D e fa u lt Value V alidation Rule Validation T e x t R equ ired In d e x e d G en eral

Long In te g e r A u to

n ^ gol, lasfiritul lTS^k^fost adugat numele CodCat, apoi n coloana Data Type a fost ales tipul (un numr), iar n Description a fost nscris CoduS categoriei produsului dat informaie pentru Status Bar.

>0 Codul categ oriei un num r pozitiv! No No

Fig. 3.4. Adugarea unui cmp nou n tabela Product. Dup ce ai adugat coloana CodCat, nchidei tabela cu alegerea Yes, apoi deschidei-o i introducei informaia respectiv n coloana nou aprut CodCat, aa cum este artat n fig. 3.5. Atenie! La nchiderea tabelei, dup ce ai fcut modificri n structur (adugarea unui cmp este o modificare a structurii tabelei), ai mai adugat o coloan, putei fi prentmpinat cum c careva date se pot pierde. Trebuie de selectat Yes, fiindc n cazul adugrii unui cmp nou informaia nu poate fi pierdut. Atragem atenia c, dac apare vreun produs nou dintr-o categorie nou, atunci, mai nti, se nregistreaz Categoria n tabela Categorii, apoi Produsul - n tabela

Product.
|1 wm
-- '

UnMas Pret 30 30 15 3

cod

den
1 Came

sjS IJ S J I Categorii codcat f CodCat

BenCat

D escriere Lapte, cacaval, st Came de porc, bo^ ]

Kg
Pachet lK g Pachet OJKg L Pachet 0.5L But. 2L But. 3L

2%
2 2

| Lactate 2 Came

2 Came 3 Came 4 Lapte

3 auturi Ap a minerala, ap a J li - J L ......... ---------------------------------- 1

5 Lapte
6 Apa 7 Apa

2.5

O
R e co rd : I 4 j f

2 3 O
\ h |> * 1 of 7

Informaia din coloanele CodCat (tabelele Categorii i Product ) este aceeai dup sens; prin intermediul cmpurilor Codcat se poate face legtura dintre aceste dou tabele. Mai nti se completeaz tabela Categorii, apoi

Product. Fig. 3.5. Tabela cu coloana CodCat completat conform tabelei Categorii.

24

Access. Ghid de iniiere

Lucrarea de laborator nr. 5

Dup ce ai completat coloana CodCat n tabela Product, nchidei-o i, astfel, :oate tabelele vor fi gata pentru a proiecta noi cereri.

Remarc. n acest caz, BD este proiectat n baza a trei tabele, fiecare dintre ele -oninnd informaia corespunztoare. n ansamblu, toate tabelele pstreaz informaia in detaliu.
t - 't . iiflArtiiler 1

v -ln fx
Cod Cant DataVxnz
05/05/01 06/05/01 06/05/01 06/05/01 05/06/01 06/05/01 06/05/01}

Product: Table

mi

den

UitMas

Pret 30 30 15

codcat

C od* !
1 Lactate 2 Came 3 Buturi

Descriere
Lapte, cacaval, st Came deporc,bo,i Apa minerala, apa

1 Came 2 Came 3 Came 4 Lapte 5 Lapte 6 Apa

Kg
Pachet 1Kg Pachet 0.5Kg L Pachet 0.5L But. 2L

5
2.5

0 Tabela Categorii se modific doar cnd apare o categorie nou de mrfuri (se modific cei mai rar), tabela Product - cnd apare un produs nou (se modific mai des dect Categorii), iar DetVinz se modific cel mai des.

3 J_EL_ But. 3L 15/ La introducerea informaiei n DetVinz este util ca tabela Product s fie afiat pe ecran (este o modalitate de a introduce corect codul produsului). Exist i alte ci, mult mai eficiente, pentru a evita greelile (despre ele se va vorbi mai trziu).

2 3

Fig. 3.6. Tabelele care constituie fundamentul BD. Dac analizm cu atenie informaia din aceste 3 tabele, observm c ea este divizat dup anumite criterii: n Categorii avem informaia doar despre categoriile mrfurilor, n Product avem toat informaia doar despre fiecare tip de marfa aparte i " DetVinz avem doar informaia care se nate n procesul operaiunii de vnzare. Care produs, n ce cantitate i cnd se vinde, se tie imediat dup ce s-a terminat : reraiunea concret de vnzare. Adic informaia n aceast tabel poate fi introdus :: ar dup ce a avut loc vnzarea. O baz de date nu poate fi eficient far asigurarea unor eforturi minime la ::: cucerea informaiei. n tabelele Product i Categorii informaia poate fi introdus - _ mai devreme dect apare un produs nou sau o categorie nou. O dat ce informaia este introdus, aceste 3 tabele vor funciona ca un tot ntreg. Apare ntrebarea: cum ar arta o singur tabel, dac am dori s crem o BD ce ar . za zoat informaia aceasta? Rspunsul poate fi gsit destul de greu. C oncluzie: S uitm de*faptul c putem utiliza eficient o baz de date simpl : singur tabel i s gestionm un volum mare i divers de informaie! Pentru a explica totui, n acest caz concret, cum ar arta acea singur tabel. I n m o cerere cu proiectul din fig. 3.7. Ca rezultat obinem rspunsul (fig. 3.8), Astfel i.care arta acea singura tabel ~ fundament pentru proiectarea unei BD simple. Apare i" r e : area: dac e mai simplu cu o singur tabel, de ce s complicm BD cu dou sau

25

Access. Ghid de iniiere

Lucrarea de laborator nr. 5

trei tabele? ns un cititor mai atent poate fi de alt prere. Tabela DetVinz poate conine sute sau chiar mii de nregistrri (fiecare operaiune de vnzare este o nregistrare n tabela DetVinz) i atunci tabela din fig. 3.8 va fi cu mult mai mare dect cele preluate mpreun. Pe lng aceasta, n acea singur tabel va trebui de completat toat informaia n toate coloanele, cu excepia DataVinz, pe cnd n cazul utilizrii a trei tabele, vnztorul va trebui s completeze doar primele dou coloane din DetVinz. Prin urmare, cazul BD cu 3 tabele este cu mult mai convenabil pentru utilizatori, ns, dup cum se observ, destul de complicat pentru cei care o proiecteaz. ! e l e c t U u e iy
Aceast cerere va uni toat informaia din cele trei tabele n una singur. Astfel vom avea posibilitatea de a mai uor.
Pret Product 0

....................... ...... . .. ------ ----- -


Field: T able: Sort: Show: Criteria: or: Categorii 0

------------DataVinz DetVinz 0

t_. den Product 0

UnMas Product 0

Cant DetVinz 0

j l L I . . . ____

Fig. 3.7. Proiectul cererii pentru informaia despre toate operaiile cu privire la vnzri.
v ? J s

b H

Q u e r y 1 : S e le c t Q u e r y D enC at IjS fffl | den

1 0 : P re t 1

|
Kg iL

U nM as

D a ia V m z

C a s ii |

Lactate Buturi Came Bautuh Buturi Lactate Came Came Lactate


w

Came Lapte A pa Came Apa A pa Lapte Came Came Lapte

But. 2L
Kg

But. 3L But. 2L L Pachet IK g Pachet 0.5K^ Pachet 0.5L

05/05/01 06/03/01 06/05/01 06/05/D 1 05/06/01 06/05/01 06/05/01 11/05/01 11 //Dl 11/D5/01

100 20.7 30 50.25 100 30 50.5 30 20 10

30 j 5 2 30 3 2 5 30 15 2.5

^Tabela rezultatul cererii care ne prezint informaia n detaliu despre toate operaiile de vnzare.

1 Record: J | i J 1

1 ....... 1> 1 1>*I of 10

Fig. 3.8. Rezultatul cererii cu proiectul din fig. 3.7.

3.1. Exemple de Select Query


Proiectm cteva cereri pentru a determina: 1. Sumele totale ncasate pentru mrfurile din fiecare categorie.
26

Access. Ghid de iniiere Rezolvarea - fig. 3.9.

Lucrarea de laborator nr. 5

WLncasUateg : Select Query


n s *f? ^ g a f i ; f i * * cod TI C odC afc 1 DenCat | - den Descriere UnMas Pret U , codcat

1.
C odG i D enC ail codi

|B uturi 420 2C am e 5 7 0 7 .5 1L actate 3 8 1 i f 1 R eco rd : JiQ Jl ? l


cost: [cantffpret] Sum

Reid: CodCat Table: Categorii Tota(: Group By Sort; Show: Criteria: or:

DenCatl: DenCat Categorii


Last

Ascending

Rezultatul cererii

Proiectul cererii

Fig. 3.9. Sumele pentru mrfurile din fiecare categorie. 2. Suma total ncasat n baza vnzrilor doar a lactatelor i crnii. Rezolvarea fig. 3.10. >^ 1 di 5 8ga#|gSf51:

Rezuatufeste doar un singur Tmmi^flindc^se cere suma pentru came lactate mpreun, nu pentru fiecare din eie.

Fig. 3.10 Sumele ncasate la vnzarea produselor din lapte i din came. 3. Sumele totale ncasate pentru fiecare categorie doar n baza mrfurilor vndute n cantiti mari i cu preuri mai mari (Cantitatea > 25 i preul >2). Rezultatul - n fig. 3.11,

Field: Total:
Sm l

CodCat Group B _y

: Categorii

Cant DetVinz Wher >25


, ?

Pret Product Where

cost: [cant]x[pret] Sum

Stew:
Criteria: or:

I
>2

7]

0
:w

4 i\
Fig. 3.11. ncasrile totale pe fiecare categorie.

27

Access. Ghid de iniiere

Lucrarea de laborator nr. 5

4y Costurile produselor: lactate vndute la litre n cantiti mai m ari dect 30, carne - n cantiti mai m ari dect 40, buturi - cu preul mai m are dect 2. Rspunsul - fig.3.12.
impuEx: Select Query
Field: CodCat DenCat Categorii cotj Product den Product UnMas Product Cant DetVinz Pret Produci DataVin DetVinz cost: [cantHpretl

Table: Categoi Sort: Show: 0 or ut.

0
nL H

0
>40 >30
>2

IL L
SimpuEx: Select Query

U P

CodCat

DenCat
1 Came 2 Came 3 Buturi 1 Lactate

cod

den

UnMas Cant Pret DataVinz


Kg Kg But. 3L L 100 50.25 100 50.5 30 30 3 5

cost

1 Came 1 Came 7 Apa 4 Lapte

05/05/D1 3000 06/05/01 1507.5 05/06/01 300 06/05/01 252.5

Fig. 3.12. Proiectarea cererii cu condiii complicate de selectare. Atragem atenia la faptul cum se construiete expresia logic n baza informaiei din rndurile C riteria i Or: toate condiiile din acelai rnd se unesc cu operaia logic & (And), apoi expresiile obinute pentru fiecare rnd se unesc prin operaia logic V (Or). n cazul utilizrii expresiilor logice, atunci cnd avem W here n rndul Total, aceast expresie se refer absolut la toate nregistrrile. Pentru cei care cunosc scrierea i citirea SQL se recomand de fiecare dat s apeleze i la SQL. Concluzii'1. Baza de Date descris n acest paragraf este mai eficient dect cele descrise anterior i este mai indicat pentru utilizare. 2. Nu este nevoie de a cunoate prea multe lucruri din Access pentru a proiecta BD simpl. 3. Utilizarea unei BD este necesar, deoarece ne ajut s realizm mai uor mamulte lucruri cu informaia care crete de la zi la zi. 4. Pentru o persoan care posed careva aptitudini de lucru n sistemul Windows. ? deci tie s lucreze cu fiierele i s opereze cu aa-zisele ferestre, poate f destul de uoar proiectarea unei Baze de Date la acest nivel, fapt ce i-ar facilita cu mult gestionarea informaiei respective.

28

Access. Ghid de iniiere

Lucrarea de laborator nr. 5

li;reMri, probleme, discuii -.aaa.:nentai avantajele utilizrii, doar pentru acest caz concret, a unei BD r aa:a:e pe mai multe tabele. 1 : :: alte structuri i alte tabele pentru a rezolva toate problemele : : - Laie n acest capitol. 3L ' :c:: s planificai proiectarea unei baze de date care utilizeaz tabele cu similare (adic cu aceleai coloane; tipurile de date pot fi diferite), dar :arr gestioneaz informaia despre (informaie care poate fi ncadrat n a^erneaea tabele): aicamentele la o farmacie; persoanele angajate la o firm; : aim ie din fondul unei biblioteci; ti-iiatele sesiunii la o facultate. fL *ni r.;:.ic: cereri pentru a determina:^ i n ir^ir:ie din categoria lactate vndute ntr-o anumit zi; * T irf iir: ie vndute ntr-o anumit zi i la un anumit pre; Sii t indute ntr-o anumit zi la un anumit pre i mrfurile vndute ntr-o altei ir.fflnit zi la un alt pre; a ; i ai mrfurilor dintr-o anumit categorie, vndute ntr-o anumit zi; 1 ) 1 3f - ^ : :i ai produselor din carne vndute la un pre mai mic dect o anumit ' : :ntr-o anumit zi i costul total al buturilor vndute n restul zilelor fiii r .: singura cerere); Iii iar: : a fi: st vndut cantitatea maxim de un produs din came; L" i i e medii ale vnzrilor pe fiecare categorie; ir'1 I n i: operaii de vnzri ale mrfurilor din fiecare categorie; ! )! i ia: prima i ultima dat vndut un anumit produs; -ill e a r ,.- < * ii came vndute ntr-o anumit zi* la un pre mai mare dect o . aioare i mai mic dect alta i buturile vndute n restul zilelor; e ir : _ ...se din lapte au fost vndute n sume totale mai mari dect o anumit m : IQil ara ae aperaii vnzri pentru produsele din came cu costul total mai ara : : anumit valoare; IE ". a:a ai buturilor vndute ntr-o anumit zi i costul total al produselor in : a" : indute n alt zi (preul produselor din came mai mare dect o iiiiiiiii,ci ".aioare).

Access. Ghid de iniiere

Lucrarea de laborator nr. 6

Lucrarea de laborator nr. 6

3.2. Utilizarea cererilor la introducerea informaiei


n tabela DetVinz, pn acum se introducea i se pstra informaia doar despre vnzri. Pentru a gestiona informaia despre stocuri, este necesar de a avea informaie i despre mrfurile intrate, achiziionate. S-ar putea folosi o tabel asemntoare cu DetVinz, numai c n ea s se nregistreze informaia despre intrri. ns, se pare, c este mai convenabil de mai adugat un cmp n tabela DetVinz, n care s se nregistreze informaia despre intrri. Deschidem tabela DetVinz n forma de proiect i adugm un cmp cmpu CantV.
DetVinz : Table
Field Name Cod DataVinz
j CantV


1 Data Type Number
ni.

Description

Date/Time
Number antifcatile intrate, achiyitionarte

General j tookup ) Field Size Format Decimal Places Input Mask Caption Default Value Validation Rule Validation Text Required Indexed Single . Auto ,

0 >=0 in CantV se admte doar paloare pozitiva!. No No

Proprietatea Validation Rule permite ca n acgast'coloan s fie intpjdtfSedoar numere tifa Se asigur acelai "lucru i pentru cmpul Cant. n cazul ncercrii de a introduce numere negative, pe ecran se va afia urmtorul jnesaj:

Fig. 3.13

nchidem proiectul tabelei DetVinz confirmnd modificrile prin Yes i ca rezult: vom obine tabela DetVinz modificat (cu 4 coloane). n etapa de introducere a informaiei pot aprea confuzii, erori, se pot confund coloanele C ant cu CantV. Ar fi mult mai sigur dac la introducerea informaiei desp vnzri s nu apar coloana CantV, iar la introducerea informaiei despre intrri coloana Cant. Acest lucru l putem asigura crend o cerere pentru vnzri i o a it . cerere ~~ pentru intrri; se vor utiliza cererile i n scopul de a face mai comod proces* I de introducere, i n scopul de modificare a informaiei n tabele. Aadar, crem o cerere pentru vnzri (bazat pe DetVinz) i o cerere per ir intrri. Proiectm cererile respective i le salvm, respectiv, cu numele Vinzari Cant IntrariC antV (vezi proiectele n fig. 3.14, imaginile lor n form de tabel - i fig. 3.15).

30

Access. Ghid de iniiere

Lucrarea de laborator nr. 6

Astfel, atunci cnd va trebui de introdus informaie despre vnzri, se va deschide :~:erea V inzariCant, iar atunci cnd va trebui de introdus informaia despre intrri :espre marfa achiziionat) - se va deschide cererea IntrariC antV . n aa fel, n "i-care caz de introducere a informaiei apare tabela sau cu coloana Cant, sau cu :: 'oana CantV. Acest lucru s-a realizat prin utilizarea posibilitilor oferite de cereri. O cerere roate fi utilizat nu numai n scopul de a afia informaia, ci i n scopul de a duce i modifica informaia din tabele. Pstrarea informaiei despre vnzri i achiziionri n aceeai tabel este un lucru .: ~iod, care permite destul de simplu, dup cum vom vedea mai trziu, s se determine ; icurile de marfa disponibile pentru vnzri.
n cererea VinzariCant coloana a doua este Cant i informaia va nimeri coloana Cant din DetVinz, iar n ntrariCap^V - C^ntV i informaia va nimeri n coloana din aceeai tabel DpfVinz
Cant DetVinz DataVin v DetVinz

farCantV: Select Query

0 5 !

Cod Cant DataVinz CantV

J
Field: Cod Table: DetVinz Sort: Show: ia Criteria: or:

___________________________"

A'
Field: Cod T able: DetVin Sort:

CantV DetVinz
0

DataVinz DetVinz

A,

Show : j
^ Criteria: or:

<1

<i

Fig. 3.14. Proiectele cererilor VinzariCant i IntrariC antV . ggg I g g C f n fx m DetVinz : Table :. Cod ;c*a\ Bat&Ym Vuiz S T ] Da&
100 20.7 30 50.25 100 30 50.5 30 20 10 400 100: 0 ^ u r 05/05/01 06/05/01 06/05/01 06/05/D1 05/06/01 06/05/01 06/05/01 11/05/01 11/06/01 11/05/01 12/07/01 100 1 4 20.7 30 6 1 50.25 7 100 6 30 4 50.5 2 30; 3, 20 5 10 5 400 7 100 0 0 05/05/01 06/05/01 06/0|/01 06/05/01 05/06/01 06/05/01 06/05/01 u/05/01 11/06/01 11/05/01 12/07/01 12/07/01 12/07/01 300 100 200 78 300 45 679 45 100 39 570 42'?

C*d 1 4 6 1

C m tV
300 100 200 78 300 45 679 45;

Dt%Z | 05/05/01 06/05/01 06/05/01 . 06/05/01 05/06/011 06/05/011 06/05/011 11/05/01 11/06/011 11/05/01! 12/07/011 12/07/01 j 12/07/011

i _

100
39 570; 439

m im
12/07/01 d 1 1

O i

'R ecord:

;sc o rd ; Hh If

N 14 1j1 . ..

0 j |>* 3--

Fig. 3.15. Imaginile tabelelor-cereri cu informaia extras din DetVinz


31

Access. Ghid de iniiere

Lucrarea de laborator nr. 6

n fig. 3.15, pentru comparaie, se arat formele n care apare informaia extras de cererile V inzariCant i IntrariC antV din aceeai tabel DetVinz. Acest mod de pstrare a informaiei permite s calculm uor stocurile de mrfuri. Pentru calcularea stocurilor, proiectm cererea TotalInStoc. Rezultatul este redat n fig. 3.16, iar proiectul ~ n fig. 3.17.
is 1 T o t a ll n S l o c : S e l e c t Q u e i

Cdf~De3&l jjC a m e m ..... 2: C am a ... ....3 C am e ......4 Lapte .......3j Lapte ..... 6 A p a 7 A pa [R eo ^ d T 1 < i r

|| s i t ..378.00 . ... i m s j ; : 45.00 30.00 20.00 100.00 779.00 ? . 410.00 609.00 60.00! 245.00 739.001 200.00 IS IilI

v n .? z

15.00 80.00 707.80 199.00 185.00 539.00

n coloana Intrat se afieaz numrul total de uniti intrate, iar n cooana Ieit - numrul total de uniti vndute. n coloana InStoc numrul total de uniti ramase n stoc.

InStoc-Intrat-Iesit.

Fig. 3.16 n cmpul calculat InStoc se utilizeaz i i f f i i i i s i i MM funcia Sem, iar n rndul Total din grid se menioneaza^c se conine o expresie. Acest k _ cod lucru ne sugereaz c ntr-un cmp calculat 1 putem folosi orice funcie standard din i - : : Access sau chiar once alt funcie scris n Prat Visual Basic, n calitate de parametri pot fi i cmpurile din obiecie ataate la cerere.

'

'

*: Cod Uit.:' -' DataVinz '

LtU;
DetVinz 1 Sort Show. Ditai*
or.

: Group 6y
a

Denl: den Product Last 1 0

Intrat: CantV DetVinz Sum

lesit Cni DetVinz Sum 0

inStoc: Sum[[cantvHcant]) M ax Count StDev Var First

-m r NM

m _________________

Fig. 3.17. Proiectul cererii cu un cmp calculat pentru determinarea stocurilor rmase.

32

Access. Ghid de iniiere

Lucrarea de laborator nr. 6

ntrebri, probleme, discuii


Argumentai avantajele sau dezavantajele pstrrii informaiei despre intrri i ieiri n una i aceeai tabel. Argumentai avantajele utilizrii cererilor la introducerea informaiei. Cum se formeaz un cmp calculat i cum pot fi determinate stocurile rmase? Cum v imaginai procesul de introducere a informaiei la intrare, care tabele trebuie s fie pe ecran concomitent? Cum s procedm ca rezultatul cererii s fie plasat ntr-un loc dat i s ocupe un anumit spaiu (dup dimensiuni)? Prin intermediul cererilor afiai pe ecran informaia din Product i Categorii. Propunei o alt modalitate comod, dup prerea dv., de introducere a informaiei despre intrri, Proiectai cereri pentru a determina: a) lista de produse intrate n stoc ntr-o perioad anumit de timp; b) costul total al produselor dintr-o anumit categorie, intrate n depozit n luna iunie; c) pentru care produse intrrile au fost mai mici dect ieirile; d) costul total al produselor din fiecare categorie, intrate; e) costul total al anumitor produse intrate ntr-o anumit perioad; ^ fl care a fost preul maxim pentru fiecare produs vndut; g) care a fost preul minim pentru fiecare produs intrat; h) numrul de produse intrate din fiecare categorie (a nu se confunda cu numrul operaiunilor de vnzare); i) numrul de produse vndute din fiecare categorie; j) categoriile de mrfuri n baza crora s-a ncasat o sum dat de bani; k) suma total ncasat n baza mrfurilor doar din dou categorii (s se pun la calcul doar produsele cu preul mai mare dect o valoare anumit); 1) care a fost ultimul produs vndut din fiecare categorie.

33

Access. Ghid de iniiere

Lucrarea de laborator nr. 7

Lucrarea de laborator nr. 7

4. Crearea cererilor de tip Make Table Query i Append Query


Calcularea stocurilor la o ntreprindere, la care se opereaz cu mari cantiti i diverse tipuri de marf, este un lucru necesar i util. Dac am ncerca s determinm stocurile folosind doar tipurile de obiecte studiate mai sus, am observa c calcularea lor este destul de complicat. Apare ntrebarea dac mai exist i alte posibiliti. Un mod de determinare a stocurilor ar putea fi calculnd: 1) stocurile pentru fiecare tip de marfa la nceputul exerciiului nceput; 2) numrul de uniti intrate de la nceput pe parcursul exerciiului - Intrat; 3) numrul de uniti ieite de la nceput pe parcursul exerciiului - Ieit; 4) stocurile curente ~ RamasStoc=Inceput 4 * In trat - Ieit. La trecerea de la un exerciiu la altul, stocurile curente la sfritul exerciiului precedent devin stocuri iniiale la nceputul unui nou exerciiu. Aadar, se presupune c avem o tabel, fie cu numele Stoclncep, n care se conine o astfel de informaie ~ stocurile la sfritul exerciiului precedent, ceea ce coincide cu stocurile la nceputul exerciiului curent. Astfel, n procesul de exploatare a BD, la sfritul exerciiului, se calculeaz stocurile curente i datele obinute nlocuiesc informaia din Stoclncep. Aceast tabel poate fi modificat doar la sfritul exerciiului. Pentru calcularea stocurilor curente se propune urmtoarea schem:
Microsoft A c c e s s 3le Edit View Insert f Query ! |B !Q | tiH [ * & un

La fel <* la crearea unei cersri obi5ui.e, I c e , ! cimpurile de acl. Apoi facei' tin click pe Query i apare lis t a m care clickai pe Make-TableQuery i vei objkfe boxa Make Table. n caseta Table Name scnpfnumele tabelei care dorii sa fie cj^f de a<5east cerere, apoi tastai OK.

f
f jf

Table:

SelecJ^Query

j
Make New
Table Name: jSumarlnfol

i cod den UnMas Pret codcat^

B p ^ d s s t a b Query
S ? M ake -Iab S e Quer*> ti^S Update Q uery. # i Aopend Q uery... 1 Qelete Query

y r

^Current Database Another Database:

'V s

gfeififte:}

' CmpuLCantP este un cmp


calculat. Expresia 1.1-1.1 ne asigur ca n acest cmp s fie 0 (zero) un numr real, care admite i semne zecimale.

Field: " ^ 3 den I able: Product Product Sort: Show: a .0 Criteria:

CantP:1.1-1.1

Fig. 4.1. Proiectul cererii care, n baza tabelei Product, formeaz tabela Sumarlnfo.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ ,

Access. Ghid de iniiere

Lucrarea de laborator nr. 7

4 ,

P ro iectarea unei cereri de tip MakeTable (pentru a forma o tabel au lista com plet a produselor aflate n depozit)

1: i ca ia nchidere s rspundei cu Yes i, respectiv, s atribuii numele pentru aceast cerere. Dup ce vei nchide proiectul, aceast tabel m f -auuai : _ un alt semn, ceea ce sugereaz o aciune specific deschiderea ei. ; - i ::rm a tabela Sum arlnfo, trebuie s facem un dublu click pe numele ei !S -'OSw 'J ;:1~. apoi s acionm Open. A.n'brti Dac o astfel de tabel deja exist, atunci va aprea prentmpinarea fc - - - a : are trebuie s rspundem cu Yes pentru ca tabela veche s fie lichidat. : m m a: se v a forma varianta nou a acestei tabele. r . r deschiderea cererii M akeSum arlnfo, vei obine tabela Sum arlnfo cu lista zt rrc-du.se cu valoare zero n coloana CantP. I e : ae fiecare dat cnd vei deschide aceast cerere, de fapt, vei forma din nou aifeela Sum arlnfo. 4..1 P ro ie c ta re a u n ei A p p en d Q u ery (astfel la lista format n Su m a rln fo vor fi plusate toate produsele din stocul iniial) : aduga la tabela Sum arlnfo informaia despre stocurile de la nceputul ::ea.m o cerere de tip Append, care extrage informaia din unele tabele i altele.
Append
fiiew iTsert

saaiEsm X

Query Tools Windc

Append To

-r

SS
fej Show T able\. ' Kernove fable 3 * Select Query

T able & am e; jSu^rlnfi


(* Current Dafcabal

Hi

Crosstab Query

s I Make-Table Quer
# 1 Update Q u e ry ^ ,

! ^,.
X 1 Qelete Query SQL Specific

La nceput, ca i4a 6 Se Sefesl Query, se Completeaz griduJ ere; ererii, apoi se face un click peQuery; apare o\is n care sH^ctm Append Query i ca rezultampai are cutia Append. Artm in care tabel Sumarmi fo trebuie adugat, apoi OK i se nchide cutia A ppend. Dup aceast trecem la completarea m formaiei n rndul Append To din gridul c\ reni. n cazul dat dorim ca informaia din Cod, E n l , Stoclneep din tabela Stoclncep s fie adugat respectiv, n coloanele Cod, Den, CantP din tal la Sumarlnfo. Dup ce am stabilit c informaia va fi ^adugat la tabela Sumarlnfo, clicknd n Sumar ppend , apare lista coloanelor i cod lurem s selectm-dgnurnirea respectiv a den olone. n care se va nscrie informaia.

Stoclncep

Proiectul cererii de tip Append, care adaug informaie din tabela Stoclncep n tabela Sumarlnfo.
35

Access. Ghid de iniiere

Lucrarea de laborator nr. 7

n acelai mod ca i la proiectarea cererilor obinuite, dup terminarea procesului de proiectare, nchidem proiectul atribuindu-i numele AddlnitialStoc. Vom observa c acet tip de cerere va fi marcat n mod deosebit. Atenie! De fiecare dat cnd deschidei aceast cerere toat informaia din tabela Stoclncep va fi adugat la tabela Sum arlnfo. Concluzie: Este corect de fcut acest lucru o singur dat, doar dup formarea tabelei Sum arlnfo deschiznd cererea M akeSum arlnfo de tip M ake Table. n mod analog, proiectm nc o cerere de tip Append (n scopul de a aduga n tabela Sum arlnfo informaia recent despre operaiunile din In trare i Ieire a mrfurilor, informaie care poate fi calculat prin intermediul unei cereri bazate pe tabelele DetVinz i Product).
Append
Append To * Cod Cant DataVinz CanfcV L iy Field: Table: Total: Sort: Append To: Criteria:
den

Table Name;
. ' , , '

UnMas
Pret

Inftu-maia curent din coloanele Cod, Deni, Mersextras din tabelele DetVinz i Product, care conin datele de ultim or (ca rezultat al descidenyacestei cereri) i va fi adugat la tabela

..........
Cod DetVinz Group By cod ^

*
.. . .

Den1:den Produci^ ^

l3^f^Sum{Ufantv]-[cantl) ^ / Exp(e$$*6n CaniP

........... .............. . -

^
den

..........

on
Fig. 4.3.

4\

Proiectul cererii care calculeaz diferenele dintre numrul de uniti intrate i numrul de uniti ieite (rezultatele obinute se adaug la tabela sumar Sumarlnfo).

Dup terminarea proiectului acestei cereri, salvai-o atribuindu-i numele A ddD iflntrarilesiri. A te n ie i De fiecare dat la deschiderea acestei cereri, informaia calculat va fi adugat n tabela Sum arlnfo. Concluzie: Aceast tabel poate fi deschis doar dup ce se vor deschide, n ordinea strict consecutiv, cererile M akeSum arlnfo, apoi AddlnitialStoc. La acest m oment, dispunem de trei obiecte: cererile M akeSum arlnfo, AddlnitialStoc i A ddD iflntrarilesiri, care, fiind deschise n ordinea descris, asigur formarea tabelei Sum alnfo cu informaia suficient pentru calcularea stocului curent. Deci, dup acionarea cererilor numite mai sus, este necesar de a deschide nc o cerere, care ne va afia informaia despre stocurile curente. n acest scop proiectm cererea:

36

Access. Ghid de iniiere


TotalRamasInStoc : Make Table Query

Lucrarea de laborator nr. 7

I B

[
1* cod den jCantP i
cod Sumarlnfo Group By

Den1: den Sumari nfo Last

TotaIRamas: CantP Sumarlnfo Sum

Fig. 4.4. Proiectul i rezultatul cererii cu informaia despre stocurile curente.

4.3. Crearea unui Macros


FotalRamaslnStocM : Macro

mmm
Action. DeleteObject OpenQuery OpenQuery OpenQuery OpenQuery / ! Comment U Lichudarea tabelei SumarlnfC Qearea uri tabele noi Surrv Add la lista formata a stocuri Add la Ista format[ a diferen

Action j DeleteObject

mReport enabie OUputTo PrhtOut *| Re (Re paiotQbject/ Quer> Name Iaca &ode

Comment Lichudarea tabelei Sumarlnfo Qrearea unei tabele noi Sumarlnfo AcfSaJista formata a stocurilor ini'iaie Add la lilb^fcrmatf a diferen'elor Intrari-iesiri Lichidam tabefetenasInStoc formam RamasInStbinecenta deschidem tabela RamafnSfcocT

formam RamasInStoc recent deschidem tabela RamasnSt

f i

sfion Arguments

l
Tabe RamasInStocT
Icategors

kfo

:O pens < | select or Icrosstab

La hceput, coloanele a\xL Actio\a i Comment s ik g o a ^ lu p un clickaici


apare lista cu aciuni (Wction), dfn care alegem dorim,/n cazul dat Open Query. Imediat /mai apar nite boxe^GHckm aici, apara lista cu roate Queries din BD/selectm denmjifa pe care dorim s-o Deschidem. n razul dat a fost selectat numele MatCeSiimarlnfo. n coloana Comment rrebuie introdus un ^ explic operaiunea aleas. Ateniei Penj#rcuferite aciuni va\trebui de completat diferii Darametri (comparai pentru aciunea OpehQuery i Delete Table). Fig. 4.5. Proiectul unui M a cro s cu mai multe aciuni. Mai sus au fost create nite obiecte, m enionndu-se c ele trebuie deschise acionate) ntr-o ordine strict. In plus, la acionarea unora, trebuie, n prealabil, de chidat careva tabele. D eci numrul de aciuni concrete s-a mrit i mai mult. Apare

37

Access. Ghid de iniiere

Lucrarea de laborator nr. 7

problema de respectare strict a ordinii aciunilor. A ccess-ul ne ofer o m odalitate de a uni mai m ulte aciuni ntr-o anumit ordine (prin crearea obiectelor M a cros). A cestea snt nite obiecte care pot uni ntr-o anumit ordine o m ulim e de aciuni, ce pot fi ndeplinite printr-o singur deschidere a M a cro s-u lu i. S proiectm m acros-ul respectiv (vezi fig. 4.5). D up ce am terminat proiectul m acros-ului, l salvm atribuindu-i num ele T o ta lR a m a sIn S to cM . D ac totul a fost efectuat corect, atunci, fiind pe pagina M a cro s a B D curente i facnd un dublu click pe num ele acestui M a cro s T o ta lR a m a sIn S to cM , vom activa tot iragul de aciuni din acest macros. Ca rezultat, pe ecran vom obine tabela cu stocurile curente.
:

jjjjjjf - [
455.5 30 160 1415.600006 398 370 1078

co d

| Deni JCam e
2 Came 3 Came 4:Lapte 5iLapte 6 Apa 7 Apa

m
a R e c o rd :

1 4h I

mmm 1 H uMof 7

Observm c produsele se repet dup denumiri, ns ele au coduri diferite. nseamn c snt produse cu aceeai denumire, dar nregistrate ca produse diferite (poate unitatea de msur este alta sau poate se deosebesc prin alte caracteristici). Ar fi fost mai comod dac n aceast tabel ar fi indicat i unitatea de msur. Acest lucru poate fi realizat, dac n locul ultimei operaii din macros-ul TotalRamasInStocM, n loc de aciunea Open Table, care deschide tabela RamasInStocTotal, s-ar deschide o cerere bazat pe informaia din aceast tabel i tabela Product, pentru a afia informaia, inclusiv i despre caracteristicile fiecrui produs. rezultat al acionrii macros-ului

Fig. 4.6. Tabela cu stocurile curente T o ta lR a m a sIn S to cM .

Pentru a afia mai detaliat informaia despre fiecare produs din stoc, proiectm urmtoarea cerere:
StoculCurentQ : Select Query
* cod den UnMas Pret codcat

- ii
CodCai DenCat Categorii Ascendir cod Ram< 0 den Pro A \sc 0 UnMas Product
_

Table: Catego -Sort: Show: 0 Criteria: or:

Pret Product

TotaIRamas RamaslnSto 0

Cost: fpretUTotalRamas] 1 ................. .................. .

Fig. 4.7. Proiectul cererii pentru calcularea stocurilor curente (n detaliu).

38

Access. Ghid de iniiere


p StoculCurentQ : S elect Query CodCat : 1 DenCat | Bautun 3 Buturi 2 Came 2 Came 2iCame 1 Lactate 1 Lactate 51 Record: 1 : : '*4 1 H of 7 cod 7 6 3 2 1 5 4 den Apa Apa Came Came Came Lapte Lapte

Lucrarea de laborator nr. 7

llSISt UiiMas But. 3L But. 2L Pachet 0.5K. Pachet 1Kg Kg Pachet 0.5L L

Fret TotalRamas
3 2 15 30 30 2.5 1078.00 370.00 160.00 30.00 455.50 398.00 1415.60

Cost

3234.001 740.00} 2400.001 900.00| 13665.001

995 m l
7078.001 I

Fig. 4 .7 .1 . R ezultatul cererii pentru calcularea stocurilor curente (n detaliu).

4.4. Modificarea unui Macros


Este util i un alt m od de afiare a rezultatului final cu informaia despre stocuri,

cu informaie mai detaliat despre produse. n acest scop se va face o copie a m acros-iui deja proiectat, se va atribui un nume, de exem plu DetaliiStocM, i se va m odifica -itim a aciune: n loc de a deschide tabela RamasInStocT, deschidem cererea
StocC urentQ cu proiectul de mai sus. Copierea i m odificarea denumirii m acros-ului se face analog cu aciunea asupra unui fiier n sistemul Windows. Pentru a m od ific coninutul m acros-ului, selectm denum irea lui (DetaliiStocM) in pagina M a c r o s din fereastra B D curente, acionm butonul Design i ca rezultat -pare macrosul D e ta liiS to c M n form de proiect. Facem un click n ultimul rnd acolo unde este O p e n T a b le) i selectm din lista aprut Open Query, apoi trecem :n coloana C o m m e n t i nlocuim coninutul de acolo cu deschiderea cererii S tocC urentQ . D up aceea, puin mai jo s, selectm denumirea StocCurentQ din lista aprut dup clickul fcut n boxa Q u ery N am e. Proiectul trebuie s devin cel din fig. -.8. Dup ce ai fcut m odificrile necesare, salvai-1. Facei pe rnd un dublu click pe aenumirea am belor macros-uri i analizai avantajele i dezavantajele acestor dou "ioduri de afiare a inform aiei respective.
m D e t a l i i S t o c M ; 1

Action D e ie teO b je ct O p e n Q u ery O p e n Q u ery O p e n Q u ery D e le teO b je ct O p en Q u ery O p e n Q u ery

Comment Lichudarea tabelei Sum arlnfo C rea rea unei tab ele noi Sum arlnfo Add ia lista fo rm a ta a stocurilor ini'iale Add la lista fo rm a t[ a diferen'elor Intrari-iesiri Lichidam tab ela Ram asInStoc formam Ram asInStoc recenta T 1 Deschiderea cererii StocCurentQ Action Arguments

| -Ti

________

_ z J

Q uery Nam e View D a ta M ode . V:y: V :'' ..:-,

StoculCurentQ D a tas h e et Edit

^ I

Select th e j d a ta e n try j mode for 1th e query;

Fig. 4.8. Proiectul m acros-ului D eta liiS to cM .

39

Access. Ghid de iniiere

Lucrarea de laborator nr. 7

ncercai s facei m odificrile necesare, astfel nct aceste dou macros-uri s acioneze absolut independent.

ntrebri, probleme, discuii


1. 2. Argumentai necesitatea utilizrii cererilor de tip M a k e T a b ele, A p p en d . ncercai s formai noi tabele n care s adunai toat informaia din tabelele com pletate. Prezentai exem ple de adunare a informaiei din alte tabele, care corespunde doar unor condiii (de exem plu, doar despre vnzrile din prima sptmn, despre mrfurile vndute la preul mai mare dect o valoare anumit). Prezentai exem ple de adunare a informaiei din tabele cu structuri diferite. ncercai s propunei o alt cale de calculare a stocurilor curente. Ce este un m acros? La ce fo lo sesc parametrii unui m acros?

3.

4.
5. 6.

7.
8.
9.

Cum poate fi modificat un macros?


Cum poate fi m odificat o cerere?

10. Ce inform aie conine coloana A ctio n din proiectul unul macros?
11. Este oare obligatorie informaia din C o m m en t n proiectul unui macros? 12. Explicai aciunile din lista care apare la proiectarea unui friacros (care le cunoatei). 13. Cum putem deosebi tipurile de cereri pe pagina Queries? 14. Care este deosebirea dintre acionarea unei cereri de tip Append sau M ak e Table de una de tip Select? 15. n cte moduri poate de lichidat un obiect din Baza de Date? 16. S se proiecteze un m acros, care ar afia: a) lista de produse cu preul dat din stocul curent; b) costul total al produselor din stoc; c) costul total al produselor intrate n stoc ntr-o anumit perioad; d) stocul curent al produselor dintr-o anumit categorie; e) lista de produse pentru care stocul curent a crescut fa de cel iniial. 17. Determinai produsele care difer doar dup pre. Propunei o m odalitate de m odificri, pentru a face posibil rezolvarea acestei probleme. Facei aceste m odificri, apoi proiectai un macros pentru a determina: a) lista de produse pentru care s-au fcut vnzrile produselor la pre mare, n timp ce n stoc erau produse de acelai tip la pre mai mic; b) lista pe produse care au intrat cu un pre mai mare, n timp ce n stoc mai erau exact aceleai produse, dar la un pre mai mic; c) lista de produse care s-au vndut la un pre mai mare, n timp ce n stoc existau exact aceleai produse, dar la un pre mai mic.

40

Access. Ghid de iniiere

Lucrarea de laborator nr. 8

Lucrarea de laborator nr. 8

5. Modul de funcionare a BD create


Remarc. BD creat nu poate satisface toate necesitile de gestionare a informaiei ntr-un caz real, dar acest exemplu, fr ndoial, este binevenit pentru a cunoate noiunile i procedeele elementare de proiectare i utilizare a Bazelor de Date i poate servi c o prim etap pe calea anevoioas i complex, dar n acelai timp creativ, a acestei activiti.
n scopul de a asigura pstrarea BD deja create, facei o copie a ei i realizai ceea ce se cere n aceast lucrare acionnd cu copia. 1. Introducerea informaiei despre cteva produse noi aprute. Deschidem ambele tabelele Categorii i Product, astfel ca ele s fie afiate pe ecran n form de tabel (fig. 5.1).
fx | cod . djest / Pret .codcat:'Jh 1 Came Kg 30 2 2 Came Pachet 1Kg 30 2 3 Came Pachet 0.5Kg 13 2 4 Lapte L 5 1 5 Lapte Pachet 0.5L 2.5 1i o Apa But. 2L 2 3| 7 Apa But. 3L 3 31 CNf------- ----- --0 0
io r d : < i If

Categorii : I afoOe

CodCat| DenCat J. Lactate Lapte, cacaval, sminti Came de porc?bovine, 2 Came 3 auturi Ap a minerala, apa duilc * 0^ Informaia despiXprod usul nou se introduce n coninu^ > a tabelei Product, Dac apare vreun prod u^cjintr-o categorie nou, atunci-nregistrin m ^ q ti categoria tirGategorii, apoi prociusul n Product.

in 1 ! * - f

Fig. 5.1. Tabelele n care se pstreaz informaia despre categorii i mrfuri.

Exerciiu. Introducei n BD informaia despre cteva produse dintr-o categorie nou.


2. nregistrarea informaiei la intrarea mrfurilor. Deschidem cererea IntrariCantV , tabelele Product i Categorii, astfel ca s fie afiate pe ecran n modul artat n fig. 5.2. 3. nregistrarea informaiei la ieire (vnzare). Deschidem cererea Vinzari C ant i tabela Product, acionm macros-ul TotalRamasInStocM . Asigurm plasarea lor pe ecran n modul artat n fig. 5.3. Este evident c cele mai frecvente vor fi nregistrrile n tabela Vinzari Cant. Tabela RamasInStocT, aprut ca rezultat al acionarii TotalRamasInStocM , trebuie nchis din cnd n cnd i de acionat macros-ul TotalRamasInStocM pentru a o deschide din nou n scopul de a afia informaia recent despre stocurile curente.

41

Access. Ghid de iniiere

Lucrarea de laborator nr. 8

lataY m z 1
4 300 100 200 78 300 45 679 45 100 39 570 439 05/05/011 06/05/01 j 06/05/01 j 06/05/01 j 05/06/01 j 06/05/01 j. 06/05/01 j 11/05/011 11/06/01 i 11/05/01 j 12/07/011 12/07/01S
12/07/01

cod

den

UtMas

Pret codcat

Codc|DenCadj*

Descriere

6 1
7

6 4
2

1 Came 2 Came 3 Came 4 Lapte 5 Lapte 6 Apa 7 Apa

Kg..........
Pachet lKg i Pachet 05Kf L Pachet 05L But. 2L But. 3L

j Lactate Lapte, cacaval, $m\ 2;Came Came de porc, bovii 3 auturi Apa minerala, apa &

0 i v

0 nregistrrile se fac n continuarea tabelei-cerere IntrariCantV. n momentul cnd la intrare apare un produs nou, trebuie mai nti s-l nregistrm n tabela Product, dar dac este dintr-o categorie nou, atunci nregistrm mai nti categoria nou, apoi produsul n Product. S fim ateni la codurile introduse n coloana Cod i la cantitile nregistrate n coloana CantV. Data se nregistreaz n mod automat.

5 5. 7 0

1 >

Fig. 5.2. Introducerea informaiei la intrarea mrfurilor.

I D t

Cod

Cant

DataVinz
05/05/01 jj 06/05/011 06/05/011 06/05/01 j 05/06/011 06/05/011 06/05/01

cod 1 den
| Came
2 Came

UnMas

Pret codcat
3 Came 455.5 30 160 1415.6000 398; 370 1078;

K
Pachet lK g Pachet 0.5K^

Came
3 Came 4 Lapte 5 Lapte 6 A pa 7 A pa -:ord! N 1 I f

3 Came
4 Lapte 5 Lapte 6 Apa 7 Apa

L
Pachet 0.5L But. 2L But. 3L

11/05/01 j 11/06/01 j 11/05/011 12/07/011 12/07 12/07/011 10

nregistrri se admit doar n tabela VinzariCant. Informaia se introduce n continuarea tabelei VinzariCant doar n co lan ele j^ d ^ i^ DataVinyse va completa [tomatMai nti se determin codul din/Product, apoi el se nregistreaz n VinzariCant. In coloana Cod din VinzariCant trebuie s fie doar codurile din Product. Este util de a nchide periodic aceast tabel i de acionat macros-ul respectiv pentru a o deschide din nou.

Fig. 5.3. nregistrarea informaiei despre ieiri (vnzri). 4. A naliza stocurilor curente. Acionm macros-ul DetaliiStocM i vom obine informaia prezentat n fig. 5.4.

42

Access. Ghid de iniiere

Lucrarea de laborator nr. 8

& StoculCurentQ : S e le c t Query


CodC* ::DemC: t | Buturi 3 Buturi 2 Came 2 Came 2 Came 1 Lactate 1 Lactate 7 A pa 1 n UnMas But. 3L But. 2L

8
P ret


1078.00 370.00: 160.00 30.00

'

TeMMaitas

Cost 3234.00 740.00 2400.00 900.00 13665.00

6 A pa
3 Came 2 Came LCam e 5 Lapte 4 Lapte

Pachet .{1 Pachet lK g

3 2 15
30 30

Kg
Pachet 0.5L

455.50
398.00 1415.60

....

........

2.5 5 '11 |f

995.00
7078.00

i'll

!*) of 7

i jgpi

i 1 '

Fig. 5.4. Forma de afiare a stocurilor curente.

Probleme
nregistrai produse la intrare (cte 3 din fiecare categorie),fiecare produs s intre de dou ori cu coduri diferite n dou zile diferite. 2. nregistrai vnzri: cte trei pentru fiecare produs; n aceeai zi s fie vndute i produse care difer doar ca pre. 3. Proiectai cteva macros-uri pentru rezolvarea unor probleme propuse n lucrarea de laborator nr. 7. Proiectai cereri sau macros-uri pentru a calcula: 1) costul total al mrfurilor intrate n fiecare zi; 2) costul mrfurilor ieite n fiecare zi; 3) diferena (cantitilor) dintre intrri i ieiri pentru fiecare produs; 4) preul mediu al produselor care difer doar ca pre; 5) numrul de produse diferite pentru fiecare denumire; 6) stocul curent la o dat anumit; 7) mrfurile intrate n ziua curent; 8) mrfurile ieite n ziua curent; 9) mrfurile de un anumit tip care difer doar ca pre; 10) mrfurile de un anumit tip care difer doar ca unitate de msur. 1.

43

Access. Ghid de iniiere

Lucrarea de laborator nr. 9

Lucrarea de laborator nr. 9

6. Proiectarea unui raport


Exist mai multe posibiliti de a imprima informaia extras din BD. Tiprirea informaiei prin intermediul rapoartelor poate fi organizat astfel, ca informaia, n mare msur, s fie aranjat pe foi n conformitate cu anumite cerine. Proiectm un raport astfel, nct informaia despre vnzri s apar n modul artat nfig. 6.1.
PeCategRdportR : Report

Informaie pe categori i
odCaft:

1 Lactatei
Lapte Lapte Lapte
Pachet 0.5L

Titlul raportului (Report Header/Footer) apare 13/07/01 doar pe prima pagin. ' fr reT"Cost: DataVinz " |_D#mmiirile coloanelor snt n sectorul Page Header i apar la nceputul fiecrei 12/07/01 pagini. 4__2J 1
10

2.5

categoriei snt n sectorul CodCat Header, care se Lapte afla n sectorul titlului Cost total: 138 Lactate grupei, i apar la nceputul 2 Came ----------- C IZ 2 --------------fiecrui grup. 20 15 I 1 1 ^ 0 1 Detalii n sectorul Detail ^achet 0.5K 3 Came 115^ 30 30 3achet IKg 2 Came Nqrfcnnaia n detaliu din 50.25 30 1507.5]| 06/05/01 <g 1 Came fiebsre grup. 30 )| 05/05/01 1 Came Sector pentru total (CodCat Footer) pe grup. Cost total: 5707.5 Caute Sector pentru total pe raport 3 B&imi (ReportFooter) apare la 3 9ut.3L 300 1271 7 pa sfrton raportului. 30 2 60 06/05/01 3ut. 2L 6 pa Sazrorul Page Footer apare 100 3 300 05/06/01 7 ^ 9ut.3L 4a sfritul fiecrei pagini, 30 9ut.2L 2 60 06/05/0j, (aici nu este prezentat, 6 Apa 720 Baiisf Cost total: deoarece acest raport constituie doar o pagin). Total general: 7808.5
50.5 20.7
[o o o o

25] 11 | 252.5 06/05/01 103. 06/05/01

Codul i d en u m irea

E tlJ -jjFig. 6.1. Raportul obinut n baza proiectului din fig. 6.1.1. nainte de a ncepe proiectul unui raport, trebuie s stabilim cel puin urmtoarele: 1) Ce fel de informaie dorim s includem n raport. 2) Dac avem deja vreun obiect (tabel sau cerere) n care s se conin toat informaia pe care dorim s-o includem n raport. 3) Dac nu exist astfel de obiect, el trebuie creat. n cazul nostru, crem o cerere i PeCategRaportQ, bazat pe tabelele DetVinz, Product, Categorii cu cmpurile DenCat, Cod, Den, UnMas, Cant, Pret, DataVinz, Cost:[pret]*[Cant] (far vreo condiie n C riteria sau Or). 4) Care este formatul raportului (cu titlu, ftr titlu, cu grupri, far grupri, cu totaluri pe grup sau tar, cu comentarii detaliate sau fr, cu fonturi pronunate sau nu, cu anumite figuri geometrice, tablouri sau nu etc.). Cu alte cuvinte,
44

Access. Ghid de iniiere

Lucrarea de laborator nr. 9

formatul raportului trebuie stabilit cu cea mai mare precizie posibil, deoarece, de regul, m odificrile, n funcie de natura lor, pot cere mari eforturi i timp. Dup ce s-au realizat c ele necesare, descrise mai sus, se poate ncepe proiectarea raportului.

22

egRapoilR: Report

j . 1. 1 , I . 2 i 3 i 4 I 5 I 6 * I - 7 I 8 I - 3 I 1 0 I * II

[Report Header

Informaie pe catedori H
PageReader

CodCat: DenCat: [cod: den:


CodCat Header Deta

UnMas:

[Cant:

Pret: Cost: Data^jnr

cod den
CodCat Footer
jclencat

UnMas

Cant

Pret

Cost

DataVinz

j=Tost total:"

rSum{[cos1j

Page Footer Report Footer


K T otal generali ;=Stim([coj

Se pot determina cu uurin sectoarele respective n forma de proiect a raportului de mai sus. n fiecare sector se afl nite obiecte n form de patrulater, care se numesc Controale (n englez Controls). Unele controale pot fi prezentate prin dou elemente: coptrolu propriuszis, care ctfnine informaia i eticheta lui, care ne sj^gereazce conine Controlul dat. Atare controale se prezint prin dou patrulatere. Informaia din etichet este aceeai i n proiect, i n raportul propriuzis, pe cnd controlul propriuzis, n proiect conine denumirea sursei, iar n raport - coninutul ei.

Fig. 6.1.1. Proiectul raportului din fig. 6.1. Atragem atenia, A ccess-u l ne ofer posibilitatea de a utiliza aa-zisul W izard D esigner la proiectarea rapoartelor. A ceast posibilitate poate fi utilizat, de regul, atunci cnd nu avem prea mari cerine fa de formatul raportului, important fiind doar rezultatul. Pentru nceptori ns, este mult mai util s deprind proiectarea unui raport rar W iza rd D esig n er, ca mai apoi, pe parcursul proiectrii, s poat aprecia i alege la nivelul cuvenit c ele propuse de W izard D esign er. 1. n funcie de versiunea pachetului M ic o so ft O ffice, acionm n modul respectiv ^ pentru a activa pagina R ep o rts a bazei de date curente. Pentru diferite versiuni im aginile pot fi diferite, ns procedeele, de regul, snt aceleai: se face un click pe R ep o rts - pagina respectiv devine activ; acionm butonul N ew (dac avem intenia de a crea un raport nou), ni se deschide o caset nou sau poate chiar tot aici va trebui s selectm opiunea D esign (evitai W izard D esign er ! i, poate chiar tot aici, s determinm (n cazul nostru trebuie s selectm num ele P e C a teg R a p o rtQ ) n baza crui obiect se va proiecta raportul. Dur toate aceste aciuni, acionnd la momentul potrivit O K , vom obine pe ecran

45

Access. Ghid de iniiere

Lucrarea de laborator nr. 9 cu doar trei sectoare:

im aginea cea mai sim pl a unui proiect de raport

Page

Header, Detail i Page Footer (fig. 6.2).


File gt )t)ew Ipsert Fgrmat Ipols Window Help

B id
Reportl : Report
If.:'* * 1 * 1 ' 2 * I * 3 IF Page Header

*D et<a il

0 Pagi3 Footer

Primul lucrTpecafeltrebuie s-l facem este s- acionm butonul L ist^ ic ^ ^ zu ltat trebuie s apar (dac nu este deja pe ecran) lista cmpurifeNQbiectului selectat, n baza cruia se va crea raportul. n caz c lissiu este, nchidei proiectul, far a-1 salva, i ncepei din nou proiectttkAtragei atenia la ataarea obiectului la etapa cuvenit. LirvH4<din interiorul 'sectofntnrfGridui) se pot nltura sau prezent^p^n activarea opiunii Grid din lista opiunilor ataate la comanda View sau la alt comand, sau prin click-dreapta n interiorul seciei i activnd sau dezactivnd opiunea Grid.

Fig. 6.2. Prim a im agine a proiectului unui raport. 2. Avnd deja pe ecran cea mai sim pl form a proiectului unui raport, urm eaz s acionm n modul cuvenit pentru a aduga seciile Report Footer i Report

Header.
le Edit View Insert Format lools Window Help

L
jj .

1I

' 1|
Soiling and Grouping
Field/Expression

ft
|
iip rfo

, . 1 . , . 2 i 3 1 4 Report Header

den

# Page Header

Group Properties Group Header Group Footer Group On Group Interval Keep Together Yes * V Yes Each Value

* CodCat Header

1
With^ s t Detail! Whole Group With First Detail

* Detail

With First Detai


* CodCat F <

fPagt5 FoO

* ReportFc

nseamn c la trecerea de pe o pagin pe alta, pe pagina precedent, s se asigure cel puin un rnd cu informaie din grupul de trecere. A ceasf^esiejista de mpuri din obiec

Facem unclicl^aici i apare a^atTapoi mai facem un click,aici, apare lista de cmpml i selectm CodCat, eoarece trebuie sa facem grupe pentru fiecare categorie. Dup aceea, n par^a r k io s , facem cte un iprpentru a obine tate. Apoi facem ck aici, din lista aprut alegem den i vom oi^ine imaginea respectiv/ Aceasta nseamn c pentru codul categoriei vomi avea sectoarele G rouF H eader i
J o r n p n tri I Field/Expression CodCat den [Sort Ordeil a Ascen j r j Ascen

m
Group Properties Group Header Group Footer Group On No No Each Value

If

DataVinz

Group Interval Keep Together

No

Fig. 6.3. Inserarea sectoarelor

CodCat Header i CodCat Footer.


46

Access. Ghid de iniiere

Lucrarea de laborator nr. 9

n acest scop analizm listele de opiuni ale comenzilor (n primul rnd View, apoi Insert) din meniul de comenzi de baz ale Access-ului i activm opiunea R eport Header/Footer. Imediat n proiect se vor include sectoarele respective la nceputul i sfritu proiectului. Ateniei Din cauz c proiectarea unui raport este un proces de lung durat, este necesar, din cnd n cnd, pe parcursul proiectrii, s salvai proiectul. 3. In continuare inserm i sectoarele respective pentru codul i denumirea grupurilor de categorii (a se vedea fig. 6.3, analizai i acionai conform indicaiilor), 4. Dup ce am inserat sectoarele respective, trebuie s trecem la inserarea Controalelor. O parte din ele vor fi legate (bound) de cmpurile din lista cererii PeCategRaportQ , ataat la raport, o alt parte vor fi absolut independente i vor conine informaie de tip Text, iar o a treia parte vor fi nite cmpuri (cmpuri calculate) dezlegate (unbound), n care se vor afia rezultatele unor calcule conform funciilor din Access sau chiar ale utilizatorului, scrise n Visual Basic.
innd tasta CTRL apsat i fcnd click pe denumirile din list, vom obine un grup^iectat. l agm i-l copiem (legm) n Detail. Relaxnd moused obine imaginea cu toate controalele selectate (toate au pe contur emne). Facem un click ntr-un loc liber aim i toate controaleife vor deveni libere. Avnd toate controalele deselectate, libere, selectm doar etichetele lor. Pentru CoCa aceasta, poziionm mouse-ul aici, DenCa apsm i inem apsat butonu^stng al mouse-ului, micm mouse-ul/pe diagonal pn aici, vom observa c se traseaz un patmlater, relaxam mouse-ul met atunci cnd patrulaterul a m in s jataVii etichetele. Ca rezultat, vom reui Cost selectarea unui grup de Obiecte (cele selectate vor avea senwe pe contur). Facem un click dreapm peste grupul selectat, apare o list^cu opiuni, alegem Cut, observm c grupul selectat a disprut. Facem un click dreapta n sectorul Page H pder, apoi Paste. Grupul de etiche/e acolo, n Page Header.

:~Ir

Jni^as:

JnMas

* irt;
# CodCat Footer

"ant

jcod

Hden UnMas:

:==[ :n

>

jUnMas

Cant

::g. 6.4. Transportarea etichetelor controalelor din sectorul Detail n sectorul Page

Header. 5. Dup ce am obinut etichetele n sectorul Page Header, facem un click ntr-un loc liber n acelai sector i toate controalele-etichete vor deveni libere. Conform indicaiilor din fig. 6.5, aranjai etichetele n Page Header, modifcmdu-le i dimensiunile astfel, ca s obinei ceea ce este artat n fig. 6.1.

47

Access. Ghid de iniiere

Lucrarea de laborator nr. 9

6. Facei acelai lucru i n sectorul Detail. 7. Trecei cmpurile CodCat i DenCat din list n sectorul CodCat Header, apoi, asemenea ca din Detail, trecei doar etichetele n Page Header i aranjai-le n modul cuvenit (n Page Header ~ etichetele, iar n CodCat ~ controalele de

pe conturul unui control servesc ca mnere (Handies) prin intermediul crora putem modifica dimensiunile, iar cel din stnga-sus pentru -i schimba poziia. Poziionai mouse-ul pe unul dintre ele, apare un CodCath semn, apsai i inei apsat butonul stng, micai mouse-ul, innd butonul apsat, relaxai butonul i observai ce se ntmpl.

Fig. 6.5. Deplasarea i modificarea dimensiunilor unui control. 8. Inserarea controalelor pentru calcule n sectorul CodCat Footer.
Dac bara de instrumente TooSBox nr^te-pc2erit, atunci facem un click pe butonufacesta i apare -cutia respectiv. Facem un click pe butonu[^ab|, observm c se activeaz, poziionmmouse-ulici (atragem atenia c de elgsterligat ceva), cu butonul^frgal mouse-ului apsat trasgj-5uin spre dreapt - n jos>j^&xm mouse-ul aici i oservm c am oJ)ittut un aa-zis control dezlegaftunbound), n care putem msene o expresie de calcul, cai^ffoate includiejjJimstii-Aceasta l care, n cazul dat, trebuie lichidat (facei un click pe ea, apoi Delete). Facei mrrfidt-aici n interiorul controlului rmas i introducei expresia =Sum([cant]) i controlul este gata.

Toolbox

dencat

=nCost Total:"

j=Sum([cant])

~n

_________ l _

Fig. 6.6. Inserarea unui control liber (unbound) pentru calculare. Procednd n modul descris n fig. 6.6, facei ca n sectorul CodCat Footer s fie aa cum este artat n fig. 6.1.
48

Access. Ghid de iniiere

Lucrarea de iaborator nr. 9

9. n mod asemntor inserm controalele respective i n sectorul Report Footer, aranjndu-le n modul respectiv. . Pregtim n modul corespunztor i sectorul Page Foooter. 11^ Pentru sectorul Report Header, pentru titlul lui folosim butonul Aa din bara de instrumente (Tool Box), iar pentru dat ~ controale ca i pentru celelalte controale calculate. 12. Facei un click pe butonul PrintPreview din bara standard i observai ce ai realizat, ce v-a reuit i ce nu. 13. Trecei din nou n forma proiect i aranjai cum se cuvine toate controalele. Facei ca toate s aib aceleai dimensiuni dup nlime, aliniai-le la linia cea de sus (Top).
_ _ _ _ _ _ insert j Format lools Window

ert; Format Xools Window Help ^ ^ AutoEormat.,. Set Control Defaults

H [e!p

I it m

^ O l

Autaormat.,, Set Control Defaults

! El &

Fig. 6.7. Modificarea dimensiunilor i alinierea controalelor n grup. n cazul dat, s-a selectat un grup de controale, s-a activat comanda Format, dup aceea a fost selectat opiunea Size, apoi To Shortest. Ca rezultat, toate controalele au devenit egale ca nlime cu cea mai scurt, n partea dreapt se va face alinierea spre dreapta. Ateniei nainte de a alinia sau modifica dimensiunile n grup, trebuie s asigurai ca controalele s nu fie suprapuse. Se admit doar granie comune. 14.Formatul controalelor. Facem un click-dreapta pe un control din sectorul Detail, apoi alegem Propeties din lista aprut i ca rezultat apare o caset cu lista de proprieti pe care putem s le atribuim controalelor. 15.Atribuim i celorlalte controale, din alte sectoare (CodCat Header, CodCat Footer, Report Header, Report Footer), astfel de proprieti, nct afiarea s coincid cu forma din fig. 6.1. 16.Dup ce am aliniat i modificat cum se cuvine dimensiunile i am atribuit proprietile respective n sectoarele Report Header i Page Header. uzsL~ cte o linie utiliznd butonul \ din ToolBox.
49

Access. Ghid de iniiere

Lucrarea de laborator nr. 9

17. Aliniem ctre Top controalele din fiecare sector, apoi agm marginea de jos a fiecrui sector i ngustm pe vertical pna la maximum dimensiunea lui. 18. Raportul este gata. l salvm nc o dat. Titiul listei cu proprieti ne sugereaz c proprietile afiate snt ale controlului numit Textl5, control de tip TextBox. Facem c Border Style s aib valoarea Solid, iar Border Width 4 Hairline, ceea ce nseamn c controlul \a.t va avea grani format de o linie subire. n aceast list putem ob&erva i alte proprieti, care pot fi atribuite i ncercate. O datkstabilite proprietile pentru controlul dat, facem un dublu clck pe butonul aat (copierea formatelor), apoi cte un click peste toate controalele care dorim s preia aceleai proprieti. n cazul nostru este util s le facem (toate din Detail i cele din Page Header) cu aceleai proprieti.

T e x t B o x :

T e x llS

Format I Data I Event j other j Width . . . , . . . . . Height. . . . . . . . Back Style . . . . BackColor , , . , Special Effect , Border Style Border Color. . , . Border Width . Fore Color. . . . Font; Name . . . . . Font Size Font Weight-----Font Italic............ Font Underline . * . No Text Align I . . . , ,

All

Fig. 6.8. Atribuirea si copierea proprietilor.


Dac facem un click pe un astfel de buton, atunci se trece n forma de proiect a raportului, iar fcnd click pe * acest ,--se trece la forma Raport (PrinPreview) a japodulii, gata pentru ipar. Agm de aibi ca s lrgim sau s ngustm aria raportului. Agm dp'&ici c s facem mm nalt sau maj^curt sectorul dat. Agm de pici ca s modifcn dimensj/nea pe vertical. De fiecare datli mouse-ul i Codific imaginea, ^sugerndu-ne, n care direcie putem face modificarea (n cazul dat lrgirea).

I | f I q i a y '\ m ] t
Q psignV fiew ^

1&&>^- 3. , , 4, = = =
I Layout Preview ...............

Page Header CodCat

4 CodCat Header

C odC |D e*C ae Petri


UnM as dencot
- T o s t total: J = S u m {[c o $1 DataVinz

Report Footer

Fig. 6.9. Diverse aciuni de modificare (lrgire a sectoarelor) n proiectul raportului.


50

Access. Ghid de iniiere

Lucrarea de laborator nr. 9

n treb ri, probleme, discuii 1. Cte sectoare pot fi incluse n raport? 2. Care este deosebirea dintre controale de tip legat (bound) i dezlegat sau liber (unbound)? 3. Care pot fi controale pentru calcule i cum pot fi create? 4. Cum s realizm calcularea totalurilor? 5. Care este deosebirea dintre organizarea calculrii totalurilor n cereri i n rapoarte? 6. Cum se face inserarea i lichidarea sectoarelor? 7. Care sectoare snt prezente n orice raport? 8. Cum s facem ca linia de trecere de la o pagin la alta s fie determinat aa cum dorim? 9. n ce scopuri putem folosi sectoarele Page Header i Page Footer, R eport H eader, R eport Footer? 10. Cnd pot fi folosite controale de tip Text i de tip Labei? 11. Ce este eticheta unui control? Cum se face alinierea controalelor? 12. Argumentai necesitatea proiectrii rapoartelor. Se poate oare de tiprit informaia i altfel? Care snt avantajele proiectrii raportului bazat pe o cerere n loc de o tabel? 13* Ce fel de informaie poate fi inclus n Report Header, n Report Footer? 14. Care este deosebirea dintre posibilitile calculului totalului pe grup n cereri i cele ale calculului totalului pe grup din raport?

51

Access. Ghid de iniiere

Lucrarea de laborator nr. 10

Lucrarea de laborator nr. 10

7. Cereri cu parametri
n paragraful precedent a fost descris procesul de proiectare a unui raport. n acest paragraf vom vedea cum n baza raportului proiectat pot fi create alte rapoarte, cu informaie mai detaliat, rapoarte mai universale, mai comode i mai utile. Realizm urmtoarele: 1. Facem o copie a cererii PeCategRaportQ deja create, apoi cererii noi (obinute la copiere) i atribuim numele InflCategQ . 2. Copiem raportul PeCategRaportR i-i modificm numele (celui nou copiat) n InflC ategR . 3. Deschidem cererea InflC ategQ , adugm n gridul ei (vezi fig. 7.1) textul [Introduceti codul categoriei], apoi salvm cererea modificat. Cererea salvat trebuie deschis pentru a verifica dac ntr-adevr putem obine informaia doar pentru o categorie.

F ie ld : CodCat

= : Categorii
Sort; Ascending

C a te g o r ir ^ ^ 0 0

cod P roduct

Introduced codul categoriei j l ....... ......................................................

8f iw :
o r: <l l

01

Criteria: [introduceti codul categoriei]

^Dup ce ap introdus ilifomiaa'&ici, acionai butonul i imediat apare cutia n care se cere s introducem codul categoriei. Introducei, de exemplu, cifra 1, apoi apsai OK i vei obine doar informaia din categoria cu codul 1.

Fig. 7.1. Proiectul cererii InflCategQ . 4. Deschidem raportul InfCategR n imaginea proiect i stabilim ca informaia s fie preluat din cererea cu parametri InflC ategQ . (Vezi instruciunile din fig. 7.2.) 5. nchidem raportul salvnd modificrile. 6. Trecem n fereastr Reports a BD i deschidem raportul recent creat. Pe parcurs va trebui s introducem codul unei categorii i OK, dup care vom obine informaia n form de raport. Astfel au fost dem onstrate urm toarele: 1) proiectarea unei cereri cu parametri; 2) schimbarea sursei de informaie pentru un raport; 3) modul de creare a unei alte cereri prin copierea proiectului unei cereri existente; 4) crearea unui raport nou prin copierea proiectului altui raport deja creat;
52

Access. Ghid de iniiere

Lucrarea de laborator nr. 10

5) modul n care utilizarea cererilor cu parametri ca surse de informaie pentru rapoarte contribuie la lrgirea considerabil a posibilitilor extragerii informaiei.
InflCategR: Report

Informaie pe cate iejori


Report

/ier Filtermv>. V.. . . . , . - O n fiV.v.'; v v O rder B y B yOn.,,.,. Caption, ...-.J ... RecordLocks,
.. I I . . J ...

CuParametrQ DetVinz IncasCateg InflCategQ InfComplet , IntrariCantV LacfcCarneTot PeCategRaportQ i:J|=[Pgej

^Report Footer

'Total genera!

ii

Pentru a schimba obiectul din care se ;age informaia ntr-un raport, e necesar: 1. gtim obiectul care dorim s fie n 1@ vechi. 2 . S deschidem&egt/aport n forma lui de proiect. S facem un click-dreapt a l i e i , apoi s ectm Properties. Obinem pe ecran caseta cu lista deTproprieti pentru ortul dat. 4 . S cfe^raici. Apare o list de obiecte, ofakcare trebuie s selectam ! i nou, ce trebuie s devin surs pentrh^portul dat. 5. Este util de fcut modme^ri i n titlul raportului. (Facei un click aici, apoi modificai titlul n Informaie pentru o singur categorie.) Ateniei Cmpurile obiectulu-surs nou creat trebuie s coincid cu cmpurile celui vechi. n caz contrar, va trebui de modificat i controalele din sectoarele respective ale raportului!

Fig. 7.2. nlocuirea sursei pentru Raportul InflCategR. n continuare se descrie un alt exemplu de modificare a cererilor i rapoartelor. 1. Facem o copie a cererii InflC ategQ deja create, apoi cererii noi (obinute la copiere) i atribuim numele Inf2CatDataQ. 2. Copiem raportul InflC ategR i-i modificm numele (celui nou copiat) n Inf2CatDataR. 3. Deschidem cererea Inf2CatDataQ, introducem n gridul ei [Introduceti codul unei categorii] O r [Introduceti codul altei categorii] n loc de informaia existent, n coloana CodCat, rndul C riteria. n cmpul DataVinz introducem [Introduceti data DeLa] O r [Introduceti Data PinaLa ] in rndul Criteria. 4. Salvm cererea recent proiectat (vezi proiectul din fig. 7.3). 5. Deschidem cererea Inf2CatDataQ pentru a verifica dac ntr-adevr putem obine informaia conform restriciilor date. 6. Deschidem raportul InO C atD ataR n imaginea de proiect i facem ca sursa de informaie s fie cererea nou creat - Inf2CatDataQ. (Vezi paragraful 4.) 7. Salvm raportul InO CatD ataQ .

53

Access. Ghid de iniiere

Lucrarea de laborator nr. 10

8. Deschidem raportul recent obinut (pe parcurs va trebui s rspundem de patru ori la prentmpinrile respective) i vom obine raportul cu informaia filtrat.

T^rec^adat are dpi param etri n Introduced codul unei categoriei Field C odC ai " cmpulTodCaJ^i vktrebui de Table: C ategorii rspuns depkfa ori 3 Sort A scending premtp^inrile re sp g c lb ^ r^ ^ ^ Show:. i------.................................................. C riteria: [Introducei codul unei categonei] O r [Introducei codatei categorii] De asemenea snt^oi pararnhri -n cmputDatjHnn z, la care va4 _ j trebui de n ^ u n s . Deci cererea ^ Field: D ataV inz dat a rp 4 p a ra m e tri, care Table: D etV ing m b u n a constitui; un fel de _ _ la extragerea informaiei. _

Introduced codul altei categorii

Show : ____ j,

........ .........^ ----, r.... ......1 ------J

C riteria: >-[Introducei Data Dela]And <=[introauceti pata PinaLaj

nttBpueets Data Dela

itroduceti Data PinaLa

Cancel

Fig. 7.3. Proiectul cererii Inf2CatDataQ cu instruciunile respective.

7.1. Cum s facem ca s apar doar unele sectoare din raport


n continuare vom proiecta un raport pentru a obine informaia n forma artat n fig. 7.4, n care este afiat informaia despre costurile totale pe fiecare categorie.

Informaie pe categorii
1471

jc o d c t ^ e n c a t :

|cod: jd e rr ' '


L a c ta te Cam e B u tu ri

.. " p n M a s : ^ ^ 08
C o s t to ta l: C o s t to ta l: to t !: 1381 5 7 0 7 .5 720

T o ta l g e n e i al:
Page:

iii

< 11

Fig. 7.4. Costurile totale pe fiecare categorie.


54

Access. Ghid de iniiere

Lucrarea de laborator nr. 10

4 Report Header
_

i L...

.....

Infornlatiepei lateflorii
......

4 Page Header CodCait?'[PenCatT ~|cQdT jden: 4 CodCat Header


CodC Cat

force New Page Row Or Col Keep Together. ---------1 =Date() Visible.......... Can Grow, junMas:jc aCan it Shrink. . . .
Section: GroupHeader2

fS fT a it
I L ,, f Page Footer 4 Report Footer
, .... .... -.I.IIIIII. III I \ llU M L M I IIJ I.II

N a m e , \ /, porce |\je w y a g g v ,, , I New RowjPzol , , , , / Ss^ _ Keeo , , , , ,

. ^

Frm at I T 1 E v / i

GroupHeader2 None None Yes

0ther

A "

\j='Total cjener

. . I I.. .

II

Se deschide proiectul Raportului, sKace un clickyBreapta, de exemplu, Bici, /bi se selecteaz Properties \ de propriet/i pentru sectorul Detail (acesi sector a fost ales). Facem un cliak aid i din list alegem No la proprietatea Visible. Dup aceea facem un click i pe CoaCat Header, apare caseta respectiv, apoi facem No la proprietatea Visible. Astfel am obinut o nou form de afiare a informaiei. Mai jos este prezentat raportul n care nu snt vizibile sectoarele Detail i CodCat Header.
Fig. 7.5. A scunderea unor sectoare din raport. Facem o cop ie a raportului P eC a teg R a p o rtR , i m odificm num ele n P eC a teg T o ta lR , l deschidem n im aginea lui de proiect, apoi urmm instruciunile prezentate n fig. 7.5. Dup ce am fcut m odificrile necesare, salvm proiectul i, de fapt, am obinut un raport nou. n tr e b r i, p r o b le m e , d iscu ii

1. Descriei avantajele i dezavantajele cererilor cu parametri. 2. Descriei cum pot fi proiectate rapoarte cu multe funcii i cum pot fi folosite ele (funciile). 3 . Proiectai un raport cu totaluri pentru fiecare produs vndut din fiecare categorie.

Proiectai un raport pentru a afia informaia despre (s se includ maximul detalii i s se explice cum poate fi simplificat): 1) costurile totale ale produselor din dou categorii anumite (mpreun); 2) informaia n detaliu despre intrri i ieiri; 3) stocurile curente ntr-o anumit zi; 4) produsele repartizate pe categorii; 5) produsele intrate (n ordinea intrrii Ion: 6) produsele vndute ntr-o perioad oarecare

Access. Ghid de iniiere

Lucrarea de laborator nr. 11

Lucrarea de laborator nr. 11

8. Exemple de creare i utilizare a formularelor (Forms)


La deschiderea BD e util ca pe ecran s figureze careva indicaii sau explicaii, sfaturi etc. Dac deschidem o Baz de Date, asemenea cu cea care conine doar obiectele descrise in aceast lucrare, atunci pe ecran va fi una dintre paginile BD cu obiectele respective (Tables - cu lista tabelelor, Queries - cu lista cererilor, Reports cu lista rapoartelor sau M acros - cu lista de macros-uri). i att. Lipsesc indicaii referitoare la aciunile ulterioare. Ar fi mult mai bine dac la deschiderea Bazei de Date, pe ecran ar aprea unele sfaturi, instruciuni. n cazul nostru, ar fi bine ca la deschiderea BD pe ecran s apar un obiect asemntor cu cel din fig. 8.1.
Baza: Form

[r'T'jr; Un astfel de obiect se numete Formular (n englez Form). Acest \poie obiect poart numele Baza isgonine 4 (patru) com^nenteTJbutoane i un control de tip etichet. Evident c, avnd pe ecran un astfel de obiect, este clar ce putem face.

H .b If

Fig. 8.1. Un exemplu de formular instructiv care poate aprea la deschiderea BD. 8.1. C re a re a u n u i fo rm u la r i in serare a (p lasarea) u n u i b u to n n el

Acionm n modul urmtor: 1. Trecem pe pagina Form s a BD i acionm butonul New, far a ataa (lega) vreo tabel sau cerere, apoi alegem opiunea Design. Astfel, vom avea pe ecran imaginea proiect a unui nou formular n etapa de proiectare. -r1 -------------------------------- Casta cu instrumente. lickm aici, apoi trasm
.

emnea ca i la inserarea controalbtar n rapoarte). Dac lipsete, atunci clicknraici i caseta apare. Sectorul ~cu gWd n care pot fi plasate butoanele i controlul. Fig. 8.2. Imaginea proiect a unui formular n etapa iniial de proiectare.
56

Access. Ghid de iniiere

Lucrarea de laborator nr. 11

2. Inserarea unui buton de comand n formular. a) Proiectm i salvm macros-ul OpenPeCategRaportR (vezi fig. 8.3).
OpenPeCategRaportR : Macro
1O penR eport
Report Name View Filter Name
wnere LoncHCion

Deschiderea raportului PeCategRaportR


Action Arguments

PeCategRaportR Print Preview

Pare a fi convenabil de a atribui denumiri care sugereaz coninutul. n cazul nostru macros-ul va trebui salvat cu numele OpenPeCategRaportR.

Fig. 8.3. Proiectul macrosului care va fi acionat la clickarea unui buton i va deschide raportul PeCategRaportR. b) Facem un click n interiorul proiectului formularului n curs de proiectare, apoi facem un click pe butonul Command Button din ToolBox (vezi fig. 8.2). Observm c de mouse s-a agat ceva, trasm un patrulater, cam acolo unde se sugereaz n fig. 8.2. Ca rezultat, imediat apare o caset de nsoire Command Button W izard; clickm Cancel ca s-o nchidem, apoi facem un click-dreapta pe butonul deja plasat. Din lista aprut alegem Properties (de fapt far proprietatea On Clck determinat) i obinem imaginea din fig. 8.4.
ie Command Button: CotnmandO

On Enter.. .. , , On E x it., On Got Foct

Fcnd un click aiciTSpre lista de macros-uri deja create. Trebuie s alegem numele OpenPeCategRaportR, asigurnd ca atunci cnd se face click pe buton, starteaz macrosul dat, care deschide raportul respectiv.

On D WClick,............. On Mouse Down. On Mouse Move On MouseUp, On Key Down.. On Key U p ................ On Key Press.

[Event Procedure] DetaliiStocM

Fig. 8.4. Atribuirea unui macros proprietii On Click. c) Facem un click n interiorul butonului, constatm apariia unei bare verticale licrind, semn c putem modifica denumirea butonului creat. Introducem numele InformCom pleta.
57

Access. Ghid de iniiere

Lucrarea de laborator nr. 11

d) Facem un click pe pagina AII din boxa Com m andButton..., apare toat lista de proprieti. Utilizm bara Vertical Scrolling pentru a afia lista din fig. 8.5. e) Folosind semnele de pe conturul butonului (dac nu snt, atunci facem un click ca s apar), modificm dimensiunile lui ~ ~c s ncap denumirea. Agndu-1 de colul din stnga sus, l putem plasa unde-i mai convenabil. f) Salvm formularul atribuindu-i numele Rapoarte.
* Command Button: CommandO Format j Data | Event ] Other All

Fore Color.................. -2147483630 Font M a r n e M S Sans Serif Pont Si ze, . . . . . . . . 8 Font Weight................Normal Font Italic. . . . . . . . N o Font Underline........... N o Shortcut Menu Bar, . ControlTip Text. . . . Se va afia raportul cu informaia completa)

Clickai aici: pentru culoarea denumirii; ^pentru mrimea literelor. Acest text apare pe un tirmHa poziionarea (fra a face click) mouse-ului pe butonul dat.

Fig. 8.5. Atribuirea proprietilor de Form at i de Sugestie (ControlTip text). Pentru verificare, n pagina Forms a BD, selectm formularul Rapoarte, apoi acionm Open (sau facem un dublu click pe numele formularului). Trebuie s apar imaginea din partea de sus din fig. 8.6.
Acionnd butonul creat H| InformCompIeta din formularul dat Rapoarte, apare -raportul Peb ategRaportR, deoarece macros-ul ataat acestui buton la evenimentul On Open deschide anume acest raport (fig. 8.3, fig. 8.4).

i PeCategRdpoitR : Report

Informaie pe categorii
147/01
CodCat: DenCat: jcod den:

"""fu n M ^
Pachet 0.5L Pachet 0.5L jJ 400 10 2.5 2.5

^o st: ate
1000 1 25 1

1 Lactate

-4
Page! <H

5I [.apte

Lapte

_>j

Fig. 8.6. Verificarea n aciune a butonului InformCompIeta. n calitate de exerciii, n modul cum a fost creat butonul IndormCom pleta, deschidei formularul Rapoarte n imagine de proiect i plasai n el nc 3 (trei butoane): Inform Pe 0 Categ, Inform Pe 2 Categ i Data, Inform doarTotaluri, care

58

Access. Ghid de iniiere

Lucrarea de laborator nr. 11

deschid respectiv rapoartele InflC ategR , Inf2CatDataR, PeCategTotalR. Ca rezultat, formularul R apoarte trebuie s apar n forma din fig. 8.7.
61 Rapoarte: Form

Acionai unul din butoane pentru a afia raportul

Inform Pe 2 Categ si Data Inform Pe 0 Categ Inform Doar Tatlui

"'Controlul dat se proiecteaz n mod analog cum s-a proiectat denumirea n sectorul Report Header ia proiectarea raportului.

4
Fig. 8.7. Formularul Rapoarte cu butoanele care deschid anumite rapoarte. 8,2. C re a re a fo rm u la ru lu i de b az B aza 1. Crem un macros care deschide formularul R apoarte (fig. 8.8).
O p e n R a p o a it e : M a c r o

? ;
Comment Deschite formularul Rapoarte

Action OpenForm

Action Arguments Form Name View Filter Name W here Condition D ata Mode Window M ode Rapoarte Form

Normal

Fig. 8.8. Macros-ul O penRapoarte deschide formularul Rapoarte. 2. Trecem n pagina Form s a BD, facem un click pe New i, far a lega vreun obiect de formularul n curs de proiectare, facem click pe OK, obinem imaginea proiect a formularului nou. 3. Procednd n modul descris mai sus, subparagraful 8.1, proiectm n acest formular butonul cu numele Rapoarte. S fim ateni ca proprietii On Click s-i atribuim startul macros-ului OpenRapoarte. 4 Avind butonul R apoarte deja creat, nchidem formularul atribuindu-i numele Baza. 5. Deschidei formularul Baza facnd un dublu click pe numele lui (sau selectai-1. apoi Open). 6. n formularul deschis Baza facei un click pe butonul R apoarte i ca rezultat trebuie s apar i al doilea formular Rapoarte (creat anterior) deschis, nchidei ambele formulare.
59

Access. Ghid de iniiere

Lucrarea de laborator nr. 11

Remarc. Dac ceva nu-i astfel cum este descris, atunci trebuie de verificat dac ai atribuit corect startul macros-urilor respective la crearea butoanelor.

8.3. Cum s verificm atribuirea corect a proprietilor unui buton


1. Deschidem formularul Baza n imagine-proiect. 2. Facem un click dreapta pe butonul Rapoarte, apare o list i selectm Properties, Ca rezultat apare lista cu proprieti.
\S
Command Button: Command^
Format j Data On Exit On Got Focus.. On Lost Focus,, On Click........... On Dbl Click. . . . On Mouse Down. On Mouse Move. On Mouse Up. , . On Key Down. J , ,,

[Event Procedure] DetaliiStocM OpenlrflCategR 0penInf2CatDataR OpenPeCategRaport OpenPeCategTotalR OpenRapoarte ITotaiRamasInSfcocM |

Ne asigurm s fie toat proprieti. Apoi, folosind bara Scrolling, r em lista aa cum este artataici, apoi verificm dac macros-ul apoarte este n lj^t i este^atribuit. Dac macros-ul dat nu este n list, atunci trebuie s creai acest macros i s v ntoarcei din nou aici.

Fig. 8.9. Verificarea proprietii On Click pentru un buton.

3. Trecem pe pagina Macros, selectm macrosul OpenRapoarte, apoi facem un click pe butonul Design i ca rezultat pe ecran apare imaginea-proiect a acestuia.
Dac imaginea difer de cea artat n fig. 8.8, atunci trebuie s modificm proiectul, apoi s-l nchidem salvnd modificrile (s alegem Yes la prentmpinrile respective). _______ > ::[
SI Baza: Form
8

ffT

-/* y&m

. i 5 > 8 i 1 i 2 i 3 ' i 4

R e ta il

___ -------- --- --------

Acbonati unul din butoanej^ ---------- 1 1 I

iToolbox

Rapoarte
t

Au

abl Q

Acionm^ici ca s apar cutia ToolBox (dac nu este pe ecran). Facem un click pe butonul acesta, de mouse se aga ceva, apoi poziionm butonul u n d e^aici. mndu-1 apsat, micm mouse-ul pin uttSgya aici, relaxm mouse-ul i ca 3ine un patrulater de tip Etichet "eim ^ Labei), m care~puTerrrTntrQducG4extuI cuynit. >electndu-l, apoi folosind semnele de pe frontier, ca i la controale n rapoarte, putem modifica dimensiunile lui. Fcnd un click-dreapta pe acest control, apoi alegnd Properties din lista de opiuni, pe ecran apare lista cu proprieti cu ajutorul crora putem alege culorile, mrimea, tipul fontului etc.

Fig. 8.10. Inserarea unui control de tip etichet (Labei) pentru comentarii.
60

Access. Ghid de iniiere

Lucrarea de laborator nr. 11

8.4. Inserarea n formular a unui obiect pentru comentarii


Asigurai afiarea imaginii-proiect a formularului Baza (sau prin selectarea lui, apoi Design, sau dac este deja pe ecran i nu-i n imagine de proiect, atunci facei un click pe butonul Design View din bara standard). Asigurai prezena pe ecran a casetei cu instrumente ToolBox (fig. 8.10). 3. Atribuii proprietile respective, salvai formularul, apoi deschidei-1 n imagine de formular propriu-zis. Dac imaginea difer substanial de cea din fig. 8.11, atunci deschidei acest formular n imaginea lui de proiect i facei modificrile cuvenite ca s obinei anume imaginea dat. Astfel, vei nva s proiectai formularul n aa mod, ca imaginea lui s fie cea scontat.

Acionai butonul potrivit!

| Rapoarte!
zl
Record: H | 11 ~ of 1

Fig. 8.11. Formularul Baza cu dou obiecte (un buton i un control de tip Labei).

8 .5 ,/ Deschiderea In mod automat a formularului Baza la deschiderea BD


Proiectm un macros cu proiectul artat n fig. 8.12 i l salvm cu numele AutoExec. nchidem BD. Deschidem BD i pe ecran apare formularul Baza deschis. Dac acest lucru nu se ntmpl, atunci verificai mai nti numele macros-ului, apoi proiectul lui.
AutoEicec : Macro
Action ion | Comment Deschide formularul Baza

r~ Z F
Form Name View Filter Name Where Condition Data Mode Window Mode

zi
Baza Form

Action Arguments

Datorit faptului c numele acestui macros este AutoExec, el starteaz imediat ce este deschis BD. Evident c acestui macros i putem ataa i alte aciuni.

Normal

Fig. 8.12. Proiectul macros-ului AutoExec.


61

Access. Ghid de iniiere

Lucrarea de laborator nr. 11

n calitate de exerciii, la inserarea butoanelor n formulare, facei c n formularul

Baza s fie incluse nc dou butoane, far a le atribui aciuni la activarea lor. Acest lucru poate fi realizat ntocmai cum a fost inserat butonul Rapoarte, ns s fie excluse procesele de creare a unor macros-uri i atribuirea proprietilor On Click a aciunilor
de deschidere a lor (macros-urilor). Ca rezultat trebuie s obinei o imagine a formularului Baza (fig. 8.13).
SE Baza: Foim A cio n ai b u to nu l potrivit!

jlnifari sau Ieiri]

Cereri

Rapoarte

Deoarece proprietii On Click pentru butoanele Intrri sau Ieiri i Cereri nu i s-a atribuit nici o aciune, la clickarea lor nu se va ntmpla nimic. La clickarea butonului Rapoarte se va deschide formularul Rapoarte cu cteva butoane n el, care pot deschide rapoartele respective.

Record; | <I I

> I M of 1

Fig. 8.13. Formularul Baza, care se deschide automat dup deschiderea BD. nchidei i deschidei baza de date de vreo cteva ori ca s verificai dac formularul Baza se deschide automat i, n caz de necesitate, facei modificrile respective ca s asigurai acest lucru. Remarc Proprietilor On Click pentru butoanele Intrri sau Ieiri i Cereri li se vor atribui valorile cuvenite mai trziu.

ntrebri, probleme, discuii


1. n ce scop poate fi folosit un formular? 2. Propunei i alte scheme de organizare a lucrului n procesul de exploatare a BD. 3. Numii aciunile pentru ca la deschiderea BD s se ndeplineasc anumite lucruri n mod automat. Dai exemple. 4. Ce este un buton i ce snt proprietile din grupul Event? 5. Cum putem determina vizual n ce fel de imagine (proiect sau formular) este deschis un obiect? 6. Cum putem verifica ce se va ntmpla la acionarea butonului dat? 1. Pentru ce pot fi folosite opiunile din grupul Format din lista de proprieti? 2. Cum se insereaz comentarii n formular i n ce scop? 3. Argumentai avantajele i dezavantajele utilizrii Wizard Design-ului la proiectarea unui buton. 4. ncercai n loc de toate formularele proiectate mai sus s creai doar unul i s inserai n el diverse grupuri de butoane, ca drept rezultat, la deschiderea BD, s apar anume acest formular nou, proiectat de dv. 5. Explicai avantajele i dezavantajele acestor dou modaliti de utilizare a formularelor la rezolvarea uneia i aceleiai probleme. 6. Pentru a obine o imagine mai plcut i mai comod, ncercai s inserai n formulare i alte obiecte geometrice.
62

Access. Ghid de iniiere

Lucrarea de laborator nr. 12

Lucrarea de laborator nr. 12

9. Un mod de organizare a lucrului cu cererile


Ca i pentru rapoarte, pare a fi mult mai comod dac am avea un formular, n care s se conin anumite butoane, la acionarea crora s se deschid cererea respectiv, n acest scop: 1. Trecei n pagina Form s a BD, acionai New i (fr a lega formularul dat de careva obiect) pe ecran se obine imaginea-proiect a unui nou formular. 2. Creai macros-ul OpenCostAman, care deschide cererea Cost Aman, apoi salvai-1 cu numele OpenCostAman.
g . O penCosnA m an: Macro

Action

Comment Deschide cereea CostAman Action Arguments

zl

Query Mame View Data Mode

Cost Aman Datasheet Edit

Fig. 9.1. Proiectul unui macros care deschide o cerere. 3. Facei un click n interiorul proiectului formularului nou i, n modul descris mai sus, creai un buton, atribuindu-i proprietii On Click startul macrosului OpenCostAman (vezi fig. 9.2).
Command Button: CommandO
I 1 I 2 I 3 I

Format j Data j Event | Other Font Si ze, , , .......... 10 Font Weight , . . . . . . Extra Bold Font I t a l i c , , . . , . . , Font Underline , Shortcut Menu Bar.. ControlTip Text. . , . Help Context I d . , , , Tag............ On Enter. ............... On Exit. . . . . . . . . . On Got Focus.......... On Lost Focus,, . . , On Click. . . . . . . . . . OpenCosnAman Informaii despre toate vinzarilelr 0 No No

4 Detail

I 1 la < I Vinzarile in detalii

Mrixnea fontului -10. "ont evideniat Extra B S J La poziionarea mouseului pe buton apare pe un timp scurtnjesajul. La^li^k^aDutonului starteaz macros-ul. Semnele (ptrate negre pe contdrul butonului) nesdgereaz c ^Proprietile date snt atribuite butonului marcat.

! Fig. 9.2. Atribuirea unor proprieti pentru un buton. 4. Salvai formularul cu numele Cereri, apoi nchidei-1.
63

Access. Ghid de iniiere

Lucrarea de laborator nr. 12

5. Trecei pe pagina Forms i deschidei formularul (cu un dublu click sau selectai-1, apoi Open), apare formularul cu butonul respectiv. Facei un click pe butonul creat i se va deschide cererea respectiv, (a se vedea imaginea n fig. 9.3). Ateniei Ferestrele pot fi una peste alta, agai-le de titlu i permutai-le, iar, agnd marginea ferestrei, putei modifica dimensiunile ei. Acionai n modul cuvenit pentru ca pe ecran s fie imaginea din fig. 9.3. 6. Trecei n proiectul formularului Cereri i inserai n ele nc dou butoane: Total Pe Categorii i Total pe zile, la acionarea crora s se deschid cererile TotlGR i TotalPezile, respectiv. 7. Inserai i un control de tip Labei (pentru informaie explicativ). 8. Salvai formularul, nchidei-1, apoi deschidei-1 din nou. Ca rezultat vei obine o imagine similar cu cea din fig. 9.4.
Facnd un click aici, se selecteaz o coldan, sapoi, fcnd un c/lick aici, tabela Coi t Aman va fisort^lMn cretere. AstfiTputem sorta informaia dup orice coloan. Fcnd un click n interiorul tabelei-cereri, cererea devine activ, apoi, facnd un click pe butonul respectiv, obinem proiectul cererii date i putem face chiar i unele modificri pentru a obine ceea ce dorim. La nchiderea cererii, putem salva i modificrile, dac dorim.

Den came Lapte Apa Came Apa Apa Lapte came came Lapte

UnMas Kg L But.2L Kg But.3L But.2L L Pachet Ikg Pachet 0.5 kg Pachet 0.5 L

Cant
05/05/01 100 06/05/01 20.7 06/05/01 30 06/05/01 50.25 05/06/01 100 30 06/05/01 50.5 06/05/01 30 11/05/01 20 /06/01 l i /05/01 10 15/07/01 0 i > 1 |* * | of 10

cord: H | _jl

P ret 30 5 2 25 3 2 5 30 15 2.5 0

cost 3000 103.5 60 1256.25 300 60 252.5 900 300 25

Fig. 9.3. Deschiderea unei cereri prin acionarea unui buton.

9.1. Deschiderea formularului Cereri prin acionarea Cereri din Baza

butonului

1. Creai macros-ul OpenCereri (fig. 9.5). 2. Deschidei formularul Baza n imagine de proiect. 3. Facei un click-dreapta pe butonul Cereri, alegei Properties din lista aprut, apare lista de proprieti, atribuii valorile cuvenite i, ca rezultat, pe ecran se va obine imaginea din fig. 9.6.
64

Access. Ghid de iniiere

Lucrarea de laborator nr. 12

4.

Salvai formularul i apoi proiectai macros-ul OpenCereri.

Acionai unul din butoanele ont Controlul de tip Labei cu comentarii. toanele care asigur trecerea de la
imaginea-proiect la cea de formular

i^~pmpriiL-zis (ijnvers").
Fiecare dintre achite butoane, fiind acionate (facnd cte un click pe ele), deschide o anumit cerere, cea inclus n macros-ul respectiv ataat la proprietatea On Click a butonului.

Fig. 9.4. Fiecare buton din formular asigur deschiderea unei anumite cereri.
1 M O p e n C e ie r i : Ma< Action ^ JL Action Arguments Form Name View Filter Name W here Condition D ata Mode Window Mode Comment | 1^ | jd

Normal

Acest macros va deschide formularul ereri n imagine de brm. In calitate de arametri se mai pot folosi i alte posibiliti, care pot fi utilizate la un alt nivel de proiectare a BD. Valoarea Normal este cea oportun n acest caz.

Fig. 9.5. Proiectul macros-ului OpenCereri. 5. Facei un click pe butonul cereri n formularul Baza i ca rezultat trebuie s se deschid formularul Cereri. 6. In caz c acest lucru nu se ntmpl, verificai, mai nti, dac macros-ul respectiv este atribuit proprietii On Click pentru butonul Cereri, apoi dac macros-ul O penCereri are ca aciune deschiderea acestui formular.

Access. Ghid de iniiere

Lucrarea de laborator nr. 12

I 1 I 2 I 3 I 4 I.1 5 I 8 I 7 I > ) ;Format I Data 1 Evert I Other


Pont Size, , . . . . . , , 12

Detail

..---7......-..:..r

...1 --.. -T........r

Font Weight. . . , , , . Extra Bold

Acionai butonul potri


b C r r I I I Shortcut Menu Bar,.

ControlTip Text,,,... La acionare se va deschide formularul Cereri Help Context Id , . . , 0 Tag........................ On Enter............ OnExit.. . ........... , On Got Focus, On Lost Focus..,.. On Click.. . . . . . . . . . OpenCereri nw

Intrri sau Ieiri

Fig. 9.6. Proprietile atribuite butonului Cereri,

ntrebri, probleme, discuii


Creai i salvai cererile pentru afiarea informaiei despre: 1) lista produselor intrate ntr-o perioad anumit; 2) lista produselor ieite n dou zile anumite la preul cuprins ntre dou valori; 3) lista de produse i costul lor, ieite astzi (ieri); 4) costul total al produselor care ieri nu au fost solicitate la cumprare; 5) cantitile de produse care n-au participat la vnzare n ultima sptmn. Creai un macros (sau n alt mod) pentru a determina dac au fost achiziionate produse care nu snt solicitate pentru vnzare n perioada dat. La crearea cererilor, n scopul universalizrii, n cazurile posibile, s se utilizeze parametri. Argumentai avantajele utilizrii cererilor cu parametri. Dai exemple, cnd nu este convenabil de folosit cereri cu parametri. Argumentai avantajele utilizrii parametrilor la cereri de tip Append, Delete i

.
Creai un formular nou i inserai cte un buton pentru a deschide fiecare obiect creat. Argumentai comoditatea sau incomoditatea utilizrii formularelor cu butoane pentru deschiderea obiectelor.

66

Access. Ghid de iniiere

Lucrarea de laborator nr. 13

Lucrarea de laborator nr. 13

10. Organizarea procesului de introducere a informaiei


Organizarea corect, comod i eficient a introducerii informaiei ntr-o baz de date este una dintre cele mai responsabile aciuni. De aceea, la proiectarea unei BD se acord o atenie sporit modului de introducere a informaiei. De regul, la exploatarea unei BD cel mai mult timp se pierde la introducerea informaiei. Plus la aceasta, se mai cere i o atenie sporit, lat de ce, n etapa de proiectare a bazelor de date, este indicat s se creeze anumite faciliti, astfel ca timpul necesar procesului de introducere a informaiei s fie redus la minimum. Pe de alt parte, putem fi constrni de nivelul cunotinelor n acest domeniu. De aceea este rezonabil s inem cont de posibilitile reale. n continuare vom descrie cteva modaliti de organizare a procesului de introducere a informaiei.

10.1. Introducerea direct a informaiei n tabele


Aceast metod se realizeaz destul de simplu. Din partea proiectantului BD nu se cere dect s-i demonstreze utilizatorului o singur dat cum se introduce informaia. Amintim c, n acest caz, pentru a introduce informaia despre intrrile de marfa, este necesar de a deschide tabelele DetVinz, Product, Categorii n aa mod, ca s fie afiate pe ecran toate concomitent. Apoi modificm dimensiunile lor i aranjm tabelele astfel, nct s fie vizibile toate trei n orice moment. Cel mai des va fi adugat informaia n tabela DetVinz, apoi n Product (mai puin ) i n Categorii (cel mai rar). Acest mod de introducere a informaiei este cel mai uor de organizat pentru proiectant, ns nu este chiar att de simplu i comod pentru utilizator (dup ce vom cunoate i alte posibiliti, acest lucru va deveni evident).

10.2. Utilizarea cererilor i a unui macros la introducerea informa iei n tabele


1. Proiectm 3 cereri (vezi proiectele lor n fig. 10.1).

Field:

Table:
Soft Show:

Cod DetVire

CantV DetVinz

DataVinz DetVinz

C riteria:
or:

TW ~

0 .

Field den Table: Product Sort: Show: 0 Criteria: g:

UnMas Produc

Pret Produci

codcat Product

_ 0

Field CodCat Table: Cateqo Sort: Show: Criteria: nr

DenCat Categofi

Descrieri Categorii _ 8

Fig. 10.1. Proiectele cererilor IntrariCantV, ProductQ, CategoriiQ


67

Access. Ghid de iniiere

Lucrarea de laborator nr. 13

Ateniei nainte de a salva fiecare dintre proiectele din fig. 10.1, modificai-le dimensiunile respective i poziionai-le pe ecran anume n acest mod. Astfel se va asigura afiarea tabelelor anume cu aceste dimensiuni i n locurile respective.
2. Crem macros-ul cu proiectul din fig. 10.2 i l salvm cu numele IntrariD eM arfa. 3. Trecem pe pagina M acros din baza de date i deschidem (printr-un dublu click sau selectare i Open) macros-ul IntrariD eM arfa. Ca rezultat trebuie s obinem imaginea din fig. 10.2.1. 4. n cazul dac tabelele nu snt aranjate corect, deschidem unul cte unul proiectele celor 3 cereri, facem modificri la coloane, modificm dimensiunile ferestrelor, poziiile lor, apoi le salvm ca s obinem cele scontate.

Action OpenQueryl )penQ uery

Comment Cererea IntrariCantV ProductQ CaregoriiQ

Query Name View Data Mode

IntrariCantV Datasheet Edit

Fii ateni ca, la selectarea rndului respectiv din Action pentru cererea datjdci s^-BpedtlHQsau CategoriiQ pentru a deschide cererile respective. Cererea trebuie salvat cu numele IntrariDeMarfa.

Fig. 10.2. Proiectul macros-ului IntrariD eM arfa care deschide trei cereri.

Infxj

C od C antV D atoYm
300 100 200 78 3oo 45 679 45 100 39 570 05/05/01 06/05/01 r 06/05/011 06/05/01} 05/06/01 ; 06/05/011 06/05/01 j 11/05/011 11/06/011 11/05/011 12/07/01!

cod

den

UnMas

P'et codcat

1 Came 3 Came

Kg Pachet0.5K( L Pachet 0.5L But. 2L But. 3L

2 Came Pachet lKg


Record: l < h I f

co rd : JlLJl

Pozimatffd mouse-ul pe desprire a dou coloane (cmpuri), putem aga i modifica astfel limea coloanei, n imaginea dat avem trei liste obinute prin deschiderea cererilor respective.
------------------------- "T

Fig. 10.2.1. Imaginea concomitent a celor trei Cereri-tabele.

68

Access. Ghid de iniiere

Lucrarea de laborator nr. 13

Concluzie. Acest mod este mai accesibil: nu este necesar de fiecare dat s modificm poziiile i dimensiunile tabelelor. In plus, observai c n tabela din stnga se conin doar 3 coloane, i nu 4, aa ca n tabela DetVinz. Remarc. Pentru organizarea introducerii informaiei despre vnzri, n proiectul macros-ului respectiv va trebui n loc de cererea IntrariCantV de inclus cererea VinzariCant, care, de fapt, se bazeaz pe aceeai tabel, ns n proiectul ei, n loc de cmpul CantV, trebuie de inclus cmpul Cant. n rest, totul este la fel. In calitate de exerciiu, proiectai mai nti cererea VinzariCant (numai dac aceast cerere nc nu-i proiectat). nainte de salvare, poziionai-o n partea stng cu dimensiunile corespunztoare. Proiectai macros-ul cu numele lesiriCant (asemntor cu cel din fig. 10.2) (s nu fie inclus operaia de deschidere a cererii CategoriiQ) i salvai-1. Pentru verificare, deschidei-1 i verificai dac apare imaginea din fig. 10.3 (observai c tabela Categorii lipsete, deoarece la vnzri nu este necesar).
Ar fi bine dac n acest loc ar fi o 2 tabel, n care s se 2 arate stocurile 2 curente, pentru a 1 verifica vizual 1 cantitile respective. 3 | Observai diferena: 3ci este o alt 0 coloan din tabela DetVinz.

cod 100 20.7 30 50.25 100 30 50.5 30 20 10 400


100

deit

UnMas Kg Pachet 1Kg Pachet 0.5K{

Pret codcat

i 7 6 4 2 3 5 5 7 0 ecord: iii

06/05/01 06/05/01 06/05/01 ym 05/06/01 ; 06/05/01 06/05/01 I I 11/05/01 IB ' 11/06/01 Hi 11/05/01 II 12/07/01 i i 12/07/01 V 15/07/01

'

30 30 15 SLQaine 4 Lapte'' 5 5 Lapte PacheTtT5Lv^ 2.5 6 Apa But. 2L . 7 Apa But. 3L 3 0 0 Q i Came 2 Came


Record; I; M

| |

1 M * 1of 7

1 >

Fig. 10.3. Imaginea tabelelor-cereri la introducerea informaiei despre vnzri.

10.3. Posibiliti de afiare a stocurilor curente la momentul vnz rilor


Posibilitatea de a avea informaie despre stocurile curente n momentul vnzrilor poate asigura ntr-o oarecare msur evitarea introducerii eronate n coloana Cant. Cantitile curente din stoc afiate pe ecran n momentul efecturii operaiilor de vnzare snt o informaie destul de necesar pentru vnztor. ns asigurarea calculrii stocurilor curente la fiecare operaie de vnzare complic i mai mult proiectarea BD. n scopul modificrii BD realizm urmtoarele: 1. Facem o copie a macros-ului DetaliiStocM, apoi i modificm numele in DetaliiStocMM. Macrosul DetaliiStocM, care afieaz pe ecran tabela RamasInStocT, a fost proiectat n una din lucrrile de laborator precedente.

69

Access. Ghid de iniiere

Lucrarea de laborator nr. 13

2. Proiectm cererea RamasInStocQ (nainte de salvare, poziionm proiectul cu dimensiunile respective n partea dreapt-sus a ecranului).
ai1 RamasInStocQ : Seleet Query

Field:

Table:
Sort: Show: Criteria: or:

cod RamasInSto 0

Den1 Ramai nS 0

T ofcalRamas RamasInStocT__ 0

Dimensiunile ferestrei-proiect trebuie s fie cam aceleai ca la cererea CategoriiQ. Ea trebuie plasat, nainte de salvare, tot n acelai loc al ecranului. Acest lucru ne va asigura ca tabela respectiv s apar anume n acel loc i s ocupe doar spaiul rezervat ei.

Fig. 10.4. Proiectul cererii RamasInStocQ. 3. Modificm ultima aciune din macros-ul DetaiiStocMM. (n loc de aciunea OpenTabele includem aciunea OpenQuery, apoi, mai jos, n loc de numele tabelei RmasInStocT inserm numele RamasInStocQ.) 4. Salvm macros-ul DetaiiStocMM, apoi l deschidem cu Open pentru a verifica dac apare tabela cu informaia despre stocuri. Dac informaia nu apare, atunci corectm cele necesare. 5. Proiectm i salvm un macros IesiriCantM (vezi proiectul n fig. 10.5).

1M

Avei grij ca pentru rndurile (aciunile) de Comment I^ Action L _ ^ __ - - -aici, atunci cnd vor fi OpenQuery \ ^eschide VinzariCant uescl1c adi^tQ -J /delectate primele dou OpenQuery starteaza rnacrosul DetaiiStocMM S S I aciuni, s fie numele RunMacro p 1 -VinzariCant sau numele Action Arguments / ProductQ, respectiv. i g
IesiriCantM : Macro

'

Macro Name Repeat Count Repeat Expression

DetaiiStocMM

Fig. 10.5 Proiectul Macos-ului IesiriCantM . 6. Trecem pe pagina M acros i deschidem macros-ul IesiriCantM . Vom obine pe ecran imaginea din fig. 10.6.

Concluzie. Afiarea pe ecran a tabelei cu informaia despre stocurile curente asigur ca informaia respectiv s fie verificat vizual. O verificare, cel puin vizual, n mod sigur, poate diminua volumul de erori la introducerea cantitilor de marfa vndut.
70

Access. Ghid de iniiere

Lucrarea de laborator nr. 13

Cod

Cant

DataVinz 05/05/01 06/05/01 06/05/01 06/05/01I I 05/06/01 06/05/01 L 06/05/01 '

cod

den

UnMas

Pret codcat 30 15

cod j P eni

30 50.25 ........i.L 7 100 6 30 4 50.5

1 4 6

RamaslnStocQ: S

1; Came 2 Came 3 Came 4 Lapte

Pachet 0.5K| L .............

}Came 2 Came 4 Lapte 5 Lapte 6 Apa 7 Apa

/455 30.001 160.00| 1415.60 8 398.001 370.00 ^ 1078.00

20.7

Pachet 1Kg ; 30

5
2.5

5 Lapte Pachet 0.5L 6; Apa :But. 2L

2
3

30

20

5 >

1 0
400

But. 3L 3 7 Apa 11/05/01 0 0 11/06/01 Atragem atenia c informaia din 11/05/011 12/07/01 12/07/01 15/07/01

5 . 7;^ o U1

100

aces^tabel este adecvat la momentul deschiderii macros-ului IesiriCantM. Pentru a rennoi informaia, trebuie de nchis toate aceste tabele, apoi de deschis din nou IesiriCantM (prin nchiderea tuturor tabelelor i prin startul din nou a macros-ului IesiriCantM).

Fig. 10.6. Imaginea ecranului la introducerea informaiei despre vnzri. 10.4. U tilizarea u n u i fo rm u la r la in tro d u cerea in fo rm a iei desp re in tr r i sau ieiri Incomoditatea evident la utilizarea procedeelor precedente de introducere a informaiei const n faptul c, de fiecare dat, trebuie s inem minte care macros trebuie de deschis. Acest lucru poate fi depit prin utilizarea formularelor. Deci, din nou este necesar de fcut modificri, care vor conduce la complicarea n continuare a procesului de proiectare a BD. n schimb, pentru utilizatori, includerea unor noi posibiliti, obiecte va face BD mult mai comod la exploatare. In acest scop acionm n felul urmtor: 1) proiectm un formular nou, care conine dou butoane: In trri i Ieiri. 2) atribuim proprietilor On Click aciunile de deschidere a macros-urilor IntrariD eM arfa i IesiriCantM , respectiv, pentru butoanele In trri i Ieiri. (vezi fig. 10.7).
Command Button: Command!

1 ' 1 1 ' 2 1 ' 3* 1 '


7rzrrrcr: rziT.
I
# Detail

Format | Data | Event ] Other

All

j Moc

-:i ^ A c io n a i u n u

I.....

In tr r i

1
nr.

F
le s ir i

Shortcut Menu Bar, , a j ControlTip Text, , . . Pentru infirma'ia la iesire, vinzari Help Context Id , 0 Tag.................................................................................. On Enter. . t .1^1 On E x it, . , ................. On Got Focus............ On Lost Focus......... 1 On C l i c k I e s i r i C a n t M On Dbl Click. . . . . . . jd .

Fig. 10.7. Atribuirea proprietilor pentru butonul lesiri.


71

Access. Ghid de iniiere


s ^ V 5 < A 11 >ffi Format ]

Lucrarea de laborator nr. 13

/.

Y \

'

. i . 1 . I . 2 i 3 * l 4 I ........... 1 ..........: . 1 ...........1 ............. 1 ....

Data

] Event ] Other

AH

4- Detail

Shortcut Menu B a r . . ControiTip T e x t . . . .

Pentru informa'ia la intrarea marf

*1

Acionai unu
1 ! 1 f

Help Context d , , . , 0 T a g ............ On Ent er . . . . . . . . . On E x it...................... On Got Focus............ On Lost Focus . . . . . On Click. . . . . . . . . . On Dbl Click ...............

"

Intrri Ieiri

J
IntrariDeMarfa

zJ

Fig. 10.7.1. Atribuirea proprietilor pentru butonul Intrri.


8i Intrri ieiri : Form

Acionai unul din butoane


i Intrrii

Ieiri

Acionarea butonului Intrri va afia pe ecran imaginea din fig. 10.2, iar acionarea butonului esiri cea din imaginea 10.6.

Record H |

i * J of i

Fig. 10.8. Formularul pentru activarea tabelelor la introducerea informaiei.

10.5. Deschiderea formularului Intrri Ieiri prin acionarea butonu lui Intrri sau Ieiri din formularul Baza
1. Proiectai macros-ul Openlntrarilesiri (vezi proiectul n fig. 10.9). 2. Deschidei formularul Baza n imaginea-proiect, iar butonului In trri sau Ieiri atribuii-i proprietile respective (vezi fig. 10.9). 3. Salvai formularul Baza, apoi deschidei-1 n forma de lucru. 4. Acionai butonul Intrri Ieiri i se va deschide formularul Intrri Ieiri. 5. Acionai butonul Intrri i vei obine imaginea din fig. 10.2. 6. nchidei toate tabelele afiate n imaginea din fig. 10.2. 7. Acionai butonul Ieiri din formularul Intrri Ieiri; trebuie s apar imaginea din fig. 10.6. 8. nchidei tabelele artate n imaginea din fig. 10.6. 9. nchidei formularul Intrri Ieiri.

Remarc. Dac ceva nu va decurge n modul descris mai sus, atunci trebuie de gsit etapa n care ai procedat greit. Verificai nc o dat toate proiectele i valorile atribuite proprietilor butoanelor respective.
72

Access. Ghid de iniiere

Lucrarea de laborator nr. 13

Action Arguments Form Name View Filter Name Where Condition Data Mode Window Mode Intrri Ieiri Form

Norm al

F o rm a t] D a c a ]E v e n t )O th e r A ll J S h o rtc u tM e n uB ar,. A oti ^o n ^ ro ^P^ * -eV d e sc h id efo rm u la ru lIn tra rile sirij H e lpC o n tex tId.... 0 .............. nE nter.......... Intrri sau Ieiri | O ,L O nE x it, O nG o tF o cu s...... O nL o stF o cu s..... O nC lic k ....... . O p e n ln tra rile siri O nD b iClick,,.,,..

....

Fig. 10.9. Proiectul macros-ului O penlntrarilesiri i atribuirea proprietilor pentru butonul In trri sau Ieiri. ntrebri, probleme, discuii 1. Argumentai comoditatea modurilor de introducere a informaiei de pe poziiile utilizatorilor i proiectanilor innd cont de nivelul diferit de competen a acestora. 2. Propunei procedee, care, dup prerea dv., snt mai simple i mai comode (att pentru proiectani, ct i pentru utilizatori). 3. Propunei alte formulare, care pot fi deschise n alt ordine - scopul fiind unul: asigurarea lucrului mai comod, att pentru utilizator, ct i pentru proiectant. 4. De ce la afiarea listelor despre categorii i produse se folosesc cereri? 5. Care este cauza c, din cnd n cnd, la introducerea informaiei la ieire, trebuie de nchis toate listele, apoi de startat din nou macros-ul respectiv? Ct de des trebuie s facem acest lucru? Argumentai. 6. Propunei alte procedee de rennoire a informaiei despre stocurile curente. 7. Propunei alte formulare, cu comentarii mai multe i mai detaliate, la introducerea informaiei. 8. Este oare convenabil ca n formulare s se fac comentarii voluminoase? Argumentai. 9. Care lucruri par a fi incomode la introducerea informaiei? Cum pot fi nlturate? 10. Ce date noi mai snt necesare la introducerea informaiei i cum putem pregti astfel de informaie la nivelurile de complexitate descrise mai sus? 11. Caracterizai posibilitile reale ale unui utilizator nceptor, necesare pentru nsuirea procedeelor de lucru descrise mai sus. Care dintre ele, dup prerea dv., pot fi nsuite ntr-un timp relativ scurt? Argumentai. 12 . Gndii-v cum i unde, la locul de activitate, ai putea utiliza o BD similar ca structur.

73

Access. Ghid de iniiere

Lucrarea de laborator nr. 14


Lucrarea de laborator nr. 14

11. Utilizarea formularelor la introducerea informaiei


1. Crem cererea ListaProdQ (vezi fig. 11.1), o salvm, apoi o nchidem.
LstaPiodQ : Select Queiy


den UnMas Pret codcat

Field: Table: Sort: Show: Criteria: or:

cod Product

den Product Ascendim

UnMas Product

Pret Product

codcat Product

Lista de mrfuri obinut de aceast cerere va fi utilizat ulterior la proiectarea unui control de tip ListBox. Ordinea coloanelor n aceast cerere este important. Nu este necesar de inclus toate cmpurule din Product. Lista de produse va fi sortat n cretere (Ascending).
TFTT"

Fig. 11.1. Proiectul cererii, care va fi utilizat la crearea unui control de tip ListBox. M b .

sectorul Detail nu In prima etapa4i proiecti lele sau se este nici un Cont cmpuri a insereaz, sau < Da,c li^ta obiectului legat < $ -\ lipsete, facei ur i un pfick pe lipsete, facei un click aicT,
^ant i DataVinz, apotrecei- sectorul ^taJFal formularului (aseme#a ca i la ^ unui raport^r^njai-le aa cum 6ste aici, apoi trasai 'controlul atesta (ca p a trasarea ikjs controalelorg^jatPtrfotaluri la proiectarea Cant .4* abl Q (I 17 T DataVinz 1 itorhimediat apareJista cu proprieti. Completai valorile proprietilor n modul indicat. Explicaii List Box: Marfa va fi luat din A ll Format | Data | Event j Other lista prezentat decererealbistaProdQ, cu N a m e M arfa 5 coloane, dem isurile coloanelor se vor Control Source,, -yafjja^Jtirl^coloanelor vor avea Row Source Type Table/Query fimensiunile, informaia va fi luat din Row Source ListaProdQ m m a coloan i inclus n coloana cu Column Count 5 Column Heads., Yes . nele cod al tabelei legate de acest 1cm ;2cm ; 2cm ; lcm; 0,505cm ^ Column Widths, : adic n tabela DetVinz. Controlul Bound Column,, dat are numelej^Jarfa.

Fig. 11.2. Proiectarea unui control ListBox.


74

Access. Ghid de iniiere

Lucrarea de laborator nr. 14

2. Trecem pe pagina Forms, clickm New, va aprea o fereastr nou i va fi necesar de legat acest formular de tabela DetVinz (legtura se face selectnd denumirea tabelei dintr-o list ataat unei cutii), clickm OK i vom obine imaginea-proiect a unui formular nou. n acest caz, deosebit de cele proiectate anterior, formularul va fi legat de tabela DetVinz. 3. Dup ce am ndeplinit ntocmai indicaiile din fig. 11.2, facem un click-dreapt ntr-un loc liber n sectorul Detail, ca rezultat apare o list, apoi n lista aprut selectm Tab O rder, apare o alt caseta (vezi imaginea din fig. 11.3). n continuare acionm conform indicaiilor.
f j lesiriFom: Form

Format j Data I Eveht j Other Record Source...... betVinz Filter,, , _ _ _ _ _ _ _ I Order B y. . . . . . . . . . . . I Allow Filters, , ..... res Default View....... "V tew jJU lQ Sjed. , , , , Datasheet A lowEditTrrrrT^r^JeJ
Facem ca ordinea controalelor rTI fie anume aceasta (urmai (indicaiile), apoi cT cK amOK. Facem un click-draipta' undeva aic Detail, seje^fcatrroperties i apare list degp&pfeti n care trebuii s inserai/ atasheet pentru Default View i yiews

Buildgvent, !i TabOrder,,

Section V < Retail

Custom Order:

* Form &
Form Footer
Click to select a row, or click and drag to select^ multiple rows, Drag selected row(s) to move them to desired tab order,

Allowed. ^ ^4!_ k k y
afiarea formularului n forni de tabel. Remarc. Cutiile Tab Order, Form nu snt afiate n acelai timp, aici snt prezentate mpreun pentru explicaie.

Cancel

Auto Order

Fig. 11.3. Ordinea cmpurilor (Tab O rder) i modul D atasheet de afiare a for mularului. 4. Dup ce am ndeplinit toate aciunile indicate n fig. 11.3, acionm butonul respectiv pentru a trece la imaginea D atasheet a formularului (adic s vedei cum apare formularul n form de list). 5. Avnd imaginea D atasheet View, ncercm lucrul cu utilizarea controlului ListBox (fig. 11.5).
75

Access. Ghid de iniiere

Lucrarea de laborator nr. 14

llP I ijia
: | Design View

lesfForm
CodMarfa:

Biitban^ pentru trecere ae la o form de V i are la alta. Design VieW r~ imagineaproiect,

cod

DataSaeet view
imagine n form d tabel,

Form View form de formular (vom vedea puin mai trziu).


cord,

| den iApa Apa Came Came Carne Lapte Lapte

06/05/* 50.25 etVinz. 100 05/06/011 | UnMas |Pret h i c f^ c e s ta este un control de I i i 13 tip ListBox, care leag (But. 3L But. 2L 2 3 tabela Product de DetVinz 2 S Pachet 0.5Kg 15 (prin intermediul primei 2 Pachet lKg 30 coloane din cererea 30 2 Kg ListaProdQ i coloana Pachet 0.5L 2.5 1 Cod din DetVinz). 5 1 L Trebuie de lrgit controlul
;;" 5 1 H M i of 13

Denumiril^i^lotielor snt cele IcKetele din formular, ordinea lor este stabilit n caseta Tab BataVin Order, forma n care apare *415/05/01] Informaia este ca i o tabel 2074 esta-i Datasheet View). ^ 1 30 Acestea snt controale legate direct

N <

Cod din formular c s se vad n ntregime coloana

cod.
Fig. 11.4. Formularul lesiriForm n D atasheet View.
esriFonn : F c
C odM arfa: |

cod 6 3 Req 2 1 5 4

05/135/01 100 06/05/01 20.7 06/05/01 30 06/05/01 50.25 100 Pret | den * ^ | UnMas !But. 3L Apa 13 2 Apa ^ > But. 2L Came \ Pachet 0.5Kg 15 PacWt lK g 30 Came \ 30 Came V Kg \ \ Pachet GS5L 2.5 Lapte 5 Lapte

\ w m

lesiriFomi : Form
C odM arfa:

fZSIxl lCant:|DataVim:: 1 l
10 11/05/011 | ty*? 12/07/01 12/07/01 ', 16/07/01 P r e t I cc

! Pachet. 0.5K r ! 15 pachet 1Kg 30 30 *chet0.5L 2.5 5

2 2 li 1 1

L_ ... Vizualizarea i Aoreetarea informaiei introdus anterior: racem un clicl^ ici i imediat apare lista (liVta prezentat de cererea ListaProdQ ataat acestui control), n care se dau amnunte despre produsul cu codul dat. Atenie, putei modifica informaia ! Dac facei un click pe vreuna din poziii din list, atunci codul se va schimba (astfel se va schimba informaia despre produsul vndut).

\ L

Adugarea informaiei! desprd vnzri:


Facem un click aici, mtrvun rihdviber de la sfritul tabelei imediat aroare list respectivi facem un click pe produsul care dorim s-l vindem iiimediat n aceast coloan, n acest rnd apaAe codul produsului selectat. Semnul acesta ni arat c acest rnd este n etapa de nregistrare. Facem apoi un click n coloana Cant, introducerea cantitii, apoi facem un click n urmtorul rnd i nregistrarea este fcut.

Fig. 11.5. Verificarea^ corectarea i introducerea informaiei despre vnzri.


76

Access. Ghid de Iniiere

Lucrarea de laborator nr. 14

Dup testarea proceselor de verificare i introducere a informaiei, nchidem formularul lesiriForm. 7. n formularul Intrri Ieiri crem butonul lesiriModif cu proprietatea On Click pentru a starta macros-ul OpenlesiriForm (acest macros deschide formularul lesiriForm), care trebuie proiectat n prealabil.
t: QphJeiriff^ti^^
Action j Comment 1 j

6.

t\
Action Arguments lesiriForm Datasheet

^|
/

Avei grij ca argumentul View s aib ^valoarea Datasheet.

Form Name View Filter Name Where Condition Data Mode Window Mode

Norma!

Fig. 11.6. Proiectul unui macros care deschide un formular n imagine de tabel (Datasheet View). 8. Trecem formularul n imagine de Form View (imagine Formular) i acionm butonul nou creat. Trebuie s apar imaginea din fig. 11.7, gata pentru aciunile respective.
lesiriForm: Form

mm
Cast: DataVto

Acionai unul din butoane

CodMarfa:

Intrri
cod den

Ieiri

lesirModif
111

Apa Apa Came Came Lapte Lapte

100 12/07/01 e 1 0 16/07/01 0 16/07/01 Pret UnMas But. 3L 3 But. 2L 2 Pachet 0.5K gU Pachet lKg 30

lecord: H | < Window Mode

1 * of 1
E a T 'In tr ri Ieiri'

zJ

5 R e< 4

Pachet 0.5L 2.5 L 5

ILL

La acionarea butonului lesiriModif apare formularul lesiriForm i putem aduga imediat informaia facnd cte un click n urmtorul rnd liber, apoi din lista aprut selectm produsul potrivit.

Fig. 11.7. Vizualizarea i introducerea informaiei despre vnzri.

77

Access. Ghid de iniiere

Lucrarea de laborator nr. 14

Aadar, pentru a introduce informaia pe parcursul vnzrilor, avnd pe ecran formularul Baza, clickm butonul In trri Ieiri. Ca rezultat se deschide formularul Intrri Ieiri, clickm butonul lesiriModif din acest formular i apare formularul lesiriForm, n care putem introduce informaia despre ieiri (vnzri). Concluzionm c un astfel de procedeu de introducere a informaiei este cu mult mai convenabil dect celelalte descrise anterior, ns, dup cum, probabil, v-ai convins, nu este chiar att de uor de realizat proiectarea unor astfel de obiecte. n mod analog putem proiecta un formular IntrariF pentru introducerea informaiei despre intrri. n acest scop vom repeta paii precedeni, ncepnd cu al doilea, cu urmtoarele excepii: Pasul 2. n loc de cmpul Cant se trece cmpul CantV. Eticheta cutiei de tip ListBox trebuie s fie cu numele CodMarfa. n imaginile respective, fig. 11.2 i 11.3, trebuie s fie CantV n loc de Cant. Salvai formularul atribuindu-i numele

IntrariF. Pasul 4. n imaginea corespunztoare asemntoare cu cea din fig. 11.4, n formularul IntrariF se nscriu denumirile CodMarf i CantV, respectiv. e Pasul 5. Se ncearc lucrul cu formularul IntrariF analog cu lesiriForm (vezi
imaginea asemntoare n fig. 11.5). Pasul 6. nchidei formularul IntrariF . Pasul 7. Creai butonul IntrModifl n formularul Intrri Ieiri cu proprietatea On Click, ca s starteze macros-ul OpenlntrFForm. Acest macros trebuie s deschid formularul IntrariF, de aceea se va proiecta n prealabil. (A se vedea proiectul asemntor n fig. 11.6, asigurm parametrului Form Name valoarea IntrForm.) Pasul 8. Trecei formularul Intrri Ieiri n Form View i acionai butonul creat. Se va afia o imagine ca cea din fig. 11.8 (va fi formularul IntrariF). Menionm c modul de introducere a informaiei prin intermediului formularului

IntrariF nu este destul de eficient. Ce s facem atunci cnd apare un produs nou? Ar fi
mult mai convenabil dac pe ecran, concomitent, am avea un obiect pentru introducerea informaiei despre produsele noi. Despre crearea unui astfel de obiect vom vorbi mai trziu. Acionai unul i
Intrri
Bi IntrariF: Form
CodulMirf:

1
T439 12/07/01

Lo d u le s ta lG r rtn S to c M tV in z

16/07^

Ieiri Intrri Modifl


R e c1
; scod
2 4 5 6 7

U
2 2

den
Came Came Came Lapte Lapte A pa A pa

1 UnMai
Kg

23/08/01 Pret [codc- D ata fc fo ^ V 30 02/07/01 _ 20/07/01 -1 10/07/01 19/07/01 22/07/01 30/07/01

Int 3
R e co rd : 1 . j2
L ll. il

Pachet 1Kg Pachet 0.5Kg 15 jL Pachet 0.5L But. 2L But. 3L 5

o i

1 1 3 3

2.5
2 3

Observm deosebirea acestui formular de cel g. 11.7: denumirea formularului este alta (InirariF), <0e4Marf n loc de codMarfa i CantV n loc de Cant.

nr

J / J i 1 or 1

Fig. 11.8. Formularul IntrariF pentru introducerea informaiei la intrri.


78

Access. Ghid de iniiere

Lucrarea de laborator nr. 14

n continuare, pentru a mbunti i mai mult performanele ultimului procedeu de introducere a informaiei despre vnzri, ar fi bine, la momentul introducerii cantitii de marfa n coloana Cant, s apar undeva o tabel cu stocurile curente. n acest scop: Proiectm cererea StocuICurentQM (o cerere de tip M ake Table), care formeaz tabela StocCurentT.

1.

] \Make Table
Make New Table Table Name: IStocCureptT Cancel OK;

(*
frec
codcat
-

Current Dal

<1, 1
Field: cod * den Table: Ramai r Product Sort: Ascending Show: 0 Criteria: or:

Tabela Raitasiit6c este rennoit printr-o aciune precedent ds6niderii acestei cereri, astfel Tabela
S to c C u r e r i it T va conine informaie curent desnre stocuri rret Product 1otalHamas RamasInStoi Lost: Ipretfl 1otaiHamas]

UnMas Product

*i i

Fig. 11.9. Proiectul cererii de tip Make Table.

2. Prin copierea tabelei StocCurentT crem tabela StocCurentTT ntocmai cu aceleai coloane. 3. Crem o cerere de tip Delete Query, care lichideaz toat informaia din StocCurentTT i o salvm cu numele DeleteStocQ. (n aceast tabel se va trece toat informaia din tabela StocCurentT.) 4. Crem cererea care trece toat informaia din tabela StocCurentT n tabela

StocCurentTT.
5. Proiectm macros-ul (vezi proiectul n fig. 11.11). Acest macros conine un ir de aciuni, care asigur completarea tabelei StocCurentTT cu informaia cea mai recent despre stocuri. 6. Proiectm cererea (vezi proiectul n fig. 11.13). 7. Pentru proprietile controlului Cod din formularul IntrariF orm atribuim valorile artate n fig. 11.14. 8. Salvm formularul IntrariForm, apoi l deschidem prin acionarea butonului IntrariModif din formularul Intrarilesiri i, ca rezultat, vom obine pe ecran imaginea din fig. 11.15.

Access. Ghid de iniiere

Lucrarea de laborator nr. 14

% Show Table,.;

DeleteS tocQ

Rernbve Idbie
cod den

Crosstab Query

Make-Table Query,, ^ U pd ate Query # S Append <

U nM as^

Proiectarea ncepe ca i oricare cerere de tip Select. Dup ce avem ataat lista, agm ] stelua i trecem aici toat lista (prin trecerea smbo\\jJj^Xfeccm toate cmpurile). Facem un ici, apoi un clicked, agjUL43e4ttfBelete n gridul cererii^pirfJ^mrlfTcoloana StocCure] d n urmtoarea eria nsciem >0 (mai cojpar^wflrndi "impe^a zero), nseamn c tobte rndurile (nrg^istri care au n coloana Cod fi lichidate. Datjflind c un numr jarozitiv toate codurile snt/pozitive, toat infcjrmaia din tabel^tocCurentTT va fi lichidat
cod r StocCurentTT Where _

Delete Query

SQL Specific Parameters..

Field: StocCurentJ/T.* . Table: StocCurertTT delete From ^ Criteria or

f 1
' V i

>0

Fig. 11.10. Crearea unei cereri de tip Delete Query.

Append

Irfx i
------ |stocCurentTT| OK

tm m m m cod 4
den UnMas Pret TotalRamas

Append To

Table Name:

_J

Current Database Another Database:

lU
Field: cod Table: StocCurent* Soft Append To: cod Criteria: or
den StocCuren den

gif; Ham: |
UnMas StocCurei UnMas Pret StocCuren Pret TotalRamas StocCurentT TotalRamas

Aceast cerere asigur ca informaia din StocCurentTT s coincid cu cea din StocCurenTT (vom avea dou tabele cu aceeai informaie). Aceste tabele conin informaie temporar i informaia din ele poate f i lichidat oricnd atunci cnd se dorete de a face copieri ale BD.

Fig. 11.11. Crearea unei cereri de tip Append, care ia informaia dintr-o tabel i o adaug n alta.

80

Access. Ghid de iniiere


S lo c u lC u r e n lM ; M a c io
Action DeleteObject OpenQuery OpenQuery OpenQuery DeleteObject OpenQuery DeleteObject OpenQuery OpenQuery OpenQuery Requery

Lucrarea de laborator nr. 14

LOM
Comment Lichudarea tabelei Sumarlnfo Crearea unei tabele noi Sumarlnfo Add la lista formata a stocurilor ini'iale Add la lista formatf a diferen'elor Intrari-iesiri Lichidam tabela RamasInStocT formam RamasInStoc T lichideaza tabela StocCurentT formeaza dinnou tabela StocCurentT Lichideaza informa'ia din StocCurentTT Copiaza tot din stoccurent in stoccuerntt asigura recadularea informa'iei Action Arguments

Control Name

marfa

Sensul aciunilor incluse n acest macros snt bine explicate prin comentariul ataat. Primele 6 aciuni repet aciunile unui alt macros, scopul cruia a fost descris mai sus.

Fig. 11.12. Macros-ul care asigur formarea tabelei StocCurentTT cu informaia curent despre stocurile de marfa.
StocCur entQQ : S e le ct Query > j

cod den UnMas Pret

Includem doar cmpurile care dorim s apar la utilizarea controlului ListBox din formularul lesiriForm.

j cod Table: StocCurent Sort: Show: 0 C riteria: or: <1 1 den StocCuren Ascendinq . El.. . UnM as StocCurentT ....... Pret StocCureni 0 TotalRama StocCureni ___ EL Cost StocCurentT 0

Fig. 11.13. Cererea pentru controlul Cod din formularul lesiriForm.

Format | Data ) Event I Other


i . i . , , 2 - i 3 i 4 * i * 6 * i * 6

Detail

jtodM/]1;C od C ant: j ---4

....... i....... i.......j jCanf JD atav inz

Nam e ................, , . Marra Control Source.........Cod Row Source Type , , , Table/Query . Row Source.........,, StocCurentQQ & Column Count......... 5 Column Heads......... Yes Column Widths , . . ,. 1cm ;2cmj 2cm; cm ; Bound Column . , , . , 1 - ts * * Before Update After Update;. On E n t e r S t o c u l C u r e n t ^ On Fvit*......... ...

A II StocCijrentQQ furnizeaz ^jrfrormaie despre stocul curent: StoculCurentM 1 1 calcutectz infofrnaia ^despre stocurile ^ curente.

Fig. 11.14. Proprieti noi pentru controlul Cod cu numele M arfa.


81

Access. Ghid de iniiere

Lucrarea de laborator nr. 14


lesiriForm: Form

Cod ar&:

Cmt D aiaY m z:
30 11/05/01 20; 11/06/01 .10! 11/05/01 430 12/07/01 100 12/07/01 0 16/07/01 100 16/07/01 0 16/07/01 Pret | UnMas 2 But. 2L But. 3L 3 30 / Kg Pachet! Kg 30 / Pachet 0.5Kg 1 / L

......4... 50.5 30 ... ... 2 20 ............. 3 5 1 0 5 400 ........... ... 7 100 3 0 ........ | 10SU
1 617 1 2 3 4 5

06/05/01 : 11/05/01 ' 11/06/01 11/05/011 12/07/011 12/07/011 16/07/01 16/07/011


| Pret | T otalRamas 1! cod 6i / 1 7 1 32 |l3

200.00 Apa But 2L 2 > e< 3L N a ^1078.00 Apa . 455.50 j Came \ V Pachet! Kg Came r * Came f X^\2^chet 0,5K^i 15 ' ^415.60 | Lapte Lapte, ;0-

M 5

Apa Apa Came Came Came Lapte

( 1 1J M M L

1TotalRamas 100.00 4378.00 455.50 30.00 330.00 ! 1415.60

S-a fcut un click aic cantitatea total 20jfh coloana Cant a fost ncris 100, apoi s-a trecut la nntorul rnd, s-a fcut un click aici i, dup cum observm, produsul Apa a devenit cu 100 uniti mai puin. Fig. 11.15. Un mod convenabil de introducere a informaiei despre vnzri. n treb ri, probleme, discuii 1. 2. 3. 4. n ce scop putem utiliza cereri de tip Delete, Append? Cnd trebuie i cnd nu trebuie legat formularul de un obiect? Pot oare s difere denumirile etichetelor de cele ale controalelor respective? Explicai. Indicai deosebirea dintre un control legat de cmpul unui obiect din acest formular i un control de tip ListBox. 5. Este oare vreo legtur dintre limea controlului de tip ListBox i dimensiunile atribuite proprietii Column Width? 6. De ce trebuie s fixm valoarea Datasheet pentru proprietile Default View i Views Allowed? ncercai s utilizai i Single Form, Form respectiv. 7. Care, dup prerea dv., snt avantajele utilizrii controalelor de tip ListBox? 8. Studiai cu atenie proprietile din grupul Event i propunei alte faciliti la introducerea informaiei cu utilizarea acestor tipuri de controale. 9. Comparai modul de introducere a informaiei descris n aceast lucrare de laborator cu cele descrise anterior. Argumentai cazurile cnd se poate aciona i far controale de tip ListBox, pstrnd aceleai faciliti. 10. Care este avantajul principal, dup prerea dv. (cci avantaje snt multe) la folosirea controalelor de tip ListBox? 11. Comparai creterea complexitii proiectrii unui astfel de procedeu de introducere a informaiei i creterea comoditii. 12. Analizai metodele de introducere a informaiei cu sau far utilizarea controalelor de tip ListBox. 13. Propunei alte moduri de introducere a informaiei, care, dup prerea dv., pot fi mai convenabile i pentru proiectani, i pentru utilizatori. 14. Propunei o alt metod, mai eficient, pentru introducerea informaiei despre intrri i despre ieiri.
82

Access. Ghid de iniiere

Lucrarea de laborator nr. 15

Lucrarea de laborator nr. 15

12. Formulare n formulare sau formulare ncuibate (SubForms)


La depozitarea produselor se pot ntlni produse noi, care nu pot fi atribuite nici uneia dintre categoriile existente n BD. Deci poate s apar necesitatea de a nregistra informaia i despre categorii (tabela Categorii). Astfel, va fi necesar de nregistrat informaia att n Categorii, ct i n Product. Aceste dou tabele, dup cum am vzut mai sus, snt dependente una de alta i pot fi legate prin intermediul coloanelor, care conin informaia despre codurile categoriilor. Tabelele Categorii i Product pot fi incluse ntr-un singur obiect (formular) i pot fi afiate pe ecran concomitent, fapt care asigur anumite comoditi la introducerea informaiei, inclusiv i n cazurile apariiei unor mrfuri din alte categorii. In scopul crerii formularului n cauz procedm n modul urmtor: 1. Proiectm un formular cu numele ProductF legat de tabela Product (din lista tabelei se trec controalele Cod, Den, Unmas,Pret, iar pentru coloana CodCat se proiecteaz un control ListBox cu numele Categoria). Utiliznd opiunea Tab O rder, aranjm controalele n ordinea cuvenit. Apoi atribuim valorile Datasheet ambelor proprieti Default View i Views Allowed (vezi modul de atribuire a proprietilor respective pentru formularul lesiriForm ). Salvm formularul. Deschidem formularul creat, apoi, ca i cu formularul lesiriForm (cmpul Cod), facem ncercri de lucru cu cmpul CodCat. Ateniei nainte de a salva formularul nou creat (ProductF), modificai dimensiunile lui ca s obin forma unui ptrat cu latura de mrime cam jumtate din nlimea ecranului.

Name Control Source.. | Row Source Type


K 'V

je >

: categoria

^Column Count.. I Column Heads., Column Widths., W M siiM l:: : ;' On Exit............
P nm c

Fcnd uH ick n controluTl^lstBox cu numele> :ategoria dinfemjularul Product!^ apoi fcndu^[click pe un produs din lismbbinut, codul categoriei coloan a cererii tegOritQ-i copiat n-r trfoana C&dCat a tabelei Product. Pentru ca cererea CtegoriiQ s starteze din > u , adic s ne furnizeze informaia de ultim modificare, atribuim proprietii On Enter st^ macros-ulu^CategReqM, care are proiectul dat.

Fig. 12.1. Atribuirea unor proprieti la un control de tip ListBox. 2. Proiectm formularul CategoriiF, legat de tabela Categorii; toate controalele trebuie s fie obinute prin trecerea lor din lista cmpurilor tabelei Categorii. Toate
83

Access. Ghid de iniiere

Lucrarea de laborator nr. 15

controalele trebuie plasate n partea de sus (s ocupe cam a cincea parte) a sectorului Detail. Sectorul Detail trebuie s fie de forma unui dreptunghi (nlimea puin mai mare i s fie de mrime cam trei cincimi din nlimea Display-ului). Apoi atribuim valorile Single Form i Both, respectiv, proprietilor Default View i Views Allowed (vezi mai sus cum s-a fcut pentru formularul lesiriForm). Ateniei nainte de a salva cu numele CategoriiF acest formular, facem ca dimensiunile lui s constituie cam trei cincimi din nlimea ecranului. nchidem toate formularele de pe ecran. Deschidem formularul CategoriiF cu Open, apoi aranjm ferestrele n aa fel pe ecran, ca s se vad formularul ProductF de pe pagina Forms i sectorul Detail al formularului CategoriiF (vezi fig. 12.2). 4. Dup ce am inserat formularul ProductF din Forms n formularul Categorii, analog ca Ia un control obinuit, modificm astfel dimensiunile lui, nct controlulformular s ocupe cele trei cincimi rmase din spaiul Detail. Corectm din nou dimensiunile, permutm controalele astfel, ca s obinem o imagine similar cu cea din fig. 12.2. Acestea snt controale de tip abel - pentru comentarii. Acgste Controale snt legate direct de tabela Categorii. Controlul n care este inserat rmularul ProductF; numele lui ne sugereaz aceastb

Subform/Subfepof: ProductF

Acest formular
trebuie agat i inserat ntr-un loc liber din sectorul Detail al formularului

Format

Event

Other

All

Name, Source Object, , . .. ProductF Link Child Fields . . . . CodCat link Master Fields , ^CodCat

CategoriiF. Voj
obine o imagme asemntoare unui control

Fcnd un dublu click n aproper^e^rania contibU^ lista de proprieti i trebuie s facem.ca proprietile Link Child Fields i Link Master Fields s aib valorile date (cmpul Codcat din CatrgoriiF (Link Master Fields) este legat de cmpul CodCat (Link Child Fields) din formularul ProductF).

Fig. 12.2. Crearea unui SubForm ular (SubForm) i atribuirea unor proprieti. 5. Avnd imaginea-proiect a formularului nou CategoriiF, modificm dimensiunile lui, ca s aib forma unui ptrat cu latura de mrime cam jumtate din nlimea ecranului, apoi l salvm.

84

Access. Ghid de iniiere

Lucrarea de laborator nr. 15

6. Deschidem din nou formularul CategoriiF cu Open i vom obine imaginea din fig. 12.3.

Categoria produsului
CodCat: DenCat: (Lactate 1

FormularulJPrpductF inserat (nc^ibat^nformularul CategoriiF. rmaia din aceste dou tabele este legat&snrin intermediul controalelor cu numele ete etichet CodCat i Categ ale celor dou controale cu acelai nume CodiXat. Eticheta poate avea nume diferinde cel al controlului. cestersmk-etichetele, i nu denumirile controalelor. Dac facem un click aici, apare lista i putem selecta categoria respectiv. Astfel se introduce informaia despre codul categoriei.

Descriere^ Lapte, casca^Lsmififr PfoductF:

fodusele din categoria data


UnMas: L Pachet0.5L
5 2.5

4 Lapte 5 Lapte

CodC?| DenCat Lactate 1 Came 2 Buturi 3

Descriere Lapte, cascaCame depot Apa mineral*

R ecord: H1<

Utiliznd aceste butoane, putem categorie la alta. Vom serva c n lista de mai jos se va afia informaia despre produsele doar din categoria selectat. Formularul pentru introducerea i vizualizarea informaiei despre mrfurile din fiecare categorie.

Fig. 12.3.

7.

8. 9.

10. 11.

Proiectm un formular nou cu numele GeneralF, care nu trebuie s fie legat de vreun obiect i de pe pagina Forms a BD inserm n el (n modul descris mai sus) alte dou formulare, IntrariF i CategoriiF. Apoi modificm dimensiunile lor i le deplasm n locurile cuvenite. Salvm proiectul, nchidem formularul (formularul nou creat GeneralF), apoi l deschidem cu Open i vom obine imaginea din fig. 12.4. Ateniei Proprietile Link Master Fields i Link Child Fields pentru formularul GeneralF trebuie s aib valori vide. Proiectm macros-ul OpenGeneralF, care deschide formularul GeneralF n imaginea FormView. Crem butonul IntrariModif n formularul Intrri Ieiri, iar proprietii On Click a acestui buton i atribuim valoarea OpenGeneralF (adic atunci cnd IntrariModif va fi acionat, se va deschide formularul GeneralF). nchidem toate formularele, apoi nchidem i Baza de Date. Deschidem BD, acionm butonul ntri sau Ieiri i ca rezultat apare formulam!

Intrarilesiri.
12. Acionm butonul IntrariModif i apare formularul GeneralF definitivat pentru 2 introduce informaia la intrare.

85

Access. Ghid de iniiere

Lucrarea de laborator nr. 15

GeneiF: Foim Introducerea informaiei despre Intrrii se face in coloanele CodulMarf si CantV din partea sting in cazul daca apare un produs, nou atunci se fac inregistrari in Product sau Categorii si Product apoi se lucreza iar in partea sting.

ta r:

- : ^
Cm
DataYi ;

' >

Categoria produsului
CodCat i

4J 3 .. j 1 7 6 4 2

300 100200 78 300


45

....... 679[ 45

oo: 3. : 39; 5 : .... s 570; 5 7 439 ............. o 3 ; 0 M


UnMas

05/05/01 06/05/01 06/05/01 06/05/01 05/06/01 06/05/01 06/05/01 11/05/01 11/06/01 11/05/01 12/07/01 12/07/01 16/07/01 17/07/01 codcat

D enC t-t; {Lactate

Descrieie|[a^
Pio&ictF;

Produsele din categoria data


UnMas:

4 Lapte L 5 Lapte Pachet 0.5L

5 2.5

CodC*DenCat Lactate Came Buturi

Descri

K g
Pachet IKg j Pachet 0.5Kg| Pachet 0.5L But. 2L But. 3L

Fig. 12.4. Imaginea formularului G eneralF pentru introducerea informaiei la intrare.

ntrebri, probleme, discuii


1. Care este avantajul folosirii formularelor ncuibate? 2. Cnd dou formulare trebuie s fie legate i cnd pot s nu fie legate? Dai exemple. 3. Propunei alte moduri de introducere a informaiei, care asigur nu mai puine avantaje. 4. ncercai s realizai un formular cu dou niveluri de ncuibare, adic ca un subformular s fie un formular care conine un alt formular. 5. Se poate oare de inclus ntr-un formular mai multe formulare? Dai exemple. 6. Argumentai avantajele i dezavantajele utilizrii diferitelor forme de afiare a formularului (n Single Form i Datasheet). 7. In care caz se admite doar o singur form de afiare a unui formular ~ Single Form?

86

Access. Ghid de iniiere

Lucrarea de laborator nr. 16

Lucrarea de laborator nr. 16

13. Lrgirea Bazei de Date


n unele etape de proiectare a BD, atunci cnd au fost proiectate un numr mare de obiecte (practic o astfel de BD poate fi deja utilizat), n multe cazuri, apare necesitatea de a include informaie suplimentar. Acest lucru poate fi realizat prin adugarea unor tabele noi (n cazul n care tabelele existente conin informaie de alt natur i nu pot fi lrgite) sau prin adugarea unor cmpuri noi la unele tabele, care conin informaie despre aceleai proprieti, ns ntr-un mod mai simplificat. n cazul nostru, fie c n etapa dat s-a descoperit c ar fi mult mai bine dac am avea informaia i despre termenul de pstrare a fiecrui produs. Cu att mai mult c se poate crea situaia cnd avem dou produse care difer doar prin D ata de Expirare (dou produse identice dup caliti, ns cu termen de pstrare diferit). Astfel de produse la nregistrare vor primi dou coduri diferite. n Baza de Date aceste produse vor fi considerate ca diferite i se va duce evidena pentru fiecare produs n parte. Pentru a adapta Baza de Date, n acest caz concret, este necesar de fcut modificri n toate obiectele care sau pregtesc informaia temporar intermediar pentru alte obiecte, sau ele nsi pstreaz aceast informaie ca final. S analizm diferite niveluri de proiectare:

13.1. BD conine ca obiecte doar tabele (Tables) i cereri (Queries)


Un asemenea caz poate fi atunci cnd proiectantul i utilizatorul este aceeai persoan i nivelul de miestrie la proiectarea BD abia a nceput s se manifeste. n acest caz: 1. Se mai adaug un cmp DataExp n tabela Product i la introducerea informaiei despre intrri se asigur afiarea pe ecran a tuturor celor 3 tabele fundamentale (DetVinz, Product, Categorii). La momentul potrivit se va introduce informaia i n coloana DataExp din tabela Product. 2. n procesul de proiectare a cererilor trebuie s avem grij i de cmpul DataExp. Prin intermediul lui putem, de exemplu, s gsim produsele al cror termen expir peste cteva zile. n acest scop este necesar de proiectat o cerere bazat doar pe tabela Product, cu cmpurile Cod, Den, UnMAs, P ret i un cmp calculat: ZilePinaLaExp: [F ataExp]-date(). gffggp
Field den fbl: Product UnMas Product Pret Product Bl

'-Sort
Show: 0

ipExpresia data calculeaz numrul de zile pn la ZilePinaLaExp: [DataExpl-DateQ expirarea termenuliLXkmdiia fie afiate doar produsele valabile nc o zi.

Fig. 13.1. Afiarea listei produselor cu termen de pstrare mai mic dect cteva zile.
87

Access. Ghid de iniiere

Lucrarea de laborator nr. 16

3.

Proiectnd o cerere, se va ine cont, n msura utilitii, i de cmpul DataExp.

La acest nivel de proiectare a BD gsirea doar a produselor cu termenul expirat, rmase n stoc, este o problem destul de complicat. Exerciiu. Utiliznd diferite tipuri de cereri, s se determine produsele cu termenul expirat, rmase n stoc.

13.2. BD const doar din Tabele, Cereri i Macros


Utilizarea macrosurilor ne d posibilitate, printr-un ir de aciuni incluse ntr-un singur obiect, s obinem la deschiderea lui lista de produse cu termen expirat, rmase n stoc. n unul dintre paragrafele precedente a fost creat macros-ul TotalRmasInStocM. n baza Iui putem forma altul ~ un macros cu numele ProdExpInStocM. Procedm n felul urmtor: 1. Crem cererea (vezi proiectul, fig. 13.2).

B
* cod

.' .7j l& i i *


-

cod den

Field: den Table: Produ Sort Show: 0 Criteria:

UnMas Product 0

TotalRamas RamasInStoc* 0

ZilePinaLaExp: [dataExpHUteT X ...................... ______ ^ <0 ~ 0 ___________

Prin utilizarea cererilor cu parametri, n loc de aceast condiie, utilizn^de exemplu, e^fesia <=[InJ*dauceti numrul de fpin[ ia expirare], vom "avea posibiliti mult mai largi (s avem grij ca expresia dat s aib format de numr).

Fig. 13.2. Se calculeaz lista de produse cu termen expirat rmase n stoc. 2. Facem o copie a macrosului TotalRamasInStoc, apoi modificm denumirea macros-ului obinut prin copiere, n ProdExpInStocM. 3. Deschidem in imagine-proiect macros-ul ProdExpInStoc i n loc de ultima aciune, care deschide tabela RmasInStocT, includem aciunea de deschidere a cererii recent create ProdExpInStocQ. 4. Salvm proiectul i nchidem macros-ul ProdExpInStocM. 5. Deschidem prin Open acest macros ProdExpInStocM i vom avea lista respectiv.

Concluzie. Utilizarea macros-urilor mbuntete i lrgete cu mult posibilitile unei baze de date, dar i le cere proiectanilor eforturi mult mai mari.

13.3. Utilizarea formularelor


n cazul utilizrii formularelor, vom avea o BD proiectat la un nivel mai universal i mai complex (se includ i formulare), fapt care presupune ca proiectantul poseci

Access. Ghid de iniiere

Lucrarea de laborator nr. 16

cunotinele i experiena respective n domeniul proiectrii formularelor. Comoditile i performanele cresc n direciile respective. n acest caz, dup cum vei vedea, modificri vor fi cu mult mai multe i mai complexe. Urmeaz de fcut urmtoarele: 1. Adugm cmpul DataExp la tabela Product (la sfritul listei) cu tipul Date/Time (astfel, vom avea coloana n care se va introduce informaia primar). 2 . Modificm cererea ProductQ (n proiect mai adugm cmpul DataExp). (Astfel toate obiectele care utilizeaz aceast cerere vor include informaia i despre DataExp.) Ateniei Pentru a nu complica lucrurile, ne vom strdui ca adugrile s se fac doar la sfiritul listei cmpurilor deja existente. Pentru controlul de tip ListBox, din formularele IntrariF i ProductF, cu numele Cod, este necesar ca proprietatea Column Count s ia valoarea 6, apoi s mai adugm un numr la proprietatea Column Width, deoarece avem deja 6 coloane. In caz de necesitate vor fi lrgite pe orizontal controalele respective din formularele IntrariF i ProductF, astfel ca s ncap toate cele 6 coloane. 3. Cererea StocCurentQQ trebuie modificat mai esenial (vezi fig. 13.3). Astfel, aceast cerere va avea 7 coloane. 4. Facem modificri i n formularul lesiriForm. Acest formular, prin intermediul cererii StocCurentQQ, formeaz lista pentru controlul de tip ListBox Cod. Deoarece informaia despre DataExp este n coloana a 7-a, trebuie de fcut modificri i pentru proprietatea Column Count (pentru controlul Cod) (valoarea 6 se schimb n 7, apoi mai adugm un numr la proprietatea Column Width (a aceluiai control Cod)). 5. Urmeaz ca n toate obiectele n care dorim s avem informaia i despre data expirrii s facem modificrile necesare referitoare la coloana DataExp. o

* cod den UnMas au

Show Table

Add Close

P fe t

cod ... . UnMas Pret codcat DataExp

........

Tables j [fj^Queries J {^3 Both |

jJ

Categorii , DetVinz ProdLista Product^, Ramaslr^ StocCuren itocCuren

Bpchidem cererea StocCuren w n imaginea proiecr^vom observa doar tabela siocCurentTT ata&), facerr/ click 4 ici, apare Cutia S h o w T a b la f icem un pe tabela Product, apoi Aad (sau un 5tefrqep click), dup aceea Close i lista Vinzari se ataeaz la cerere. Verificm dac estSegtur ntre aceste dou liste, o corectm, dac>s^e nevoie. Apoi facem un dublu click pe DataExp (sau agm acest DataExp i-l inserm la sfrit n gridul cererii).

Fig. 13.3. Ataarea unui obiect la o cerere.

89

Access. Ghid de iniiere

Lucrarea de laborator nr. 16

6. n formularul G eneralF crem butonul ProduseExp, care deschide macros-ul ProdExpInStocM creat mai sus (p.13.2). Remarc: a) Data expirrii termenului este o caracteristic important pentru multe produse aflate n vnzare. Pot fi proiectate multe interpelri (cereri) legate de data expirrii, b) n mod analog pot fi adugate i alte caracteristici, care deosebesc un produs de altul. Concluzie: 1. Utilizarea doar a trei tabele permite s proiectm BD destul de utile, care ne pot oferi mari posibiliti att pe orizontal, ct i pe vertical. 2. O dat cu creterea dorinelor cresc i cerinele: o BD simpl este uor de proiectat, dar ne ofer posibiliti limitate, ns pe msur ce dorim s lrgim sau s aprofundm performanele, proiectantului i se cer eforturi cu mult mai mari. 3. O BD simpl poate fi creat de oricare utilizator, ns, dac se dorete o BD cu posibiliti mari, va fi nevoie de consultaia unor specialiti.

13.4. Lrgirea BD pe orizontal


n alt caz, atunci cnd apare necesitatea de a adapta BD curent la informaie nou, despre unele aciuni noi, informaie care nu poate fi inclus n mod eficient nici ntr una din tabelele deja create , este necesar de format tabele noi. n aceste tabele, n mod evident, se va conine informaie care caracterizeaz activitatea din alte puncte de vedere. De exemplu, presupunem c ne intereseaz gestionarea informaiei despre facturile care nsoesc marfa la intrare. Prin urmare, apare necesitatea de a nregistra informaia despre facturi. Pentru a organiza nregistrarea acestui fel de informaie, este necesar, cel puin, de gsit rspunsul la urmtoarele ntrebri: 1. Ce fel de informaie despre facturi trebuie nregistrat? 2. Este oare necesar i ct de detaliat trebuie nregistrat informaia despre furnizori? 3. E necesar oare s se pstreze permanent legtura dintre factur i produsul achiziionat? Lista ntrebrilor poate fi continuat. Astfel de ntrebri trebuie s apar ntre persoanele care doresc s utilizeze BD curent i persoanele care o proiecteaz. Presupunem c despre facturi ne intereseaz urmtoarele: numrul extern al facturii, data nregistrrii la formarea (expedierea) facturii, data nregistrrii la primire (intrarea mrfurilor) i detalii despre produsele incluse n fiecare factur (denumirea produsului, unitatea de msur, numrul de uniti, preul unei uniti, data expirrii valabilitii). n funcie de cele necesare exist mai multe moduri de lrgire a BD deja create. n aceast etap snt importante nivelul de competen a proiectantului i doleanei utilizatorului.

Access. Ghid de iniiere

Lucrarea de laborator nr. 16

13.4.1. Modificri n BD la nivelul utilizrii doar a tabelelor i cererilor


1. Crem o tabel nou, Facturi, care va conine informaia despre facturi: data expedierii, data primirii (data intrrii), numrul extern (cod extern), numrul intern (cod intern). 2. Adugm nc o coloan la tabela DetVinz, cu numele CodFact, care arat codul facturii prin intermediul creia acest produs a intrat. Aadar, se adaug doar o tabel, iar informaia n detaliu prezentat n factura curent va servi ca date pentru a stabili: este acesta un produs dintr-o categorie nou, este oare acesta un produs nou? In funcie de rspuns, vom face sau nu adugri n lista de categorii, vom face sau nu adugri n lista de produse. n calitate de fundament al unei astfel de BD vor fi nu trei tabele (Product, Categorii, DetVinz), ci 4 tabele (s-a mai adugat tabela cu informaia despre facturi, numit Facturi, cu cmpurile: C odlnt - un numr ntreg, informaie care se va introduce la momentul intrrii facturii; CodExt - cmp de tip text, care se ia de pe factur; DataExp ~~ un cmp de tip Date/Time, se ia de pe factur i este data expedierii facturii; D ataln tr - data cnd se nregistreaz factura, se scrie automat (Default value=Date()). n plus, tabela DetVinz este lrgit, s-a mai adugat nc o coloan - CodFact, care poate conine un numr ntreg, ce arat codul (Codlnt) facturii din care a fost luat informaia la nregistrarea produsului dat. n procesul de exploatare se va ine cont de urmtoarele: 1. La introducerea informaiei, pe ecran trebuie s avem tabela Facturi, ca mai nti s introducem n ea informaia despre factura dat i, n acest mod, facturii i se atribuie un numr de nregistrare (Codlnt). Apoi se introduce informaia despre produse (n Categorii, Product - dac este nevoie - , apoi n tabela DetVinz, n care va trebui de completat i coloana CodFact, care conine numrul din C odlnt din Facturi). Astfel, va fi asigurat legtura dintre produs i factur. Completai informaia conform datelor prezentate dinn fig. 13.4. 2. Prezena tabelei Facturi n BD ne ofer posibiliti mult mai largi la gestionarea n sens larg a informaiei. Pot fi create cereri noi pentru a rspunde la multe ntrebri legate i de facturi. De exemplu, cererea (vezi proiectul fig. 13.4) ne afieaz informaia despre produsele venite n fiecare factur. n partea dreapt avem lista respectiv i observm c analiza vizual nu este deloc simpl. 3. Utilizarea cererilor de tip CrossTab permite de a afia informaia mult mai convenabil pentru analiz. Vom meniona cererile de tip CrossTab, care ne ofer posibiliti mari anume atunci cnd se fac calcule pe grup pe dou niveluri. Dac analizm cu atenie informaia din cele trei tabele cu cifre din fig. 13.4 i fig. 13.6, care, de fapt, conin aceeai informaie, ns prezentat sub form diferit, putem trage concluzia c informaia din fig. 13.6 este ntr-o form mult mai neleas, mai convenabil, pentru analiza vizual.

Access. Ghid de iniiere


odinFiecFactQ: Select Query
"9
* Cod

Lucrarea de laborator nr. 16

PiodlnRecfacia

HEII
cod j mt | cost 1 1317. 7 Apa 6 Apa 90 j 5 Lapte 1425 3000 3 Came 2 Came 1350 5 Lapte 97.5 j 4 Lapte 3895 j 3 Came oj 2340! 1 Came 900 j 7 Apa 15001 3 Came 9000 j 1 Came ^ jd fT

Codiri
CodExt DataExp Datalntr

Cant

1
_

DataVinz CantV CodFact

'

Field: Codlnt Table: Facturi Total: Group Sort: Show: Criteria: or:

NumF: CodExt Facturi Last Ascending

cod Product Group By

Num: den Product Group By

cost: Sum([pret]1cantVj

^ ~ ~

_0_
ecord;

1 2345 3 2345 3 2345 3 2345 3 2345 2 Fp/34 2 Fp/34 2 Fp/34 2 Fp/34 1 MM/67 1 MM/67 1 MM/67
H | |

Fig. 13.4. Afiarea listei petru fiecare produs din fiecare factur.
i Query ! Run
icturiQ: Cmsstab Query

*0 Show lable.,,
Cod Cant 1 _

pdL
den UnMas

j|p elect Query

j'CrosstabQud
bl M a|<e-Table Query,., / ! Update Query *#*1 Agpend Query...
Codlnt Facturi Group By

CantV

La nceput se procedeaz ca ia o cerere cu calcularea totalurilor pe grup. Dup aceea se face un cK^aic^goLaici, se mai Sereazun rnd Heading n gridul cererii, apoi click aici i alegem Row He^ditffTapoi^aici i aleggm- Hpadmg.
cost: Sum([pret

^8 gelete Query
SQ L Specific

CodExt Facturi Group By

cod Product

tG[Sr&

Column Headii Value (not shown)

Apoi click aici i selectm Value. E posibil i invers: Column Heading pentru CodExt i Row Heading pentru coloana den (forma de afiare - diferit).
Ey&msian a lu e ..... 4 v

den ^edO ct Group By Column Headi

Fig. 13.5. Proiectarea unei cereri de tip GrossTab Query.


pio d in F ac^ iriQ : C iostab & itf jjjr CoiExt | 1 C m a r s a s e 9000 I v IIv I/67 1500 IvIIvI/67 900 Fp/34 2340 Fp/34 Fp/34 Fp/34 1350 2345 3000 2345 2343 2345 90 1317 2345 -ord: l- . . ... .11

1>
.
_

1 : Oam e A pa 1 C am e j Oeutsne I_apt-e ^ L a p te Oajrtne _ _ _ axn e L a p te _ _ -A-p a Apa acord: s * 1_ J

1 mevi/ j 9000 1500 9 00 2340 3895 9 7 .5

3895 97.5

1425

1;

!1&

1350 3000 1-425 90 1317 1 1 ^ 1 i I

I of 12

a) n varianta din fig 13.5.

b) dac Column Header i Row Header i-ar fi schimbat locurile.

Fig. 13.6. Forma de afiare a rezultatului cererii te tip CrossTab.

92

Access. Ghid de iniiere

Lucrarea de laborator nr. 16

13.4.2. Modificri la nivelul utilizrii Tabelelor, Cererilor i Macrosurilor


In mod analog, cu cazul descris n paragraful 13.2, utilizarea macros-urilor ne deschide i mai multe posibiliti, deoarece avem mai mult i mai divers informaie primar, ceea ce permite lrgirea utilizrii informaiei stocate n BD.

13.4.3. Modificri la nivelul utilizrii formularelor


La acest nivel, modificrile necesit un volum mai mare de lucru i o atenie mult mai sporit. Dac la nivelurile precedente modificrile puteau fi fcute doar n unele direcii i n anumite moduri, fr folosirea metodelor tehnologice complexe de proiectare, atunci, n acest caz, o dat cu utilizarea formularelor, se deschid mult mai multe posibiliti. Important este ca din multe modaliti posibile, s le alegem pe cele mai convenabile. Propunem urmtorul set de modificri: 1. Asigurm n BD existena tabelei Facturi. Dac ea lipsete, atunci proiecta-o, (vezi paragraful 13.4.1). 2. Crem cererea IntrariC antV M od cu cmpurile Cod, CantV, CodFact din tabela DetVinz. 3. Crem formularul IntrariFM od n baza cererii IntrariCantV M od: controalele CantV i CodFact se leag de cmpurile respective din cererea ataat, iar pentru cmpul Cod proiectm controlul Cod de tip ListBox, care ia codul din aceast list, prezentat de cererea ProductQ , i l transfer n cmpul Cod al cererii ataate la acest formular. Atribuim proprietilor valorile respective! n plus, atribuim un macros respectiv proprietii On Enter: ca la fiecare nceput de lucru aceast lista, ataat de ctre cererea ProductQ s fie recalculat din nou. Astfel, vom avea informaia recent. 4. Crem un formular nou FacturiF bazat pe tabela Facturi. Toate controalele trebuie s fie legate de aceast tabel i s ocupe doar a cincea parte din spaiul Detail. 5. Inserm formularul IntrariFM od n formularul FacturiF (astfel crem un SubForm, vezi cum a fost creat mai sus formularul CategoriiF). Avei grij s facei legtura dintre formularul de baz FacturiFM od i formularul (SubForm) IntrariFM od (vezi proprietile Link Child Fields i Link M aster Fields). 6. Facem o copie a formularului GeneralF, modificm numele celui copiat n GeneralFM od. 7. Deschidem n imaginea-proiect formularul GeneralFMod. 8. Facem un click pe controlul din stnga (pe contur trebuie s apar semnele care arat c acest control este selectat), care este pentru formularul IntrariF , i tastm Delete. 9. n locul formularului lichidat inserm formularul IntrariFM od. 10. Salvm formularul nou modificat GeneralFMod.

93

Access. Ghid de iniiere

Lucrarea de laborator nr. 16

11. Deschidem cu Open formularul GeneralFM od i vom avea imaginea similar cu cea din fig. 13.7. Vom observa c lipsesc controalele de tip Labei cu informaie explicativ (comparai cu formularul CategoriiF). 12. Deschidem formularul FacturiFM od i inserm controlul de tip Labei ca s obinem ceea ce este n fig. 13.7, apoi salvm modificrile. 13. Crem un buton IntrariM od n formularul In trri Ieiri pentru a deschide acest formular GeneralFM od. 14. Introducem informaia despre intrrile de marfa. n formularul din stnga, trecem la o nregistrare nou (folosind pentru aceasta butonul respectiv din partea de jos a subformularului). Introducem codurile Intern, DataExp i CodExp (D atalntr se nscrie automat). Observm c n lista de mai jos, n coloana CodFact, deja este numrul dat. Trebuie doar de introdus informaia n coloanele C odulM arf i CantV.
iGeneraiFMod: Form
introducerea informaiei despre Intrri se face in coloanele CodulMari si CantV din partea sting, in cazul c]nd apare un produs nou se introduce mai intii in locurile respective din partea dreapta apoi se continua lucrul in partea sting

Informaie despre factura


Codlnt | CodExt (/67 1 DataExp; [ Datalnti: 117/07/01

Categoria produsului
todCat | ~2 DenCat (Carne

DesciiaefCatne de poic

Detalii din factura


IntrariFMod:

D rodusele din cod: desu

categoria data
UnMas: Kg Pachet IKj Pachet 0.51

Pret:
30 30 15

Caieg:

CtMfefs

1Came 2 Came
3 Carne

2 2 2

02/07/011 20/07/011 25/07/011

Subformularul pentru a introduce informaia despre intrrile produselor legate de facturile de nsoire.

Subformularul pentru introducerea informaiei despre produse sau categorii noi.

Butoanele pentru a trece de la o nregistrare la alta sau la ultima, sau la una nou n tabela Facturi. Fig*. 13.7. Imaginea de lucru a formularului GeneralGM od pentru introducerea informaiei la intrarea mrfurilor.

Remarc. In multe cazuri apare necesitatea de a modifica preurile unor produse. In acest scop pot fi utilizate cu succes cererile de tip IJpDate.

94

Access. Ghid de iniiere

Lucrarea de laborator nr. 16

ss0 ModifPret: Update Query

Field: T able: Update To: Criteria: - ' or:

Pret Produc

[DataExpj-DateO ",qjg S L ------

lrretj/2 1 1

S fim foarte ateni la modificarea preurilor prin aplicarea acestui tip de cereri. O dat modificat, irmaia nu mai poate fi recupeFa!rej^gul, n prealabil, se face o copie a taBeterProduct, apoi se pot face modificrile. In acest caz, la toate produsele cu termenul de valabilitate care ex pira-a&t^-preu rile se micoreaz de dou 6ri.

Fig. 13.8. Proiectul unei cereri de tip UpDate pentru modificarea preului, ntrebri, probleme, discuii 1. Deschidei tabela DetVinz i introducei informaia n coloana CodFact. Folosii doar trei numere: 1, 2, 3 (adic avei doar trei facturi). 2. Deschidei tabela Facturi i introducei informaia despre aceste trei facturi. Aceasta va nsemna c toat marfa a fost nsoit de una dintre aceste facturi. 3. Deschidei formularul GeneralFM od i observai legtura dintre produse i facturi. In continuare informaia va fi introdus doar prin intermediul acestui formular. 1. Descriei acest mod convenabil de introducere a informaiei. Propunei alte modaliti. 2. Ce vi se pare complicat? 3. Creai cereri sau macros-uri, apoi inserai butoane n GeneralFM od pentru afiarea: a) listei de produse cu termen de expirare n dou zile; b) listei de produse ce au fost vndute cu termenul expirat; c) Listei de produse intrate n aceast perioad, pentru care termenul expir peste cteva zile; d) Costul total al produselor termenul crora expir astzi.

95

Access. Ghid de iniiere

ncheiere

/4

ncheiere
Baza de Date proiectat la nceput ntr-o variant simpl, a fost apoi modificat, demonstrndu-i-se cititorului anumite tehnici de perfecionare a unei BD deja existente. Obiectele noi snt incluse inndu-se cont de anumite necesiti poteniale, deoarece o asemenea situaie de adaptare a unei BD n timpul de exploatare a ei pare a fi cea mai frecvent, iar posedarea tehnicilor de perfecionare poate fi destul de util pentru un numr mare de utilizatori. Baza de Date creat poate fi perfecionat n continuare n ambele direcii, pe orizontal i pe vertical, att prin utilizarea instrumentelor descrise aici, ct i prin includerea altor obiecte noi: programe i funcii scrise n Visual Basic. Programarea unei BD necesit cunotine respective att n domeniul proiectrii (se creeaz posibiliti mari pentru tehnologii noi de utilizare a obiectelor), ct i n domeniul programrii. Ar fi greit s credem c este posibil proiectarea unei BD la un nivel nalt fr utilizarea tehnologiilor programate. Volumul relativ mic al acestei lucrri, precum i nivelul de proiectare respectiv propus pentru nceptori, n-au permis includerea unor tehnologii programate. In acelai timp, exemplul concret prezentat din domeniul comerului, nicidecum nu ngusteaz sfera de utilitate a tehnicilor demonstrate, care pot fi aplicate cu uurin n mai multe domenii de activitate, n care este posibil o clasificare similar a informaiei respective. De exemplu, o BD la o staie de deservire auto: serviciile prestate corespund mrfurilor; serviciile pot fi clasificate pe categorii; bonurile de plat corespund facturilor. Un alt exemplu, o BD la o firm de transporturi auto: automobilele puse la dispoziie corespund mrfurilor; toate automobilele, conform anumitor proprieti, pot fi clasificate pe categorii; serviciile prestate corespund facturilor de plat. Lista poate fi continuat. Desigur, n BD respective pot fi incluse i alte obiecte, obinndu-se astfel BD adaptate. Prin urmare, un utilizator care posed tehnologia crerii Bazelor de Date dintr-un anumit domeniu este capabil s realizeze acest lucru i n alte domenii de activitate. Totodat, menionm c nici pe departe Bazele de Date din diferite domenii nu pot avea aceeai structur. Mai mult ca att, chiar n acelai domeniu se pot crea BD cu structuri completament diferite ~ totul depinde de miestria proiectantului i de cerinele utilizatorului.

96

Access. Ghid de iniiere

Cuprins

CUPRINS

Argument........................................................................................................3
Lucrarea de laborator nr. 1

1. Cteva etape principiale la nceputul proiectrii unei Baze de D ate................................ ............................................................................5 1.1. Crearea tabelelor - fundament al Bazelor de Date........................................... 8
Lucrarea de laborator nr. 2

1.2. Crearea obiectelor de tip Select Query (cerere, interpelare)........ ................. 11


Lucrarea de laborator nr. 3

1.3. Exemple de Select Query la rezolvarea problemelor...................................... 15


Lucrarea de laborator nr. 4

2. O Baz de Date cu dou tabele........................................................................... .. 18


Lucrarea de laborator nr. 5

3. BD bazat pe 3 tabele - posibiliti i avantaje noi......................................... . 22


3.1. Exemple de Select Q u ery ................................................................................. 26
Lucrarea de laborator nr. 6

3.2. Utilizarea cererilor la introducerea informaiei................................................. 30


Lucrarea de laborator nr. 7

4. Crearea cererilor de tip Make Table Query i Append Query....,.................. 34


4.1. Proiectarea unei cereri de tip MakeTabie....................................................... 35 4.2. Proiectarea unei Append Q uery....................................................................... 35 4.3. Crearea unui M acros..........................................................................................37 4.4. Modificarea unui M acros........................................................................... .......39

97

Access. Ghid de iniiere

Cuprins

Lucrarea de laborator nr. 8

5. Modul de funcionare a BD create........ ........................... ............................ ......41


Lucrarea de laborator n r . 9

6. Proiectarea unui rap o rt......................................... .................................. .............44


Lucrarea de laborator nr. 10

7. Cereri cu param etri.................................. ............................................................. 52 7.1. Cum s facem ca s apar doar unele sectoare din raport................................ 54
Lucrarea de laborator nr. 11

8. Exemple de creare i utilizare a formularelor (Form s).................................... 56 8.1. Crearea unui formular i inserarea (plasarea) unui buton n e l........................56 8.2. Crearea formularului de baz B aza...................................................................59 8.3. Cum s verificm atribuirea corect a proprietilor unui buton......................60 8.4. Inserarea n formular a unui obiect pentru comentarii..................................... 61 8.5. Deschiderea n mod automat a formularului Baza la deschiderea BD............ 61
Lucrarea de laborator nr. 12

9. Un mod de organizare a lucrului cu cererile.......................................................63 9.1. Deschiderea formularului Cereri prin acionarea butonului Cereri din Baza.......................................... ................................................................... 64
Lucrarea de laborator nr. 13

10. Organizarea procesului de introducere a informaiei.....................................67 10.1. Introducerea direct a informaiei n tabele.................................................... 67 10.2. Utilizarea cererilor i a unui macros la introducerea informaiei n tabele............................................ ........................................... 67 10.3. Posibiliti de afiare a stocurilor curente la momentul vnzrilor................ 69 10.4. Utilizarea unui formular la introducerea informaiei despre intrri sau ieiri................................................................................................ 71 10.5. Deschiderea formularului Intrri Ieiri prin acionarea butonului Intrri sau Ieiri din formularul B aza......................................................... 72

98

Access. Ghid de iniiere

Cuprins

Lucrarea de laborator nr. 14

11. Utilizarea formularelor la introducerea informaiei..................................... 74


Lucrarea de laborator nr. 15

12. Formulare n formulare sau formulare ncuibate (SubForm s).......................83


Lucrarea de laborator nr. 16

13. Lrgirea Bazei de Date................. .................................................................87


13.1. BD conine ca obiecte doar tabele(Tables) i cereri (Queries).....................87 13.2. BD const doar din Tabele,Cereri i M acros.................................................. 88 13.3. Utilizarea formularelor.......................................................................................88 13.4. Lrgirea BD pe orizontal...................... .......................................................... 90 13.4. Modificri la nivelul utilizrii doar a tabelelor i cererilor..................................................................................... ............. 91 13.4.2. Modificri la nivelul utilizrii Tabelelor, Cererilor i Macros-uri lor.............................................................................................93 13.4.3. Modificri la nivelul utilizrii formularelor............................................ 93 ncheiere .............................................................................. ......................................96