Sunteți pe pagina 1din 71

UNIVERSITATEA TRANSILVANIA BRAOV

CENTRUL DE FORMARE CONTINU PENTRU INFORMATIC APLICAT I DEZVOLTARE TEHNOLOGIC

ef lucr.dr.ing. ALEXANDRU C. FILIP

BAZE

DE

DATE

TEORIE I APLICAII n Microsoft ACCESS

2005

CUPRINS
PREFA .....................................................................................................................................5 NOIUNI DE BAZ PRIVIND SISTEMELE DE GESTIUNE A BAZELOR DE DATE ..............................................................................................................................................7 1.1. Ce este o baz de date? Concepte generale. ..........................................................................7 1.2. Modelul relaional de baz de date......................................................................................10 SISTEMUL DE GESTIUNE A BAZELOR DE DATE RELAIONALE MICROSOFT ACCESS ........................................................................................................15 2.1. Ce este Microsoft ACCESS? Concepte generale ..............................................................15 2.2. Proiectarea structurii unei baze de date...............................................................................20 2.3. Tabele. Creare structur, afiare nregistrri .......................................................................24 2.4. Tipuri de date. Proprietile cmpurilor ..............................................................................29 2.5. Relaiile dintre tabele. Creare i configurare.......................................................................34 2.6. Afiarea selectiv i ordonarea nregistrrilor.....................................................................36 2.7. Biblioteca de funcii integrate Access .................................................................................38 2.8. Proiectarea i execuia interogrilor ....................................................................................40 2.9. Proiectarea i utilizarea formularelor ..................................................................................49 2.10. Proiectarea i utilizarea rapoartelor...................................................................................54 2.11. Proiectarea i utilizarea panourilor de comand................................................................57 2.12. Proiectarea i utilizarea macrocomenzilor ........................................................................60 ELEMENTE DE BAZ PRIVIND NTREINEREA I ADMINISTRAREA UNEI BAZE DE DATE ...........................................................................................................62 3.1. Aspecte privind securitatea datelor .....................................................................................62 3.2. Aspecte privind integritatea datelor ....................................................................................64 3.3. Aspecte privind importul i exportul datelor.......................................................................65 Anexa nr.1 Funcii predefinite integrate n Access .....................................................................67 Anexa nr.2 Aciuni asociate macrocomenzilor ...........................................................................70 BIBLIOGRAFIE ........................................................................................................................71

PREFA

n zilele noastre fenomenul informatic este n plin expansiune. Creterea permanent a vitezei de calcul, a capacitii de stocare a datelor, dezvoltarea continu a componentei software a sistemelor informatice sunt mereu stimulate de necesitatea prelucrrii n timp tot mai scurt a unei cantiti tot mai mari de informaii. Sistemele de gestiune a informaiilor numite generic baze de date constituie un puternic instrument pentru rezolvarea acestei probleme, motiv pentru care sunt utilizate n aproape orice domeniu de activitate al unei societi dezvoltate. Cercetrile ntreprinse n domeniul bazelor de date au cutat determinarea unor metode eficiente care s permit descrierea i gestionarea corect a unei anumite categorii de informaii i punerea la punct a unor medii i limbaje de programare uor de asimilat i de utilizat de ctre operatorul uman. Din multitudinea de sisteme informatice create pn n prezent pentru gestiunea bazelor de date, Microsoft Access este unul dintre cele mai cunoscute, probabil datorit includerii acestuia n pachetul Microsoft Office, att de popularul sistem informatic, ajuns astzi la ultimele versiuni, integrate sub sistemul de operare Windows XP. n acest curs s-a ncercat o abordare unitar a problemei, incluznd att aspecte teoretice generale, care unora li se vor prea prea abstracte, dar care sunt foarte necesare pentru nelegerea conceptului de baz de date, precum i aspecte practice efective, prin includerea unei colecii de aplicaii originale, o parte rezolvate i explicate, alt parte propuse spre rezolvare. Gradul de ptrundere n miezul sistemului Access este suficient pentru a permite cititorului, dup parcurgerea crii i execuia tuturor aplicaiilor, s poat crea, dezvolta i gestiona o baz de date de dimensiuni medii ntr-un mod destul de apropiat de unul profesional. Modul de abordare a problemelor s-a ncercat a fi unul lejer, accesibil, descrierea diferitelor elemente fiind completat de imagini sugestive i ndemnuri de rezolvare a aplicaiilor. Pentru nelegerea deplin a celor prezentate, se presupune o minim cunoatere a lucrului cu dispozitivele periferice (tastatur, mouse, imprimant) i a sistemului de operare Windows (gestiunea fiierelor). De asemenea, este util i cunoaterea altor module ale pachetului Microsoft Office (Word, Excel). Dei lucrarea are ca suport tehnic una dintre versiunile cele mai noi ale sistemului (Access 2002- ver.10), majoritatea componentelor descrise exist i n versiunile anterioare (Access 2000, 97 etc.). n capitolul 1 sunt prezentate elementele teoretice eseniale privind crearea i dezvoltarea unei baze de date moderne. Sunt explicate noiunile de tabel, cmpuri, nregistrare, relaii ntre tabele, structura optim a tabelelor. n capitolul 2 sunt descrise principalele componente ale sistemului Microsoft Access sunt descrise obiectele de tip tabel, formular, raport, interogare i panou de comand, nsoite i de exemple. Capitolul 3 prezint cteva dintre metodele necesare pentru o administrare eficient i corect a unei baze de date. Capitolul 4 cuprinde un numr de 8 aplicaii, fiecare dintre acestea coninnd exemple rezolvate precum i exemple propuse spre rezolvare ale cror soluii sunt oferite prin imagini. 5

Autorul cursului pune la dispoziia celor interesai nregistrrile din cele dou baze de date pe care sunt exemplificate aplicaiile, pentru a avea un suport tehnic corespunztor testrii acestora. Voi fi recunosctor celor care vor considera oportun s aduc observaii i sugestii pentru mbuntirea celor prezentate.

Succes n descifrarea tainelor bazelor de date!


Braov, martie 2005 dr.ing.Alexandru C. Filip (filipal@unitbv.ro)

Convenii utilizate n curs Atunci cnd nu se precizeaz altfel, sintagmele click, dublu-click sau depunerea prompterului i selectarea cu ajutorul mouse-ului presupun apsarea butonului stnga al mouse-ului. Cnd este necesar acionarea butonului din dreapta, acest lucru este precizat. Cnd se solicit alegerea unei opiuni de meniu este vorba de meniul principal al aplicaiei, aflat n partea superioar a ferestrei de afiare (File, Edit, ). Cnd se solicit alegerea unei opiuni din meniul contextual este vorba de meniul afiat prin apsarea butonului dreapta al mouse-ului. Aspectul acestui meniu se modific n funcie de obiectul sau entitatea active n momentul selectrii. n funcie de valoarea stabilit de ctre sistemul de operare Windows, separatorul zecimal poate fi punctul . (sistemul american) sau virgula , (sistemul romnesc). n exemplele considerate n curs s-a considerat ca separator zecimal virgula.

International Copyrights Microsoft Windows, Microsoft Office, Microsoft Access sunt mrci nregistrate Microsoft Corporation, Redmond, Washington, SUA, 1983-2004. Toate celelalte mrci i logouri prezente n curs sunt mrci nregistrate ale companiilor respective. Copyright 2005 Universitatea Transilvania Braov Toate drepturile asupra acestei versiuni aparin Universitii Transilvania Braov i autorului. Reproducerea integral sau parial a textului sau a ilustraiilor din acest curs este posibil numai cu acordul scris al autorului.

NOIUNI DE BAZ PRIVIND SISTEMELE DE GESTIUNE A BAZELOR DE DATE

1.1. Ce este o baz de date? Concepte generale.

n societatea contemporan gestionarea informaiei este o caracteristic definitorie a existenei acesteia. Constatm astzi c este nevoie ca un volum tot mai mare de informaii s fie gestionat (memorat, prelucrat, distribuit etc.) ntr-un timp ct mai scurt i cu costuri acceptabile. Bazele de date sunt acele instrumente prin care se poate realiza acest lucru. O baz de date1 este o colecie de informaii despre anumite obiecte, organizate dup o serie de reguli bine stabilite. O baz de date se creaz pentru a stoca informaii la care vor putea avea acces diferii utilizatori cu diferite solicitri. Din acest punct de vedere, bazele de date pot fi clasificate n dou categorii: baze de date statice (de arhivare) n care informaiile nu sunt prelucrate n vreun fel i odat introduse acestea nu se mai modific, datele noi se adaug doar la cele existente; baze de date dinamice n care informaiile sunt prelucrate i se pot modifica n timp. Exemple Evidena produselor comercializate de ctre o societate comercial Evidena produciei de bunuri ntr-o unitate de producie Evidena personalului unei societi comerciale Evidena crilor ntr-o bibliotec Evidena candidailor la concursul de admitere la o facultate Colecia electronic a ediiilor unor ziare

O baz de date modern, care se afl n pas cu cerinele lumii informatice de astzi nu trebuie s conin numai informaiile propriu-zise, ci i regulile de gestionare ale acestora precum i obiectele necesare acestei gestionri. Pentru ca o baz de date s poat fi construit i prelucrat, ntr-un cuvnt gestionat de ctre utilizatorul uman prin intermediul calculatorului este necesar un limbaj de nivel nalt, o interfa. Acest limbaj nu este altceva dect un sistem de programe specializat, proiectat n acest
1

engl. database

scop, care poart numele generic de Sistem de Gestiune a Bazelor de Date (SGBD), n limba englez DataBase Management System (DBMS). Pentru ca un SGBD s permit gestionarea corespunztoare a informaiilor dintr-o baz de date modern, acesta trebuie s ating cteva obiective principale: s permit gestionarea simultan a unor date de tipuri diferite (numerice, alfanumerice, iruri de caractere etc.); s evite informaiile redundante, adic duplicatele (o anumit informaie s nu exist n mai multe locuri ale aceleai baze de date); s asigure un acces rapid, uor i totodat controlat la informaii unor categorii diferite de utilizatori, n funcie de nivelul ierarhic i de instruire al acestora. De asemenea, s permit accesul la informaii prin mijloacele informaticii moderne de astzi (reele de calculatoare, internet etc.); s asigure integritatea informaiilor ntr-o baz de date dinamic, aflat ntr-o continu transformare; s asigure posibilitatea de extindere a bazei de date, conform cerinelor unei organizaii n dezvoltare permanent. Pentru ca un SGBD s permit interaciunea dintre baza de date i utilizator el trebuie s conin un anumit limbaj de descriere a datelor (LDD) prin care s poat fi proiectat structura bazei de date i un anumit limbaj de prelucrare a datelor (LPD) prin care s poat fi proiectate obiectele necesare gestionrii datelor memorate n baza de date respectiv. Cu ajutorul LDD utilizatorul uman descrie structura bazei de date, componentele acesteia, relaiile care exist ntre ele, stabilete drepturile de acces ale diverilor solicitani la informaiile respective. Cu ajutorul LPD, utilizatorul uman creaz obiectele de gestionare a informaiilor din baza de date, prin care se pot aduga, prelucra, elimina informaii. De multe ori, n cadrul SGBD moderne, cele dou limbaje nu sunt clar difereniate, compunnd un singur limbaj modular ale crui componente, unele realizeaz funciile unui LDD, iar celelalte pe acelea ale unui LPD. Din punct de vedere al utilizatorilor unei baze de date acetia se mpart n trei categorii: Administratorii bazei de date care proiecteaz structura iniial a bazei de date, creaz i gestioneaz obiectele acesteia, reglementeaz i controleaz accesul celorlali utilizatori la informaii, asigur ntreinerea curent a bazei de date, sunt cunosctorii LDD i LPD; Programatorii de aplicaii care pot crea anumite obiecte, aplicaii care s prelucreze informaiile din baza de date, utiliznd LPD; Utilizatorii obinuii care obin informaii din baza de date pe baza obiectelor create de ctre administratori sau programatori, fr s cunoasc LDD sau LPD. Relaiile ierarhice care se pot stabili n gestiunea unei baze de date prin intermediul unui SGBD pot fi cele prezentate n schema din figura 1.1. Pentru crearea unei baze de date corecte, care s corespund scopului propus, este necesar o modelare logic a datelor, adic stabilirea unei scheme conceptuale care reprezint nivelul logic al bazei de date. Limbajul de descriere a datelor (LDD) este cel prin care se trece de la schema conceptual la nivelul fizic al bazei de date, adic la fiierele memorate pe diferite medii de stocare care conin informaiile. Stabilirea schemei conceptuale a unei baze de date nu este un lucru ntotdeauna uor. Din acest punct de vedere, prerile teoreticienilor sunt unanime. Chiar dac, la un moment dat, se impune utilizarea unei baze de date pentru gestionarea unui anumit tip de informaii ntr-o organizaie, trebuie s se analizeze temeinic ce legturi, relaii exist ntre acele informaii i 8

altele care sunt administrate n mod curent de organizaia respectiv. S-ar putea desprinde concluzia c i alte informaii care iniial nu erau cuprinse n proiectul bazei de date ar trebui incluse pentru o dezvoltare ulterioar mai eficient. O schem conceptual bine proiectat nu ar trebui s depind de SGBD ales pentru implementarea ei. ADMIN Administrator sistem Programatori UTILIZATORI cereri

Aplicaii

LDD
limbajul de descriere a datelor

LPD SGBD interfaa


limbajul de prelucrare a datelor

TABELELE informaiile stocate fizic

Utilitare - formulare introducere date - editor rapoarte - reprezentri grafice - panouri de comand - pagini de acces la date - generatoare de aplicaii - etc.

Fig.1.1. Schema general a unui sistem de gestiune a datelor n literatura de specialitate sunt recunoscute, aproape unanim, patru tipuri de modele: modelul relaional, modelul reea, modelul arborescent i modelul orientat pe obiecte. Dintre cele patru, modelul relaional se caracterizeaz prin simplitate, poate fi mai uor neles i de ctre nespecialiti, motive pentru care a fost implementat n multe SGBD actuale. Deoarece SGBD prezentat n aceast lucrare (Microsoft Access) are la baz modelul relaional, acest model va fi descris mai n amnunt n subcap.1.2. Dup stabilirea modelului logic (schema conceptual) a bazei de date, urmtoarea etap este proiectarea structurilor de date prin care se poate implementa acel model. Proiectarea structurii optime a unei baze de date este o problem deosebit. Aceast proiectare depinde foarte mult de posibilitile unui SGBD de a atinge acele obiective principale, prezentate anterior. Limbajul de prelucrare a datelor (LPD) este direct responsabil de aceste aspecte. O baz de date modern, performant trebuie s aib anumite proprieti, dintre care cele mai importante sunt: 9

Corectitudine: s reprezinte fidel modul de lucru n sistemul real; Simplitate: structura tabelelor s fie clar i uor de neles; Neredundan: o informaie s nu existe de mai multe ori n baza de date (absena duplicatelor; Distributivitate: informaiile s fie uor accesibile ct mai multor utilizatori i aplicaii; Extensibilitate: s existe posibilitatea dezvoltrii de noi componente fr a afecta major structura existent la un moment dat; Flexibilitate: s poat adapta uor datele la eventuale modificri; Integritate: ntreinerea bazei de date s nu afecteze existena i corectitudinea informaiilor. Tehnologia de proiectare a unei baze de date moderne presupune parcurgerea succesiv a unor etape bine definite, dup cum urmeaz: Identificarea obiectelor (entiti, tabele) prin care se vor memora informaiile; Identificarea proprietilor semnificative al obiectelor; Stabilirea relaiilor dintre obiecte i a regulilor de operare a acestor relaii; Crearea obiectelor prin care baza de date este exploatat (actualizri, tranzacii, modificri, reguli de integritate a datelor; Stabilirea drepturilor de acces la date a diverilor utilizatori; Realizarea documentaiei pentru exploatarea eficient a bazei de date Crearea procedurilor de ntreinere a bazei de date (sigurana datelor, copiere, dezvoltare etc.). n ultima perioad de timp a ptruns i n lumea bazelor de date conceptul de proiectare orientat pe obiecte. Acest tip de abordare face o analogie cu lumea real, format din obiecte care au anumite proprieti i un anumit comportament. i obiectele unei baze de date au proprieti i metode (comportament). Proprietile pot fi statice (nu se modific n timp) sau dinamice (se modific n timp). Metodele controleaz rspunsul obiectelor la anumite evenimente care le afecteaz. Avantajul utilizrii acestui tip de proiectare este acela al unei generalizri a modelului logic, astfel nct acesta s poat fi utilizat pentru mai multe aplicaii, cu adaptri minime la un caz concret. SGBD moderne trebuie s includ n LDD i LPD i posibilitatea aplicrii conceptului de proiectare orientat pe obiecte.

1.2. Modelul relaional de baz de date


Un model relaional de baz de date are ca fundament structuri de date numite tabele n care sunt stocate informaiile propriu-zise. ntre tabele se stabilesc relaii de asociere, a cror existen este guvernat de un set de reguli precise. Informaiile cuprinse n tabele pot fi controlate de restricii algebrice. Modelul mai cuprinde i operaii de prelucrare a datelor. Tabelul (tabela)2 este o structur de tip matrice, n care informaiile sunt aezate pe rnduri i coloane. Coloanele definesc tipul informaiei, iar rndurile, valorile acesteia. O coloan, coninnd un anume tip de informaie, se numete cmp3. Un rnd, coninnd valorile
2 3

engl. table engl. field

10

corespunztoare tuturor coloanelor, se numete nregistrare4. Fiecare cmp al tabelului are o denumire prin intermediul creia va putea fi identificat atunci cnd se face referire la el. Lista cmpurilor tabelului formeaz structura acestuia, care este stabilit de ctre proiectantul bazei de date dup nite reguli specifice. Exemplul 1 Evidena tipurilor de materiale utilizate ntr-o ntreprindere poate fi inut sub forma unui tabel (nomenclator de materiale), conform tabelului 1.1. Tabelul 1.1. Codul materialului 01013 01025 01026 02001 02002 04001 Denumirea materialului Oel OL 37 Oel OLC 45 Oel OLC45 Font cenuie Fc 100 Font cenuie Fc 150 Ulei mineral M20 Tipul semifabricatului Bar laminat 20 Bar laminat 30 Bar laminat 40 Bloc 250x150x50 Bloc 250x150x50 Butoi 200 l Unitatea de msur kg kg kg kg kg l

Structura prezentat n tabelul 1.1. conine patru cmpuri care pot avea denumirile codmat, denmat, tipsem, unms. O nregistrare a tabelului este 02002 Font cenuie Fc 150 Bloc 250x150x50 kg

Valorile atribuite cmpurilor unui tabel al bazei de date trebuie s aib anumite proprieti care sunt stabilite la definirea structurii tabelului. Aceste proprieti se refer la tipul de date (numeric, text etc.), la domeniul permis al valorilor, la anumite restricii privind valorile introduse etc. Posibilitile de control al acestor proprieti depind n mare msur de SGBD-ul ales pentru gestionarea bazei de date. n orice tabel al unei baze de date fiecare nregistrare trebuie s fie unic, adic valorile cmpurilor acesteia s difere de ale celorlalte nregistrri pentru cel puin unul dintre cmpuri. Dup valoarea din acel cmp, nregistrarea respectiv poate fi identificat. Acel cmp poart denumirea generic de cheie de identificare. Deoarece identificarea unei nregistrri a unui tabel s poate face dup valorile dintr-un cmp sau din multe cmpuri, iar tabelul respectiv se afl, n mod normal, n relaii cu alte tabele ale bazei de date, stabilite pe baza unor cmpuri, exist mai multe tipuri de chei de identificare, dup cum urmeaz: Cheie principal (primar) 5 un set de valori (cmpuri) care identific n mod unic o nregistrare a unui tabel. Pentru o anumit valoare a cheii principale exist o singur nregistrare i numai una. Cheia principal poat fi definit pe un singur cmp al unui tabel dac valorile acelui cmp sunt unice pentru orice nregistrare a tabelului;
4 5

engl. record engl. primary key

11

Cheie candidat 6 orice cmp al tabelului care ntrunete condiiile pentru a fi o cheie primar; n exemplul nr.1, cmpurile codmat i denmat sunt chei candidate; codmat este cel mai corect a fi ales cheie primar, deoarece pot exista mai multe nregistrri referitoare la acelai material, dar care se refer la tipuri diferite de semifabricate (vezi cele dou nregistrri cu Oel OLC 45); Cheie compus (concatenat) 7 este cheia primar care se definete pe cel puin dou cmpuri ale tabelului; o nregistrare este identificat printr-un grup de valori, corespunztoare cmpurilor care definesc cheia compus; Exemplul 2 n tabelul 1.1. cmpul cod material are o valoare unic pentru fiecare nregistrare (fiecare tip de material). Nu trebuie s existe dou tipuri de materiale cu acelai cod atribuit. n consecin, acest cmp poate ndeplini funcia de cheie principal n tabelul respectiv. n cadrul modelului relaional, ntre informaiile stocate n diferitele tabele ale bazei de date se stabilesc relaii de asociere. Acestea constituie unul dintre elementele de esen conceptual a modelului relaional al bazelor de date. Pe baza acestui model s-au dezvoltat i astzi sunt n puternic expansiune Sistemele de Gestiune a Bazelor de Date Relaionale (SGBD-R) Relational Database Management Systems (R-DBMS), din care face parte i Microsoft Access. O relaie se stabilete ntre dou tabele ale bazei de date, prin intermediul a dou cmpuri, cte unul din fiecare tabel, adic este de tip binar (cmp cmp). Exist trei tipuri de relaii: Relaie unu-la-unu (one-to-one) 1:1 n care unei nregistrri din primul tabel (partea stng) i corespunde cel mult o nregistrare n cellalt tabel (partea dreapt) i reciproc; Relaie unu-la-mai muli (one-to-many) 1:N n care unei nregistrri din primul tabel i pot corespunde mai multe nregistrri n cellalt tabel i fiecrei nregistrri din al doilea tabel i corespunde numai una n primul tabel; primul tabel se poate numi tabel primar, iar cel de-al doilea, tabel corelat; Relaie mai muli-la-mai muli (many-to-many) M:N n care unei nregistrri din primul tabel i pot corespunde mai multe nregistrri n cellalt tabel i reciproc.

Cmpurile prin care se stabilesc relaii ntre dou tabele ale bazei de date trebuie s conin acelai tip de dat. Mulimea tuturor relaiilor stabilite ntre tabelele unei baze de date formeaz schema relaional8 a bazei de date. n unele SGBD moderne, cum ar fi Microsoft Access, aceast schem este memorat i poate fi vizualizat i gestionat ntr-o seciune special. Avantajele utilizrii relaiilor ntr-un SGBD sunt: evitarea memorrii tuturor informaiilor necesare ntr-un singur tabel, de dimensiuni mari, cu multe cmpuri, care este mai dificil de gestionat; micorarea mrimii fizice a bazei de date, implicit a spaiului ocupat de aceasta, prin evitarea redundanei, adic a memorrii aceleai informaii de mai multe ori n baza de date;
engl. candidate key engl. concatenated key 8 engl. relationships scheme
7 6

12

uurina efecturii de modificri ale anumitor valori ale informaiilor i de actualizri sau tergeri ale unor informaii din baza de date. Exemplul 3 Evidena achiziiilor de materiale ntr-o societate comercial se poate ine cu o baz de date avnd dou tabele cu urmtoarea structur (vezi i exemplul 1): 1. tip_material (codmat, denmat, unms); 2. stoc_material (nrfct, data, codmat, pret, cantitate) Cmpurile subliniate n structurile de mai sus formeaz cheile primare ale tabelelor. Tabelul tip_material ine evidena tipurilor de materiale. Fiecrui material utilizat i corespunde o singur nregistrare n tabel, adic valoarea cmpului codmat este unic pentru fiecare nregistrare. Tabelul stoc_material ine evidena datelor pre/cantitate la fiecare intrare de material n gestiune, prin informaiile preluate din facturile de achiziie. Pentru fiecare achiziie a unei cantiti dintr-un anumit material, n tabel se adaug cte o nregistrare. Pentru un anumit material, adic o anumit nregistrare din tabelul tip_material, pot exista mai multe nregistrri corespondente n tabelul stoc_material, corespunztoare achiziiilor de-a lungul unei perioade de timp. ntre tabelul tip_material i tabelul stoc_material se poate stabili o relaie de asociere de tip 1:N, prin cmpul codmat, care are aceeai semnificaie n ambele tabele. Relaia se vizualizeaz n schema conceptual a bazei de date printr-o sgeat care pleac de la cmpul din primul tabel (codmat din tip_material) spre cmpul asociat din al doilea tabel (codmat din stoc_material), conform figurii 1.2. Se observ c, n ambele tabele, cmpul codmat face parte din cheia primar. tip_material codmat denmat unms stoc_material nrfct data codmat pret cantitate

Fig.1.2. Vizualizarea relaiei ntre dou tabele Observaie Informaiile privind achiziiile de materiale pot fi gestionate i ntr-un singur tabel, avnd urmtoarea structur: stoc_materiale (codmat, denmat, unms, nrfct, data, pret, cantitate) Aceast structur nu respect ns anumite reguli de proiectare a unei baze de date, cum ar fi: exist informaii redundante; la nregistrrile privind achiziiile dintr-un anumit material, valorile cmpurilor denmat i unms sunt aceleai i ele se repet la fiecare nregistrare; adugarea de nregistrri n tabel consum timp relativ mare, deoarece cmpul denmat poate conine multe caractere i acestea trebuie introduse de fiecare dat; riscul de apariie a erorilor la introducerea datelor este ridicat; dac valoarea cmpului denmat nu este aceeai pentru toate nregistrrile corespunztoare aceluiai tip de material, prelucrarea ulterioar a datelor (inclusiv actualizare, tergere de nregistrri etc.) va da rezultate incorecte; 13

utilizarea unui tabel cu multe cmpuri nu asigur simplitatea structurii bazei de date i ngreuneaz prelucrarea informaiilor.

Exemplul 4 Prelucrarea informaiilor privind candidaii la concursul de admitere la o facultate se poate face cu ajutorul a dou tabele cu urmtoarea structur (selectiv): 1. date_candidati (nrlegit, nume, sex, medie_bac, medie_admitere, jud_domiciliu) 2. op_candidati (nrlegit, op1, op2, op3, op4, op5, op6) Tabelul date_candidati cuprinde informaii generale despre candidai numrul legitimaiei de concurs, numele i prenumele, sexul, media de bacalaureat, media de admitere, judeul de domiciliu etc), iar tabelul op_candidati cuprinde informaii privind opiunile de specializare dorite de candidai. n ambele tabele, fiecrui candidat i corespunde o singur nregistrare, identificat prin cheia principal, cmpul nrlegit. Legtura ntre cele dou tabele se poate stabili printr-o relaie de tip 1:1, prin cmpul nrlegit. Avantajul utilizrii acestei structuri de date cu relaia menionat este acela al unei gestiuni mai uoare a informaiilor (se recomand evitarea tabelelor cu un numr mare de cmpuri). n cadrul modelului relaional, pe lng tabele cu structuri definite i relaii de asociere ntre acestea, trebuie s existe i un set de reguli de gestionare a informaiilor, de prelucrare a acestora. Aceste reguli sunt cuprinse n limbajul de prelucrare a datelor (LPD) care se mai numete i limbaj de cereri (n majoritatea cazurilor baza de date este utilizat pentru a solicita a cere ulterior informaii de un anumit tip). Odat cu apariia i dezvoltarea SGBD-R, au aprut i diverse tipuri de LPD, majoritatea bazate pe operatori matematici ai algebrei relaionale. Unele dintre acestea sunt specifice numai anumitor SGBD-R, altele au devenit un standard i formeaz nucleul mai multor SGBD moderne Sistemul Microsoft Access include dou LPD-uri, i anume QBE i SQL. Limbajul QBE (Query-By-Example9) are la baz un editor de texte prin intermediul cruia utilizatorul poate exprima cererile. Utilizatorul are posibilitatea afirii grafice, ntr-o form specific, a structurii tabelelor, a relaiilor dintre ele i apoi, prin intermediul editorului, cu cteva comenzi simple, i poate construi solicitrile. Selectarea nregistrrilor dorite se face prin indicarea valorii atributelor n dreptul cmpurilor corespunztoare. Conveniile limbajului QBE sunt simple, uor de neles i asimilat. Limbajul SQL (Structured Query Language10) a fost introdus prima dat n 1974, de ctre IBM Research Laboratory, San Jose, California, iar n anul 1986 a fost recunoscut de ctre ANSI ca standard internaional. SQL reprezint un set de instruciuni, majoritatea direct executabile, care utilizeaz operatori din algebra relaional (produs cartezian, reuniune, intersecie, diferen), dar i operatori care definesc funcii agregat, folosite n teoria mulimilor (numrare Count, medie aritmetic Avg, suma Sum, valoare minim Min etc.). Instruciunile din SQL pot fi incluse i n alte limbaje de programare (Basic, C, Cobol, Fortran etc.), astfel nct aplicaiile scrise cu aceste limbaje pot interaciona cu bazele de date prin intermediul unui SGBD-R care include i SQL. De asemenea, prin SQL se asigur compatibilitatea ntre diversele aplicaii cu baze de date, create cu diverse SGBDR, care trebuie s aib inclus acest limbaj n componena lor.
9 10

rom. cerere prin exemplu rom. limbaj structurat de cereri

14

SISTEMUL DE GESTIUNE A BAZELOR DE DATE RELAIONALE MICROSOFT ACCESS

2.1. Ce este Microsoft ACCESS? Concepte generale


Dintre sistemele de gestiune a bazelor de date relaionale existente astzi, ACCESS este unul dintre cele mai complete i performante. El nu este un simplu SGBD, ci mai degrab este un mediu complex de dezvoltare de aplicaii pentru baze de date, construit pe principiile arhitecturii deschise. Microsoft Access este integrat n pachetul Microsoft Office, avnd faciliti corespunztoare de interaciune cu celelalte sisteme incluse (Word, Excel, PowerPoint, FrontPage). Access ncorporeaz un maximum de posibiliti de abordare a unei baze de date, avnd integrate cele mai importante modele de proiectare a acesteia. Pachetul Access, ajuns la versiunea 2003, ofer un set solid de instrumente, unele suficient de sofisticate pentru programatorii profesioniti, altele uor de folosit de ctre utilizatorii noi. Cu Access, orice utilizator i poate crea soluiile cele mai convenabile prin care accesul, organizarea i distribuia informaiilor dintr-o organizaie se poate face mai uor i mai sigur ca niciodat. Pachetul Microsoft Access cuprinde urmtoarele componente principale (fig.2.1): un modul SGBD-R performant, care include dou dintre cele mai cunoscute limbaje de prelucrare a datelor, QBE (Query-by-Example) i SQL (Structured Query Language); n acest modul se creaz tabelele de date i se gestioneaz informaiile; un modul VBA care include un limbaj procedural de programare independent, VBA (Visual Basic for Applications), utilizabil pentru dezvoltarea de aplicaii; un limbaj macro procedural simplificat, cu ajutorul cruia se pot proiecta aanumitele macrocomenzi, deosebit de utile n unele etape de administrare a bazei de date; un set de instrumente pentru dezvoltare rapid a interfeei baz de date utilizatori obinuii (formulare, rapoarte, panouri de comand); un set de instrumente pentru asigurarea interfeei Access alte medii (conversii de date, transfer de date n/din, securitate, acces prin Web, compatibiliti etc.); un set puternic de instrumente de asisten interactiv (wizards) pentru dezvoltarea uoar a aplicaiilor.

15

Instrumente de gestionare
Queries, Forms, Reports Relationships QBE, SQL Language

Asisten
Wizards Help

Macrocomenzi
Macros language

Tabele de date
Tables

Utiliti
Conversii de date Pagini de access Web Securitate date ntreinere fiiere

Module de aplicaii
VBA language

Fig.2.1. Elementele componente ale sistemului Microsoft Access

n Access, termenul de baz de date nu se refer numai la datele propriu-zise, ci cuprinde i alte obiecte cum ar fi formularele, interogrile (cereri), rapoartele, panourile de comand, macrocomenzile i modulele de aplicaii VBA. O caracteristic specific, deosebit de alte SGBD cunoscute, este faptul c toate obiectele, mpreun cu tabelele de date pot fi memorate ntr-un singur fiier, care poart numele <nume_fisier>.mdb. Acest lucru asigur un control mai eficient al aplicaiilor care privesc o anumit baz de date. Modulul de baz, n care se definete i se gestioneaz colecia de date, cuprinde urmtoarele obiecte: tabelele de date (Tables), conin informaiile propriu-zise sub form de nregistrri i ntre care se pot stabili relaii de asociere (Relationships); interogrile (cereri) (Queries), rezolv solicitri ale utilizatorilor privind afiarea selectiv a informaiilor i prelucrarea acestora; formularele (forme) (Forms), afieaz informaiile ntr-un format anume, constituind o interfa ntre colecia de date i utilizatorul obinuit; rapoartele (Reports), ajut la tiprirea la imprimant a informaiilor, ntr-un format anume, constituind interfaa ntre colecia de date i imprimant; panourile de comand (Switchboard), sunt formulare prevzute de obicei numai cu butoane de comand prin care utilizatorul obinuit navigheaz n baza de date.

16

La fel ca i majoritatea aplicaiilor Windows, Access funcioneaz pe principiul ferestrelor i meniurilor. Ultimele versiuni (9.0 - Access 2000, 10.0 Access 2002 i 11.0 Access 2003) asigur o serie de faciliti suplimentare, dintre care se pot meniona: acceptarea unei varieti mai mari de formate de date, cum ar fi XML (Extensible Markup Language OLE), ODBC (Open Database Connectivity); posibilitatea accesului concomitent la informaii din mai multe baze de date n cadrul formularelor, rapoartelor i al paginilor de acces la date, se pot asocia tabele din baze de date Access, foi de calcul Microsoft Excel, surse de date ODBC, baze de date Microsoft SQL Server etc.; mai multe posibiliti de creare a formularelor; noi caracteristici de cutare a erorilor obinuite din formulare i rapoarte, ajutnd la identificarea i eliminarea mai rapid a acestora; actualizri automate ale proprietilor obiectelor prin modificare ntr-un singur loc; mbuniri ale modului de proiectare a paginilor Web de acces la date cu ajutorul unor instrumente mai puternice; compatibilitate perfect ntre cele dou versiuni, Access 2002 utiliznd ca format implicit de fiier pentru baze de date noi cel al versiunii Access 2000. Fiind un sistem de gestiune a bazelor de date relaional (SGBD-R), Access beneficiaz de toate caracteristicile i avantajele unui astfel de sistem. Datele sunt organizate sub form de nregistrri (records) incluse n tabele (tables) ntre care exist relaii de interdependen (relationships). La lansarea n execuie a sistemului Access, se afieaz fereastra principal al crei aspect este cel prezentat n figura 2.3.

Zona de meniuri

Bara cu butoane superioar

Zona de informaii

Fig.2.3. Fereastra principal a sistemului Access 2002

17

Aa dup cum se observ din figura 2.3, fereastra principal a aplicaiei conine o zon de meniuri n partea superioar (File, Edit, View, ) sub care se afl o bar cu butoane specifice (Toolbar), structur care este caracteristic tuturor aplicaiilor Microsoft Windows. n cadrul ferestrei principale exist posibilitatea afirii unui panou de control, util pentru selectarea mai comod a aciunilor de deschidere a bazelor de date. Aspectul acestui panou este prezentat n figura 2.4. Afiarea automat a panoului la lansarea n execuie a aplicaiei se face prin validarea opiunii Tools Options View Startup Task Pane, avnd o baz de date deschis. Dac nu se dorete afiarea automat a panoului, se anuleaz opiunea Show at startup, aflat n partea inferioar a acestuia. La urmtoarea lansare a aplicaiei, panoul nu va mai fi afiat. Din fereastra principal a aplicaiei se pot executa o serie de aciuni asupra bazelor de date existente sau pentru crearea unor noi baze de date. Cele mai importante dintre acestea sunt descrise n continuare. Crearea unei baze de date se face prin selectarea opiunii de meniu File New sau prin selectarea uneia dintre opiunile New ale panoului de control (fig.2.4). Exist dou posibiliti de creare a unei baze de date noi: 1. Baz de date fr obiecte Blank Database. n acest caz, obiectele (tabele etc.) vor fi create de ctre utilizator sau importate din alte baze de date; 2. Baz de date cu tabele predefinite New from template. n acest Fig.2.4. caz, tabelele i structura acestora sunt importate dintr-o bibliotec inclus n sistem (General Templates) sau din alte surse (ex.internet). Dac se alege aceast opiune, utilizatorul are posibilitatea de a selecta tabele i structuri predefinite care se potrivesc cel mai bine coleciei de date pe care trebuie s o gestioneze. Alegerea se face ntr-o succesiune de ferestre de dialog sugestive prin care utilizatorul este asistat pentru luarea celor mai bune decizii. Deschiderea unei baze de date existente se face prin selectarea opiunii de meniu File Open sau prin alegerea uneia dintre opiunile Open a file ale panoului de control (fig.2.4). Dac baza de date este una n care se lucreaz frecvent, probabil numele fiierului este afiat n zona corespunztoare a panoului de control (ex.candidati2003) i poate fi selectat de acolo. Dac nu, se alege opiunea More files i va fi afiat structura de subdirectoare a calculatorului din care se va putea selecta fiierul dorit. Crearea de pagini de acces la date se face cu opiunea Blank Data Access Page a panoului de control (fig.2.4) sau n seciunea Pages a ferestrei principale a unei baze de date deschise (fig.2.5). Pagina de acces la date permite citirea/consultarea datelor stocate n tabelele unei baze de date prin intermediul internetului, fiind de fapt un formular codificat n limbaj HTML (HyperText Markup Language), astfel nct s poat fi vizualizat cu ajutorul unui browser Web. Crearea unei aplicaii de tip proiect se face prin selectarea uneia dintre opiunile Project (Existing Data) i Project (New Data) ale panoului de control. O aplicaie de tip proiect n Access 18

Access Project este un fiier de date care asigur accesul la baze de date de tip SQL Server prin proceduri bazate pe arhitectura OLE DB (acces la date prin reea/internet). Proiectele Access sunt aplicaii client/server care prelucreaz informaiile stocate n baze de date localizate pe servere prin obiecte de tip Data Access Page. Proiectele nu conin date efective, ci numai proceduri de prelucrare a acestora. La crearea sau deschiderea unei baze de date este afiat fereastra principal de gestionare a acesteia, al crei aspect este prezentat n figura 2.5.

Fig.2.5. Fereastra principal a bazei de date n partea din stnga a ferestrei se afl zona de selectare a diferitelor tipuri de obiecte (Objects), iar n partea superioar se afl un set de butoane Open, Design, New disponibile pentru execuia diferitelor aciuni asupra obiectelor selectate Deschidere/execuie obiect existent, Proiectare/modificare obiect, Creare obiect nou. La selectarea unui tip de obiect (de exemplu, Tables), n fereastra principal sunt afiate obiectele disponibile de acel tip (n fig.2.5 s-a selectat seciunea Tables, tabelele bazei de date). Dup cum s-a precizat anterior, un fiier baz de date Access poate s conin, pe lng tabelele cu date, i alte obiecte necesare gestionrii datelor memorate. Totui, utilizatorii avansai (programatorii de aplicaii) recomand existena a dou fiiere separate; unul pentru stocarea datelor propriu-zise sub form de tabele fiier date i altul pentru obiectele necesare gestionrii datelor respective (formulare, interogri etc.) fiier interfa care constituie interfaa ntre utilizatorii obinuii i date. Motivul este unul simplu: n general, utilizatorii obinuii nu trebuie s aib un acces nelimitat sau direct la datele stocate n tabele; ei consult/modific/adaug date prin intermediul unor obiecte specifice (formulare, panouri de comand etc.). Se asigur astfel integritatea nregistrrilor i protecia mpotriva unor modificri accidentale sau ru-intenionate a datelor. Legtura ntre cele dou fiiere se face prin procedura 19

linked table tabele legate. n fiierul interfa, n seciunea Tables, numele tabelelor legate este precedat de o sgeat care indic faptul c tabelul respectiv nu este efectiv stocat acolo, ci ntr-un alt fiier. Una dintre activitile de mare importan care au loc la crearea unei baze de date este cea de proiectare corect a structurii bazei de date i a tabelelor acesteia. Modelul relaional care st la baza sistemului Access asigur din acest punct de vedere avantaje deosebite. n cele ce urmeaz se prezint cteva principii de baz privind proiectarea unei baze de date, cu exemplificare pe cele dou baze de date utilizate n cadrul aplicaiilor din capitolul 4.

2.2. Proiectarea structurii unei baze de date


n capitolul 1 s-au prezentat cteva principii de baz care trebuie respectate atunci cnd se proiecteaz schema conceptual a unei baze de date care se va utiliza pentru gestiunea unei anumite colecii de informaii. Pentru proiectarea corect de la nceput a structurii bazei de date, este necesar aplicarea unor reguli relativ simple. Deoarece la baza sistemului Access se afl modelul relaional, prezentat n subcap.1.2, exemplele analizate n continuare se bazeaz pe acest model. Se consider temele prezentate n exemplele 3 i 4 ale capitolului 1, adic: 1. gestiunea produselor achiziionate / consumate (comercializate) de ctre o societate comercial; 2. gestiunea candidailor la admitere la o facultate. Pentru rezolvarea primei teme, este necesar colectarea informaiilor de pe facturile de achiziie ale produselor i de pe bonurile de consum (respectiv, facturile de vnzare). Informaiile minime de care este nevoie sunt urmtoarele: facturi de achiziie: numr factur, data facturii, denumire furnizor, denumire produs, cantitate, pre achiziie; bonuri de consum: numr bon, data bonului, departament, denumire produs, cantitate. Aceste informaii ar putea fi gestionate n dou tabele ale bazei de date, achiziii i consum, avnd urmtoarele structuri: achiziii (nrfact, datafact, denfur, denprod, cant, pret); consum (nrbon, databon, dept, denprod, cant). Structurile prezentate mai sus pot asigura o gestionare a informaiilor, dar au cteva dezavantaje i dificulti n exploatare, cum ar fi: pentru fiecare produs existent pe factura de achiziie se introduce cte o nregistrare n tabelul achiziii, repetndu-se introducerea unor informaii identice (numr factur, data facturii, denumire furnizor), existnd deci informaii redundante n baza de date; informaiile despre furnizor sunt minime (denumire furnizor) i vor trebui completate ulterior cu altele (de ex. cod fiscal, adresa, telefon etc.), lucru care nseamn adugarea

20

de noi cmpuri n tabelul achiziii, determinnd creterea dimensiunilor acestuia i o gestionare mai dificil; ar fi necesar i informaia referitoare la unitatea de msur a produsului (buci, seturi, kg, litri etc.) care trebuie adugat n tabelul achiziii; dac se va dori legarea informaiilor din cele dou tabele, necesar spre exemplu pentru determinarea stocurilor de produse la un moment dat, ar fi foarte dificil. n cele dou tabele exist o singur posibilitate de a stabili o relaie, prin cmpul denprod, dar aceast relaie ar fi de tipul M-N i ar fi dificil de gestionat. Pentru rezolvarea problemei, se propune o structur a bazei de date format din 6 tabele, conform schemei din figura 2.6.

EVIDENA PRODUSE

Tipuri de produse cod produs denumire produs unitate de msur

Eviden furnizori cod furnizor denumire furnizor adresa nr. telefon cod fiscal

Note recepie nr. not recepie cod furnizor nr. factur data facturii achitat

Intrri de produse n stoc cod produs nr. nota recepie cantitate pre

PRODUSE

FURNIZORI

NOTEREC

STOCAPROV

Ieiri de produse n consum cod bon cod produs cantitate

Bonuri de consum cod bon data consum departament

STOCONSUM

BONCONSUM

Fig.2.6. Schema structural a unei baze de date relaionale pentru gestiunea produselor ntr-o societate comercial Comentarii la schema din figura 2.6 Informaiile din factura de achiziie se mpart n dou categorii: informaii generale (date despre factur i furnizor) i informaii speciale (date despre produsele din factur). Pe baza facturii de achiziie se ntocmete o not de recepie i informaiile se vor memora n dou tabele, noterec i stocaprov, legate relaional prin cmpul nr. nota recepie. n mod similar, informaiile

21

privind produsele date n consum se vor gestiona n dou tabele, bonconsum i stoconsum, legate relaional prin cmpul cod bon. Informaiile despre produse i furnizori se vor memora n tabele distincte, produse i furnizori. Din punct de vedere informatic, gestionarea acestora se face mai comod dac se atribuie cte un cod specific fiecrui produs i, respectiv, fiecrui furnizor. Aceste coduri se memoreaz prin cmpurile cod produs i, respectiv, cod furnizor, care constituie i cmpuri de identificare a nregistrrilor, adic se pot constitui n chei primare ale tabelelor respective. Tabelele produse i furnizori pot fi legate prin relaii specifice de celelalte tabele ale bazei de date, n funcie de necesiti. Fiind tabele distincte, dezvoltarea ulterioar a acestora este foarte simpl i nu pune probleme de ansamblu n baza de date (de exemplu, la un moment dat poate fi necesar adugarea n tabelul furnizori a altor informaii (cont bancar, persoana de contact, numr de fax etc.). Schema structural din figura 2.6 asigur bazei de date simplitate, neredundan, distributivitate, extensibilitate i flexibilitate, adic acele proprieti necesare unei structuri moderne de date. n cazul celui de-al doilea exemplu, gestiunea candidailor la admitere la o facultate se poate realiza cu un singur tabel, candidati, avnd urmtoarele cmpuri: Candidati (nrlegit, nume, sex, medie_bac, proba_conc, medie_admitere, admis_la, jud_domiciliu, op1, op2, op3, op4, op5, op6) Comentarii Identificarea fiecrei nregistrri se face prin numrul legitimaiei de concurs a candidatului, nrlegit, care este unic pentru fiecare candidat. Cmpurile op1, op2,, op6 reprezint denumirile (sau codurile) specializrilor la care poate opta candidatul, n ordinea preferinelor acestuia. Dac aceste cmpuri conin coduri (ex. TECM tehnologia construciilor de maini), atunci n tabelul candidati nu sunt memorate denumirile specializrilor i ar fi necesar un alt tabel n care s fie precizate acestea. Se observ c tabelul candidati are relativ multe cmpuri, acest aspect putnd crea dificulti n prelucrarea ulterioar i afiarea informaiilor. Din acest punct de vedere, se recomand evitarea acestei variante i separarea informaiilor dintr-un tabel mare n tabele mai mici legate prin relaii specifice. Pentru mbuntirea structurii analizate, se propune o schem structural a bazei de date, format din 3 tabele, conform schemei prezentate n figura 2.7. Aceast schem utilizeaz dou tabele principale, eviden candidai i eviden opiuni, care separ informaiile referitoare la candidai n dou grupe, una cu informaiile generale de admitere i una cu opiunile pe specializri ale candidailor. Cmpurile care memoreaz opiunile, optiune1, optiune2,, optiune6, conin coduri specifice. Pentru identificarea denumirilor complete ale opiunilor este necesar un al treilea tabel, eviden specializri, care stabilete corespondena ntre codul i denumirea fiecrei opiuni i care poate fi legat de celelalte tabele prin relaii n funcie de necesiti. Tabelele eviden candidai i eviden opiuni sunt legate relaional prin cmpul nrlegit. 22

Din schemele structurale prezentate n figurile 2.6 i 2.7 se desprind cteva concluzii privind regulile de proiectare a unei baze de date corecte i eficiente: separarea informaiilor n tabele distincte, pe baza dependenei acestora la o anumit grup (ex.produse, furnizori, facturi etc.); utilizarea cmpurilor cu coduri de identificare a nregistrrilor care sunt mai uor de prelucrat de ctre sistemul informatic; utilizarea relaiilor dintre tabele pentru legarea informaiilor din acestea; evitarea tabelelor cu multe cmpuri care sunt mai greu de exploatat.

EVIDENA CANDIDAI ADMITERE

Evidena specializari
cod specializare denumire specializare ordin

Evidena candidai nr.legit numele admis la punctaj nota la proba medie bac medie admitere proba de concurs judet domiciliu

Evidena opiuni nr.legit optiune 1 optiune 2 opiune 6

SPECIALIZARI

OPTIUNI

CANDIDATI
Fig.2.7. Schema structural a unei baze de date relaionale pentru evidena candidailor la admitere la o facultate Dup cum se constat din cele prezentate anterior, proiectarea structurii optime a unei baze de date este o activitate important i, uneori, nu este simpl. O anumit tem se poate rezolva n mai multe moduri, dar, de obicei, exist numai unul care confer eficien maxim prelucrrii informaiilor. De aceea este necesar o analiz atent, la nceput, a tuturor variantelor, i alegerea celei care respect regulile de baz i asigur proprietile specifice unei baze de date corecte. Schemele structurale analizate n figurile 2.6 i 2.7 au un anumit grad de distributivitate, adic pot fi aplicate, cu modificri minime, i altor colecii de informaii (de ex. gestiunea produselor la o societate de comer, gestiunea personalului angajat ntr-o instituie, memorarea unei liste de persoane etc.).

23

2.3. Tabele. Creare structur, afiare nregistrri


Tabelele unei baze de date reprezint obiectele n care sunt memorate coleciile de date propriu-zise. Un tabel Access are o structur asemntoare cu o foaie de calcul Excel, coninnd coloane, denumite cmpuri i linii, denumite nregistrri (vezi cap.1.2). Seciunea tabelelor se activeaz prin apsarea butonului Tables al coloanei Objects din fereastra principal a bazei de date (fig.2.5). Aspectul general al ferestrei seciunii tabelelor este cel prezentat n figura 2.5. Crearea unui tabel se poate face prin alegerea uneia dintre cele trei opiuni disponibile afiate n fereastra seciunii (fig.2.5): 1. Creare tabel n fereastra de proiectare (Create table in Design view) afieaz fereastra de proiectare, fig.2.8. Aceast variant permite definirea cmpurilor tabelului i a proprietilor acestora, nainte de a introduce date (nregistrri) n tabel. Fereastra are mai multe zone: Field Name definirea numelor cmpurilor tabelului; DataType stabilirea tipului de dat (vezi cap.2.4) pentru fiecare cmp; Description este opional, poate conine o descriere mai amnunit a semnificaiei datelor pentru fiecare cmp al tabelului; Field Properties afiarea proprietilor unui cmp al tabelului, atunci Fig.2.8. cnd acesta este selectat; conine dou pagini, General, n care sunt afiate proprietile cmpului i Lookup, n care se poate configura un tip special de cmp (vezi cap.2.5). Observaii Activarea zonelor ferestrei de proiectare se face prin depunerea prompterului de mouse n caseta de editare dorit i introducerea de la tastatur a informaiei necesare. Unele dintre casetele de editare pot s ofere o list de opiuni din care se poate alege cea potrivit. Acest lucru este evideniat prin prezena unui buton cu sgeat n caseta respectiv, dup cum se observ n figura alturat, n cazul coloanei DataType. Apsnd acest buton, se deschide lista de opiuni disponibile din care se poate alege cea dorit. Lungimea maxim a numelui unui cmp este de 64 caractere. Programatorii profesioniti recomand ca numele cmpurilor s nu fie prea lungi, dar, n acelai timp, s fie suficient de sugestive pentru tipul datelor memorate n ele (ex. den_pr pentru un cmp care memoreaz denumiri de produse, nr_fact pentru numere de facturi etc.). De asemenea, se recomand ca numele tabelului s fie precedat de prefixul tbl pentru a identifica mai uor tipul obiectului (ex.tblProduse pentru un tabel ce conine nomenclatorul de produse).

24

2. Creare tabel utiliznd asistena interactiv (Create table by using wizard) permite crearea structurii unui tabel prin alegerea acesteia dintr-o bibliotec pus la dispoziie de ctre sistem. Alegerea se face interactiv, ntr-o succesiune de ferestre n care utilizatorul poate alege dintre diferite opiuni disponibile. Aceast variant este util atunci cnd structura tabelului nu este foarte bine definit sau utilizatorul nu are experien n proiectarea acesteia. 3. Creare tabel prin introducerea direct a nregistrrilor (Create table by entering data) afieaz fereastra nregistrrilor tabelului (fig.2.9), stabilind pentru tabel o structur predefinit cu un anumit numr de cmpuri (n fig.2.9, 10 cmpuri), avnd nume predefinite (Field1, Field2, ). Dup ce se introduce o nregistrare, se poate salva cu opiunea de meniu File Save (sau prin apsarea butonului specific de pe bara superioar sau prin apsarea combinaiei de taste Ctrl+S), atribuind un nume structurii respective. Fig.2.9. Observaii Fereastra de afiare a nregistrrilor are aspectul unui tabel de date, coninnd coloane (cmpurile) denumite Field1, Field2, i rnduri (nregistrrile). nregistrarea curent acea nregistrare pe care se afl prompterul de mouse este evideniat printr-un marcator sgeata neagr aflat n caseta de selectare gri de la nceputul rndului (fig.2.9). Deplasarea de pe un cmp pe altul se poate face cu ajutorul tastei Tab (nainte, de la stnga la dreapta) sau a combinaiei de taste Shift+Tab (napoi, de la dreapta la stnga) sau prin depunerea prompterului de mouse n caseta corespunztoare a unui cmp sau nregistrare. La salvarea structurii, cmpurile n care nu s-au introdus date vor fi anulate, structura pstrnd numai acele cmpuri pentru care exist valori introduse (de exemplu, dac s-au introdus valori pe primele patru cmpuri, Field1,Field4, atunci numai acestea vor fi salvate n structura tabelului). La salvarea structurii, se solicit definirea unei chei primare a tabelului (vezi cap.1.2). Dac nu se dorete definirea acesteia se apas butonul No. Dac se apas butonul Yes, atunci sistemul creaz automat un cmp de tip Autonumber (vezi cap.2.4) care va fi cheia primar a tabelului. Definirea unui cmp drept cheie primar a tabelului se face prin selectarea acelui cmp i indicarea opiunii de meniu Edit Primary Key sau apsarea butonului specific de pe bara cu butoane superioar. Cmpurile, denumite implicit Field1, Field2, , pot fi redenumite prin dublu-click de mouse n caseta de culoare gri n care este scris numele respectiv. n partea inferioar a ferestrei de afiare a nregistrrilor se afl zona de navigare de la o nregistrare la alta Record. Semnificaia butoanelor este descris n figura 2.10.

nregistrarea precedent prima nregistrare

nregistrarea curent

nregistrarea urmtoare ultima nregistrare nregistrare nou

Fig.2.10. Zona de navigare 25

Trecerea de la fereastra de afiarea a nregistrrilor tabelului (datasheet view) la fereastra de proiectare a structurii acestuia (design view) se poate face rapid cu ajutorul unui buton specific aflat pe bara cu butoane superioar. Aspectul butonului se modific n funcie de fereastra care este activ la un moment dat. O alt variant de creare a unui tabel este apsarea butonului New (fig.2.5), aciune care afieaz o fereastr de opiuni, oferindu-se cinci moduri posibile de lucru (fig.2.11): 1. Datasheet View creare tabel n fereastra de afiare a nregistrrilor (fig.2.9); 2. Design View creare tabel n fereastra de proiectare a structurii (fig.2.8); 3. Table Wizard creare tabel cu ajutorul asistenei interactive, prin alegerea structurii dintr-o bibliotec de exemple predefinite; 4. Import Table creare tabel prin importul datelor din surse externe, care pot fi alte baze de date Access sau de alt tip (dBase, Lotus, Paradox, tip ODBC), foi de calcul tip Excel, fiiere n format HTML specifice sau fiiere text avnd un format specific; odat cu crearea structurii tabelului se import i datele coninute n fiierul surs sub form de nregistrri; 5. Link Table crearea unei legturi spre un Fig.2.11. tabel de date extern; n fereastra Tables numele tabelului respectiv este precedat de un marcator (sgeat) care indic faptul c acesta nu exist practic n baza de date curent, dar nregistrrile pot fi accesate prin aceast legtur. Observaie Pentru nelegerea deplin a noiunilor prezentate n continuare, se recomand parcurgerea exemplelor incluse n aplicaia practic nr.1, cap.4.

Introducerea i afiarea datelor Dup crearea i salvarea structurii tabelului, introducerea nregistrrilor se face n fereastra de afiare a acestora, deschis prin apsarea butonului Open al seciunii Tables (fig.2.5), avnd numele tabelului respectiv selectat sau prin dublu-click de mouse pe numele tabelului. Dac tabelul are un cmp cheie primar, nregistrrile vor fi implicit afiate n ordine cresctoare dup valorile acelui cmp. Aceast ordine poate fi schimbat n orice moment prin aplicarea unui alt criteriu de ordonare (vezi cap.2.6). Dac tabelul se afl ntr-o relaie de legtur cu alt tabel al bazei de date (vezi cap.1.2), atunci nregistrrile vor fi precedate de un buton avnd semnul +. Dac se apas acest buton, vor fi afiate nregistrrile corespunztoare din tabelul corespondent. Exemplul 1 n baza de date a crei structur este prezentat n fig.2.6, care va fi denumit Stocuri, afiarea nregistrrilor din tabelul Furnizori, mpreun cu nregistrrile corespondente din alte dou tabele, Noterec i Stocaprov, poate avea aspectul din figura 2.12. 26

Pentru nregistrarea referitoare la furnizorul SC BADR SA sunt afiate toate notele de recepie ntocmite pe baza facturilor de achiziie de la acest furnizor (5 nregistrri corespondente n tabelul Noterec), iar pentru nota de recepie cu numrul 20010012 sunt afiate produsele corespunztoare intrate n stoc (2 nregistrri corespondente n tabelul Stocaprov).

Fig.2.12. Fereastra de afiare a nregistrrilor n tabele legate prin relaii Adugarea de noi nregistrri ntr-un tabel se face prin depunerea prompterului de mouse n ultimul rnd gol, marcat cu * (asterisc) sau prin apsarea butonului corespunztor din zona de navigare Record (vezi figura 2.10). Editarea valorii de cmp a unei nregistrri se face prin depunerea prompterului de mouse n cmpul respectiv i efectuarea modificrilor dorite cu ajutorul tastaturii. Principiile de editare sunt aceleai ca i la celelalte aplicaii MS Office (Word, Excel). tergerea unei nregistrri se face prin selectarea acesteia pe caseta gri din stnga rndului corespunztor i alegerea uneia dintre urmtoarele variante: apsarea butonului Cut de pe bara cu butoane superioar, selectarea opiunii de meniu Edit Delete/Delete Record sau apsarea tastei Delete a tastaturii; se solicit o confirmare a tergerii pentru c nregistrarea tears nu mai poate fi recuperat; dac nregistrarea respectiv are nregistrri corespondente n alte tabele legate prin relaii i nu este activat opiunea de tergere automat (vezi cap.2.5), atunci aciunea nu se poate efectua i este afiat un mesaj specific. Adugarea de noi cmpuri sau tergerea unor cmpuri se recomand a fi efectuate n fereastra de proiectare a structurii tabelului (Design); totui, aceste aciuni sunt posibile i n fereastra de afiare a nregistrrilor. Pentru adugarea unui cmp nou (coloan) se selecteaz cmpul n a crei parte stng se dorete adugarea noului cmp prin click de mouse n caseta gri cu numele cmpului i se alege opiunea de meniu Insert Column sau opiunea Insert Column din meniul contextual obinut prin click buton dreapta mouse.

27

Pentru tergerea unui cmp, se selecteaz coloana corespunztoare i se alege opiunea de meniu Edit Delete Column sau opiunea Delete Column din meniul rapid. Modificarea aspectului de afiare a nregistrrilor cuprinde o serie de posibiliti, dup cum urmeaz: modificarea fontului de text, a culorii textului, fondului pe care este scris acesta i grilei de separare a cmpurilor; se realizeaz prin selectarea opiunilor de meniu Format Font / Datasheet. Cu ajutorul opiunii Font se alege tipul, stilul, mrimea i culoarea fontului de afiare a caracterelor (fig.2.13). n exemplul considerat n fig.2.13, s-a ales fontul Garamond, stilul Bold, mrimea (Size) de 12, culoarea Black, fr subliniere (caseta Underline inactiv). Cu ajutorul opiunii Datasheet se alege aspectul de afiare a fondului pe care sunt afiate nregistrrile (fig.2.14). n exemplul din figura 2.14 s-au ales opiunilor implicite, adic aspectul Flat, culoarea White a fondului, culoarea Black a grilei de separaie, afiarea liniilor verticale i orizontale ale grilei (casetele Horizontal i Vertical sunt active) i tipul Solid pentru toate liniile de separaie afiate. Opiunea Direction, cu valoare implicit Left-to-right indic ordinea de afiare a cmpurilor.

Fig.2.13. Fereastra Fonts Fig.2.14. Fereastra Datasheet modificarea ordinii de afiare a cmpurilor; afiarea cmpurilor se face implicit, de la stnga la dreapta, n ordinea n care ele au fost definite n structura tabelului; aceast ordine poate fi schimbat dac este necesar. Pentru mutarea unui cmp, se selecteaz coloana corespunztoare, prin click de mouse pe numele cmpului (coloana este afiat n video invers), apoi se selecteaz din nou coloana respectiv prin click de mouse pe numele cmpului i se mut prin drag&drop tragere&depunere n locul dorit. redimensionarea coloanelor i a rndurilor; modificarea limii unei coloane se face prin selectarea acesteia i alegerea opiunii de meniu Format Column Width care afieaz o fereastr de dialog (fig.2.15); limea coloanei se poate indica n caseta de editare, se poate alege opiunea Standard Width (valoare implicit) sau Best Fit Fig.2.15. (potrivire dup dimensiunea celui mai lung ir de caractere al cmpului respectiv). Modificarea nlimii rndurilor se face prin alegerea 28

opiunii de meniu Format Row Height; nlimea se poate indica n caseta de editare sau se poate alege opiunea implicit Standard Height; nlimea aleas se aplic pentru toate nregistrrile din tabel; nghearea cmpurilor; este o aciune care determin meninerea pe loc a cmpurilor selectate n timpul parcurgerii celorlalte cmpuri. Aciunea se realizeaz prin selectarea simultan a cmpurilor respective i apoi a opiunii de meniu Format Freeze Columns. Cmpurile selectate se vor poziiona primele din stnga i vor rmne pe loc la parcurgerea ctre dreapta a celorlalte cmpuri. Anularea aciunii se face cu opiunea de meniu Format Unfreeze All Columns; ascunderea cmpurilor; este o aciune care determin dispariia cmpurilor selectate din fereastra de afiare a nregistrrilor unui tabel (datasheet view). Aciunea se realizeaz prin selectarea cmpurilor respective i apoi a opiunii de meniu Format Hide Columns. Reafiarea cmpurilor se face cu opiunea de meniu Format Unhide Columns care afieaz o fereastr coninnd numele cmpurilor tabelului precedate de o caset de validare (fig.2.16); cmpurile care au caseta de validare marcat vor Fig.2.16 Fereastra Unhide Columns fi afiate, celelalte vor rmne ascunse. Observaii La nchiderea ferestrei de afiare a nregistrrilor unui tabel, dac s-au efectuat modificri ale aspectului de afiare sau a structurii tabelului, se afieaz o fereastr de dialog cu opiune de salvare a modificrilor efectuate. Introducerea unor noi nregistrri n tabel sau modificarea valorilor nregistrrilor curente sunt salvate automat la ieirea din cmpul respectiv, nefiind necesar salvarea expres a acestora.

2.4. Tipuri de date. Proprietile cmpurilor


Datele care se introduc n fiecare cmp al unui tabel al bazei de date pot fi de diferite tipuri (numerice, iruri de caractere, logice etc.). Fiecrui cmp al tabelului i se definete un anumit tip de dat care este acelai pentru toate nregistrrile. Alegerea tipului de dat se face n fereastra de proiectare a tabelului (design view), n coloana Data Type (vezi fig.2.8). n tabelul nr.1 sunt prezentate tipurile de date utilizabile n Access, mpreun cu caracteristicile acestora. Aceste caracteristici (Field Size i Format) fac parte din grupul proprietilor cmpurilor i se configureaz n zona Field Properties (vezi fig.2.8). Proprietile unui cmp pot fi grupate pe dou categorii: proprieti generale, care sunt asociate tuturor tipurilor de date posibile i proprieti specifice, care sunt asociate numai anumitor tipuri de date. n continuare sunt descrise cele mai importante dintre aceste proprieti. 29

Tabelul nr.1 Tipuri de date disponibile n Access


Denumirea tipului de dat Text Caracteristici principale ir de caractere. Poate conine litere, cifre i alte caractere speciale (@, &, %, *, ? etc.). Poate conine i spaii. Poate avea lungimea maxim de 255 caractere. I se poate indica o lungime maxim Field Size. ir de caractere. Similar tipului Text. Poate avea lungimea maxim de 65.535 caractere. Numeric. Exist posibilitatea alegerii unui subtip de dat numeric (Field Size): Byte: numere ntregi de la 0 la 255 Integer: numere ntregi de la -32.768 la +32.768 Long Integer: numere ntregi de la -2.147.483.648 la +2.147.483.648 Single: numere reale cu simpl precizie Double: numere reale cu dubl precizie Replication ID: identificator unic atribuit Dat/or. Reprezint date calendaristice i/sau or. Date calendaristice valide ntre 1.01.100 i 31.12.9999. Nu are lungime definit (Field Size). Poate fi afiat n diferite formate (Format). Ex. short date 19/06/04 short time 17:34 Numeric cu simbol monetar ataat. Este de tip Single, dar cu pn la 4 cifre la dreapta simbolului zecimal. Simbolul monetar ataat este cel implicit al sistemului Windows. Observaii Se prelucreaz cu funcii specifice incluse n biblioteca Access (Asc, Chr, Len, Ltrim, Rtrim, Left, Mid, Right etc.) sau cu operatorul de concatenare (& sau +) Se prelucreaz cu operatorii aritmetici uzuali (+, , *, /), cu operatorii relaionali (<, >) sau cu funciile matematice incluse n biblioteca Access (Abs, Sgn, Fix, Sin, Cos, Tan, Exp, Sqr etc.) Se prelucreaz cu funcii specifice incluse n biblioteca Access (Day, Month, Year, Datepart etc.)

Memo

Number

Date/Time

Currency

Se prelucreaz cu funcii matematice uzuale. Valorile negative sunt prezentate ntre paranteze. Se utilizeaz drept cheie primar. Nu poate fi actualizat. Se prelucreaz cu operatorii logici (Not, And, Or). Linked object obiect integrat, cu pstrarea legturii cu originalul Embedded object obiect integrat, fr pstrarea legturii cu originalul

Ex. 240.500,75 Lei


AutoNumber Numeric. Valoare unic, atribuit automat de Access fiecrei nregistrri. Poate fi de tip Long Integer sau Replication ID. Valorile se pot atribui secvenial sau aleator. Logic. Are dou valori posibile True sau False (1 sau 0, da sau nu, deschis sau nchis etc.). Se utilizeaz pentru cmpuri care nu pot avea dect una din cele dou valori. Obiect integrat. Poate fi o imagine, o foaie de calcul Excel, un fiier sunet, video etc., create cu aplicaii Windows care conin suport OLE Object Linking&Embedding.

Yes/No

OLE Object

Hyperlink

Lookup Wizard

Hiperlegtur. O cale spre un fiier situat pe calculatorul propriu, pe alt calculator sau pe internet. La selectare, Access se deplaseaz la destinaia indicat, executnd aplicaia gsit acolo. Cutare interactiv. Valoarea cmpului se selecteaz Vezi aplicaia nr.2, cap.4. dintr-o list de valori disponibile care se obin fie dintre cele existente ntr-un alt cmp, fie dintr-o list de valori definite de ctre utilizator.

30

Field Size

dimensiunea cmpului; se poate configura pentru tipurile Text, Memo, Number i Autonumber; exist valori implicite care se pot pstra dac sunt convenabile sau se pot schimba n funcie de necesiti formatul de afiare a datelor; este o proprietate general; se poate selecta un format predefinit dac exist sau se pot genera formate personalizate (vezi paragraful urmtor) ablon (model, masc) de control; controleaz formatul introducerii datelor; este o proprietate general (cu excepia Autonumber); se configureaz de ctre utilizator cu ajutorul unor caractere special rezervate sau cu ajutorul asistenei interactive Input Mask Wizard (pentru detalii, vezi paragraful urmtor) etichet de cmp; proprietate general; dac exist, n fereastra de afiare a nregistrrilor (datasheet view), se afieaz n locul numelui cmpului (field name) ca denumire a coloanei corespunztoare valoare prestabilit; proprietatea general; valoare care se introduce automat n cmp la fiecare nou nregistrare

Format

Input Mask

Caption

Default Value

Validation Rule regul de validare; permite verificarea datelor introduse cu ajutorul unor restricii matematice ; se poate genera manual sau cu ajutorul asistenei interactive (Expresion Builder Constructorul de expresii) Validation Text Required mesaj de atenionare; este afiat ntr-o caset de dialog atunci cnd datele introduse nu respect regula de validare (Validation Rule) solicitare valoare; proprietate general; dac este activ (Yes), este obligatorie introducerea unei valori n cmpul respectiv; dac este inactiv (No) se poate introduce o valoare sau se poate lsa cmpul gol cmp indexat/neindexat; proprietate general; indexarea permite o gsire mai rapid a informaiei de ctre Access la tabele cu mii de nregistrri, pe baza unor algoritmi proprii; este activat automat pentru cmpurile cheie primar

Indexed

Observaie Pentru nelegerea deplin a semnificaiei proprietilor cmpurilor, se recomand parcurgerea exemplelor incluse n aplicaia practic nr.2, cap.4.

Stabilirea formatului de afiare a datelor (Format) Formatul de afiare a datelor n fereastra de afiare a nregistrrilor unui tabel (datasheet view) se poate configura de ctre utilizator, fie prin alegerea dintr-o list de formate disponibile, asociate fiecrui tip de dat, fie prin indicarea formatului dorit, la proprietatea Format a cmpului respectiv. Indicarea unui format personalizat se face prin combinarea unor caractere de control, special destinate acestui scop. Cele mai des utilizate dintre aceste caractere, precum i cteva exemple de formate personalizate sunt prezentate n continuare. 31

Simbolul

Semnificaia Separator zecimal. Dac la Regional Settings in Windows Control Panel este stabilit sistemul United States, atunci simbolul este punct zecimal. Separator de mii. Simbol pentru cifre. Se afieaz o cifr (dac exist) sau 0. Simbol pentru cifre. Se afieaz o cifr (dac exist) sau nimic. Simbol monetar. Afieaz caracterul "$" acolo unde este plasat. Convertete literele textului n litere mici Convertete literele textului n majuscule Simbol procentual. Valoarea se nmulete cu 100 i se ataeaz simbolul procentual %. Simbol text. Orice text ntre ghilimele ataat formatului va fi afiat la fiecare valoare a cmpului respectiv

. , 0 # $ < > % lei

Exemple de formate personalizate Tipul de date Formatul personalizat Pentru date de tip numeric (Number, 000 Autonumber etc.) 0.00 #,### #,###.00 #,###" lei" Pentru date calendaristice (Date/Time) dd/mm/yy dd/mmm/yyyy Modul de afiare a datelor 005 018 145 12.50 12.00 1,200 sau 12,500 sau 12,500,000 1,200.00 sau 12,500.50 126,500 lei 12/03/04 08/03/04 12/Mar/2004 Afieaz tot textul cu litere mici Afieaz tot textul cu majuscule

Pentru date de tip < Text sau Memo >

Configurarea unui ablon de control la introducerea datelor (Input Mask) Access permite controlul dinamic al valorilor introduse de ctre utilizator n nregistrrile tabelelor prin indicarea unui ablon de control (model de caractere, masc de intrare n traducere simpl). Configurarea unui ablon de control se face prin combinarea unor caractere de control special destinate acestui scop, n cadrul proprietii Input Mask a cmpurilor. Cele mai des utilizate dintre caracterele de control, precum i cteva exemple de abloane sunt prezentate n continuare. 32

Caracterul de control 0 # L ? A a & C < > \ !

Efectul asupra datelor care se introduc Permite numai o cifr Permite orice cifr, semnele + sau i spaii Permite numai o liter Permite numai o liter sau nimic Permite numai o liter sau cifre Permite orice liter sau cifr sau nici una Permite orice caracter sau un spaiu Permite orice caracter sau un spaiu sau nimic Convertete literele urmtoare n litere mici Convertete literele urmtoare n litere mari Adaug automat caracterul care urmeaz Aliniaz datele la dreapta

Exemple de abloane de control Exemplele urmtoare fac referire la nite cmpuri incluse n baza de date Stocuri a crei structur este prezentat i descris n fig.2.6, pag.22. Tipul de date Stocuri.mdb Tabelul Produse Cmpul Cod produs ablonul de control Observaii Valorile codului produsului pot fi stabilite ca o succesiune de cinci cifre Ex. 11004 ablonul nu permite dect introducerea unei combinaii de cinci cifre Numerele de telefon n Romania respect formatul 0000-000000. ablonul introduce automat primul 0 i cratima de desprire dintre prefix i numr i nu permite dect introducerea unei combinaii de cifre Numerele de facturi n Romania respect formatul LLLLL0000000, adic 5 litere urmate de 7 cifre. Semnul > transform literele n majuscule

00000

Stocuri.mdb Tabelul Furnizori Cmpul Nr.telefon

\000\-000000

Stocuri.mdb Tabelul Noterec Cmpul Nr.factur

>LLLLL0000000

33

2.5. Relaiile dintre tabele. Creare i configurare


n capitolul 1.2 s-au prezentat cteva noiuni teoretice referitoare la modelul relaional de baz de date (SGBD-R). Un model relaional de baz de date cuprinde tabele cu nregistrri ntre care se stabilesc relaii de asociere, a cror existen este guvernat de un set de reguli precise. O relaie se stabilete ntre dou tabele ale bazei de date, prin intermediul a dou cmpuri, cte unul din fiecare tabel, adic este de tip binar (cmp cmp). Microsoft Access este bazat pe modelul relaional de baz de date, permind crearea i configurarea relaiilor ntre tabelele componente. Proiectarea structurii unei baze de date (tabele i cmpuri) n Access trebuie s in seama de principiile modelului relaional. n capitolul 2.2 s-au prezentat principiile de proiectare a dou structuri de baze de date, Stocuri i Candidai, respectnd trei reguli fundamentale: Regula nr.1 separarea corect a informaiilor pe cmpuri Regula nr.2 utilizarea cheilor primare pentru identificarea unic a nregistrrilor Regula nr.3 utilizarea legturilor ntre tabele (relaii) pentru regsirea corect a informaiilor dependente Relaiile ntre tabele asigur o eficien ridicat a administrrii bazei de date (introducere, afiare, modificare/actualizare a informaiilor). Crearea i configurarea relaiilor ntre tabele n Access se efectueaz n fereastra relaiilor (relationships), accesibil cu opiunea de meniu Tools Relationships sau prin apsarea butonului specific de pe bara cu butoane superioar. Aducerea tabelelor n fereastra relaiilor se face cu opiunea de meniu Relationships Show Table sau prin apsarea butonului specific de pe bara cu butoane superioar.

Fig.2.18 Fereastra de configurare a unei relaii de tip 1N n figura 2.17 este prezentat fereastra relaiilor cu structura acestora n cazul bazei de date Stocuri. Crearea unei relaii ntre dou tabele ale bazei de date Access necesit executarea urmtorilor pai: 34

Fig.2.17 Fereastra relaiilor

1. Deschiderea ferestrei relaiilor (relationships) i aducerea celor dou tabele n cadrul acesteia; 2. Selectarea cu ajutorul mouse-ului a cmpului din primul tabel (membrul stng al relaiei) i depunerea prin drag&drop peste cmpul corespunztor din cel de-al doilea tabel (membrul drept al relaiei), n acest moment se deschide o fereastr de configurare a proprietilor relaiei (Edit Relationships, vezi fig.2.18) 3. Dac cele dou tabele conin nregistrri, Access le va analiza i va sugera tipul relaiei potrivite, ateptnd configurarea celorlalte proprieti (Enforce Referential Integrity i Join Type) 4. Dup configurarea proprietilor se valideaz relaia prin apsarea butonului Create; n fereastra relaiilor, relaia creat va fi vizualizat printr-o linie de legtur ntre cele dou cmpuri, marcat la capete n funcie de tipul relaiei (11, 1 etc.). Opiunea Enforce Referential Integrity permite stabilirea unei relaii de integritate referenial ntre cele dou tabele, adic evitarea anomaliilor de introducere a datelor (nu se vor accepta nregistrri n tabelul al doilea (tabelul corelat) dac valoarea cmpului de legtur al acestora nu exist n primul tabel (tabelul primar) i a celor de modificare/actualizare (modificarea valorii de cmp a unei nregistrri n tabelul primar se transmite automat i valorilor cmpului de legtur din tabelul corelat). Modul de lucru al opiunii are dou subopiuni: Cascade Update Related Fields a crei activare determin transmiterea automat a modificrii valorii cmpului de legtur a unei nregistrri din tabelul primar la nregistrrile corespunztoare din tabelul corelat Cascade Delete Related Records a crei activare determin tergerea automat a nregistrrilor corespunztoare din tabelul corelat dac se terge o nregistrare din tabelul primar. Exemple n baza de date Stocuri sunt necesare 5 relaii de tipul 1N (1) ntre tabele pentru o funcionare corespunztoare a acesteia. n figura 2.17 sunt prezentate aceste relaii, descrise n cele ce urmeaz: ntre tabelele Produse i StocAprov pe cmpul Cod produs ; ntre tabelele Produse i StoConsum pe cmpul Cod produs ; ntre tabelele Noterec i StocAprov pe cmpul Nr.not recepie ; ntre tabelele Furnizori i Noterec pe cmpul Cod furnizor ; ntre tabelele BonConsum i StoConsum pe cmpul Cod bon. n baza de date Candidai sunt necesare 2 relaii, una de tipul 1N (1) i alta de tipul 11 ntre tabele, descrise n continuare: ntre tabelele Specializri i Candidati pe cmpurile Cod specializare i, respectiv, Admis la, relaie de tipul 1N; ntre tabelele Candidati i Opiuni pe cmpul Nr.legit, relaie de tipul 11.

35

2.6. Afiarea selectiv i ordonarea nregistrrilor


n fereastra de afiare a nregistrrilor unui tabel (datasheet view), acestea sunt afiate n mod implicit n ordine cresctoare dup valorile cmpului cheie primar al tabelului. Totodat, sunt afiate toate nregistrrile coninute n tabelul respectiv. Dac un tabel al bazei de date conine sute de nregistrri, gsirea unor anumite informaii este dificil dac acest lucru se realizeaz prin parcurgerea nregistrrilor una dup alta. Access ofer, pentru simplificarea cutrii, dou soluii i anume: Cutarea unei anumite informaii cu opiunea Find; Afiarea selectiv (filtrarea) nregistrrilor cu opiunea Filter. La un moment dat, utilizatorul poate avea nevoie de afiarea nregistrrilor ntr-o anumit ordine, diferit de cea implicit (cresctoare dup valoarea cheii primare). Access asigur aceast posibilitate prin ordonarea nregistrrilor dup valorile unuia sau a mai multor cmpuri ale tabelului respectiv, cu opiunea Sort. Cutarea unei informaii n baza de date Cutarea i gsirea unei anumite informaii ntr-un tabel al bazei de date se face cu opiunea de meniu Edit Find, sau prin apsarea butonului specific de pe bara cu butoane superioar. Se afieaz o caset de dialog n care se descriu opiunile de cutare (fig.2.19): casetele de editare: Find What: se scrie informaia care se dorete a fi gsit Look In: se indic locul de cutare dorit Match: Any Part of Field / Whole Field / Start of Field potrivire ir de caractere dorit cu valoarea cmpului n orice parte a cmpului / cu ntreaga valoare / la nceputul valorii cmpului Search: Up / Down / All cutare de la nregistrarea curent napoi / nainte / n toate nregistrrile

caseta de validare: Match Case: potrivire la majuscule

Fig.2.19 Caset de dialog Find Observaie

Fig.2.20 Caset de dialog Replace

Cmpul / nregistrarea curent sunt cele pe care se afl prompterul la un moment dat, n fereastra de afiare a nregistrrilor (datasheet view). Execuia cutrii se face prin apsarea butonului Find Next care afieaz succesiv gsirea valorii cerute n diferite nregistrri.

36

Caseta de dialog Find este asociat cu a doua caset de dialog, denumit Replace fig.2.20 care ofer posibilitatea nlocuirii unor valori introduse cu altele dorite de utilizator. Semnificaia opiunilor este urmtoarea : Find What: valoarea care se dorete a fi nlocuit Replace With: noua valoare care o va nlocui pe cea anterioar Look In, Match, Search: semnificaii identice cu cele ale casetei Find butonul Replace: nlocuiete cte o valoare gsit succesiv butonul Replace All: nlocuiete toate valorile Find What, gsite n tabelul curent, cu cea indicat la Replace With Afiarea selectiv a nregistrrilor cu ajutorul filtrelor ntr-un tabel al bazei de date, afiarea selectiv nseamn afiarea numai a anumitor nregistrri care au o proprietate comun valoare comun a unuia sau a mai multor cmpuri. Aciunea se realizeaz cu ajutorul opiunii de meniu Records Filter i alegerea unei posibiliti dintre cele disponibile sau prin apsarea unuia dintre butoanele specifice de pe bara cu butoane superioar. Filter By Selection Filter By Form Apply Filter Opiunea Filter are mai multe posibiliti de aplicare, dintre care cele mai importante sunt urmtoarele dou: Filter By Selection: afiare selectiv dup valoarea comun a unui singur cmp, care se indic prin depunerea prompterului pe valoarea respectiv la una dintre nregistrrile care o conin; Filter By Form: afiare selectiv dup valorile comune ale mai multor cmpuri, care se indic prin selecie ntr-un formular special destinat. Aplicarea filtrului se face prin apsarea butonului Apply Filter, iar nlturarea acestuia prin apsarea aceluiai buton, acum cu semnificaia Remove Filter. Observaie Selecia nregistrrilor cu ajutorul filtrelor, n fereastra de afiarea a acestora (datasheet view) este cea mai simpl aciune de selecie care se poate aplica nregistrrilor unui tabel. Selecia mai complex a nregistrrilor dintr-unul sau mai multe tabele ale bazei de date, n care se pot utiliza i funcii specifice se realizeaz prin interogri (vezi cap.2.9).

Ordonarea nregistrrilor Afiarea nregistrrilor dintr-un tabel al bazei de date n fereastra Datasheet view se poate face ntr-o anumit ordine, dup valorile unuia sau a mai multor cmpuri, n funcie de necesitile utilizatorului. Aceast aciune se realizeaz cu ajutorul opiunii Records Sort i alegerea uneia dintre posibiliti, Sort Ascending ordonare cresctoare sau Sort Descending ordonare descresctoare. Aciunea se poate realiza i prin apsarea unuia dintre butoanele corespunztoare de pe bara cu butoane superioar. Dac ordonarea se face numai dup valorile dintr-un singur cmp al tabelului (de ex. ordonare alfabetic dup nume a unei liste de informaii despre persoane), atunci se depune prompterul n cmpul respectiv i se alege una dintre opiunile de ordonare. 37

Dac ordonarea trebuie fcut dup valorile a dou sau mai multe cmpuri (de ex. ordonare alfabetic dup localitate de domiciliu i nume a unei liste de informaii despre persoane, atunci cele dou cmpuri trebuie s fie alturate n fereastra de afiare a nregistrrilor, se selecteaz cele dou cmpuri i se aplic apoi una dintre opiunile de ordonare. Observaii Cmpurile dup care se aplic ordonarea trebuie s fie aezate de la stnga la dreapta n ordinea clasei de ordonare. Ordonarea se face n acelai fel (cresctor sau descresctor) dup toate cmpurile. Ordonarea n sensuri diferite dup mai multe cmpuri se poate realiza numai n cadrul interogrilor vezi cap.2.9. Se pot ordona nregistrri dup cmpuri de tip text, numeric sau data calendaristic. Schema de ordonare aplicat la un moment dat se poate memora (File Save), astfel nct la o afiare ulterioar a nregistrrilor din tabel, acestea s fie afiate n ordinea stabilit anterior.

2.7. Biblioteca de funcii integrate Access


Prelucrarea informaiilor cuprinse n tabelele unei baze de date presupune deseori i calcule matematice sau logice. Aceste calcule se fac cu operatorii matematici, logici etc. cunoscui, utiliznd datele coninute n tabelele bazei de date. Aceti operatori se pot clasifica dup cum urmeaz: operatori aritmetici: + * / ^ operatori relaionali (de comparare): < > = <> <= >= operatori logici: NOT AND OR operatori de grupare: ( ) operatori de concatenare: + &

Access dispune de o bibliotec de funcii predefinite integrate built-in functions care se pot utiliza pentru prelucrarea informaiilor de diferite tipuri (numerice, text, logice etc.) coninute la un moment dat ntr-o baz de date. Valorile cmpurilor definite n formulare, rapoarte sau interogri pot fi rezultatul evalurii unor relaii matematice n care s fie incluse i funcii predefinite. Editarea relaiilor matematice se poate face direct de ctre utilizator dac acesta are suficient experien sau cu ajutorul asistenei interactive, ntr-o fereastr de editare specific expression builder dialog box (fereastra constructorului de relaii matematice). Atunci cnd n relaiile matematice se utilizeaz valorile unor cmpuri existente n tabelele bazei de date, referirea la acestea se face cu sintaxa [nume_tabel]![nume_cmp] sau prin indicarea numai a numelui cmpului, dac n baza de date sau n obiectul n care este creat relaia matematic (formular, raport, interogare) exist un singur cmp cu numele respectiv. Activarea ferestrei de editare a relaiilor matematice cu ajutorul asistenei interactive se face prin apsarea butonului specific de pe bara cu butoane superioar.

38

Exemplu n baza de date Candidati (vezi schema din fig.2.7), media final de admitere a candidailor, Medie_adm, s-a calculat ca medie ponderat dintre media la bacalaureat (30%) i nota obinut la proba de concurs (70%). Avnd n vedere c cele dou valori sunt coninute n cmpurile Medie_bac i Nota_la_proba, sintaxa relaiei matematice va fi urmtoarea: [Medie_bac]*0.3+[Nota_la_proba]*0.7 medie_adm: [Medie_ba c]*0.3+[Nota_la_proba]*0.7 n figura 2.21 este prezentat fereastra utilizat pentru editarea relaiei matematice.

Fig.2.21 Fereastra de editare a relaiilor matematice Funciile predefinite integrate n biblioteca Access sunt grupate pe categorii (vezi fig.2.21) n funcie de tipurile de date pe care le pot prelucra. Cele mai importante dintre acestea sunt: funciile matematice Math: prelucreaz date de tip numeric funciile pentru iruri Text: prelucreaz date de tip ir de caractere funciile calendaristic Date/Time: prelucreaz date de tip dat calendaristic / or funciile globale SQL Aggregate: prelucreaz statistic seturi (mulimi) de nregistrri. Precizare n capitolele urmtoare se vor prezenta cteva dintre funciile predefinite integrate, care se pot utiliza pentru prelucrarea informaiilor din cele dou baze de date exemplificate Candidati i Stocuri pentru care sunt concepute i aplicaiile incluse n capitolul 4 al acestui curs. n anexa nr.1 de la sfritul cursului sunt prezentate cele mai uzuale funcii predefinite integrate n biblioteca de funcii Access.

39

2.8. Proiectarea i execuia interogrilor


Interogrile sunt obiecte ale bazei de date destinate prelucrrii informaiilor memorate. Interogrile rspund necesitilor utilizatorului de a afia selectiv informaii din baza de date, de a le prelucra prin crearea unor noi cmpuri sau tabele sau de a modifica valori ale nregistrrilor existente. Prin interogri, utilizatorii administreaz baza de date caut, prelucreaz, actualizeaz informaii ndeplinind rolul principal pentru care aceasta a fost creat. Interogrile se creaz i se gestioneaz n seciunea Queries. Exist trei butoane disponibile, asociate celor trei aciuni care se pot efectua n legtur cu o interogare: Execuia interogrii i afiarea nregistrrilor Open Deschiderea ferestrei de proiectare a unei interogri existente Design Crearea unei noi interogri New n funcie de scop, interogrile se clasific n dou categorii: interogri de selecie: de cmpuri, de nregistrri, cu cmp calculat, cu parametru, de tip global, de tip tabel sintetic interogri de aciune: de creare tabel nou, de modificare valori n tabel existent Crearea unei noi interogri. Fereastra de proiectare Exist dou posibiliti de a crea interogri, cu sau fr ajutorul asistentului interactiv: Design View - crearea interogrii n fereastra de proiectare, manual, de ctre utilizator; Simple Query Wizard - crearea unei interogri cu ajutorul asistentului interactiv, cu excepia interogrilor de tip tabel sintetic; Crosstab Query Wizard - crearea unei interogri de tip tabel sintetic cu ajutorul asistentului interactiv. Fereastra de proiectare a unei interogri este prezentat n figura 2.22. Aceasta cuprinde dou zone : zona tabelelor conine tabelele din care se dorete extragerea nregistrrilor; dac ntre tabele exist relaii, acestea vor fi vizualizate zona de proiectare conine o serie de rnduri specifice necesare descrierii interogrii; se mai numete i gril de interogare. Semnificaia rndurilor din zona de proiectare este urmtoarea : Field i Table : numele cmpurilor i a tabelului din care provin sau ale cmpurilor nou create (calculate cu relaii matematice) Sort : ordonare dup valorile din cmpul respectiv Show : afiare sau nu a cmpului (caset de validare) Criteria : criteriul de selecie a nregistrrilor Total : apare la interogrile de tip global i precizeaz opiunile de grupare sau de operare statistic cu valorile din cmpul respectiv (Group By, Expression, Min, Max, Sum etc.) 40

Crosstab : apare la interogrile de tip tabel sintetic, pentru precizarea atributului cmpului respectiv (Row Heading, Column Heading, Value)

Fig.2.22 Fereastra de proiectare a unei interogri Proiectarea unei interogri n Access se face vizual prin selectarea pe rnd a tuturor opiunilor i prezentarea grafic a acestora. Acolo unde este necesar, Access furnizeaz i asisten interactiv. Acest mod de proiectare este numit QBE Query By Example (interogare prin exemplu) i este mai uor de folosit pentru utilizatorii cu experien minim. De fapt, n spatele acestui mod de proiectare st un limbaj de programare bazat pe un set de instruciuni standard [BAS 97, FOT 97], numit SQL - Structured Query Language. Acest limbaj a devenit un standard (1986) i este integrat n toate sistemele informatice de gestiune a bazelor de date moderne. Dup proiectarea interogrii, aceasta se execut cu opiunea de meniu Query Run sau prin apsarea butonului specific de pe bara cu butoane superioar. Execuia afieaz o fereastr similar cu cea de afiare a nregistrrilor unui tabel Datasheet view coninnd nregistrrile care corespund criteriilor precizate. Exist i posibilitatea afirii setului de instruciuni SQL al interogrii prin selectarea modului de afiare SQL View. Trecerea de la un mod de afiare la altul Datasheet View, SQL View sau Design View se face cu ajutorul opiunii de meniu View sau prin utilizarea butonului specific de pe bara cu butoane superioar, buton care i schimb aspectul n funcie de fereastra care este activ la un moment dat. n figurile 2.23 i 2.24 sunt prezentate ferestrele Datasheet View i SQL View pentru interogarea a crei fereastr de proiectare Design View este prezentat n figura 2.31. Aspectul de afiare a nregistrrilor (font, dimensiune, culoare, etc.) este cel Fig.2.23 Fereastra Datasheet a unei interogri 41

implicit al primului tabel adus n fereastra interogrii. Acest aspect poate fi modificat i memorat n interogare. Modificarea proprietilor cmpurilor se face n fereastra de proiectare a interogrii, depunnd prompterul n rndul Field al cmpului i selectnd din meniul contextual clickdreapta de mouse opiunea Properties.

Fig.2.24 Fereasta SQL a unei interogri setul de instruciuni SQL n continuare se prezint principalele tipuri de interogri mpreun cu cteva exemple pentru fiecare tip. Rezolvarea exemplelor este descris n cadrul aplicaiilor nr.4 i 5, din capitolul 4. Interogri de selecie de cmpuri Sunt destinate afirii anumitor cmpuri din tabelele bazei de date. Valorile din cmpurile respective sunt afiate pentru toate nregistrrile din tabele. Opional, se poate face ordonarea dup unul sau mai multe cmpuri (rndul Sort). Prin execuia interogrii, n fereastra de afiare a rezultatelor Datasheet View vor apare toate nregistrrile din tabele, afind valorile din cmpurile selectate. Exemple 1. Afiarea n baza de date Candidai a urmtoarelor informaii: nr.legitimaie, numele i prenumele candidatului, proba de concurs, prima optiune, judetul. nregistrrile trebuie afiate n ordine alfabetic, dup numele candidailor 2. Afiarea n baza de date Stocuri a unor date despre facturile de aprovizionare, afiate n ordine cronologic: nr.factura, data facturii, denumire furnizor, telefon furnizor Interogri de selecie de nregistrri Sunt destinate afirii selective a nregistrrilor din tabele, dup anumite criterii de selecie, precizate pe grila de nterogare, n rndul Criteria. Interogrile de acest tip sunt similare cu utilizarea filtrelor pentru tabele (vezi subcap.2.6), dar ofer mai multe posibiliti de selecie. Opional, se poate face ordonarea dup unul sau mai multe cmpuri (rndul Sort). Prin execuia interogrii, n fereastra de afiare a rezultatelor vor apare nregistrrile ale cror valori de cmp respect criteriul de selecie. Pentru construcia de relaii matematice n rndul Criteria se utilizeaz operatorii aritmetici, relaionali, logici, de concatenare (+, &) sau funciile specifice de comparare (Is Null, Is Not Null, Like, In, Between). La construcie se poate utiliza asistentul interactiv Expression Builder Wizard (vezi subcap.2.7). 42

Pentru construcia criteriului de selecie trebuie respectate cteva reguli care sunt prezentate n tabelul urmtor. Reguli de formare a criteriului de selecie Valorile de tip ir de caractere (Text) se introduc ca atare (Access adaug automat ghilimele) Ex. tecm Referirile la nume de cmpuri se includ ntre paranteze drepte, altfel se consider iruri de caractere (de tip Text) Ex. [OP1] [denmat] Pentru selecia nregistrrilor dup anumite cmpuri, se pot utiliza constante predefinite, cum ar fi True sau False (pentru cmpuri de tip Yes/No) Pentru selecia valorilor ntr-un anumit interval se utilizeaz operatorii de comparare:

<

>

<=

>=

Pentru utilizarea mai multor valori de selecie simultan pe acelai cmp se folosesc operatorii logici Or sau And Funcia Like se utilizeaz cu caractere de nlocuire (wildcard, joker)

* nlocuiete orice numr de caractere ? nlocuiete un singur caracter


Funciile Is Null sau Is Not Null selecteaz nregistrrile care nu au / au valoare n cmpul respectiv Funcia In (val_1; val_2; ; val_n) selecteaz nregistrrile ale cror valoare de cmp este una dintre valorile val_1, val_2, , val_n Funcia Between valoare1 and valoare2 selecteaz nregistrrile ale cror valori de cmp se situeaz ntre valoare1 i valoare2, exceptndu-le pe acestea Exemple 1. Afiarea n baza de date Candidai a candidailor admii la o anumit specializare, n ordine alfabetic Se aplic o selecie pe cmpul [admis], indicnd codul specializrii respective (ex.TECM); Se indic ordonare cresctoare dup valorile cmpului [nume]. Observaie Access nu este Case Sensitive (nu face diferena ntre litere mici i majuscule n irurile de caractere (TECM sau tecm sau Tecm).

2. Afiarea n baza de date Candidati a candidailor respini, n ordinea descresctoare a mediilor finale de admitere Se aplic o selecie pe cmpul [admis], utiliznd funcia Is Null; Se indic ordonare descresctoare dup valorile cmpului [medf]. 43

3. Afiarea n baza de date Candidai a candidailor admii, al cror nume ncepe cu o anumit liter Se aplic o selecie pe cmpul [nume], utiliznd funcia Like cu caracterul de nlocuire * i o selecie pe cmpul [admis], utiliznd funcia Is Not Null; De exemplu, pentru selecia candidailor ai cror nume ncepe cu litera B, sintaxa funciei va fi Like B B*. 4. Afiarea n baza de date Candidati a candidailor care au fost admii la prima opiune din fia de nscriere Se aplic o selecie pe cmpul [admis], indicnd egalitatea valorilor acestui cmp cu cele din cmpul [tblOptiuni]![op1]. 5. Afiarea n baza de date Candidai a candidailor admii care au obinut media final ntr-un anumit interval de valori Se aplic pe cmpul [admis] o selecie a candidailor admii cu funcia Is Not Null; Se aplic pe cmpul [medf] o selecie cu funcia Between val1 and val2, n care val1 i val2 reprezint limitele intervalului sau cu o relaie de comparare de tipul >val1 and <val2 6. Afiarea n baza de date Stocuri a unor date despre facturile de aprovizionare dintr-o anumit perioad de timp Se aplic pe cmpul [datafact] o selecie, utiliznd funcia Between, Between #09/01/01# and #09/30/01# Obs. Valoarea de tip dat calendaristic se introduce n formatul implicit al sistemului Windows (n exemplul dat LL/ZZ/AN). Caracterul special # (diez) nu trebuie introdus, el este adugat automat atunci cnd se identific o valoare de tip dat calendaristic. 7. Afiarea n baza de date Stocuri a facturilor neachitate Se aplic pe cmpul [achitat] o selecie, utiliznd valoarea False.

Interogri de selecie cu cmp calculat Sunt interogri n care se creaz noi cmpuri ale cror valori sunt calculate cu relaii matematice, utiliznd valorile din cmpurile existente n tabelele bazei de date. Cmpurile calculate sunt create la execuia interogrii. Alturi de cmpurile calculate se pot aduce pe grila de interogare cmpuri existente n tabelele bazei de date. Pot fi aplicate selecii de nregistrri sau criterii de ordonare dup oricare cmp. La construcia relaiei matematice se pot utiliza funciile predefinite incluse n biblioteca Access (vezi anexa nr.1), a cror editare se poate face apelnd asistentul interactiv Expression Builder. Sintaxa unui cmp calculat este urmtoarea: nume_cmp: <relatie matematica matematica> n care nume_cmp reprezint un nume care se atribuie cmpului respectiv, iar <relatie matematica> reprezint relaia matematic de calcul al valorilor cmpului.

44

Exemple 1. Afiarea n baza de date Candidati a mediei finale de admitere ca un cmp calculat ca medie ponderat a valorilor din cmpurile [notap] 70% (nota la prob) i [mbac] 30% (medie bacalaureat). Noul cmp, denumit [media], se calculeaz cu relaia matematic: media: [notap]*0.7 + [mbac]*0.3 2. Crearea n baza de date Candidati a unui cmp ale crui valori s fie Da sau Nu n funcie de valoarea mediei finale [medf]; dac media este mai mare sau egal cu 8,50, valoarea s fie Da, iar n celelalte cazuri s fie Nu. Valorile ar putea fi utilizate pentru decizia privind acordarea bursei ctre studeni. Se utilizeaz funcia condiional IIf, cu sintaxa de mai jos: bursa: IIf ([medf] >=8,50; Da; Da; Nu) 3. Afiarea n baza de date Stocuri a valorii aprovizionate pe fiecare produs sau factur pentru nregistrrile din tabelul tblStocAprov. Valoarea se obine prin nmulirea valorilor cmpurilor [pret] i [cantitate], utiliznd relaia matematic de mai jos: ValAprov: [pret]*[cantitate] 4. Afiarea n baza de date Stocuri a unor date din facturile de aprovizionare, n ordine cronologic, n funcie de luna achiziiei. Luna achiziiei este inclus n data facturii i poate fi extras cu ajutorul unor funcii predefinite Month sau Datepart: luna: Month([datafact]) luna: Datepart(m;[datafact]) Datepart(m;[datafact]) 5. Afiarea n baza de date Stocuri a preului de achiziie al produselor n euro, pe baza preului n lei. Preul n euro se calculeaz prin mprirea preului de aprovizionare n lei, [pret] din tabelul tblStocAprov, la cursul valutar lei/euro : pret_euro: [pret] / 37800 37800

Interogri de selecie cu parametru Parametrul reprezint o valoare variabil, care este dat de ctre utilizator, ntr-o fereastr de dialog specific, n momentul execuiei interogrii. Parametrul se poate utiliza drept criteriu de selecie de nregistrri sau n relaii matematice care definesc cmpuri calculate. Identificarea unui parametru se face printr-un mesaj specific ntre paranteze drepte [mesaj]. Mesajul va fi afiat n fereastra de dialog n care se solicit valoarea parametrului i trebuie s indice semnificaia valorii care se introduce. Exemple 1. Afiarea n baza de date Candidai a candidailor admii la o anumit specializare, fr a o preciza explicit, ci sub form de parametru. Se aplic o selecie pe cmpul [admis], indicnd un mesaj specific n rndul Criteria, cum ar fi [Introduceti codul specializarii] specializarii]; 45

La execuia interogrii se va solicita valoarea parametrului, ntr-o fereastr de dialog n care se afieaz mesajul specific indicat, fig.2.25. 2. Afiarea n baza de date Candidai a candidailor admii avnd media final ntr-un interval precizat de ctre utilizator Fig.2.25 Se aplic pe cmpul [admis] o selecie a candidailor admii cu funcia Is Not Null; Se aplic pe cmpul [medf] o selecie cu funcia Between val1 and val2, n care val1 i val2 reprezint limitele intervalului, n locul unor valori numerice se vor indica nite mesaje specifice de forma Between [Media minima] And [Media maxima] 3. Afiarea n baza de date Stocuri a preului de achiziie al produselor n euro, pe baza preului n lei. Preul n euro se calculeaz prin mprirea preului de aprovizionare n lei, [pret] din tabelul tblStocAprov, la cursul valutar lei/euro, care este definit ca un parametru: pret_euro: pret_euro: [pret] / [Introduceti cursul LEI/EURO]

Interogri de selecie de tip global Interogrile de tip global prelucreaz informaiile din tabelele bazei de date cu ajutorul unor opiuni de tip global, similare funciilor de tip global (vezi anexa nr.1 SQL Aggregate). nregistrrile sunt grupate prin selecie, pe seturi, dup valoarea comun a unor cmpuri (Group By) i apoi se efectueaz prelucrarea seturilor astfel create, dup valorile din alte cmpuri, cu funciile de tip global (Count, Sum, Min, Max, Avg, Expression). Interogarea de tip global se creaz dintr-o interogare de selecie, apsnd butonul de pe bara superioar; pe gril apare rndul Total n care se aleg opiunile de prelucrare pentru fiecare cmp. Exemple 1. Afiarea n baza de date Candidati a numrului de admii pe specializri Se aduce de dou ori cmpul [admis] pe gril ; primul cmp este utilizat pentru gruparea nregistrrilor pe seturi n funcie de valoarea cmpului, iar al doilea pentru prelucrarea seturilor cu funcia global Count. 2. Afiarea n baza de date Candidati a mediei minime i maxime de admitere pe specializri Se utilizeaz cmpurile [admis] i [medf], aplicnd funciile globale Min i, respectiv, Max. 3. Afiarea n baza de date Candidati a numrului de candidai dup prima liter a numelui acestora Se utilizeaz un cmp calculat Litera: left([nume];1) pentru a grupa nregistrrile pe seturi i cmpul [legit], aplicnd funcia global Count. 4. Afiarea n baza de date Stocuri a cantitii totale aprovizionate / consumate pe produse

46

Se utilizeaz cmpurile [codprod] i [denprod] din tblProduse i cmpul [cantitate] din tblStocAprov / tblStoConsum i se aplic funcia global Sum pe cmpul [cantitate]. 5. Afiarea n baza de date Stocuri a valorii totale de aprovizionare pe produse (facturi / furnizori) Se utilizeaz cmpurile [codprod] i [denprod] din tblProduse i un cmp calculat ValAprov:[cantitate]*[pret] i se aplic funcia global Sum pe acest cmp; Se poate utiliza un cmp calculat cu relaia ValAprov:Sum([cantitate]*[pret]) i, pe rndul Total se alege opiunea Expression.

Interogri de selecie de tip tabel sintetic Interogrile de tip tabel sintetic sunt, de obicei, interogri de tip global care afieaz rezultatul execuiei ntr-un format specific, asemntor unui tabel de sintez. O interogare de tip tabel sintetic trebuie s conin cel puin trei cmpuri (fig.2.26): Row Heading un cmp ale crui valori reprezint antetul liniilor n tabelul de sintez, pot exista mai multe cmpuri cu acest atribut n fig.2.26 sunt dou cmpuri; Column Heading un singur cmp ale crui valori reprezint antetul coloanelor n tabelul de sintez; Value un singur cmp ale crui valori reprezint valorile celorlalte celule ale tabelului de sintez. Row Heading Column Heading

Value

Fig.2.26 Interogare de tip tabel sintetic Crosstab Query O interogare de tip tabel sintetic se creaz dintr-o interogare de tip global cu opiunea de meniu Query Crosstab Query, configurnd n mod corespunztor opiunile rndului Crosstab al grilei de interogare. Exemple 1. Afiarea n baza de date Candidati a numrului de candidai, repartizai pe probele de concurs, pentru fiecare specializare Se utilizeaz cmpurile [op1] i [proba] ; 47

Cmpul [proba] se utilizeaz de dou ori, o dat drept antet de coloane Column Heading i a doua oar drept valoare n celulele tabelului Value calculat cu funcia global Count; Fereastra de proiectare a interogrii i rezultatul execuiei acesteia sunt prezentate n figura 2.27,a i, respectiv, 2.27,b.

a. Fereastra de proiectare

b. Rezultatul execuiei interogrii

Fig.2.27 Interogare de tip tabel sintetic n baza de date CANDIDAI 2. Afiarea n baza de date Stocuri a cantitilor totale din fiecare produs, achiziionate de la fiecare furnizor Se utilizeaz cmpurile [codprod] i [denprod], [tblStocAprov]![cantitate] i [denfur]; Cantitatea total se determin prin aplicarea funciei globale Sum pe cmpul [cantitate]; Rezultatul execuiei interogrii este prezentat n fig.2.26; Absena unor valori din celulele tabelului afiat arat c produsul respectiv nu a fost achiziionat de la furnizorul respectiv.

48

2.9. Proiectarea i utilizarea formularelor


Formularele sunt obiecte ale bazei de date destinate introducerii i/sau vizualizrii ntr-o form specific a datelor. Formularele sunt utile pentru operatorii mai puin experimentai care trebuie s lucreze cu informaiile din baza de date. n acest sens, formularele constituie o interfa mai accesibil ntre operator i baza de date. Formularele afieaz nregistrri din tabele sau interogri ale bazei de date sau asigur introducerea unor noi nregistrri n tabele. Proiectarea i gestionarea formularelor se face n seciunea Forms. Asupra unui obiect de tip formular se pot executa trei aciuni, corespunztoare celor trei butoane disponibile: Deschidere (utilizare) formular existent Open Deschidere fereastr de proiectare formular existent Design Creare formular nou New Crearea unui nou formular. Elemente componente Exist mai multe posibiliti de a crea formulare, dintre care cele mai utilizate sunt urmtoarele : Design View - creare formular n fereastra de proiectare; se recomand utilizatorilor experimentai Form Wizard - creare formular cu ajutorul asistentului interactiv; varianta cea mai recomandat, att pentru nceptori, ct i pentru avansai AutoForm - creare automat formular simplu; limitat ca posibiliti Chart Wizard - creare formular cu grafice incluse, cu ajutorul asistentului interactiv Fereastra de proiectare a unui formular este prezentat n figura 2.28.

Etichet text

Etichet text Caset cmp

Butoane comand

Fig.2.28. Fereastra de proiectare a unui formular Design View

49

Un formular poate s conin trei zone: Form Header antetul formularului, Detail zona cmpurilor i Form Footer subsolul formularului. Dintre acestea, zona Detail este obligatorie, celelalte fiind opionale. Zona Form Header este destinat, de obicei, unui titlu pentru formular i includerea unor elemente informative (ex. numele emitentului, data sau ora curent, nr.pagin, etc). n zona Detail se introduc cmpurile tabelului ale cror valori trebuie afiate pentru fiecare nregistrare a acestuia. Zona cuprinde grupuri de entiti formate din dou elemente, o etichet i o caset de cmp. Zona Form Footer este destinat includerii unor elemente informative sau anumitor observaii legate de utilizarea formularului. De asemenea, aici se pot include butoane de comand pentru utilizarea formularului. Fiecare entitate definit n formular (cum ar fi etichetele de text, casetele de cmp, butoanele de comand etc), zonele acestuia precum i formularul nsui au anumite proprieti specifice, configurabile de ctre utilizator. Afiarea acestora se face selectnd entitatea i alegnd opiunea Properties din meniul contextual afiat prin apsarea butonului dreapta al mouse-ului. Se afieaz o fereastr de dialog specific (fig.2.29 pentru o caset de cmp). Adugarea de noi entiti n formular se face prin selectarea acestora de pe bara cu butoane asociate Toolbox, care este afiat automat la deschiderea ferestrei de proiectare a formularului (dac nu este afiat, se selecteaz opiunea de meniu View Toolbox).

Fig.2.29 Fereastra Properties Denumire entitate Buton asociat pe Toolbox

Cele mai uzuale entiti care pot fi incluse ntr-un formular sunt descrise n tabelul de mai jos. Descriere

Label
etichet text

Text Box caset de cmp Combo Box caset list pop-up

Text simplu care poate fi formatat (font, mrime, culoare etc). Poate servi ca titlu de formular sau ca etichet (denumire) asociat unei casete de cmp Caset de cmp. Se asociaz cu cmpuri ale cror valori trebuie afiate/introduse. Poate fi formatat i transformat n caset tip list simpl sau combinat Caset list pop-up (derulant). Se poate ataa unui cmp ale crui valori le afieaz pentru toate nregistrrile sub forma unei liste derulante 50

(continuare) Denumire entitate Buton asociat pe Toolbox Descriere

List Box caset list simpl Command Button Buton comand Rectangle Line

Subform

Caset list simpl. Se poate ataa unui cmp ale crui valori le afieaz pentru toate nregistrrile sub forma unei liste simple. Buton de comand. La apsare, se execut o anumit comand asociat (nchidere/deschidere obiect, cutare valori, parcurgere nregistrri etc). Element grafic dreptunghi. I se poate modifica tipul de linie, grosimea, culoarea. Element grafic linie. I se poate modifica tipul de linie, grosimea, culoarea. Buton de creare subformular. Se creaz o legtur ctre un formular existent sau se creaz interactiv un subformular care este utilizat n cadrul formularului principal.

Observaii Atunci cnd se adaug o caset de cmp (Text/Combo/List Box), ea este nsoit ntotdeauna de o etichet (Label). Dac aceasta nu este necesar, poate fi tears prin selectare i apsarea tastei Delete sau a butonului asociat de pe bara cu butoane superioar. Proprietile entitilor coninute n formulare Aa dup cum s-a precizat anterior, toate entitile cuprinse ntr-un formular, zonele acestuia precum i formularul au o serie de caracteristici (proprieti) ale cror valori pot fi stabilite de ctre utilizator. Orice entitate inclus n formular este cuprins ntr-o caset imaginar, marcat de 8 ptrele negre, dintre care unul de dimensiuni mai mari, situat n colul stnga sus fig.2.30. Activarea casetei imaginare se face prin selectarea entitii cu mouse-ul.

Fig.2.30 Entitate selectat caseta imaginar cu marcajele de selectare este activat Prin indicarea cu mouse-ul a ptratului negru mai mare i drag&drop (tragere&depunere), entitatea selectat poate fi mutat n cadrul formularului. Se observ c, n timpul mutrii, indicatorul mouse-ului devine o palm neagr. Prin indicarea cu mouse-ul a unuia dintre celelalte ptrele negre i drag&drop (tragere&eliberare), se pot modifica dimensiunile casetei imaginare, n cazul n care se observ c textul scris n ea nu se vede n totalitate. Dac se execut dublu-click pe oricare dintre ptrelele negre, dimensiunile casetei se adapteaz la dimensiunea textului astfel nct acesta s se vad n totalitate fig.2.31, cazul b.

51

n cazul casetelor de cmp care sunt nsoite de o etichet de text, cele dou entiti sunt legate ntre ele i se pot gestiona n grup sau separat fig.2.32.

a. Caset prea mic b. Caset corect c. Caset prea nalt Fig.2.31 Redimensionarea casetei imaginare n funcie de textul afiat Etichet Caset de cmp Fig.2.32 Grup de entiti etichet caset de cmp (Text Box) Observaie n cazul casetelor de cmp nu se recomand dimensionarea casetei dup lungimea textului scris n ea, care de obicei este numele cmpului, deoarece acesta poate fi mai mic dect lungimea unor valori ale cmpului respectiv, coninute n nregistrrile tabelului i, n consecin, acele valori nu se vor afia n totalitate.

Cele mai importante dintre proprietile entitilor care pot fi incluse n cadrul formularelor sunt descrise n cele ce urmeaz. Pentru etichetele de text i casetele cmpurilor: modificarea aspectului: font de text, mrime, culoare, fond (Font Name, Size/Weight, Fore Color, Back Style/Color, Border Style/Color etc.) Pentru casetele cmpurilor: sursa datelor afiabile n caset: Control Source dac este un cmp din tabel/interogare, este afiat numele acelui cmp, dac este o relaie matematic sau o funcie integrat (vezi cap.2.7), atunci se afieaz relaia/funcia. formatul de afiare a datelor: Format / Decimal Places cmp editabil sau blocat: Locked No/Yes cmp accesibil/inaccesibil cu tasta Tab: Tab Stop Yes/No poziia cmpului la parcurgere cu tasta Tab: Tab Index 0, 1, 2, .a.m.d. Pentru butoanele de comand afiare text pe buton: Caption afiare imagine pe buton: Picture / Picture Type asociere aciune la apsare buton: On click [Event Procedure] Pentru zonele formularului stil i culoare fond (Special Effect, Back Color) Pentru formular sursa nregistrrilor: Record Source dac este un tabel sau o interogare, aici trebuie s apar numele obiectului respectiv controlul introducerii/afirii datelor: Data Entry Yes/No - introducere date noi / afiare date existente aspectul general al formularului (bare de derulare, butoane de min/max/close etc.): Scroll Bars, Record Selectors, Navigation Buttons, Min Max Buttons, Close Button etc. 52

Dup configurarea proprietilor entitilor, zonelor formularului i a proprietilor acestuia i salvarea modificrilor, utilizarea ulterioar a formularului se face prin dublu-click pe numele acestuia n seciunea Forms sau prin selecie i apsarea butonului Open. n figura 2.33 este prezentat formularul a crui fereastr de proiectare a fost descris n figura 2.28. Trecerea ntre cele dou ferestre (utilizare proiectare) se poate face i cu ajutorul butonului asociat de pe bara cu butoane superioar, care i schimb forma n funcie de fereastra care este activ la Fig.2.33 Fereastra Form View (Open Form) un moment dat. Crearea i utilizarea subformularelor Subformularul este un formular care se utilizeaz n cadrul altui formular de care este legat printr-o relaie de asociere. De obicei, formularele cu subformulare se folosesc pentru a afia sau a introduce date din / n tabele ntre care exist relaii (vezi cap.2.5). Un subformular se poate crea n dou moduri: ca orice formular, cu opiunile disponibile (Design View, Form Wizard etc.) i apoi se adaug n formularul principal, stabilindu-se asocierea cu acesta prin proprietile Source Object, Link Master Fields i Link Child Fields cu ajutorul asistentului interactiv n fereastra de proiectare a formularului principal, apelnd butonul specific de pe bara cu butoane Toolbox. Exemplu n baza de date Stocuri se poate crea un formular cu subformular pentru introducerea datelor din facturile de aprovizionare. Formularul principal este necesar pentru adugarea datelor generale despre factura de aprovizionare n tabelul tblNoterec, iar subformularul va permite adugarea de nregistrri despre produsele achiziionate prin factura respectiv, n tabelul tblStocAprov (vezi exemplul de la aplicaia nr.6).

53

2.10. Proiectarea i utilizarea rapoartelor


Rapoartele sunt obiecte ale bazei de date destinate tipririi la imprimant ntr-o form specific a datelor. Dei informaiile din tabelele unei baze de date se pot tipri i direct din fereastra de afiare a nregistrrilor (datasheet view), aceast variant are o serie de limite. Rapoartele permit tiprirea informaiilor din tabele sau interogri ale bazei de date. Gestiunea rapoartelor se face n seciunea Reports. Rapoartele permit tiprirea informaiilor din mai multe tabele simultan i pot conine entiti ale cror valori sunt calculate cu relaii matematice, pe baza valorilor cmpurilor din tabelele bazei de date. Proiectarea i utilizarea rapoartelor se face n mod asemntor cu formularele (cap.2.8). Din acest punct de vedere cele dou tipuri de obiecte sunt similare. Se poate spune c rapoartele tipresc informaiile prezentate la imprimant, n timp ce formularele le tipresc pe ecranul calculatorului. Deoarece rapoartele tipresc informaiile pe hrtie, valorile parametrilor acesteia format hrtie, dimensiuni margini, antet, subsol etc. vor fi preluate din sistem, conform valorilor existente n Microsoft Office. Bineneles, aceste valori pot fi modificate cu ajutorul opiunii de meniu File Page Setup, n funcie de cerinele momentane ale utilizatorului. Asupra unui obiect de tip raport se pot executa trei aciuni, corespunztoare celor trei butoane disponibile: Vizualizare raport existent nainte de tiprire Preview Deschidere fereastr de proiectare raport existent Design Creare raport nou New Crearea unui nou raport. Elemente componente Exist mai multe posibiliti de a crea rapoarte, dintre care cele mai utilizate sunt urmtoarele : Design View - creare raport n fereastra de proiectare; se recomand utilizatorilor experimentai Report Wizard - creare raport cu ajutorul asistentului interactiv; varianta cea mai recomandat, att pentru nceptori, ct i pentru avansai Auto Report - creare automat raport simplu; limitat ca posibiliti Chart Wizard - creare raport cu grafice incluse, cu ajutorul asistentului interactiv Label Wizard - creare raport pentru tiprire etichete Fereastra de proiectare a unui raport este prezentat n figura 2.34. Un raport poate avea, de regul, 5 zone componente: Report Header, Page Header, Detail, Page Footer i Report Footer. Dac informaiile care se tipresc provin din mai multe tabele ale bazei de date i se aplic unele criterii de grupare a acestora n funcie de valorile anumitor cmpuri, atunci raportul poate s conin i alte dou zone, antet i subsol de grup pentru fiecare cmp ale crui valori reprezint un criteriu de grupare. Zona Report Header este destinat includerii unui titlu pentru raportul respectiv, titlu care va fi tiprit o singur dat la nceputul raportului, pe prima pagin a acestuia. Se mai pot include aici informaii statistice (data curent, nr.pagini raport etc.). 54

Zona Page Header reprezint antetul de pagin, n care se includ, de obicei, ca titluri de coloane, etichetele cmpurilor. Se mai pot include i date statistice (nr. de pagin, dat calendaristic etc.). Informaiile se vor tipri pe fiecare pagin a raportului n antetul acesteia.

Antet de grup Subsol de grup

Fig.2.34 Fereastra de proiectare a unui raport n zona Detail se includ cmpurile dorite din tabele, pentru care vor fi tiprite datele nregistrrilor. Zona Page Footer reprezint subsolul de pagin, n care se includ, de obicei, date statistice (nr. de pagin, dat calendaristic, subtotalizri de pagin etc.). Informaiile se vor tipri n subsolul fiecrei pagini a raportului. Zona Report Footer reprezint subsolul raportului, n care se pot include totalizri finale, semnturi etc). Acestea se vor tipri o singur dat, la sfritul raportului, pe ultima pagin a acestuia. Fiecare entitate definit n raport, zonele acestuia precum i raportul nsui au o serie de proprieti specifice, configurabile de ctre utilizator. Accesul la aceste proprieti se face, ca i la rapoarte, selectnd entitatea i butonul din dreapta al mouse-ului, opiunea Properties. n fereastra de dialog care apare se configureaz valorile proprietilor. Proprietile care aparin entitilor unui raport sunt similare cu cele ale celor incluse n formulare i au fost descrise n cadrul cap.2.9 (aspectul etichetelor i casetelor de cmp, butoane de comand, elemente grafice etc.). Este disponibil, ca i la formulare, bara cu butoane ToolBox, cu ajutorul creia se pot aduga entiti n diferite zone ale raportului. Entitile care pot face parte din componena unui raport sunt similare cu cele incluse n formulare i au fost prezentate n tabelul de la cap.2.9. Unele informaii statistice care se pot include n rapoarte pot fi adugate cu ajutorul opiunilor de meniu Insert Page Numbers / Date and Time: Page Numbers adugarea numrului de pagin ntr-un anumit format 55

Date and Time adugarea datei calendaristice i/sau orei curente ntr-un anumit format Pentru adugarea unui contor automat (numerotare curent) n raport, se adaug o caset de cmp Text Box n zona Detail i se stabilesc proprietile acesteia la Control Source: =1 i Running Sum: Over All/Over Group, n funcie de cerinele momentane ale utilizatorului. Criteriile de ordonare i grupare aplicate nregistrrilor prelucrate i tiprite cu ajutorul unui raport sunt configurabile fie n ferestrele de dialog specifice asistentului interactiv (Form Wizard), dac raportul se creaz cu ajutorul acestuia, fie cu opiunea de meniu View Sorting and Grouping, fig.2.35.

Fig.2.35 Fereastra Sorting and Grouping

Fig.2.36 Fereastra Preview a unui raport Dac s-a aplicat un criteriu de grupare a nregistrrilor dup valorile unui cmp i se dorete ca nregistrrile care fac parte dintr-un grup s fie tiprite pe aceeai pagin a raportului, acest lucru se obine prin configurarea opiunii Keep Together la valoarea Whole group, n fereastra Sorting and Grouping (fig.2.35). Dup configurarea proprietilor entitilor, zonelor raportului i a proprietilor acestuia i salvarea modificrilor, utilizarea ulterioar a raportului se face prin dublu-click pe numele acestuia n seciunea Reports sau prin selecie i apsarea butonului Preview, care vizualizeaz raportul pe foaia de hrtie (format A4-Portrait), aa cum va fi el tiprit. n figura 2.36 este prezentat raportul a crui fereastr de proiectare a fost descris n figura 2.34. Trecerea ntre cele dou ferestre (previzualizare proiectare) se poate face i cu ajutorul butonului asociat de pe bara cu butoane superioar, care i schimb forma n funcie de fereastra care este activ la un moment dat.

56

2.11. Proiectarea i utilizarea panourilor de comand


Panourile de comand sunt obiecte ale bazei de date destinate lansrii n execuie a diferitelor aciuni de gestionare a acesteia prin simpla apsare a unor butoane de comand. Ele constituie o interfa ntre utilizatorul neexperimentat i obiectele bazei de date. Panourile de comand sunt obiecte de tip formular care, de obicei, conin numai butoane de comand, asociate cu texte explicative. Crearea unui panou de comand se poate face fie prin proiectarea acestuia ca orice formular (vezi subcap.2.8), fie cu ajutorul utilitarului Switchboard Manager care poate fi executat din meniul Tools Database Utilities. La crearea primului panou de comand ntr-o baz de date, acesta primete numele implicit Main Switchboard. Configurarea panoului de comand i adugarea de butoane de comand i aciuni asociate acestora se face prin apsarea butonului Edit n fereastra Switchboard Manager (fig.2.37). n aceast fereastr semnificaia butoanelor este urmtoarea:

Fig.2.37 Fereastra Swb Manager Close nchiderea ferestrei; New crearea unui nou panou de comand; Edit editarea panoului de Fig.2.38 Panou de comand comand selectat; Delete tergerea panoului de comand selectat; Make Default configurarea panoului de comand selectat ca panou implicit. n figura 2.38 este prezentat un exemplu de panou de comand n baza de date Stocuri. Cu ajutorul acestuia se pot executa 4 aciuni n baza de date, corespunztoare a 4 butoane de comand prezente pe panou: Nomenclator produse deschiderea unui formular de afiare a nregistrrilor din tabelul Produse; Nomenclator furnizori deschiderea unui formular de afiare a nregistrrilor din tabelul Furnizori; Adugare factur n stoc adugarea datelor generale ale unei facturi de achiziie i a datelor despre produsele achiziionate pe factura respectiv n tabelele Noterec i, respectiv StocAprov; Facturi neachitate execuia unei interogri care afieaz informaiilor despre facturile neachitate la un moment dat. 57

Panoul de comand din figura 2.38 mai conine i un buton de nchidere al acestuia. Fereastra de editare a unui panou de comand este prezentat n figura 2.39. Caseta Switchboard Name indic numele panoului, iar caseta Items on this Switchboard indic lista butoanelor de comand prezente pe panou. Semnificaia butoanelor din partea dreapt este urmtoarea: Close nchiderea ferestrei; New crearea unui nou buton de comand i asocierea unei aciuni la apsarea acestuia; Edit editarea unei aciuni existente; Delete tergerea unui buton de comand i a aciunii asociate acestuia; Move Up i Move Down modificarea poziiei butonului de comand selectat. Fereastra de editare a unei aciuni asociate unui buton de comand este prezentat n figura 2.40. Semnificaia casetelor de editare este urmtoarea: Text mesaj text asociat butonului de comand care se afieaz pe panou; reprezint i numele butonului afiat n fereastra Edit Switchboard Page; Command aciunea care se execut la apsarea butonului; se alege dintr-o list de aciuni disponibile; Form indic obiectul asupra cruia se execut aciunea selectat anterior; acest obiect poate fi un formular, un raport, o comand macro sau un alt panou de comand; n funcie de tipul obiectului, caseta este denumit Form, Report, Macro sau Switchboard.

Fig.2.39 Fereastra Edit Switchboard Page

Fig.2.40 Fereastra Edit Switchboard Item

Pe lng obiectul de tip formular creat n seciunea Forms, unui panou de comand i se ataeaz i un tabel, denumit Switchboard Items, care conine cte o nregistrare corespunztoare fiecrui panou de comand creat n baza de date precum i fiecrui buton de comand prezent pe panou. n figura 2.41 este prezentat coninutul tabelului respectiv pentru panoul de comand afiat n figura 2.38. Exist 5 nregistrri, una pentru panoul nsui i patru pentru cele patru butoane ale acestuia.

Fig.2.41 Tabelul asociat unui panou de comand i butoanelor acestuia 58

Obiectul de tip panou de comand, fiind un formular, poate fi editat n seciunea Forms, aducndu-i-se modificri n funcie de cerinele utilizatorului. Sunt disponibile toate posibilitile de modificare a aspectului (font, mrime i culoare text, adugare de elemente grafice etc.) pe care le are orice formular. De asemenea, se pot ataa i alte butoane de comand specifice, cum ar fi butonul de nchidere (fig.2.38), conform celor prezentate n cadrul subcap.2.8. Panourile de comand pot fi create i ca formulare obinuite, n seciunea Forms, cu opiunea New Design View i apoi adugarea etichetelor i a butoanelor de comand necesare. Aspectul unui astfel de formular care execut aproximativ aceleai aciuni ca i cel din figura 2.38 poate fi cel prezentat n figura 2.42.

Fig.2.42 Panou de comand creat ca formular obinuit Butoanele panoului de comand din figura 2.42 au asociate aciuni, de obicei descrise n macrocomenzi, care sunt executate la acionarea lor cu click de mouse. Asocierea aciunilor se face fie cu ajutorul asistentului interactiv, fie prin proiectarea macrocomenzii specifice care trebuie apoi asociat proprietii On Click a butonului respectiv. n cadrul aplicaiei nr.8, cap.4, este prezentat succesiunea aciunilor necesare pentru crearea panoului de comand din figura 2.38, n baza de date Stocuri.

59

2.12. Proiectarea i utilizarea macrocomenzilor


Macrocomenzile reprezint o modalitate simpl de a efectua o succesiune de aciuni n legtur cu utilizarea unei baze de date, cum ar fi: deschiderea/nchiderea tabelelor, formularelor sau interogrilor, selecia de nregistrri, aplicarea unor filtre, tiprirea rapoartelor etc.). Execuia unei macrocomenzi este, de obicei, asociat unui buton de comand dintr-un panou de comand sau formular i poate fi efectuat fr a avea cunotine avansate despre Access. O macrocomand reprezint de fapt o succesiune de comenzi care se execut automat la o singur apsare de buton. Proiectarea macrocomenzilor se face n seciunea Macros. Exist trei aciuni care se pot efectua n legtur cu o macrocomand, i anume: Run execuia unei macrocomenzi existente; se poate efectua i prin dublu-click pe numele macrocomenzii respective; Design deschiderea ferestrei de proiectare a unei macrocomenzi existente; New deschiderea ferestrei de proiectare a unei noi macrocomenzi. Fereastra de proiectare a unei macrocomenzi este prezentat n figura 2.43. Semnificaia zonelor este urmtoarea: Action lista aciunilor care trebuie executate la execuia macrocomenzii (vezi anexa nr.2);

Fig.2.43 Fereastra de proiectare a unei macrocomenzi Comment linie de comentariu asociat fiecrei aciuni; Action arguments obiectul (argumentul) asupra cruia se execut aciunea i anumite opiuni specifice n funcie de aciunea selectat; Condition opional, condiie care decide execuia aciunii, dac rezultatul evalurii condiiei este adevrat (True, 1 etc.), atunci aciunea se va executa, altfel nu;

60

Caseta de ajutor n partea din dreapta jos a ferestrei este afiat un mesaj explicativ cu referire la entitatea pe care se afl cursorul la un moment dat (n exemplul din figura 2.43 apare o descriere a aciunii MsgBox). Execuia unei macrocomenzi din fereastra de proiectare a acesteia se poate face numai dup salvare, prin apsarea butonului Run de pe bara cu butoane superioar, ca i n cazul interogrilor. Execuia se poate face n dou moduri: complet, prin executarea tuturor aciunilor ntr-o singur etap (Run); pas cu pas, prin executarea aciunilor una cte una i ateptarea confirmrii de continuare din partea utilizatorului (Single Step). Cele mai utilizate aciuni n macrocomenzi sunt prezentate n anexa nr.2. n cadrul aplicaiei nr.8, cap.4, sunt prezentate cteva exemple de macrocomenzi care pot fi asociate unor butoane de comand de pe panoul de comand.

61

ELEMENTE DE BAZ PRIVIND NTREINEREA I ADMINISTRAREA UNEI BAZE DE DATE

Administrarea eficient a unei baze de date presupune proiectarea tuturor obiectelor necesare utilizatorilor pentru a introduce, a modifica, a selecta, a consulta, a tipri diverse date, fr a afecta integritatea acestora. ntreinerea unei baze de date necesit efectuarea unor aciuni de rutin n scopul verificrii integritii datelor existente la un moment dat i a proteciei acestora mpotriva unor eventuali factori de alterare accidental sau deliberat. Pentru a realiza aceste activiti, un software care gestioneaz baze de date trebuie s dispun de o serie de instrumente specifice. Microsoft Access dispune de astfel de instrumente, unele uzuale care exist i la alte SGBD, altele specifice, care sunt prezente numai n cadrul acestui sistem. n cele ce urmeaz se vor prezenta cteva elemente de baz privind aciunile care trebuie efectuate ntr-o baz de date pentru meninerea integritii i actualitii acesteia. Exemplele se refer la sistemul Microsoft Access.

3.1. Aspecte privind securitatea datelor


Problema securitii unei baze de date se pune mai ales atunci cnd aceasta are caracter public, adic trebuie s fie accesibil mai multor utilizatori sau atunci cnd se dorete restricionarea accesului la acea baz de date. n aceste cazuri, este necesar un control al accesului utilizatorilor la obiectele bazei de date (tabele, formulare, interogri etc.) n ceea ce privete posibilitatea acestora de a consulta / aduga / modifica date sau obiecte ale bazei de date. Controlul accesului utilizatorilor la o baz de date se poate face prin mai multe metode. Configurarea unei parole de acces la deschiderea bazei de date (Database Password); Separarea bazei de date n fiiere diferite (Database Splitter); Configurarea sistemului de grupuri de lucru cu acces controlat (Workgroup Accounts); Codificarea (criptarea) bazei de date (Encrypt); Configurarea uneia dintre opiunile de mai sus se face din meniul Tools.

62

Configurarea unei parole de acces la deschiderea bazei de date (Database Password) Este cea mai simpl posibilitate de protecie a unui fiier n care este creat o baz de date. Deschiderea fiierului i vizualizarea obiectelor sunt protejate de ctre o parol dat de ctre utilizator. Parola controleaz accesul numai la acel fiier. n Microsoft Access, aciunea se efectueaz cu opiunea de meniu Tools Security Set Database Password, avnd baza de date deschis cu opiunea Exclusive n fereastra de deschidere a bazei de date (Open) se apas sgeata de pe butonul Open Butonul Open (fig.3.1) i se alege opiunea Open Exclusive. Atunci cnd un fiier *.mdb este deschis cu opiunea Exclusive, numai utilizatorul care l-a deschis are acces n acel moment la Fig.3.1. Fereastra Open *.mdb fiierul respectiv, nemaipermind altui utilizator s-l deschid. Security Unset Eliminarea parolei de acces se face cu opiunea de meniu Tools Database Password, avnd baza de date deschis cu opiunea Exclusive i fiind necesar cunoaterea parolei respective. Observaii n ceea ce privete formarea unei parole, exist numeroase preri care spun c parolele formate din combinaii ale numelui sau prenumelui, data naterii, numere de asigurare social, de carte de identitate etc. sau chiar cuvinte obinuite nu sunt prea sigure. Exist astzi programe care folosesc dicionare de cuvinte uzuale pentru a gsi parola potrivit i care pot fi utilizate de ctre hackeri. O regul sigur pentru generarea unei parole este utilizarea combinaiilor neobinuite de cifre, litere sau caractere speciale ($, &, +, *). De asemenea, este necesar ca parola s aib minimum patru caractere. ATENIE: Parolele de acces sunt Case sensitive (difereniaz literele mici de majuscule)

Separarea bazei de date n fiiere diferite (Database Splitter) Este un instrument util pentru protejarea nregistrrilor coninute n tabelele bazei de date, atunci cnd baza de date este public. Acest caz apare atunci cnd baza de date trebuie s fie accesibil mai multor utilizatori. Fiierul de tip *.mdb, care n mod obinuit conine att tabelele cu nregistrri, ct i celelalte obiecte necesare administrrii interogri, formulare, rapoarte etc. se mparte n dou fiiere, unul care va conine tabelele cu nregistrri i altul care va conine celelalte obiecte formulare, rapoarte, interogri etc. Fiierul cu tabele va avea un acces restricionat, iar cellalt fiier va putea fi gestionat de ctre utilizatorii obinuii fr restricii. Metoda este foarte util atunci cnd accesul la informaii se face prin intermediul unei reele. 63

Divizarea bazei de date se face cu opiunea de meniu Tools Database Utilities Database Splitter i se urmresc instruciunile din casetele de dialog afiate. Configurarea sistemului de grupuri de lucru cu acces controlat (Workgroup Accounts) Sistemul se bazeaz pe crearea unor grupuri de utilizatori crora le sunt atribuite conturi de utilizator, fiecare avnd protecia asigurat printr-o parol. Exist dou grupuri implicite, Admins i Users. Grupul Admins (administratori) are drepturi nelimitate i este rezervat celor care proiecteaz i ntrein baza de date. Grupul Users (utilizatori) are drepturi limitate, stabilite de ctre administratori, i cuprinde utilizatorii obinuii. Acetia pot primi drepturi referitoare la deschidere/execuie a diferitelor obiecte ale bazei de date (Open/Run), citire / actualizare / adugare / tergere de date (Read/Update/Insert/Delete Data), vizualizare / proiectare obiecte ale bazei de date (Read/Modify Design). Securizarea bazei de date prin aceast metod asigur controlul accesului la ntreg sistemul Access, deci la toate bazele de date create. Identificarea utilizatorilor se face la pornirea programului i este valabil pentru orice baz de date existent. Configurarea sistemului se face cu o aplicaie extern, MS Access Workgroup Administrator (existent n subdirectorul \Program Files\Microsoft Office). Codificarea (criptarea) bazei de date (Encrypt) Codificarea (cifrarea, criptarea) unei baze de date asigur un nivel minim de securitate, n cazul lucrului n reea de calculatoare. Codificarea bazei de date o face inaccesibil citirii cu alte programe utilitare sau aplicaii Office. Baza de date criptat nu se poate importa n alte medii. Orice utilizator care dispune de sistemul Access poate decripta fiierul i vizualiza informaiile. Accesul la baza de date criptat este posibil n limitele permisiunilor stabilite de Workgroup Administrator, dac acestea au fost configurate. Criptarea/decriptarea unei baze de date se face cu opiunea Tools Security Encrypt/Decrypt Database. Baza de date care se codific trebuie s fie nchis. Versiunea codificat se poate salva n alt fiier sau peste fiierul existent. Desigur, astzi exist programe care pot decripta fiiere criptate prin diferite metode i prin urmare metoda de criptare n Access asigur un nivel minim de securitate doar mpotriva acelor utilizatori obinuii, care nu au drepturi de utilizare a sistemului i deci, nu trebuie s vad fiierele de tip *.mdb.

3.2. Aspecte privind integritatea datelor


Integritatea datelor dintr-o baz de date se refer la asigurarea corectitudinii datelor existente la un moment dat i la posibilitatea actualizrii corecte a informaiilor atunci cnd este necesar. Integritatea datelor se poate asigura prin una dintre metodele de control al accesului disponibile, 64

prezentate n cadrul subcap.3.1 sau prin metode specifice cum ar fi, de exemplu n Access, crearea unei copii identice a bazei de date Database Replica. O prim msur care asigur protecia informaiilor mpotriva deteriorrii sau pierderii acestora este crearea unei copii de siguran a fiierului care conine baza de date ntr-un loc sigur (alt disc dur, o unitate de stocare mobil etc.). Bineneles c este necesar ns o actualizare periodic a informaiilor din copie pentru ca aceasta s fie la zi cu datele incluse n fiierul original. Integritatea actualizrii datelor din baza de date trebuie controlat cnd se lucreaz cu baza de date n mai multe puncte de lucru, pe fiiere fizice diferite. n acest caz este necesar includerea simultan a nregistrrilor de la toate punctele de lucru n aceeai baz de date acelai fiier actualizare periodic a informaiilor. n Microsoft Access, integritatea actualizrii se realizeaz cu facilitatea de reproducere a bazei de date Database Replication crearea unei copii identice a fiierului *.mdb. Aciunea se execut cu opiunea de meniu Tools Replication Create Replica. Fiierul original care conine baza de date actualizat este pstrat n siguran i nu se lucreaz pe el, iar utilizatorii (punctele de lucru) lucreaz pe fiierul-copie care poate fi distribuit n mod corespunztor. Actualizarea datelor ntre copie i original se face, periodic, cu opiunea de meniu Tools Replication Synchronize Now, care compar cele dou fiiere i le completeaz pe fiecare cu nregistrrile pe care nu le are din cealalt, astfel nct, n final, cele dou fiiere s conin aceleai nregistrri. Actualizarea se face numai la nivelul nregistrrilor din tabele, celelalte obiecte interogri, formulare etc. rmnnd specifice fiecrui fiier. n cazul deteriorrii coninutului unei baze de date, din diferite cauze, SGBD-urile dispun de unelte care pot reface integritatea bazei de date. n Microsoft Access, repararea unei baze de date deteriorat se face cu opiunea de meniu Tools Database Utilities Compact and Repair Database care, totodat, micoreaz spaiul ocupat pe discul dur de ctre fiierul care conine baza de date.

3.3. Aspecte privind importul i exportul datelor


Un sistem software de gestiune a bazelor de date (SGBD) modern trebuie s asigure posibilitatea schimbului de informaii nregistrri, formulare, rapoarte, interogri etc. cu baze de date create n alte sisteme software similare. Schimbul de informaii se refer la importul, exportul i conversia datelor coninute ntr-o baz de date. Microsoft Access permite importul informaiilor din baze de date create cu majoritatea celorlaltor SGBD (dBASE, Paradox, Lotus, SQL-ODBC) sau aplicaii similare (Microsoft Excel, text files delimited, fixed-width, Rich Text Format, HTML). De asemenea se pot importa obiecte din alte baze de date Access. Importul se face cu opiunea File Get External Data. Exist dou posibiliti de import: Import datele se aduc fizic n baza de date Access i se creaz noi tabele;

65

Link Tables datele rmn n baza de date original i n Access se creaz o legtur (link) ctre acestea. Ele pot fi prelucrate astfel n format Access. Importul datelor se poate face i la crearea unui nou tabel n seciunea Tables, cu opiunea New Import Table i urmrirea instruciunilor din casetele de dialog ale asistentului (vezi subcap.2.3 i aplicaia nr.1, cap.4). Microsoft Access permite exportul informaiilor din bazele de date ctre majoritatea celorlaltor SGBD (dBASE, Paradox, Lotus, SQL-ODBC) sau aplicaii similare (Microsoft Excel, text files delimited, fixed-width, Rich Text Format, HTML). De asemenea se pot exporta obiecte ctre alte baze de date Access. Obiectele create (tabele, formulare etc.) se pot exporta numai individual. Exportul datelor se face cu opiunea File Export i urmrirea instruciunilor din casetele de dialog. Microsoft Access dispune de posibilitatea transformrii (conversiei) bazelor de date create cu versiuni mai vechi ale programului (Access 1.x, 2.0, Access 95 etc.). Versiunile mai noi Access 20032000 nu mai au posibilitatea conversiei ctre versiuni mai vechi dect Access 97. Database Utilities Convert Database i se Conversia se face cu opiunea Tools urmeaz instruciunile afiate.

66

Anexa nr.1 Funcii predefinite integrate n Access


Obs. n funcie de valoarea stabilit de ctre sistemul de operare Windows, separatorul zecimal poate fi punctul . (sistemul american) sau virgula , (sistemul romnesc). n exemplele date n continuare s-a considerat ca separator zecimal virgula.

Math Funcii pentru date numerice Sintaxa funciei Explicaii Returneaz valoarea absolut (fr Abs (val_num) semn) a valorii numerice val_num Returneaz arctangenta valorii numerice val_num, n radiani Atn (val_num) Este inversul trigonometric al funciei Tan Returneaz cosinus al valorii Cos (val_num) numerice val_num, care trebuie dat n radiani Returneaz numrul e ridicat la Exp(val_num) puterea val_num Este complementara funciei Log Returneaz valoarea ntreag a valorii Fix(val_num) numerice val_num prin trunchiere (eliminarea prii fracionare) Returneaz logaritmul natural (n baza e) al valorii numerice val_num Log(val_num) Este complementara funciei Exp Returneaz valoarea rotunjit a valorii numerice val_num; dac prec lipsete, Round (val_num; (val_num; <prec> prec>) atunci se rotunjete la ntreg, dac exist, reprezint numrul de ordine al zecimalei care se rotunjete Sgn(val_num) Sin (val_num) Sqr(val_num) Tan(val_num) Tan(val_num)

Exemple Abs(1200)=1200 Abs(12,65)=12,65 Atn(1)=0,785 (rad)

Cos(3,14)= 1

Exp(1)=2,7182 Fix(12,6)=12 Fix(12,3)=12 Fix(12,4)= 12 Log(2,7182)=1

Round(12,6)=13 Round(12,65;1)=12,7

Sgn(12,6)=1 Returneaz o valoare ntreag care Sgn(0)=0 semnific semnul valorii val_num Sgn(12,6)= 1 Returneaz sinus al valorii numerice Sin(3,14)=0 val_num, care trebuie dat n radiani Returneaz rdcina ptrat din Sqr(3)=1,73 valoarea val_num Returneaz tangenta valorii numerice Tan(0,785)=1 val_num, care trebuie dat n radiani

Text Funcii pentru date de tip ir de caractere Sintaxa funciei Explicaii Exemple Returneaz irul val_sir transformat cu caractere mici Lcase(DaTe)=date LCase (val_sir (val_sir) sir) Dac val_sir este o valoare constant, atunci trebuie dat ntre marcajele

67

Sintaxa funciei Left (val_sir; nc)

Len(val_sir)

LTrim(val_sir)

Mid(val_sir; st; <nc>)

Right (val_sir; nc)

RTrim(val_sir) Space(nc) String(nc;char) Trim(val_sir) UCase (val_sir) (val_sir)

Explicaii Returneaz un subir format din irul val_sir pornind de la primul caracter i avnd lungimea de nc caractere Returneaz un numr natural reprezentnd lungimea irului val_sir n lungime sunt incluse i spaiile libere Returneaz un sir reprezentnd irul val_sir din care s-au eliminat eventualele spaii libere de la nceput Returneaz un subir format din irul val_sir pornind de la caracterul st i avnd lungimea de nc caractere. Dac nc nu este precizat, se consider toate caracterele pn la sfritul irului Returneaz un subir format din irul val_sir pornind de la ultimul caracter napoi i avnd lungimea de nc caractere Returneaz un sir reprezentnd irul val_sir din care s-au eliminat eventualele spaii libere de la sfrit Returneaz un ir format din nc spaii libere Returneaz un ir format prin repetarea de nc ori a caracterului char Returneaz un sir reprezentnd irul val_sir din care s-au eliminat eventualele spaii libere de la nceput i de la sfrit Returneaz irul val_sir transformat cu caractere majuscule

Exemple Left(Baze Date;4)= =Baze Len (Baze Date)=9

LTrim( Baze)=Baze Mid(Baze Date;6;2)= =Da Mid(Baze Date;6)= =Date Right(Baze Date;4)= =Date RTrim(Baze )=Baze Space(4)=

String(3;X)=XXX Trim( Baze )= =Baze Ucase(DaTe)=DATE

Date/Time Funcii pentru date de tip dat calendaristic / or Sintaxa funciei Explicaii Exemple Returneaz o valoare reprezentnd data curent preluat din sistemul de operare Windows Date ( ) Date ( )=08.01.2005 Afiarea valorii se face n modul implicit definit n Access Returneaz o valoare ntreag Dac vd=8.02.2005 reprezentnd parte din val_data, n DatePart(yyyy;vd)=2005 funcie de valoare indicat prin cod DatePart(m;vd)=2 DatePart(cod; DatePart(cod; val_data; val_data; fwd i fw sunt valori opionale care DatePart(d;vd)=8 definesc numerotarea zilelor i <fwd>; <fw>) DatePart(w;vd)=3 sptmnilor ntr-un an calendaristic Valori implicite; fwd: Sunday DatePart(y;vd)=39 fw : spt.cu 1 Ian. DatePart(ww;vd)=7 Returneaz o valoare ntreag ntre 1 i Dac vd=8.02.2005 31 reprezentnd ziua din lun extras Day(vd)=8 Day (val_data) din val_data Month (val_data) Returneaz o valoare ntreag ntre 1 i Dac vd=8.02.2005 12 reprezentnd luna din an extras din Month(vd)=2 val_data

68

Sintaxa funciei

Now( )

Time ( )

Year(val_data)

Explicaii Returneaz o valoare reprezentnd data i ora curent preluat din sistemul de operare Windows Afiarea valorii se face n modul implicit definit n Access Returneaz o valoare reprezentnd ora curent preluat din sistemul de operare Windows Afiarea valorii se face n modul implicit definit n Access Returneaz o valoare ntreag reprezentnd anul extras din val_data

Exemple

Now( )=08.01.2005 13:31:41

Time( )=13:33:56
Dac vd=8.02.2005 Year(vd)=2005

SQL Aggregate Funcii pentru prelucrarea statistic a seturilor de valori grupate cu Group By n cadrul interogrilor (funcii de tip global) argument reprezint variabila dup care se face gruparea valorilor; poate fi un cmp al unui tabel din baza de date sau un cmp calculat n interogare Sintaxa funciei Explicaii Exemple Returneaz valoarea medie din fiecare Avg ([ ([argument] argument]) set de valori format Returneaz numrul de valori din Count ([ ([argument] argument]) fiecare set de valori Returneaz valoarea maxim din Max ([ ([argument] argument]) fiecare set de valori Returneaz valoarea minim din fiecare Min ([ ([argument] argument]) set de valori Returneaz suma valorilor din fiecare Sum ([ ([argument] argument]) set de valori Alte funcii Sintaxa funciei

IIf (rela (relaie; valDA; valNU) valNU)

Explicaii Exemple Funcie condiional IIf([medf]>=5;ADMIS; Returneaz valDA dac relaia RESPINS) este adevrat Returneaz valNU dac relaia Pt.[medf]>=5, IIf=ADMIS Pt.[medf]<5, IIf=RESPINS este fals

69

Anexa nr.2 Aciuni asociate macrocomenzilor


Denumirea aciunii ApplyFilter Close CopyObject DeleteObject DeleteObject GoToControl GoToRecord Maximize Minimize MoveSize MsgBox OpenForm OpenQuery OpenReport OpenReport OpenTable PrintOut Quit Restore RunApp RunMacro SelectObject SetValue ShowAllRecords TransferDatabase TransferText Descrierea aciunii Aplic un filtru de selecie a nregistrrilor sau apeleaz o interogare existent pentru afiarea selectiv a nregistrrilor nchide fereastra deschis a unui obiect specificat (tabel, interogare, formular, raport etc.) Copiaz obiectul specificat sub un nume specificat n baza de date curent sau n alt baz de date specificat terge obiectul specificat din baza de date Selecteaz un cmp sau un control specificat, existent n structura nregistrrilor curente dintr-un tabel, interogare sau formular Selecteaz nregistrarea specificat din tabelul, interogarea sau formularul curent sau din alt obiect specificat Redimensioneaz fereastra curent la dimensiunea maxim de afiare Reduce dimensiunile ferestrei curente la dimensiunile barei de titlu a acesteia i o deplaseaz n partea inferioar a ecranului Mut i redimensioneaz fereastra curent Afieaz un mesaj sau o pictogram ntr-o caset de dialog Deschide formularul specificat, spre utilizare Execut o interogare specificat Deschide un raport specificat, n fereastra Preview Deschide un tabel de date specificat, afind nregistrrile acestuia Tiprete la imprimant obiectul specificat nchide mediul Access Redimensioneaz fereastra curent la dimensiunile avute anterior Deschide alt aplicaie Windows sau MS-DOS din interiorul mediului Access Execut alt macrocomand n cursul macrocomenzii curente Selecteaz un obiect specificat asupra cruia se poate executa apoi o anumit aciune Atribuie o valoare specificat (care poate fi rezultatul evalurii unei expresii matematice) unui cmp sau control dintr-un obiect specificat nltur filtrele stabilite anterior i afieaz toate nregistrrile din tabelul curent Import/export date din/n alte fiiere tip baz de date n/din tabelul specificat Import/export date n format text din/n alte fiiere n/din tabelul specificat

70

BIBLIOGRAFIE
1. [BAS 97] Bsc, O. Baze de date. Editura Bic All, Bucureti, 1997. 2. [BRA 03] Brady, A.J., Monk, F. E. Problem Solving Cases in Microsoft Access and Excel. Course Technology Inc., 2003. 3. [BRY 97] Brydon, Michael. Microsoft Access Tutorials, http://www.unixg.ubc.ca, 1997 4. [CON 01] Conolly Th., Begg C., Strachan A. Baze de date Proiectare, implementare, gestionare (traducere din limba englez). Editura Teora, Bucureti, 2001. 5. [FOT 97] Fotache, M. Baze de date relaionale. Organizare, interogare i normalizare. Ediia a II-a adugit. Editura Junimea, Iai, 1997. 6. [GUN 04] Gunderloy, M., S. Sales Harkins, Microsoft Office Access 2003 pentru nceptori (traducere din limba englez). Editura All, Bucureti, 2004. 7. [JEN 00] Jennings, R. Totul despre Microsoft Access 2000 (traducere din limba englez). Editura Teora, Bucureti, 2000. 8. [LUN 95] Lungu, I., Todea C., Bdescu G., Ioni C. Baze de date, organizare, proiectare, implementare. Editura All, Bucureti, 1995. 9. [PAS 01] Pasewark W.R.Sr., Pasewark W.R.Jr., Cable, S., Microsoft Access 2002 Complete Tutorial. Course Technology Inc., 2001. 10. [POP 00] Popa, Gh., Iliescu M., Udric M. Baze de date Access. Culegere de probleme. Editura Cison, Bucureti, 2000. Microsoft Access: Practice and Exercises. 11. [SOL 02] Solosky C. Stephen, Kendall/Hunt Publishing Company, 2002. 12. 13. 14. 15. 16. [*** 01] * * * Microsoft Access 2000. Manualul nceptorului (traducere din limba englez). Microsoft Press, Editura Teora, Bucureti, 2000. [*** 02] * * * Access 2003 - Programul Microsoft Office pentru baze de date. Site internet, http://www.microsoft.com/romania/ [*** 03] * * * Microsoft Access 2000 Tutorial. Florida Gulf Coast University. Site internet, http://www.fgcu.edu/support/office2000/access/ [*** 04] * * * Access Tips. Site internet, http://www.access-programmers.co.uk/

[*** 05] * * * Microsoft Access 2000 Basics. Bay City Public Schools. Site internet, http://www.bcschools.net/staff/

71