Ioan MOCIAN

BAZE DE DATE
Lucr ri de laborator

UNIVERSITATEA PETRU MAIOR TÂRGU MURE 2008

Cuvânt înainte
Prezentul îndrum tor de lucr ri de laborator pentru baze de date vine s completeze cursul de baze de date cu aspectele practice care trebuie testate în cadrul laboratorului i proiectului. Acest îndrum tor urm re te structura cursului predat i se compune din 5 lucr ri de laborator care se vor executa pe durata mai multor edin e. Lucr rile de laborator propuse vor trebui efectuate consecvent, deoarece ele sunt gândite ca un proces continuu, adic rezultatele lor vor fi folosite de lucr rile care urmeaz . Prin urmare, acestea nu se pot face decât în ordinea lor fireasc . Cu cât ve i lucra mai con tiincios, cu atât ve i avea satisfac ii mai mari i mai pu in timp irosit. Trebuie s ave i în vedere c bazele de date, trebuie s aib date coerente pentru a putea s test m func ionarea formularelor, interog rilor i rapoartelor. Fiecare student va trebui s implementeze proiectul biblioteca cu propriile date introduse, parcurgând toate etapele de proiectare i implementare a unei baze de date. Proiectul „Biblioteca” implementat corect v asigur nota de trecere a examenului prin sus inerea lui în cadrul colocviului. Con inutul celor 4 lucr ri, sau mai corect spus, 3 lucr ri de laborator i un proiect, este urm torul: Lucrarea 1 con ine studierea conceptelor bazelor de date rela ionale. La sfâr itul lucr rii sunt enumera i termenii pe care studentul îi are de clarificat. În Excel ca trebui sa dea exemple din cele 3 tipuri de rela ii existente 1:1, 1:N i N:N. Lucrarea 2 este dedicat studierii etapelor de proiectare a unei baze de date, vor fi studiate cele 7 etape ale unui proiect, cu exemplificare proiectul „Biblioteca”. La sfâr itul lucr rii, studen ii vor avea create structura tabelelor, diagrama de rela ii i completate 10 formulare cu specifica ii de câmp. Lucrarea 3 este dedicat studierii limbajului SQL, con inând exemple cu instruc iunile de baz . Studen ii trebuie s în eleag func ionarea expresiilor prezentate, s le explice i poat concepe alte exemple. Aceste expresii vor fi reluate, pe viu, în cadrul programului Access. Lucrarea 4 cuprinde ini ierea în utilizarea programului Access cu finalitate în implementarea proiectului „Biblioteca”. Se întinde pe durata a mai multor laboratoare, iar în final fiecare student va avea propria aplica ie de baz de date în Access numit Biblioteca_nume_prenume.mdb. Lucrarea 5 este dedicat elementelor de performan ale programului Access, în care se vor crea macro-uri i se va particulariza aplica ia „Biblioteca”, pentru a ar ta ca o aplica ie profesional . Aplica ia „Biblioteca” prezentat în acest îndrum tor poate fi un bun exemplu pentru aplica ii proprii.

Târgu Mure , 20 ianuarie 2008

Autorul

3

Cuprins
Cuvânt înainte .............................................................................................................. 3 Lucrarea 1. Terminologia bazelor de date rela ionale ............................................. 6 Defini ii .............................................................................................................. 6 Desf urarea lucr rii ........................................................................................ 15 Lucrarea 2. Elemente de proiectare a bazelor de date rela ionale ....................... Considera ii teoretice ……………………………………………………….. Studiu de caz. Proiectarea bazei de date „Biblioteca” ……………………… Desf urarea lucr rii ....................................................................................... 16 16 16 17

Lucrarea nr. 3. Ini iere în limbajul SQL ................................................................ 18 Opera iuni simple folosind limbajul SQL ………………………………….. 18 Reg sirea datelor …………………………………………………… 18 Sortarea datelor …………………………………………………….. 19 Filtrarea datelor …………………………………………………….. 20 Operatorii clauzei WHERE ………………………………………… 20 Filtrare avansat …………………………………………………… 21 Opera iuni avansate folosind limbajul SQL ………………………. 25 Câmpuri calculate …………………………………………. 25 Desf urarea lucr rii ......................................................................... 26 Lucrarea nr. 4. Studiu de caz: Baza de date ” Biblioteca” ................................. 27 Considera ii generale despre programul Access …………………………... 27 Interfa a programului ACCESS …………………………………… 27 Crearea tabelelor …………………………………………………… 28 Rela ii între tabele …………………………………………………. 30 Crearea rela iilor cu Lookup Wizard ……………………………… 31 Crearea tabelelor bazei de date ”Biblioteca” ……………………… 34 Crearea formularelor pentru introducerea datelor ………………… 36 Testarea expresiilor SQL de la lucrarea nr. 3 ……………………… 42 Crearea interog rilor ………………………………………………………. 44 Vederea ”C r ile din bibiotec ” ……………………………….…… 44 Vederea ”C r ile împrumutate” ……………………………………. 46 Vederea ”Situa ie cititor” ………………………………………….. 46 Crearea formularelor pentru vizualizarea informa iilor …………………… 47 Crearea formularului de vizualizare a c r ilor din bibliotec ………………………………………………………. 49 Crearea formularului de vizualizare a situa iei unui cititor …………………………………………………………. 51 Rapoartele bazei de date „Biblioteca” …………………………………….. 55 Finalizarea lucr rii nr.4 ………………………………………………….… 59 Lucrarea nr. 5. Particularizarea bazei de date ” Biblioteca” ............................. 61 O scurt prezentare a Macro-urilor ……………………………………….. 61 Crearea macro-urilor cu singur ac iune …………………………………. 62 Rularea unei macrocomenzi din fereastra Database ……………………… 63 Macrocomenzi ata ate evenimentelor …………………………………….. 64 Utilizarea macrocomenzilor AutoExec i AutoKeys …………………….. 64 Metod rapid de pornire a aplica iilor …………………………………… 65 Desf urarea lucr rii ……………………………………………………… 66 Crearea macro-rilor aplica iei ”Biblioteca” ……………………… 66

4

….. 74 Anexa B..….Crearea formei de start pentru aplica ia ”Biblioteca” ……. 72 Configurarea formularului de start ……………………………… 73 Anexe Anexa A. Comenzile SQL ……………………………………………… 76 Anexa C. 78 5 .….Formulare de proiectare a bazelor de date rela ionale …………………………………………………... 68 Adaptarea formularelor aplica iei ”Biblioteca” …………………. Teme de proiect propuse …………………………………….

Acestea sunt statice în sensul c r mân acelea i pân nu intervine o modificare manual sau automat . Un spa iu alb este un caracter ca oricare altul cum ar fi “a”. Deseori. Informa ii .1 Lucrarea nr. vânz ri etc. Informa iile sunt dinamice. este de asemenea o valoare acceptabil pentru limbaje precum SQL i poate fi semnificativ în anumite circumstan e. num rul de apari ii a unui cod etc. reprezint categoric semnifica ie pentru un limbaj de interogare cum ar fi SQL. din urm toarele motive: • • Un zero poate avea mai multe semnifica ii cum ar fi nivelul stocului unui anumit produs. Date – Valorile care se stocheaz în baza de date. stocate în mod organizat. în sensul c se modific în permanen dup cum se modific datele din baza de date. care se refer la un anumit subiect sau obiectiv. Ideea care trebuie re inut este c trebuie s prelucr m datele pentru a le putea transforma în informa ii cu sens.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. iar fiecare tabel con ine cel pu in un câmp – cunoscut sub numele de cheie primar – care identific în mod unic fiecare înregistrare a tabelului. dar i în sensul c pot fi prelucrate într-un num r nelimitat de moduri. • Tabel (Table) . împreun cu instrumentele folosite pentru manipularea lor.Reprezint date pe care le prelucr m într-un mod care le confer semnifica ie i utilitate pentru noi atunci când lucr m cu respectivele date. Valoare nul . iar fiecare tabel reprezint întotdeauna un singur subiect concret. Ordinea logic a înregistr rilor i a câmpurilor din cadrul unui tabel nu are nici o importan .Reprezint structurile esen iale dintr-o baz de date. Terminologia bazelor de date rela ionale În aceast lucrare se vor clarifica principalele no iuni i concepte care vor fi folosite în studiul bazelor de date rela ionale. produse. De i un ir text format din unul sau mai multe spa ii albe nu înseamn nimic pentru cei mai mul i dintre noi.Reprezint o valoare care lipse te sau care nu este cunoscut . valoarea nul se confund cu un zero sau unul sau mai multe spa ii albe. ceea ce este total gre it. cum ar fi studen i. 1. Defini ii Baz de date (Database) – O colec ie de date înrudite. Un exempu de tabel: StudentID 5001 5002 5012 5065 5032 Nume Pop Ban Laz r Ban Pop Prenume Mariana Ioan Ana Lucia Dorin Sectia TCM TCM IEI IMPI MEC <<alte câmpuri>> Înregistr ri Câmpuri 6 . Un ir de lungime zero – adic dou ghilimele consecutive f r spa iu între ele “”.

Reprezint o instan unic a subiectului unui tabel.Este un tabel “virtual” compus din câmpuri dintr-unul sau mai multe tabele ale bazei de date. care apoi pot fi reg site i prezentate ca informa ii în aproape orice configura ie pe care o pute i imagina. singurele informa ii referitoare la o vedere care sunt stocate în baza de date se refer la structura vederii respective. tergere) i converti în informa ii într-o anumit form sau manier . Cu astfel de tabele ve i lucra foarte frecvent în decursul lucrului cu baza de date.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Tabele de validare care stocheaz date pe care le ve i folosi cu scopul precis de a implementa integritatea datelor.Reprezint cea mai mic structur din baza de date i reprezint o caracteristic a subiectului tabelului c ruia îi apar ine. De obicei. Indiferent de tipul s u. Subiectul pe care îl reprezint un tabel dat poate fi un obiect sau un eveniment. tabelul reprezint o cantitate palpabil . Datele din acest tip de tabel sunt dinamice deoarece se pot manipula (modificare. dar unele (precum Microsoft Access) le denumesc interog ri salvate. Fiecare câmp dintr-o baz de date corect proiectat con ine singur valoare. o înregistrare din tabel trebuie s identifice fiecare persoan din tabel. un obiect are caracteristici care pot fi stocate sub form de date. care vor putea fi prelucrate ulterior într-un num r mare de moduri. deoarece acesta nu mai trebuie s cunoasc loca ia fizic a unei înregistr ri pentru a putea reg si datele. Astfel. Înregistr rile reprezint un element cheie pentru în elegerea rela iilor dintre tabele. Vedere (Query) . De fapt. un produs sau un lucru oarecare.1 Datele dintr-o baz de date rela ional pot exista independent de modul în care sunt stocate fizic în calculator. un tabel de validare con ine nume de localit i. precum o persoan . Câmpurile sunt structurile care stocheaz efectiv datele. Când subiectul este un obiect. adic se modific foarte rar. Modelul rela ional îi atribuie unei vederi atributul de virtual deoarece î i preia datele din tabele de baz . Tabelele pot fi. Datorit modalit ii de definire a unui tabel. deoarece va trebui s cunoa te i rela ia dintre o înregistrare a unui tabel i alte înregistr ri din alt tabel. categorii de activit i etc. • Câmp (Field) . Pentru utilizator acest lucru este foarte bun. iar numele s u va identifica tipul de valoare admis. Înregistrarea este alc tuit din întregul set de câmpuri dintr-un tabel. de dou tipuri: • Tabele de date care furnizeaz date folosite pentru furnizarea de informa ii i reprezint tipul de tabel cel mai frecvent întâlnit într-o baz de date. coduri de produse. Astfel. dac avem un tabel de persoane.i stocheaz propriile sale date. Datele din acest tip de tabel sunt statice. tabelele care alc tuiesc vederea sunt cunoscute sub numele de tabele de baz . într-o alt clasificare. Exemplul clasic care se poate da aici este tabelul cu consulta iile inute de un medic de familie. nu. 7 . Înregistrare (Record) . care este un unicat. datorit acestor ultime dou caracteristici ale unui tabel. indiferent dac respectivele câmpuri con in sau nu valori. înseamn c tabelul reprezint ceva care se produce la un anumit moment de timp i care are caracteristici pe care dori i s le înregistra i. Când subiectul unui tabel este un eveniment. fiecare înregistrare este definit în baza de date prin intermediul unei valori unice a câmpului cheie primar a înregistr rii respective. procesul de introducere a datelor devine foarte intuitiv. Numeroase programe SGBDR principale lucreaz cu vederi.

Ea nu trebuie s fie unic dup cum ve i observa în urm torul exemplu. este cunoscut sub numele de cheie primar compozit . iar tipul cheii define te rolul acesteia în interiorul tabelului.1. în mod caracteristic stabili i rela ia respectiv preluând o copie a cheii primare din primul tabel i încorporând-o în structura celui de-al doilea tabel. asigurând în acela i timp i integritatea datelor. 8 . Index i cheie reprezint o alt pereche de termeni folosi i eronat în mod frecvent i pe scar larg în industria bazelor de date. Un index nu are nici o leg tur cu structura logic a bazei de date. ceea ce este firesc. O cheie extern dintr-un tabel este acea cheie care este cheie primar în alt tabel. O cheie primar este un câmp sau un grup de câmpuri care identific în mod unic fiecare înregistrare din cadrul unui tabel. sort rile i filtr rile unei baze de date se face într-un timp mult mai scurt. Unicul motiv pentru care discut m despre termenul index în acest capitol este faptul c oamenii îl confund deseori cu termenul cheie.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.2. Numele de „cheie extern ” deriv din faptul c al doilea tabel are deja o cheie primar proprie. Un tabel poate con ine numeroase tipuri de chei.sunt acele câmpuri speciale care îndeplinesc roluri foarte bine determinate în cadrul unui tabel. Cheia primar impune integritatea la nivel de tabel i faciliteaz stabilirea rela iilor cu alte tabele din baza de date. în timp ce cheile sunt structuri logice pe care la identificarea înregistr rilor dintr-un tabel.2 se pot vedea o cheie primar i o cheie extern . Exemplu de câmpuri cheie primar i cheie extern Se observ cum câmpul ImpresarID este cheie primar pentru tabelul Impresari i cheie extern pentru tabelul Sportivi. Prin folosirea indec ilor. Ve i sesiza întotdeauna diferen a dintre cei doi termeni dac re ine i c . Acolo unde este cheie extern .1 Cheie (Key) . Cheie primar Cheie primar Sportivi SportivID 8001 8002 8003 Impresari ImpresarID 100 101 102 ImpresarID 100 101 100 Nume Becali Popescu Becali Prenume Ioan Gic Victor Telefon Telefon 0745-655482 0745-658312 0744-547212 <<alte câmpuri>> Nume sportiv Mutu Adrian Neaga Ioan Chivu Cristian 0745-657329 0744-768432 0723-546291 Cheie extern Fig. adic fiecare sportiv are un impresar valabil. Când determina i c între dou tabele exist o rela ie. de a asigura leg tura cu alt tabel. O valoare a unei primare identific o anumit înregistrare din întreaga baz de date. unde devine cheie extern . Câmpul ImpresarID din cele dou tabele asigur leg tura dintre ele. iar cheia primar pe care o introduce i din primul tabel este „extern ” pentru al doilea tabel. Index . dac o cheie primar este compus din dou sau mai multe câmpuri. deoarece un impresar poate avea mai mul i sportivi. indec ii reprezint structuri fizice utilizate la optimizarea procesului de prelucrare a datelor. În figura 1.Este o structur pe care un program SGBDR o pune la dispozi ie pentru îmbun t irea procesului de prelucrare a datelor. valoarea ei se poate repeta. dar cele mai importante sunt cheia primar i cheia extern . în special. rolul ei este. (Mai ine i minte deosebirile dintre date i informa ii?).

1...1 Rela ii (Relationships) . Rela ia se stabile te prin preluarea unei cópii a cheii primare a tabelului p rinte i încorporarea acesteia în structura tabelului copil.. În figura 1.. Rela ii ”unu cu unu” .3 ilustreaz rela ii stabilite prin intermediul cheilor primare i al cheilor externe.. În figura 2. iar SALARIU este tabelul copil... numit tabel de leg tur (cunoscut i sub numele de tabel asociativ).... de maniera în care fiecare tabel particip la rela ie i de gradul de participare al fiec rui tabel. Studenti StudID 6001 6002 6003 6004 6004 Nume Pop Szabo Costea Timocea Mocean Prenume Remus Zoltan Florian Sebastian Vasile OrasStudent Reghin Oradea Zalau Brasov Fagaras <<alte câmpuri>> . deoarece este unicul în cadrul c ruia ambele tabele pot folosi efectiv aceea i cheie primar ... Într-o asemenea rela ie.. Rela ii între tabele O rela ie este o component important a unei baze de date rela ionale. Rela ia se poate stabili prin intermediul unui set de chei primare i chei externe sau cu ajutorul unui al treilea tabel.. . unde devine o cheie extern .Dou tabele au o rela ie unu cu unu când o singur înregistrare din primul tabel este corelat cu o singur înregistrare din al doilea tabel i o singur înregistrare din al doilea tabel este corelat cu o singur înregistrare din primul tabel.. iar cel lalt îndepline te rolul de “tabel copil”... ....3.. Se observ c fiecare salariat din primul tabel are un singur corespondent din al doilea tabel... Pute i caracteriza o rela ie în trei moduri: în func ie de tipul rela iei dintre tabele. În acest caz SALARIA I este tabelul p rinte.. un tabel serve te ca “tabel p rinte”. .4 este prezentat un exemplu clasic de rela ie unu la unu....... întrucât contribuie la cantit ii de date redundante i la eliminarea datelor duplicate.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. O rela ie permite crearea de vederi din tabele multiple i este crucial pentru integritatea datelor... .Între dou tabele exist o rela ie atunci când înregistr rile din primul tabel pot fi asociate cu înregistr rile din al doilea tabel. Orar student(table de leg tur ) StudID 6001 6002 6002 6001 6002 6003 6003 6001 6003 6001 CursID C001 C213 C001 C213 C015 C001 C213 C015 G001 G001 Cursuri CursID Denumire C001 PUC C213 Baze de date C032 SIM C015 GD G001 AutoCAD G004 Inventor G007 Intellicad Credite 5 5 4 5 4 5 4 ProfesorID 25461 25461 56821 12843 32584 3212 25461 Fig . Figura 1. 9 ...10 este reprezentat o astfel de rela ie. Acesta este un tip special de rela ie..

.5. proiectantul bazei de date a ales s plaseze în tabelul SALARIA I câmpurile ce pot fi v zute de orice membru al organiza iei i în tabelul SALARIU câmpurile ce pot fi v zute doar de personalul autorizat. ClientID 9002 9001 9004 9003 9003 9003 9002 9005 9005 CarteID 5648 690423 6563 65323 09542 64823 75001 10045 76100 Data .. de obicei...Între dou tabele exist o rela ie unu cu mai mul i când o înregistrare din primul tabel poate fi corelat cu una sau mai multe înregistr ri din al doilea tabel. Fig....... .. Exemplul din figura 1.. .... . confiden iale. 1....... .00 17... …. …. Modelul p rinte/copil pe care l-am utilizat pentru a descrie o rela ie „unu cu unu” se aplic i în acest caz. De i câmpurile din aceste tabele pot fi combinate într-un singur tabel.... Rela ii „unu cu mai mul i” . …... iar tabelul din partea mai mul i este tabelul copil..> .4.. …. . tiut fiind c salariile sunt. Clienti ClientID 9001 9002 9003 9004 9005 Imprumuturi Nume Pop Ban Laz r Buzan Beldean Prenume Dorin Ion Ana Maria Vian <alte câmp......... .50 23.. O rela ie de tipul unu cu mai mul i se stabile te prin preluarea unei cópii a cheii primare a tabelului p rinte i încorporarea acesteia în structura tabelului copil.... .. unde devine o cheie extern . ….Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr..1 Salaria i SalariatID 100 101 102 103 Nume Ban Pop Laz r Cri an Prenume Ioan Dorin Liviu Ovidiu Telefon 0745-646321 0723-548211 0264-542138 0740-764282 <<alte câmpuri>> …. .. .. Exemplu de rela ie „unu cu mai mul i” 10 . ...... ... 1.. în timp ce o înregistrare din al doilea tabel poate fi corelat cu o singur înregistrare din primul tabel. …. Exemplu de rela ie „unu la unu” Rela ia unu la unu poate fi imaginat ca o “rupere” în dou a tabelului. Fig... Salariu SalariatID 100 101 102 103 Salar orar 34...... .5 ilustreaz o rela ie de tip unu cu mai mul i caracteristic ... S studiem un exemplu generic pentru acest tip de rela ie.45 16.00 Sporuri 10% 5% 20% 18% <<alte câmpuri>> …. partea unu a rela iei este tabelul p rinte...

. o înregistrare din tabelul STUDENTI poate fi corelat cu mai multe înregistr ri din tabelul CURSURI.... Cursuri CursID C001 C213 C032 C015 G001 G004 G007 Denumire PUC Baze de date SIM GD AutoCAD Inventor Intellicad Credite 5 5 4 5 4 5 4 ProfesorID 25461 25461 56821 12843 32584 3212 25461 Sala 208 208 209 207 207 208 208 <<alte câmpuri>> ...........6 prezint un exemplu clasic i clar de rela ie de tip mai mul i cu mai mul i nerezolvat ...Între dou tabele exist o rela ie de mai mul i cu mai mul i când o înregistrare din primul tabel poate fi corelat cu una sau mai multe înregistr ri din al doilea tabel i o înregistrare din al doilea tabel poate fi corelat cu una sau mai multe înregistr ri din primul tabel.. Rela ia este extrem de important din punct de vedere al integrit ii datelor. Un tabel de leg tur se define te prin preluarea unor cópii ale cheii primare din fiecare tabel i utilizarea lor pentru a forma structura noului tabel. aceste câmpuri îndeplinesc dou roluri distincte: împreun formeaz cheia primar compozit a tabelului de leg tur .. fiecare poate fi asimilat unei chei externe... Un exemplu tipic de rela ie „mai mul i cu mai mul i” nerezolvat Aceast rela ie este nerezolvat datorit particularit ii intrinseci a rela iei de tip mai mul i cu mai mul i... Figura 1..... . . .1 O singur înregistrare din tabelul CLIENTI poate fi corelat cu una sau mai multe înregistr ri din tabelul IMPRUMUTURI... în timp ce o singur înregistrare din tabelul CURSURI poate fi corelat cu mai multe înregistr ri din tabelul STUDENTI. Un tabel de leg tur faciliteaz asocierea înregistr rilor dintr-un tabel cu înregistr rile din cel lalt tabel i asigur lipsa oric ror probleme la opera iile de ad ugare..... Principala problem este urm toarea: cum se pot asocia cu u urin înregistr ri din primul tabel cu înregistr rile din al doilea tabel? Pentru a reformula întrebarea folosind 11 . Studenti StudID 6001 6002 6003 6004 6004 Nume Pop Szabo Costea Timocea Mocean Prenume Remus Zoltan Florian Sebastian Vasile OrasStudent Reghin Oradea Zalau Brasov Fagaras <<alte câmpuri>> ...... dar o înregistrare din tabelul IMPRUMUTURI este corelat cu o singur înregistrare din tabelul CLIENTI. O rela ie din aceast categorie se stabile te cu ajutorul unui tabel de leg tur . . deoarece ea v ajut s elimina i datele duplicate...... 1. Dup cum probabil a i dedus....6.. ...Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. iar separat.. câmpul ClientID este o cheie extern în tabelul IMPRUMUTURI... În acest exemplu. O rela ie de tip mai mul i cu mai mul i care nu este stabilit în mod corespunz tor se nume te „nerezolvat ”.......... Rela ii de tip ”mai mul i cu mai mul i” .... Fig............. .. tergere sau modificare a datelor corelate... . . ... Rela ia unu cu mai mul i este cea mai obi nuit rela ie care exist între dou tabele dintr-o baz de date i este cea mai u or de identificat. În realitate. .....

tabelul trebuie s con in cel pu in o înregistrare înainte de a putea introduce înregistr ri în tabelul corelat.. Cea mai bun metod const în din crearea i utilizarea unui tabel de leg tur .... Exist dou tipuri de particip ri: • Obligatorie .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr... precum i num rul minim i maxim de înregistr ri corelate care pot exista în cadrul rela iei. 1. asociate cu o singur înregistrare a unui tabel corelat. deoarece acesta determin modul în care sunt corelate tabelele.7 prezint implementarea practic a cestei solu ii.... care va rezolva rela ia de tip mai mul i cu mai mul i în maniera cea mai adecvat i mai eficient . fiecare tabel particip la rela ie într-o manier particular .. Rezolvarea unei rela ii de tip mai mul i cu mai mul i cu ajutorul unui tabel de leg tur Tipul de participare ..1 tabelele din figura 1.. asociate cu o singur înregistrare din tabelul corelat.. .. Tipul de participare pe care îl atribui i unui tabel dat determin dac în respectivul tabel trebuie s existe o înregistrare înainte de a putea introduce înregistr ri în tabelul corelat. StudID 6001 6002 6002 6001 6002 6003 6003 6001 6003 6001 CursID C001 C213 C001 C213 C015 C001 C213 C015 G001 G001 CursID C001 C213 C032 C015 G001 G004 G007 Denumire PUC Baze de date SIM GD AutoCAD Inventor Intellicad Credite 5 5 4 5 4 5 4 ProfID 25461 25461 56821 12843 32584 3212 25461 Fig. Gradul de participare . Figura 1.. cum se asociaz un student cu mai multe cursuri sau un anumit curs cu mai mul i studen i? Se insereaz câteva câmpuri Student în tabelul CURSURI sau mai multe câmpuri Curs în tabelul STUDENTI? Oricare din aceste metode va îngreuna lucrul cu datele i va afecta în mod negativ integritatea datelor.... StudID 6001 6002 6003 6004 6004 Nume Pop Szabo Costea Timocea Mocean Prenume Remus Zoltan Florian Sebastian Vasile OrasStudent Reghin Oradea Zalau Brasov Fagaras <<alte câmpuri>> ..Când stabili i o rela ie între dou tabele.. dac înregistr rile din tabele sunt interdependente sau nu. respectiv num rul maxim de înregistr ri care pot exista într-un tabel al unei rela ii. ...6... ... • Op ional – nu este obligatoriu ca tabelul s con in vreo înregistrare înainte de a putea introduce înregistr ri în tabelul corelat...Determin num rul minim de înregistr ri existente într-un tabel al unei rela ii.7.. 12 ... . Este important ca dumneavoastr s cunoa te i tipul de rela ie care exist între tabelele dintr-o pereche.....

Gândi i-v numai la implica iile posibile atunci când baza dumneavoastr de date e folosit pentru tranzac ii comerciale sau financiare. Fiecare specifica ie de câmp încorporeaz trei tipuri de elemente: generale. fizice i logice. precum i faptul c înregistr rile din tabele sunt sincronizate ori de câte ori se introduc. precum i intervalul i tipurile de valori stocate într-un câmp. c valorile din fiecare câmp sunt valide. În continuare vor fi prezentate descrierile fiec rui tip de integritate. • Integritatea la nivel de tabel asigur lipsa înregistr rilor duplicate în interiorul tabelului i faptul c acel câmp care identific fiecare înregistrare din tabel este unic i nu are niciodat valoare nul . Cel de-al patrulea tip de integritate a datelor se bazeaz pe modul în care o organiza ie î i percepe i î i utilizeaz datele. s -l trece i cu vederea i nici m car s -l neglija i par ial. • Reguli de desf urare a activit ii impun restric ii sau limit ri asupra anumitor aspecte ale bazei de date. precum i tipul de sincronizare utilizat pentru integritatea la nivel de rela ie. Aceste restric ii pot afecta aspecte ale proiect rii bazelor de date.Reprezint toate elementele unui câmp.prin se în elege validitatea. precum i c se asigur o definire consecvent . consecven a i acurate ea datelor incluse într-o baz de date. a câmpurilor de acela i tip (Cod postal. intervalul de valori i valoarea prestabilit .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. tipul i gradul de participare a fiec rui tabel în cadrul unei rela ii. care sunt greu de depistat. consecvente i precise. care vor fi descrise în detaliu în capitolul urm tor. se actualizeaz sau se terg date din oricare dintre cele dou tabele. în întreaga baz de date. 13 . Exist patru tipuri de integritate a datelor pe care le ve i implementa pe durata procesului de proiectare a bazelor de date. Trei dintre acestea se bazeaz pe diferite aspecte ale structurii bazei de date i sunt denumite în conformitate cu zona (nivelul) la care opereaz . pe baza modalit ilor în care o organiza ie î i percepe i î i actualizeaz datele. • Elementele fizice determin modul de construire a unui câmp i modul de reprezentare a acestuia pentru persoana care îl utilizeaz . de exemplu).1 Specifica ie de câmp . • Elementele logice descriu valorile stocate într-un câmp i includ articole precum valoarea obligatorie. Aceast categorie include elemente precum tipul de date. • Integritatea la nivel de câmp asigur faptul c structura fiec rui câmp este solid . Integritatea datelor . sunte i pasibili de a ob ine informa ii cu grave erori. în anumite rela ii. Integritatea datelor reprezint unul dintre cele mai importante aspecte ale procesului de proiectare a bazelor de date i nu v este permis s -l subestima i. descrierea i tabelul p rinte. lungimea i formatul de afi are. • Elementele generale reprezint informa iile fundamentale referitoare la câmp i includ elemente precum numele câmpului. Nu pot accentua suficient faptul c nivelul de acurate e al informa iilor pe care le reg si i din baza de date este direct propor ional cu nivelul de integritate al datelor pe care îl impune i bazei de date. • Integritatea la nivel de rela ie (cunoscut i sub numele de integritate referen ial ) asigur soliditatea rela iei dintre dou tabele. Trebuie s fi i con tient de faptul c dac nu respecta i regulile de integritate. Aceste specifica ii de câmp o s le completa i folosindu-v de ni te formulare.

În acest context a ap rut necesitatea amplas rii în mod centralizat a întregii baze de date care s fie accesat de to i utilizatorii. iar fiecare înregistrare a tabelului este identificat . iar ordinea fizic a înregistr rilor sau a câmpurilor dintr-un tabel este complet lipsit de importan . între inerea. este aceea c modelul rela ional i-ar fi preluat numele de la faptul c între tabelele unei baze de date rela ionale exist rela ii. larg r spândit . O baz de date rela ional stocheaz datele în rela ii. Fiecare rela ie este compus din înregistr ri i câmpuri. 14 . utilizatorul nu este obligat s cunoasc loca ia fizic a unei înregistr ri a a cum se întâmpl la celelalte modele de baz de date (ierarhic i re ea). numele modelului provine de la termenul rela ie. devenind din ce în ce mai performante.A fost conceput în anul 1969 i este azi cel mai folosit model de baze de date în gestiunea bazelor de date. Microsoft SQL Server este un SGBDR de tip client-server care accept baze de date foarte mari i un num r foarte mare de tranzac ii i ruleaz numai pe sistemele de operare Windows. nu dup locul unde se afl . care constituie o parte a teoriei mul imilor. având astfel posibilitatea de a fundamenta o diversitate de aplica ii utilizator pe acela i set de date. la un pre de cost relativ sc zut. Se întâlne te la marile companii transna ionale. Cele mai cunoscute SGBDR-uri sunt: • Microsoft Access • Microsoft SQL Server • Oracle • MySQL • PostgreSQL Microsoft Access este un SGBDR comercial de tip desktop. Acestea presupun existen a unei copii a bazei de date pe fiecare calculator care nu este un mare avantaj. modificarea i manipularea unei baze de date rela ionale. Numeroase programe SGBDR furnizeaz i instrumentele necesare pentru a putea crea aplica ii destinate utilizatorilor finali care lucreaz cu datele din baza de date. deoarece pre ul s u este pe m sura performan elor. Acesta implementeaz integritatea i securitatea datelor din serverul de baze de date. iar utilizatorii interac ioneaz cu datele prin intermediul unor aplica ii rezidente pe propriul calculator numit clientul bazei de date.Este un program software folosit pentru crearea. în ceea ce prive te actualizarea datelor. folosit pentru gestionarea bazelor de date de dimensiuni mici i medii. Oracle este liderul mondial al pie ei SGBDR-urilor de tip client-server.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Poate acoperi f r probleme segmentul firmelor mici i mijlocii. ci dup un câmp care con ine o valoare unic . O concep ie gre it . Într-adev r. f r a afecta integritatea i securitatea datelor. Sistem de gestiune a bazelor de date rela ionale (SGBDR) . Oracle accept baze de date enorme i un num r imens de tranzac ii. Creatorul de baze de date folose te programul client-server SGBDR pentru a crea i între ine programele de aplica ie de baze de date i programele accesorii pentru utilizatorul final. A a au ap rut SGBDR-urile de tip client-server în care bazele de date se stocheaz pe un server de baze de date. Este solu ia ideal pentru firmele mari. este un SGBDR complex a c rui operare i între inere trebuie f cute de un administrator special instruit pentru acest scop. Prin urmare.1 Baza de date rela ional . Acest model este fundamentat pe dou ramuri ale matematicii – teoria mul imilor i logica predicatelor de ordinul întâi. Este sistemul de gestiune pe care îl vom studia i noi în aceast carte. Primele SGBDR-uri au fost concepute pentru sisteme de tip desktop. pentru reg sirea datelor. pe care un utilizator le percepe ca pe ni te tabele. Numeroasele facilit i oferite de diferi i produc tori evolueaz foarte rapid. Oracle ruleaz pe numeroase sisteme de operare.

care vor fi prezentate în Excel. PostgreSQL este un SGBDR din categoria open-source. stabil i accept baze de date de mari dimensiuni. Versiunile viitoare î i propun includerea acestor caracteristici. dar îi lipsesc câteva din caracteristicile importante ale limbajului SQL. Desf urarea lucr rii Lucrarea se consider efectuat dac : 1. Accept baze de date de mari dimensiuni. Studentul i-a însu it termenii i a în eles conceptele de mai jos: Baz de date Date Informa ii Valoare nul Tabel Câmp Înregistrare Vedere Cheie Index Rela ii Rela ii ”unu cu unu” Rela ii „unu cu mai mul i” Rela ii de tip ”mai mul i cu mai mul i” Tipul de participare Gradul de participare Specifica ie de câmp Integritatea datelor Baza de date rela ional Sistem de gestiune a bazelor de date rela ionale (SGBDR) 2. MySQL este rapid.1 MySQL este un SGBDR din categoria open-source(codul surs este pus gratuit la dispozi ia utilizatorilor) fiind unul din liderii pie ei.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. 15 . studentul va concepe câte un exemplu original cu cele 3 tipuri de rela ii între dou tabele. Ruleaz pe mai multe sisteme de operare i este gratuit pentru utilizarea în scopuri personale(care nu aduc un câ tig). Pe baza exemplelor prezentate. fiind unul din liderii pie ei. este recunoscut pentru setul s u bogat de caracteristici.

vom aborda un studiu de caz. Considera ii teoretice Ca orice lucru inventat de om. pentru a. având ca scop familiarizarea studen ilor cu problemele intervenite în conceperea unei baze de date. pentru a alege cele mai optime solu ii. i bazele de date au un scop bine definit. • Dorim s avem informa ii despre editurile care au c r i în bibliotec .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Etapa 6 – Determinarea i definirea vederilor. Este foarte important s în elegem scopul pentru care e nevoie de o baz de date. 2. Rolul bazei de date este de a ine la zi stocul de c r i din bibliotec de a furniza informa ii despre cititori i împrumuturi. • Dorim s tim la un moment dat. Pentru a în elege la modul concret. Studiu de caz. i 16 . Elemente de proiectare a bazelor de date rela ionale În aceast lucrare se vor parcurge cele 7 etape de proiectare a unei baze de date. Obiectivele misiunii: • Dorim s avem informa ii despre autorii care au c r i în bibliotec . cum se face proiectarea unei baze de date. unde sunt exemplarele unei anumite c r i. la fel cum. aceasta trebuie proiectat . Etapa 7 – Verificarea integrit ii datelor. Etapa 3 – Crearea structurilor de date. Etapa 2 – Analiza bazei de date curente. Iat cele 7 etape care trebuie parcurse pentru a face un proiect: • • • • • • • Etapa 1 – Definirea unei declara ii de inten ie i a obiectivelor misiunii. • Dorim s avem informa ii despre cititorii bibliotecii. Înainte de a crea o baz de date. • Dorim s avem o clasificare a c r ilor pe domenii. Etapa 5 – Determinarea i definirea regulilor de desf urare a activit ii.i însu i cuno tin ele legate de fiecare etap a procesului de proiectare. pentru a construi o cas avem nevoie de un proiect. Etapa 4 – Determinarea i instituirea rela iilor între tabele. • Dorim s avem situa ii despre împrumuturi. Studen ii vor studia din curs Capitulul 3.2 Lucrarea nr. Proiectarea bazei de date „Biblioteca” Declara ia de inten ie.

Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Formularele folosite sunt Specificatii camp. 17 . Studen ii vor completa foi de specifica ii pentru cel pu in 10 câmpuri care s acopere toate tipurile de date.xls.2 Studen ii vor încerca s formuleze alte versiuni ale declara iei de inten ie i s propun obiective ale misiunii bazei de date. Obiectivele misiunii i Diagrama de rela ii. Presupunem c dup analiza obiectivelor misiunii i dup mai multe itera ii.doc în care vor apare Declara ia de inten ie. pentru c ele vor sta la baza lucr rilor care urmeaz . De asemenea. i alte Crearea structurilor de date i a rela iilor. care se g se te pe server în directorul Baze de date. Diagrama se va executa în Word folosind comenzile Drawing. am ajuns la structura prezentat mai jos. Observa ie important ! Trata i cu mare grij cele 2 fi iere cerute. care va con ine pe 10 foi. cele 10 specifica ii de câmp cerute. Desf urarea lucr rii În directorul Biblioteca al fiec rui student va trebui s se creeze un fi ier Word numit Documentatie proiect Biblioteca. Crearea foilor de specifica ii.xls. în acela i director ve i crea fi ierul Specificatii camp.

L. 3. Rezultat: Nume Bogdan Meruta Pop Bucur Chirila Cotirla Cotoara Cozma Damian Farcas Prenume Mircea Florin Cosmin Marius Traian Mihaela Laura Raluca Adina Ovidiu Dumitru Daniel Calin Florin 18 . I.3 Lucrarea nr. 3. P. Opera iuni simple folosind limbajul SQL Reg sirea datelor Reg sirea datelor se face cu instruc iunea SELECT. G.1. I. Prenume FROM tblStudenti. D. folosit pentru a reg si una sau mai multe coloane. N.1 ne propunem s extragem numele i prenumele studen ilor. care va fi folosit în lucr rile urm toatoare. Ini iere în limbajul SQL Aceast lucrare de laborator const în parcurgerea exemplelor de expresii SQL pentru ca studen ii s în eleag acest limbaj.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. T. StudID 1 2 3 4 5 6 7 8 9 10 Nume Bogdan Meruta Pop Bucur Chirila Cotirla Cotoara Cozma Damian Farcas Init P. Prenume Mircea Florin Cosmin Marius Traian Mihaela Laura Raluca Adina Ovidiu Dumitru Daniel Calin Florin Sectia IEI IEI IEI IEI IEI TCM TCM TCM MEC MEC An 1 3 2 2 3 1 1 2 4 4 Grupa 1311 1332 1321 1321 1331 1111 1111 1121 1241 1241 Stare Bugetar Bugetar Bugetar Bugetar Bugetar Bugetar Bugetar Bugetar Bugetar Taxa Fig. Tabelul tblStudenti simplificat Expresie SQL: SELECT Nume. Aceasta este cea mai folosit instruc iune din SQL. Din tabelul tblStudenti prezentat în figura 3. I.

Rezultat: Nume Bogdan Bucur Chirila Cotirla Cotoara Cozma Damian Farcas Meruta Pop Prenume Mircea Florin Mihaela Laura Raluca Adina Ovidiu Dumitru Daniel Calin Florin Cosmin Marius Traian Observa i clauza ORDER BY care ordoneaz înregistr rile în ordine alfabetic dup valorile din câmpul Nume. Iat r spunsul: • Pentru a indica ordinea descresc toare de sortare se folose te cuvântul cheie DESC. se ia sortarea cresc toare care este implicit . • Dac nu se indic direc ia de sortare. Dac dori i s selecta i toate coloanele tabelului se folose te expresia urm toare: Expresie SQL: SELECT * FROM tblStudenti În locul listei de coloane se pune acest simbol „ * ”. Sortarea datelor Prin sortarea datelor se în elege aranjarea înregistr rilor unui tabel într-o anumit ordine. iar dac este numeric sau de dat calendaristic . Sortarea datelor se face cu ajutorul clauzei ORDER BY a instruc iunii SELECT. (Cazul prezentat. a a cum se vede. sortarea se face cresc tor/descresc tor. • Dac câmpul dup care se face sortarea este alfanumeric. alfabetic sau cresc toare/descresc toare. Se pune întrebare. Prenume FROM tblStudenti ORDER BY Nume. S-a folosit i clauza FROM.) Iat cum arat o expresie SQL în care apare i cuvântul cheie DESC: 19 .3 Observa i expresia SQL care se cite te astfel: selecteaz coloanele Nume i Prenume din tabelul tblStudenti. de regul . sortarea se face alphabetic. ce ne facem dac vrem s ordon m invers alfabetic (de la Z la A)? Sau dac avem un câmp numeric i dorim s ordon m descresc tor dup acest câmp.1 ne propunem s scoatem numai numele i prenumele studen ilor dar în ordine alfabetic . La tabelul din figura 3.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Expresie SQL: SELECT Nume. Rezultatul ob inut este evident.

expresia SQL este urm toarea: Expresie SQL: SELECT StudID.1. datele sunt filtrate prin specificarea criteriilor de c utare în clauza WHERE. Prenume Marius Traian Mihaela Dumitru Sectia IEI IEI TCM Grupa 1321 1321 1121 Operatorii clauzei WHERE Clauza WHERE pe care am examinat-o a testat egalitatea – determin dac o coloan con ine valoarea specificat . Init.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Limbajul SQL accept mai mul i operatori condi ionali. dup cum urmeaz : • = Egalitate • <> Non-egalitate • != Non-egalitate • < Mai mic decât • <= Mai mic sau egal cu • !< Nu mai mic decât • > Mai mare decât • >= Mai mare sau egal cu • !> Nu mai mare decât • BETWEEN Între dou valori specificate • IS NULL Este o valoare NULL 20 . Prenume FROM tblStudenti ORDER BY Nume DESC Re ine i c rezultatul sort rii datelor este un tabel care are acela i num r de înregistr ri ca i originalul. Locul acesteia este imediat dup numele tabelului (clauza FROM). Ne propunem s filtr m studen ii din anul 2. Nume. de exemplu. presupune includerea în expresia SQL a unui criteriu de c utare a înregistr rilor dorite. ca în exemplul urm tor. Într-o instruc iune SELECT. D. P. Pentru a executa aceast opera iune ve i folosi clauza WHERE a instruc iunii SELECT. Filtrarea datelor Prin filtrarea datelor se în elege extragerea dintr-un tabel numai a anumitor înregistr ri de care avem nevoie. din tabelul de studen i avem nevoie numai de cei din anul 2. Grupa FROM tblStudenti WHERE An = ”2”. Fie tabelul din figura 3. Reg sirea numai a înregistr rilor dorite. Rezultat: StudID 3 4 8 Nume Pop Bucur Cozma Init T. Sectia. Prenume.3 Expresie SQL: SELECT Nume.

StudID 1 2 3 4 5 6 7 8 9 10 Nume Bogdan Meruta Pop Bucur Pop Cotirla Cotoara Cozma Damian Cozma Init P. T. Iat câteva cazuri concrete de folosire a operatorilor: Interval de valori: WHERE Pret BETWEEN 2. Stare FROM tblStudenti WHERE Sectia=”IEI” AND An = ”1”. Pentru a filtra dup mai multe coloane se folose te operatorul AND. Aceste criterii creeaz condi ii puternice de c utare. (afi eaz toate înregistr rile care nu au pre ). Filtrare avansat Filtr rile prezentate mai sus se întâlnesc mai rar în practic deoarece sunt foarte simple.5 AND 10. aceasta pentru c diversele SGBDRuri accept pe unul sau altul dintre ele. I. Tabel cu studen i Operatorul AND. Prenume. (afi eaz toate înregistr rile din tabelul studen i. Non-egalitate: WHERE Stare <> ”Bugetar”. I. Prenume Mircea Florin Cosmin Marius Traian Mihaela Laura Raluca Adina Ovidiu Dumitru Daniel Calin Florin Sectia IEI IEI IEI IMPI IEI TCM TCM TCM MEC MEC An 1 1 2 2 3 1 1 2 4 4 Grupa 1311 1312 1321 1321 1331 1111 1111 1121 1241 1241 Stare Bugetar Taxa Bugetar Bugetar Taxa Bugetar Bugetar Bugetar Bugetar Taxa Fig. Ceilal i operatori se folosesc la fel ca cel de egalitate prezentat pu in mai în fa . folosit mai înainte. Valoare NULL: WHERE Pret IS NULL.5 i 10). D. care nu sunt bugetari).2. filtrarea dup o coloan nu rezolv problema pe care o avem. Rezultat: Nume Bogdan Meruta Prenume Mircea Florin Cosmin Grupa 1311 1312 Stare Bugetar Taxa 21 . OR. Fie tabelul din figura 3. Este evident c putem formula i altfel condi ia. sunt filtr ri mai complicate la care criteriile sunt exprimate prin expresii complexe. dar aici am folosit non-egalitatea.3 Observa i c pentru non-egalitate exist dou simboluri. Prima filtrare ar fi studen ii de la IEI din anul 1.2. G. N. L. Iat expresia SQL: Expresie SQL: SELECT Nume. Filtr rile pe care le ve i folosi în mod curent. De multe ori.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. I. NOT i IN. 3. P. Vom folosi al i operatori cum sunt AND. (afi eaz toate înregistr rile care au în coloana „Pret” valori între 2. Ne propunem s facem diferite filtr ri. Grupa.

de aceea a fost pus operatorul OR în parantez . Operatorul IN. care s fie separate prin virgule i cuprinse între paranteze. În ordinea opera iilor. Iat aceste avantaje: • Când lucra i cu liste lungi de op iuni valide. tiut fiind c parantezele au prioritate la execu ie.Sectia. Folosirea acestui operator are ca scop specificarea unui domeniu de condi ii. Care este aceast expresie? Se pune. Rezultat: Nume Pop Pop Cozma Cozma Prenume Marius Traian Laura Dumitru Calin Florin Sectia IEI IEI TCM MEC Grupa 1321 1331 1121 1241 Stare Bugetar Taxa Bugetar Taxa Din analiza acestui exemplu. principalul avantaj. Prenume.3 Urm ri i expresia SQL i verifica i rezultatul ob inut. • Ordinea de evaluare este mai simplu de gestionat. sintaxa operatorului IN este mai simpl i u or de citit. pe bun dreptate. Aceste paranteze au leg tur cu ordinea opera iilor OR i AND. respectiv apari ia celor dou paranteze.2 to i studen ii care au numele Pop i Cozma. când operatorul IN este folosit în asocia ie cu operatorii AND i OR. deci se poate scrie o expresie SQL cu acesta. întrebarea de ce mai avem nevoie de înc un operator dac avem unul care face acela i lucru. operatorul AND se execut înaintea operatorului OR. Încerca i i alte filtr ri asem n toare. Grupa. pentru a afi a rezultatul în ordine alfabetic invers ? Operatorul OR. Stare FROM tblStudenti WHERE (Sectia=”IEI” OR Sectia=”TCM”) AND An = ”2”. putem observa f r greutate c operatorul IN face cam acela i lucru ca i operatorul OR. “Cozma”). R spunsul este c operatorul IN are unele avantaje care îl fac de preferat fa de operatorul OR.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. 22 . ceea ce ar duce la rezultate eronate. Ne propunem s alegem din tabelul din figura 3. O alt filtrare pe care ne-o propunem. Observa i folosirea operatorului AND. ca s -l execute primul. Expresie SQL: SELECT Nume. Grupa. Expresie SQL: SELECT Nume. oricare dintre ele putând fi îndeplinite. Operatorul IN necesit o list de valori valide. Stare FROM tblStudenti WHERE Nume IN (“Pop”. Prenume. Rezultat: Nume Pop Cozma Prenume Marius Traian Dumitru Sectia IEI TCM Grupa 1321 1121 Stare Bugetar Bugetar Observa i folosirea parametrilor OR i AND. este s filtr m studen ii din anul 2 de la IEI sau TCM.Sectia. Cum ar trebui modificat expresia SQL.

Grupa. Acest aspect va fi reluat mai târziu. acela i lucru îl puteam ob ine i cu operatorul „<>”. Deoarece NOT nu este utilizat niciodat în sine (totdeauna se folose te în asocia ie cu alt operator). Aici ve i înv a ce sunt caracterele de înlocuire. Caracterele de înlocuire sunt caractere ce au în elesuri speciale în clauzele WHERE din SQL. pe care ne-o propune SQL. foloseau valori cunoscute. extragerea studen ilor nebugetari din tabelul din figura 3. care con in un grup de litere etc. nu o simpl potrivire de egalitate. operatorul NOT? Într-adev r. totu i. Prenume. Expresie SQL: SELECT Nume.Sectia. Acest operator al clauzei WHERE are o singur func ie – neag orice condi ie care îl urmeaz .3 • Aproape totdeauna. cum se folosesc ele i cum s face i c ut ri cu ajutorul lor. cuvântul cheie NOT poate fi utilizat înaintea coloanei dup care se face filtrarea.2. O solu ie. Stare FROM tblStudenti WHERE NOT Stare=”Bugetar”. trebuie utilizat operatorul LIKE. cum e cea prezentat . iar limbajul SQL accept diverse tipuri de caractere de înlocuire. Iat un exemplu sugestiv. Pân acuma. Acesta este îns foarte util în clauzele mai complexe. i astfel v permite s construi i clauze WHERE foarte dinamice. Operatorul LIKE. va fi mult mai simplu s g si i toate înregistr rile care nu corespund cu o list de criterii. Re ine i acest lucru! În continuare vor fi prezentate caracterele de înlocuire folosite de programul ACCESS. Spre deosebire de al i operatori. dori i s c uta i nume de persoane care încep cu o liter . este folosirea caracterelor de înlocuire. Acesta anun sistemul de gestiune a bazei de date c în urm torul model de c utare se va folosi o potrivire dup caractere de înlocuire. C utarea cu caractere de înlocuire poate fi utilizat numai cu câmpuri de tip text. dac sunt mai mari sau mai mici decât altele. pentru clauzele WHERE simple. De exemplu. De multe ori apare necesitatea filtr rii înregistr rilor dup unele criterii care nu folosesc valori cunoscute în totalitate.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. • Un mare avantaj este c operatorul IN poate s con in o alt instruc iune SELECT. 23 . dac folosi i operatorul NOT în asocia ie cu un operator IN. Operatorul NOT. Iar i se pune întrebarea de ce s folosim. iar ei se ocupau de c utarea coresponden elor dintre valori. Acest lucru nu se poate face cu criterii simple comparare. to i operatorii. operatorii IN se execut mai rapid decât listele de operatori OR. nu imediat dup aceasta. sintaxa lui e diferit de to i ceilal i operatori. Pentru a utiliza caracterele de înlocuire în clauzele de c utare. nu se poate spune c ar exista un avantaj real în folosirea operatorului NOT. Rezultat: Nume Meruta Pop Cozma Prenume Cosmin Laura Calin Florin Sectia IEI IEI MEC Grupa 1312 1331 1241 Stare Taxa Taxa Taxa Dup cum se vede. De exemplu. dac verific un domeniu de valori etc.

I. 3. iar „ ? ” este înlocuit cu liniu a de subliniere „ _ ”. Expresie SQL: SELECT Nume. StudID 1 2 3 4 5 6 7 8 9 10 Nume Bogdan Brustur Popescu Brucan Pop Cotirla Popa Popovici Branea Cozma Init P.3. începe cu „Pop”. Prenume Mircea Florin Cosmin Marius Traian Mihaela Laura Raluca Adina Ovidiu Dumitru Daniel Calin Florin Sectia IEI IEI IEI IMPI IEI TCM TCM TCM MEC MEC An 1 1 2 2 3 1 1 2 4 4 Grupa 1311 1312 1321 1321 1331 1111 1111 1121 1241 1241 Stare Bugetar Taxa Bugetar Bugetar Taxa Bugetar Bugetar Bugetar Bugetar Taxa Fig. D. Rezultat: Nume Pop Popa Popescu Popovici Prenume Laura Ovidiu Marius Traian Dumitru Sectia IEI TCM IEI TCM Grupa 1331 1111 1321 1121 Stare Taxa Bugetar Bugetar Bugetar Observa i ghilimelele care se pun i ordonarea rezultatului dup câmpul Nume. dar nu asigur coresponden a mai multor caractere. Pentru a nu avea probleme este bine s studia i documenta ia SGBDR-ului pe care îl ve i folosi. Caracterul de înlocuire „ ? ”. Astfel. în Oracle „ * ” este înlocuit cu „ % ”. Exemplul care urmeaz v ajut s în elege i folosirea lui.3. L. Stare FROM tblStudenti WHERE Nume LIKE ”Pop*” ORDER BY Nume. ci numai a unuia singur. Grupa. „*” înseamn „corespunde cu oricâte apari ii a oric rui caracter”. Într-un ir de c utare. T.Sectia. I. Acest caracter (semnul întreb rii) este utilizat la fel ca simbolul „ * ”. Prenume. scrie i expresii SQL care s ilustreze folosirea acestui caracter de înlocuire. din tabelul din figura 3. Folosind tabelul din figura 3. Este cel mai frecvent utilizat. G. I.3.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Observa ie! În diferite SGBDR semnele de înlocuire ar putea s fie diferite. N. 24 .3 Caracterul de înlocuire *. P. Tabel cu studen i Ne propunem s filtr m toate înregistr rile în care numele studen ilor. Încerca i i alte filtr ri folosind aceast tehnic . Exemplul care urmeaz v va ajuta s în elege i acest caracter.

pentru ca dup aceea s le reformata i în aplica ia client sau în raport. Calin Florin Pop I. a a cum se obi nuie te în practic . adic valoare sa s nu depind de valorile din alte câmpuri. Cosmin Cotirla L. Exemplul clasic care se poate da aici este cel al câmpului Valoare care nu trebuie s apar într-un tabel care are Pretul unitar i Cantitatea. acest câmp trebuie calculat.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. De exemplu. De multe ori apare necesitatea concaten rii valorilor text din mai multe coloane. Câmpuri calculate prin concatenare. Expresie SQL: SELECT Nume + “ “ + Init + “ “ + Prenume AS Student. Grupa. De men ionat faptul c numai baza de date tie care coloane dintr-o instruc iune SELECT sunt realmente coloane din tabele i care sunt câmpuri calculate. Un câmp calculat este creat din mers. Marius Traian Popovici D. Un alt exemplu este cel al adresei care se compune din concatenarea rezultatelor din mai multe câmpuri. În loc s reg si i datele a a cum sunt. Din perspectiva unui client. Stare FROM tblStudenti ORDER BY Nume. An. Spre deosebire de toate coloanele de pân acum. Sectia. Raluca Adina Cozma I. în baza de date. câmpurile calculate nu exist . datele stocate în tabele nu sunt exact ceea ce are nevoie aplica ia dumneavoastr . o regul de baz ne spune c fiecare câmp trebuie s fie independent. de fapt. Aici intervin câmpurile cu valori calculate. în interiorul unei instruc iuni SELECT din limbajul SQL.3. Rezultat: Student Bogdan P. Cel mai simplu mod de a în elege crearea câmpurilor calculate este de a alege exemple sugestive pe care s le coment m. pe care le vom numi în continuare câmpuri calculate. într-un raport trebuie s scriem identitatea unei persoane format din numele complet. dori i s reg si i datele transformate. În ambele exemple. Mircea Florin Branea N. S scriem expresia SQL care face acest lucru pentru persoanele din tabelul din figura 3. Laura Popa G. Mihaela Brustur I. Dumitru Sectia IEI MEC IMPI IEI TCM MEC IEI TCM IEI TCM An 1 4 2 1 1 4 3 1 2 2 Grupa 1311 1241 1321 1312 1111 1241 1331 1111 1321 1121 Stare Bugetar Bugetar Bugetar Taxa Bugetar Taxa Taxa Bugetar Bugetar Bugetar 25 . Daniel Brucan P. dar avem nevoie de acest câmp care este rezultatul înmul irii dintre pre i cantitate. calculate sau reformatate direct din baza de date.3 Opera iuni avansate folosind limbajul SQL Câmpuri calculate Dup ti i de la proiectarea bazelor de date. Ei bine. Ovidiu Popescu T. datele unui câmp calculat sunt returnate în acela i mod ca i datele din oricare coloan .

ca nume a noului câmp. pe viu. Desf urarea lucr rii Toate expresiile SQL studiate. Observa ie important ! Toate expresiile SQL care vor fi în fi ierul Word se presupune c au fost studiate i în elese.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Aceste expresii vor vor fi testate în lucrarea nr. Raport cu câmpul valoare calculate Expresie SQL: SELECT Cod. Furnizor. pe care îl reg sim în capul de tabel. Re ine i aceast tehnic de creare a unor câmpuri. 4. altfel va suporta consecin ele.4. Cod 1001 1023 1231 1089 1904 Denumire Bujie DK1 Acumulator 56A Parbriz VW Antigel -30 Ulei PKT 1 Furnizor Sinterom SA Rombat SA Cobra SRL Promaxim SRL Calota SRL PU 12 124 512 5.4 Cantitate 30 25 12 50 60 Valoare 360 3100 6144 26 384 Fig.2 6. PU*Cantitate AS Valoare FROM tblProduse. Aceste câmpuri calculate rezult dup efectuarea unor calcule aritmetice asupra datelor reg site.3 Observa i sintaxa folosit i ceva nou a ap rut.doc care se va salva în directorul My Documents / Baze de date / Lucrarea 3. Cantitate. Cantitate. PU. ob inut prin produsul câmpurilor PU i Cantitate. Denumire. într-o baz de date real . se vor copia într-un fi ier Word cu numele Expresii SQL studiate. Denumire. Pentru a în elege mecanismul cre rii acestor câmpuri. Presupunem c avem un tabel în care inem intr rile într-o magazie de produse. ob inut prin concatenarea celor trei. vom lua un exemplu practic. PU. studentul putând oricând s dea explica ii în leg tur cu ele.4 este prezentat acest raport. Observa i i re ine i sintaxa folosit pentru crearea noului câmp VALOARE. 3. Câmpuri calculate aritmetic. 26 . cuvântul cheie AS dup care urmeaz cuvântul Student. Cuvântul cheie AS introduce un alias care este un nou nume dat unui câmp. În figura 3. Tabelul se nume te tblProduse i are coloanele Cod. Se cere un raport al intr rilor în magazie în care apare i câmpul Valoare. al unei firme de comer cu piese auto. Furnizor.

numit aici „db1”. folosind programul Access. va apare interfa a din figura 4. Interfa a de pornire Access (fereastra Database) Dup cum se vede. 2. programul ACCESS începe cu o caset de dialog în care vi se cere numele i s alege i directorul bazei de date pe care dori i s o deschide i. primul lucru pe care trebuie s -l facem este s -i cunoa tem interfa a de pornire.4 Lucrarea nr. Spre deosebire de alte programe Microsoft. Dup ce a i dat numele bazei de date noi. Acum ve i folosi cuno tin ele acumulate despre bazele de date într-o aplica ie concret . Ve i g si repede programul observând c iconi a sa con ine mic cheie de yal .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. 4. oricum.1. Fig. care nu sunt. Considera ii generale despre programul Access Interfa a programului ACCESS Pentru a lucra cu orice aplica ie informatic . Toate capturile i descrierile se refer la versiunea Access 2003. chiar dac este una nou (Blank Database). esen iale. Studiu de caz: Baza de date ” Biblioteca” Aceast lucrare de laborator const în implementarea în Access a bazei de date ”Biblioteca” pe care a i proiectat-o în lucrarea nr. 4.1. o baz de date ACCESS poate fi definit ca o colec ie de obiecte: • Tabele (tables) • Cereri de interogare (queries) • Formulare (forms) 27 . Dac ave i alt versiune trebuie s ine i cont de diferen ele care ar putea apare. Pentru ACCESS interfa a de pornire apare dup lansarea acestuia cu metoda general Start / Programs / Microsoft Access.

Cereri de interogare (queries) sunt obiecte care permit vizualizarea informa iilor ob inute prin prelucrarea datelor din una sau mai multe tabele i/sau alte cereri de interogare. pe interfa a de pornire. formulare sau interog ri. Comenzi macro (macros) reprezint un obiect care con ine o defini ie structurat a uneia sau mai multor ac iuni pe care ACCESS le realizeaz ca un r spuns la un anumit eveniment. Rapoarte (reports) sunt obiecte care permit formatarea i tip rirea informa iilor ob inute în urma consult rii bazei de date. Crearea structurii tabelelor se poate face în trei moduri: • Utilizând fereastra de proiectare (Create table in design view). scrise în limbajul Visual Basic. Aici ve i folosi din plin cuno tin ele dobândite despre limbajul SQL. aceste obiecte. chiar dac sunte i „monitoriza i” îndeaproape de instrumentul wizard. Spuneam la începutul acestui curs. sub form de documente pe hârtie. de aceea nu vor mai fi prezentate. Sunt obi nuitele tabele ale bazelor de date. sau dac sunte i la început de studiu. • Utilizând instrumentul Wizard (Create table by using wizard). afi area acestora sau controlul întregii aplica ii. Astfel. 28 . Pagini Web (pages) reprezint un obiect care include un fi ier HTML i alte fi iere suport în vederea furniz rii accesului la date prin intermediul Internet-ului. Design. ACCESS-ul are un instrument numit wizard care v va ajuta s construi i mai u or tabele. Iat o ocazie de a v etala cuno tin ele de Visual Basic. New.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. un buton de tergere i câteva de afi are a obiectelor) a c ror în elegere i rol este u or de dedus. dac nu a i în eles mecanismul leg turilor dintre tabele. • Prin introducerea datelor (Create table by entering data). Formulare (forms) sunt obiecte care permit introducerea datelor. dar un singur lucru nu poate face: s v suplineasc lipsa cuno tin elor dobândite în capitolele precedente. cât de important e s ave i un proiect corect de baz de date. Acestea v permit s face i aplica ii performante chiar dac sunte i un încep tor în baze de date. Tabele (tables) sunt obiecte definite de utilizator în care sunt stocate datele. mai exist câteva butoane (Open. pentru a nu avea probleme la faza de implementare.4 • • • • Rapoarte (reports) Pagini Web (pages) Comenzi macro (macros) Module (modules) În continuare vor fi prezentate. Crearea tabelelor Înainte de a începe s crea i tabele. este de la sine în eles c ave i deja un proiect de baz de date. e pu in probabil c ve i ajunge la rezultate mul umitoare. Pe lâng obiectele prezentate. urmând s fie reluate atunci când le vom folosi efectiv. Dup cum spuneam. pe scurt. m car o diagram de rela ii i structurile tabelelor. Module (modules) reprezint un obiect care con ine proceduri definite de utilizator.

îl reprezint primul mod (Create table in design view). unele cunoscute din alte aplica ii Windows. În toolbar-ul de sub meniul din figura 4. Input Mask reprezint impunerea unui format de introducere pentru toate datele acelui câmp. sau Auto pentru determinarea automat a num rului de zecimale. pentru a ajunge la o concluzie. despre ce va con ine acel câmp (Description). da i un dublu clic pe Create table in design view i pe ecran va apare fereastra Table din figura 4.2. având ca reper tipul de dat numeric: Field Size este dimensiunea câmpului. s alege i din combobox tipul de dat pentru câmpul respectiv (Data Type) i s introduce i o scurt descriere. Pentru alegerea tipului de dat . revede i paragraful Anatomia unei specifica ii de câmp din capitolul 3 al cursului de baze de date. printr-un simplu clic pe el. motiv pentru care va fi prezentat numai acesta. Pentru a v satisface curiozitatea nu ave i decât s le încerca i pe celelalte dou . în partea de jos apare un subtabel în care pute i seta propriet ile câmpului curent.2. Fereastra Table În elegerea acestei ferestre nu e grea: sunte i invita i s da i numele câmpurilor (Field Name). Decimal Places este proprietatea care stabile te num rul de zecimale ce pot fi atribuite câmpului. 29 . data calendaristic etc.2.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Acest buton v ajut s stabili i cheia principal a tabelului pentru câmpul curent (cel cu s geata din stânga). care se potrive te utilizatorilor români. Fig. Se poate alege un num r între 0 i 15. Executarea unui clic pe s geata derulant va deschide o list de op iuni privind dimensiunea câmpului.4 Consider c modul cel mai eficient de creare a tabelelor. Format este formatul sub care se prezint valoarea introdus în câmp. 4. text. acolo unde este cazul. În func ie de tipul de dat ales pentru câmp. exist mai multe butoane. Revenind la primul mod de creare a unui tabel. Exist un buton (cel cu o chei ) pe care nu l-a i mai întâlnit pân acum. Executarea unui clic pe s geata derulant va deschide o list de op iuni privind formatul câmpului. S lu m pe rând aceste propriet i. Formatul de introducere are o mare importan în cadrul câmpurilor ce con in date de tip text sau dat calendaristic . Aceste propriet i sunt adaptate tipului de dat : num r.

în cazul în care acesta este utilizat în cadrul formularelor sau când tabelul respectiv este afi at. în momentul când utilizatorul nu introduce nici o valoare în acel câmp. nu-i a a? S vedem acum ce modalitate folose te ACCESS-ul pentru a face leg tura între tabele. Op iunile Increment sau Random permit stabilirea modului în care câmpului respectiv i se vor acorda valori automat de c tre sistem. Aceasta se realizeaz . >=. Pentru alte tipuri de câmp vor apare i propriet i noi (cele mai multe r mân).4 Caption este eticheta pentru specificarea unui nume atribuit câmpului. dup cum se vede în figura 4. prin coresponden a cheie primar – cheie extern i sunt memorate în baza de date. De exemplu. Dup cum tim. adic admiterea lungimii zero. 30 . • Rela ii temporare – se stabilesc între tabele cu ocazia definirii unor cereri de interogare. BETWEEN. O proprietate important pentru câmpul care con ine date de tip Autonumber este New Values. dac într-o baz de date avem tabelele tblFacturiPrimite i tblFurnizori între care exist o rela ie „unu cu mai mul i”. <. +. Acest câmp poate avea una din valorile Yes / No. • Constante. datele de tip Text i Memo au o proprietate numit Allow Zero Length. AND. datele nu pot fi introduse oricum. OR. <=. Din punct de vedere al momentului cre rii acestora. exist 2 tipuri de rela ii între tabelele unei baze de date ACCESS i anume: • Rela ii permanente – se stabilesc dup definirea tabelelor i sunt cerute de modelul rela ional f când parte din structura bazei de date. • Func ii. Validation Text reprezint textul care va ap rea pe bara de mesaje în cazul în care valoarea introdus nu respect criteriul impus de regula de validare. Aceast proprietate are valoarea Yes sau No. >. Propriet ile descrise mai sus se refereau la tipul de câmp Numeric. Default Value este o valoare care este atribuit automat. de c tre oricare dintre dumneavoastr . între dou tabele între care exist o rela ie. Cum rezolv ACCESS-ul aceast prevedere din proiectul bazei de date (tipul de participare)? Prin impunerea integrit ii referen iale (Enforce Referential Integrity). IS NULL. nefiind înregistrate în structura bazei de date. /. IN.3. Indexed este proprietatea care stabile te dac acel câmp are un index care accept valori duplicat sau numai valori unice. Astfel. Rela ii între tabele Rela iile dintre tabele sunt lucruri cunoscute. Criteriul este introdus sub form de expresii care folosesc: • Operatorii: =. Validation Rule este criteriul care va fi verificat înainte de validarea valorii introduse în acel câmp. Dac nu dorim un index pentru acel câmp se alege valoare No. deja. de obicei. • Identificatorii se dau în paranteze drepte []. *. -. Required este proprietatea care stabile te dac introducerea unei valori în acel câmp este obligatorie.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. nu putem introduce date în tabelul tblFacturiPrimite pân nu avem cel pu in un furnizor în tabelul tblFurnizori.

cu care se pot ad uga i celelalte tabele. Aceast metod const în „legarea” tabelelor în faza de proiectare prin intermediul unei chei primare i a unei chei externe. 31 . a a cum apare în ACCESS. întreba i profesorul care v îndrum la laborator. Leg tura dintre tabele se face „tr gând cu mouse-ul” câmpul de leg tur dintr-un tabel „peste” câmpul corespunz tor din cel lalt tabel. când se define te câmpul de leg tur . apar 2 posibilita i: Edit Relationship. Când citi i aceast secven .. 4. Diagrama de rela ie între cele 2 tabele. Prima dat de proiecteaz tabelul din partea „unu” a rela iei unu cu mai mul i. Printr-un clic pe acest buton se deschide tabela Relationship prezentat în figura 4.3.. pentru tipul de dat (Data Type) se alege op iunea Lookup Wizard. cu un clic-dreapta în interiorul acesteia apoi alegând op iunea Show Table va fi afi at fereastra Show Table.3.. putem face un clic-dreapta pe leg tur .6. fie în faza de creare a tabelului (folosind Lookup Wizard). este bine s o face i cu calculatorul în fa . i se deschide caseta de dialog pentru stabilirea integrit ii referen iale ar tat în figura 4. fie în fereastra Relationship care se afi eaz cu butonul . 4. Stabilirea leg turilor între tabele se face. Fig. din toolbar-ul din fereastra Database.4 Fig.4. Dac ceva nu a i în eles. Cea mai comod cale de a crea rela ii permanente între dou tabele este folosirea facilit ii Lookup Wizard.4. În urma acestei manevre se deschide caseta de dialog din figura 4.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. s-a f cut o leg tur unu cu mai mul i între cele dou tabele. Dac nu apar toate tabelele în fereastra Relationship. Dup ce s-a f cut leg tura. Stabilirea integrit ii referen iale În urma acestei set ri. respectiv Delete cu care putem terge leg tura. deoarece altfel. pus la dispozi ia noastr de programul ACCESS... La cel de-al doilea tabel. aceste manevre sunt greu de în eles. a c rei reprezentare se vede în figura 4. (ultima dintre op iuni). Crearea rela iilor cu Lookup Wizard.4..

fiind un cod numeric f r semnifica ie pentru noi. cea care ne spune c vom lega câmpul nostru cu un alt câmp dintr-un tabel sau o interogare.7. Fig.6. Aceast op iune este indicat s o folosi i când ave i un num r mic de valori pe care poate s le ia un anumit câmp. 32 .8) care ne recomand s face invizibil coloana cu cheia primar . dintr-o list . pentru c la operare nu ne va ajuta cu nimic.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. care vor fi trecute în fereastra din dreapta. ve i alege cheia primar i un alt câmp pentru a identifica înregistrarea (acest lucru îl ve i în elege când ve i introduce. 4... tabelul cu care va fi legat. Cu butonul Next se avanseaz în pasul urm tor când vi se cere s alege i.. Dup alegerea tabelului. Cu butonul Next se va trece la pasul urm tor (figura 4. Merit explicat i op iunea a doua I will type in the values that I want.7. 4. Primul pas al procedurii Lookup Wizard Se alege prima op iune.4 Fig. Alegerea câmpului de leg tur În cazul nostru se vor selecta câmpurile TaraID i Denumire. efectiv. care ne spune c putem lega acest câmp cu o list de valori introduse de noi chiar în aceast faz . Aceast manevr se vede în figura 4. date în tabel). Încerca i i aceast variant pentru a-i în elege rolul. I want the lookup.

. le ve i în elege atunci când ve i crea formulare. propus de calculator. 4. La prima metod Access-ul va pune automat o caset de text (textBox) în care trebuie s introducem manual valori de la tastatur . Pentru a verifica rela ia creat se apas butonul . legarea prin metoda ”tragerii” (drag and drop) în fereastra Relationship i legarea prin metoda Lookup Wizard. nu prea iese în eviden decât la crearea formularelor de introducere a datelor.4 Fig. Dac a i reu it s în elege i aceste diferen e. 4. se apas butonul Next. care va deschide foaia Relationships. Dac nu s-a gre it nimic...Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. pu in mai târziu. Diferen a între cele dou tipuri de leg turi permanente. din care putem alege elegant valoarea din lista afi at . iar la a doua metod va apare în formular o caset combinat (comboBox). dar cu siguran . Avertizarea de salvare a rela iei create.9. Recomandarea pentru a face invizibil cheia primar Cu butonul Next se trece la pasul urm tor care v cere s stabili i numele câmpului care va apare în rapoarte. Poate în acest moment nu sesiza i diferen ele dintre cele dou metode. Dup aceast manevr se alege butonul Finish care ne va avertiza c o rela ie a fost creat i c ar trebui salvat . Încerca i aceast manevr pentru a în elege ce se întâmpl . înseamn c a i f cut un pas important spre a putea crea aplica ii Access tot mai performante. de regul se las cel implicit. Cu un clic-dreapta pe linia rela iei o pute i edita sau terge. Fig.8. Crearea tabelelor bazei de date ”Biblioteca” 33 .

Diagrama bazei de date ”Biblioteca” Structura i propriet ile câmpurile tabelelor bazei de date sunt prezentate în tabelul urm tor: Tabel tblAutori Cimp AutorID Nume Prenume Nationalitate DataN DataD EdituraID Denumire Localitate Tara CarteID AutorID EdituraID Denumire DomeniuID AnAparitie Pagini Valoare Stoc DomeniuID Denumire Explicatii ImprumutID CarteID CititorID DataImprumut Perioada DataRestituire CititorID Tip data AutoNumber Character(150) Character(150) Character(15) Data/Time Data/Time AutoNumber Character(150) Character(150) Character(50) AutoNumber Long Integer Long Integer Character(250) Long Integer Integer Integer Single Integer AutoNumber Character(50) Character(250) AutoNumber Long Integer Long Integer Data/Time Integer Data/Time AutoNumber 34 Constringeri Not Null Not Null Not Null Observatii zz-lll-aa zz-lll-aa Not Null Not Null tblEdituri tblCarti Not Null Not Null Not Null Not Null Not Null tblDomenii Not Null Not Null Not Null Not Null Not Null zz-lll-aa zz-lll-aa Not Null tblImprumuturi tblCititori . 4.10.10.4 Diagrama bazei de date este prezentat în figura 4. Fig.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.

Baze de date – Îndrum tor de lucr ri de laborator Nume Prenume ProfesiaID DataN Adresa Localitate JudetID Observatii JudetID Denumire Abreviere ProfesiaID Denumire Explicatii Character(150) Character(150) Long Integer Data/Time Character(150) Character(150) Long Integer Character(150) AutoNumber Character(75) Character(2) AutoNumber Character(75) Character(200) Not Null Not Null Not Null zz-lll-aa

Lucrarea nr.4

Not Null Not Null Not Null Not Null Not Null Not Null

tblJudete

tblProfesii

Dup crearea tabelelor, caseta Database arat ca în figura 4.11.

Fig. 4.11. Tabele bazei de date ”Biblioteca”

În continuarea acestei lucr ri de laborator, urmeaz s crea i formularele de introducere a datelor, care se v d în figura 4.12. Mai întâi vor fi create formularele de introducere a datelor. Dup exemplele prezentate în curs pute i trece la crearea acestor formulare.

35

Fig. 4.12. Formularele bazei de date ”Biblioteca”

Baze de date – Îndrum tor de lucr ri de laborator

Lucrarea nr.4

Crearea formularelor pentru introducerea datelor În figura 4.12 se v d formularele de introducere a datelor în tabele. Având în vedere rela iile stabilite intre tabele, introducerea datelor nu poate fi f cut oricum. Astfel, nu putem introduce o care dac numele autorului nu este în tabelul cu autori. Ca regul , în rela iile 1:N, mai întâi se vor introduce date în tabelul din partea ”unu” a rela iei i numai apoi în tabelul din partea ”mai mul i” a rela iei. Formularul frmIntroducereAutori. Pentru crearea formularului, parcurgem pa ii urm tori: 1. În caseta de dialog Database, d m comanda Forms – New – AutoForm:Columnar(vezi figura 4.13).

Fig. 4.13. Alegerea tipului de formular i a tabelului

Se alege tabelul tblAutori, care va fi completat de c tre viitorul formular. Se apas butonul OK.

2. Va apare forma brut a formularului, a a cum apare în figura 4.14.

Fig. 4.14. Formularul brut
36

Baze de date – Îndrum tor de lucr ri de laborator

Lucrarea nr.4

Acest formular ar mai trebui pu in aranjat. De exemplu, pentru câmpul Nationalitate ar trebui s avem un comboBox din care s alegem dintr-o list , nationalitatea autorului. Pentru câmpurile cu date calendaristice DataN i DataD ar trebui s indic m sub ce form trebuie introduse aceste date, stiut fiind c la acest tip de dat apar des probleme din cauza introducerilor incorecte. Modificarea formularului se poate face numai în modul Design view, care se ob ine ap sând butonul . Figura 4.15 arat cum trebuie s fie formularul în Design view.

Fig. 4.15. Formularul în modul Design view

Pentru a transforma caseta de text Nationalitate, execut m clic-dreapta pe ea, alegem op iune Change To, apoi op iunea Combo Box, dup care va trebui s introducem lista cu na ionalit ile autorilor. Acest lucru se face prin completarea propriet ilor Row Source Type (Value List) i Row Source (Romana; Maghiara; Straina), dup cum se poate vedea în figura 4.16. De asemenea, s-au introdus 2 etichete (zz/lll/aa) care ne indic , cum s introducem data calendaristic . Pentru activarea tabelului cu propriet ile se apas butonul sus. din toolbar-ul din partea de

37

Aceste chei sunt valori de tip AutoNumber care sunt greu de folosit pentru c trebuie. pute i vedea cum arat formularul înainte de setarea propriet ilor. se iese din modul Design i se activeaz formularul care trebuie s arate ca în figura 4. 4.16. Forma final a formularului Formularul frmIntroducereCarti. pentru a putea efectua modific rile în formular. trebuie s analiz m tabelul pe care îl va completa. introdus un autor printr-un num r. Trecem în modul Design view. Fig. Prin ap sarea butonului . cu observa ia c vom alege acum tabelul tblCarti.18. Pentru crearea acestui formular primii pa i sunt identici cu cel precedent. EditurID i DomeniuID. Fig. 4. Formularul în stare brut 38 . de exemplu.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Ar fi mult mai potrivit pentru operator s aleag dintr-o list un nume de autor cu care e obi nuit i nu un cod numeric care nu îi sugereaz nimic. Acesta are 3 câmpuri care trebuie completate cu chei externe: AutorID. 4. Se observ c acesta are ca surs tabelul tblCarti.4 Fig. Este ceea ce ne propunem.18.17. Înainte de a începe crearea efectiv a formularului.17. Atribuirea valorilor pentru propriet ile Row Source Type i Row Source 3. În figura 4.

tblAutori.19. pe baza leg turilor dintre tabele.Nume.Nume AS Expr1 FROM tblAutori ORDER BY tblAutori. care se g sesc în categoria Format (vezi primul buton). Setarea surselor se pot deduce clar din figura 4.Denumire FROM tblDomenii ORDER BY Denumire. cu care suntem obi nui i. Fig. EdituraID: SELECT tblEdituri.AutorID.Prenume+" "+tblAutori.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.19. DomeniuID: SELECT tblDomenii. 39 . Pentru ca în aceste casete s apar denumirile. în casetele comboBox vor apare listele cu cheile primare ale celor 3 câmpuri implicate.EdituraID. tblDomenii. trebuie s modific m unele propriet i ale celor 3 comboBox-uri. 4.Denumire FROM tblEdituri ORDER BY Denumire. tblEdituri.4 În aceast stare. Setarea propriet ilor legate de sursa înregistr rilor Observa i c sursele pentru cele 3 câmpuri de chei externe sunt ni te expresii SQL simple: AutorID: SELECT tblAutori.DomeniuID.

Pentru aceasta trebuie s set m. Forma final a formularului 40 . care ne spun c avem 2 coloane. numai acest câmp.20. Setarea acestor propriet i se vede în figura 4. propriet ile Column Count(2) i Column Width(0. Asta înseamn c prima coloan nu se vede. din tab-ul Format. Fig. respectiv 1. Setarea propriet ilor Column Count i Column Widths Prin ap sarea butonului s arate ca în figura 4. care au l imea de 0. iar a doua are 1. .2 inch.21. iar pe noi ne intereseaz numai al doilea care ne spune ceva concret.20. Trebuie s afi m.21.2”). se iese din modul Design i se activeaz formularul care trebuie Fig. deci.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.2 inch l ime.1.4 Fiecare din aceste expresii au ca rezultat câte 2 câmpuri. 4. 4.

4 Dup modelele prezentate.22. Formulare care trebuie create 41 . Fig. prezentate mai jos în figura 4. 4. crea i i celelalte formulare de introducere a datelor.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.22.

Fig. Nu uita i de simbolul „ . • Se va deschide fereastra Show table unde se apas butonul Close. Rezultatele pe care le ve i ob ine vor trebui s corespund cu cele de la lucrarea nr. prin ap sarea c ruia Fig. 3 a i salvat în fi ierul Expresii SQL studiate. a a cum sunt prezentate în exemplele de la lucrarea nr. 24. ” punct i virgul de la sfâr itul expresiei. Ve i proceda astfel: • În fereastra Database se apas butonul Queries apoi se d dublu-click pe op iunea Create query in Design view . Butonul Run SQL Dac totul a decurs bine. Fereastra pentru scrierea expresiilor SQL Observa i c în mod automat apare scris instruc iunea „SELECT. cu numele Expresii_SQL. 3. 3. va apare butonul se deschide fereastra din figura 4. mdb. Tabelele care vor trebui create sunt. ” care se termin cu punct i virgul . 4.23. . În aceast fereastr se scriu de mân expresiile SQL.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Pentru verificarea expresiei SQL introduse folosi i butonul Run SQL localizat conform figurii 4.txt mai multe expresii SQL pe care acum o s le relua i i o s le verifica i în cadrul programului Access. Desf urarea lucr rii Deschide i o baz de date nou . care semnific terminarea expresiei SQL. se va afi a un tabel cu datele generate de interogare.4 Testarea expresiilor SQL de la lucrarea 3 Pentru a scrie expresiile SQL în Access trebuie s deschidem fereastra corespunz toare. Expresiile SQL se pot copia direct din fi ier. Va trebui s crea i i s umple i cu date tabelele. La lucrarea nr.23. • În partea stâng a Toolbar-ului superior. 4.24. în cadrul c reia se vor face toate test rile. tblStudenti i tblEvidenta care sunt ar tate mai jos: 42 .

4 Sectia IEI IEI IEI IEI IEI TCM TCM TCM MEC MEC An 1 3 2 2 3 1 1 2 4 4 Grupa 1311 1332 1321 1321 1331 1111 1111 1121 1241 1241 Stare Bugetar Bugetar Bugetar Bugetar Bugetar Bugetar Bugetar Bugetar Bugetar Taxa tblStudenti StudID 1 2 3 4 5 6 7 8 9 10 Nume Bogdan Meruta Pop Bucur Chirila Cotirla Cotoara Cozma Damian Farcas Init P. D.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. va trebui s introduce i în tabele acelea i date.2 6. Prenume Mircea Florin Cosmin Marius Traian Mihaela Laura Raluca Adina Ovidiu Dumitru Daniel Calin Florin tblEvidenta Tipul de dat pentru fiecare câmp îl ve i deduce din tabelele afi ate. L. Cod 1001 1023 1231 1089 1904 Denumire Bujie DK1 Acumulator 56A Parbriz VW Antigel -30 Ulei PKT 1 Furnizor Sinterom SA Rombat SA Cobra SRL Promaxim SRL Calota SRL PU 12 124 512 5. G. I. N. P. I. I. T. Pentru a ob ine rezultatele de la lucrarea 3.4 Cantitate 30 25 12 50 60 Valoare 360 3100 6144 26 384 43 . Fiecare expresie SQL va fi salvat cu un nume sugestiv.

Ne reamintim c vederile sunt ni te tabele virtuale. necesitatea unei vederi poate fi rezolvat oricând. Vederea ”C r ile din bibiotec ” A i putea spune. Ve i proceda astfel: • În fereastra Database se apas butonul Queries apoi se d dublu-click pe op iunea Create query in Design view . dar la o baz de date bine proiectat . se numesc în Access. 4. de aceea va trebui s crea i o vedere din care s se vad denumirile explicite. putem spune. Încerca i s afi a i acest tabel (un dublu clic pe numele lui).4 Crearea interog rilor Vederile.24. 44 . Fereastra pentru scrierea expresiilor SQL Observa i c în mod automat apare scris instruc iunea „SELECT. de fapt vede i cheile primare ale acestora. c toate c r ile se afl în tabelul tblCarti. deci n-ar mai fi nevoie de o vedere. Aceste tabele virtuale sunt completate cu date din unul sau mai multe tabele. • Se va deschide fereastra Show table unde se apas butonul Close.23. O astfel de informa ie nu este de mare ajutor. va apare butonul se deschide fereastra din figura 4. ” punct i virgul de la sfâr itul expresiei. rezultatul sau scopul pentru care am muncit s cre m o baz de date. pentru autori.mdb”.23. • În partea stâng a Toolbar-ului superior. ”Biblioteca. edituri i domenii. a a cum le-am înv at la curs. nu pot fi identificate toate vederile. edituri i domenii avem ni te coduri care nu ne spun mare lucru. în combina ie cu formularele i rapoartele stabilesc cât de performant e aplica ia de baz de date pe care a i creat-o sau o folosi i. În continuare vom încerca s cre m câteva vederi. Acestea. În cazul aplica iei noastre. care semnific terminarea expresiei SQL. vederile sunt sugerate de obiectivele misiunii. . Nu uita i de simbolul „ . prin ap sarea c ruia Fig. Vederile sunt. Pentru verificarea expresiei SQL introduse folosi i butonul Run SQL localizat conform figurii 4. aduc ele nu exist în realitate ci sunt generate de c tre programul Access. interog ri (queries). Pentru a scrie expresiile SQL trebuie s deschidem fereastra corespunz toare. ” care se termin cu punct i virgul . În aceast fereastr se scriu de mân expresiile SQL. Sigur c în faza de proiectare. folosind limbajul SQL. atunci când avem nevoie de ele. Ve i observa c la autori. pe baza leg turilor dintre tabele. pe bun dreptate.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.

tblCarti.Denumire AS Editura. tblEdituri. iar dac nu a i f cut vreo gre eal ar trebui s ob ine i ceea ce se vede în figura 4. 4.AnAparitie AS Aparut.Valoare. tblAutori.25. se poate vedea în figura 4.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.Nume AS Autor. tblCarti. scris mai clar: SELECT tblAutori. 24. tblCarti. tblCarti.26.EdituraID=tblEdituri. Interogarea cu c r ile din bibliotec Din aceast vedere se pot vedea clar informa iile despre c r ile din biblioteca noastr .4 Fig.26. Fig.Denumire. 45 . 4. Lansa i aceast comand SQL cu butonul Run SQL.Stoc FROM tblCarti. În cazul nostru expresia SQL care trebuie introdus .25.EdituraID ORDER BY tblCarti. Expresia SQL pentru afi area c r ilor din bibliotec Iat expresia SQL. 4. Fig. se va afi a un tabel cu datele generate de interogare.AutorID=tblAutori. Butonul Run SQL Dac totul a decurs bine.Denumire. Bineîn eles c voi o s ave i afi ate c r ile pe care le-a i introdus în baza de date pe care a i creat-o. tblEdituri WHERE tblCarti.Prenume + " " + tblAutori.AutorID AND tblCarti.Pagini. tblCarti.

46 . este prezentat în figura 4.Prenume+" "+tblCititori. 4.Perioada.AutorID AND tblImprumuturi.CarteID AND tblCarti.28. Observa i cum a fost introdus expresia pentru cererea parametrului (ultimul rând). tblCititori.EdituraID AND tblCarti.Nume AS Cititor. eventual când le-a restituit. care este o interogare cu parametrii.DataImprumut. Rezultatul este prezentat în figura 4. 4. tblImprumuturi.CititorID ORDER BY tblCarti.28. tblImprumuturi.CititorID=tblCititori. Fig.DataImprumut.27. tblImprumuturi.DataRestituire FROM tblCarti.AutorID=tblAutori. Rezultatul interog rii qryImprumuturi Vederea ”Situa ie cititor” Una dintre cele mai importante informa ii pentru bibliotecari este situa ia de împrumuturi a unui cititor. Fig.4 Vederea ”C r ile împrumutate” Expresia SQL este: SELECT tblCarti.EdituraID=tblEdituri. tblCititori WHERE tblImprumuturi.CarteID=tblCarti. tblCititori WHERE tblImprumuturi. tblEdituri. are expresia SQL de mai jos: SELECT tblCititori.Denumire AS [Denumirea cartii].Prenume AS Cititor.DataRestituire FROM tblImprumuturi. tblCarti.CarteID=tblCarti.CititorID=tblCititori.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.CititorID=[Introduceti ID-ul cititorului]. tblAutori. tblImprumuturi. tblCarti. tblImprumuturi. Situa ia cititorului Pop Mircea cu ID-ul 4.Denumire.CititorID AND tblImprumuturi.Denumire AS [Denumirea cartii]. Cererea parametrului a fost introdus între paranteze drepte.Perioada.27.Nume + " " + tblCititori. tblImprumuturi. Situa ia unui anumit cititor Pentru a lista situa ia unui cititor trebuie numai s re ine i ID-ul acestuia care se poate afla din tabelul tblCititori. adic ce c r i i când a scos cititorul respectiv.CarteID AND tblImprumuturi. tblImprumuturi. O astfel de interogare.

eventual pe câte o interogare simpl ata at de vreun comboBox. deoarece se bazeaz pe interog ri uneori complicate. Starea ON corespunde valorii Yes (-1). numite generic. prezentat în figura 4. Butonul Pointer este controlul activat implicit atunci când este afi at bara de instrumente Toolbox. comut din starea ON în starea OFF. Numele controlului Select Objects (indicator) Descriere Control Wizards Label Text Box Option Group Toggle Button Deselecteaz controlul selectat anterior i restabile te func ia normal pentru indicatorul mouse-ului. ac ionarea unui buton comutator dezactiveaz butonul comutator ac ionat anterior. butoane de op iune sau casete de validare. pe lâng câmpurile provenite din tabele i interog ri. casetele de validare nu se comport ca în Visual Basic. elevii.29. cum ar fi grupurile de op iune. în care putem plasa. iar starea OFF corespunde valorii No (0). Caset dreptunghiular de dimensiune variabil . Bara de instrumente Toolbox În tabelul urm tor vor fi descrise aceste controale. Fig.29. încerca i s identifica i i alte vederi pe care le-a i putea crea. sau studen ii etc. Formularele de introducere de date sunt mai u or de creat. nici una. iar uneori trebuie scris i ceva cod în VBA. Aceste controale se g sesc în toolbar-ul Toolbox. Con ine orice text fix.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. cum ar fi butoane de comand . etichete etc. atunci când e selectat. Buton care. Deci. casetele de liste i casetele combinate. pe un tabel. obiecte suplimentare care le fac mai performante. Sugestii: c r ile unei anumite edituri. deoarece se bazeaz . Activeaz /Dezactiveaz programele Control Wizards. Numai un singur obiect de control din interiorul acestei casete poate fi selectat la un moment dat. Formularele de vizualizare sunt mai greu de f cut.. butoane comutatoare. Crearea formularelor pentru vizualizarea informa iilor Dup cum tim. Aceste utilitare ne ajut s gener m obiecte de control complexe. unde puteau fi selectate. Este acela i obiect ca cel studiat în Visual Basic. În cadrul unui grup de op iune. Acest tip de formulare con in.4 Pe baza acestor exemple. cât i în vizualizarea informa iilor din baza de date. una sau mai multe. Putem utiliza aceste butoane pentru a permite 47 . Când execut m click pe un obiect din grup obiectul selectat anterior va fi deselectat. formularele se pot folosi atât pentru introducerea datelor în tabelele bazei de date. ce c r i au scos pensionarii. folosit pentru diferite descrieri sau nota ii de pe formular. controale. în general. 4. Caset în care se afi eaz sau din care se citesc date de tip text.

situa ia împrumuturilor unui cititor). Imaginea poate fi modificat dup ce a fost inserat în formular. care con ine obiecte OLE Control. Include în formular sau raport un obiect OLE creat cu o aplica ie server OLE. Caset care con ine o list derulant de op iuni. Crearea formularului de vizualizare a c r ilor din bibliotec 48 . împrumuturi. Obiectul Custom Control este o versiune special de obiect neasociat. delimitatoarele de pagin nu sunt afi ate pe formular sau raport.4 Option Button Check Box Combo Box List Box Command Button Image Unbound Object Frame Bound Object Frame Page Break Tab Control Subform/Subreport Line Rectangle More Controls utilizatorului s selecteze o valoare dintr-un set. Fiecare pagin va putea con ine alte obiecte de control. Creeaz dreptunghi pe care putem ulterior s -l redimension m sau s -i schimb m pozi ia. Ata eaz unui formular sau raport. un subformular. cum ar fi pictograma op iunii Sound Recorder pentru un fi ier . Afi eaz con inutul unui câmp OLE al unei înregistr ri. Aceste formulare se bazeaz pe interog ri. Permite introducerea de obiecte de control ActiveX instalate în sistem. în care putem introduce o valoare i o list din care putem alege o valoare.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. într-un formular. Butoanele de acest tip sunt utilizate cel mai des în grupurile de op iune pentru selectarea unei valori dintr-un set de op iuni. din care putem selecta o valoare. Casetele de validare multiple trebuie plasate în afara grupurilor de op iune astfel încât s putem selecta mai multe op iuni simultan.WAV legat sau înglobat. comut între starea ON i starea OFF. Caset combinat format dintr-o caset de text editabil . cum ar fi Microsoft Graph sau Microsoft Draw. Obiectele OLE Control au date asociate (data-bound OLE Control) stocate într-o versiune special de obiect asociat. Creeaz o linie dreapt pe care putem ulterior s o modific m sau s -i schimb m pozi ia. dac acesta con ine un obiect grafic. în vederea cre rii unei serii de pagini ce pot fi schimbate. În cele ce urmeaz vom încerca împreun s cre m formulare care nu sunt folosite pentru introducerea datelor. a a c vom folosi interog rile pe care le-am creat anterior (vederile c r ile din bibliotec . ci pentru a afi a informa ii din baza de date. respectiv subraport. începând din pozi ia delimitatorului de pagin din formular sau raport. Afi eaz o imagine static pe un formular sau pe un raport. Determin imprimanta s treac la o pagin nou . apare pictograma ce reprezint obiectul. În modul Run. Acest control se folose te. Caset de validare care. Dac obiectul inclus în câmp nu este grafic. Ele trebuie create înainte de folosirea acestui control. Buton de comand care declan eaz execu ia unei comenzi Macro sau unei proceduri VBA de tratare a evenimentelor. atunci când este selectat . Buton rotund care se comport identic cu un buton comutator.

cu propriet ile pe care le deduce i din figura 4.31. ”Biblioteca Jude ean Mure ” i ”Lista c r ilor din bibliotec ”. El va primi numele frmCartile din bibliotec . care va deschide caseta de dialog din figura 4. Introducem în partea de Header cele dou etichete. Din caseta de dialog Database. a a c va trebui s -i introducem i sec iunile Form Header i Form Footer cu ajutorul comenzii View – Form Header/Footer. În continuare trebuie s introducem un subformular care con ine detaliile formularului.4 Acest formular se bazeaz pe interogarea qryCartile din bibioteca care o avem deja de la laboratoarele precedente. 4. Obiectul Subform Fig. Seta i urm toarele propriet i ale obiectului Subform pe care tocmai l-a i introdus: Name = ”Detalii” Source Object = “qryCartile din biblioteca” Pentru formularul mare seta i propriet ile: Name = ”frmCartile din biblioteca” Navigation buttons = ”No” În aceast faz formularul la care lucra i trebuie s fie ca în figura 4. care este un dreptunghi dimensionat ”la ochi” în prim faz . 49 .30.31. pornim s cre m un nou formular cu comanda cunoscut : Forms – New – Design View. În acest sens.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Formularul gol De aici trebuie s pornim pentru construc ia formularului nostru. urmând s -l ”împodobim” cu cele necesare. în partea de Detail introduce i obiectul Subform.30. Observ m c formularul are numai sec iune Detail.

în a a fel ca acestea s se vad toate în formular. Un aspect care ar putea fi nepl cut.31. Încerca i. Formularul dup introducerea etichetelor i a subformularului Mai mult ca sigur.4 Fig. nu a i nimerit cea mai bun dimensiune i pozi ie a controalelor de pe interfa . Fig. Pentru aceasta va trebui s face i de mai multe trecerea din modul Design în modul Run al formularului. Forma final a formularului Crearea formularului de vizualizare a situa iei unui cititor 50 . cu ajutorul mouse-ului s modifica i l imile coloanelor. este c nu se vad toate coloanele iar pentru vizualizarea lor e nevoie de scrollbar.32. de aceea trebuie s interveni i pentru a-i da formularului un aspect pl cut. 4.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. 4.32. Acest lucru se face prin modificarea propriet ilor i a pozi iilor controalelor. pân ob ine i imaginea din figura 4.

Vom introduce i sec iunea Form Header/Footer. Vom parcurge mai repede etapele cunoscute.33. Începem crearea unui tabel prin metoda Design View. Fig. f r s alegem vreun tabel ata at. 4.4 Acest formular o s fie mai complicat.33. va trebui ca prin cod s modific m expresia SQL a interog rii. Formularul cu subformularul inserat În cele ce urmeaz vom executa urm toarele ac iuni: • • • Introducem în antet (Header) o caset con ine to i cititorii. deci pentru a func iona trebuie s introducem ca parametru ID-ul cititorului. Column Widts. În urma acestor ac iuni vom avea imaginea din figura 4. combo. dup cum se poate deduce din figura 4.34. numit cboCititori. ca r spuns la un eveniment. pe care a i creat-o la interog ri. Nume + " " + Prenume AS Cititor FROM tblCititori ORDER BY Nume. Sursa pentru cboCititori (proprietatea Row Source) va fi o interogare SQL: SELECT CititorID. adic interogarea pe care o avem deja. care nu face altceva decât s faciliteze alegerea numelui cititorului dintr-un comboBox i afi area situa iei acestuia. Row Source i On Click. Scoatem butoanele de navigare de la formular punând proprietatea Navigation Buttons pe No. 51 .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Acest formular se bazeaz pe interogarea qrySituatie-cititor. În acest formular gol vom introduce un obiect Subform care are proprietatea Source la valoarea qrySituatie-cititor. Urmeaz s set m propriet ile obiectului cboCititori: Column Count. în sensul c va avea i ceva cod scris în VBA. care va Când alegem un cititor. Trebuie s avem în vedere c aceasta este o interogare cu parametri.

figura 4.4 Fif.35. care deschide pagina pentru introducerea Fig. având în vedere faptul c VBA (Visual Basic for Applications) este tot limbajul Visual Basic care are în plus unele obiecte specifice Access-ului.35. 52 .35. Zona în care se introduce codul surs . Nume +" "+ Prenume AS Cititor FROM tblCititori ORDER BY Nume. Pentru a introduce procedura. 1 (prima coloana are l imea 0. Row Source : SELECT CititorID. iar la evenimentul clic se declan eaz o procedur . v aminti i de programarea în Visual Basic. . Acest lucru nu e de mirare. Setarea propriet ilor obiectului cboCititori Valorile care se atribuie acestor propriet i sunt: Column Count: 2. 4. dintre care prima nu se vede. are 2 coloane. iar a 2-a are l imea de 1 inch.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. 4. On Click: [Event procedure] Aceste valori ale propriet ilor ne spun c obiectul comboBox cboCititori. se apas butonul codului procedurii.34. are ca surs câmpul calculat Cititor. a doua 1 inch). Dac analiza i imaginea din figura 4. Column Widts: 0.

DataRestituire " & _ "FROM tblCarti. Aici se impun câteva considerente despre obiectul frame.Nume AS Autor.Perioada. Încerca i s în elegi func ionarea acestei proceduri. tblAutori.RecordSource = "SELECT tblCarti.Form. tblImprumuturi.Prenume + ' ' + tblAutori.Form.Column(1) End Sub Observa i c întreaga procedur nu face altceva decât s modifice o proprietatea RecordSource a obiectului SubFormImprumuturiCititori.AutorID " & _ "AND tblImprumuturi.CititorID=" & cboCititor." & _ "tblImprumuturi. care pot fi testate în program.Nume AS Autor.Denumire.Value & ". sau numai cele nerestituite.DataRestituire " & _ "FROM tblCarti.RecordSource = "SELECT tblCarti.CarteID And tblCarti. tblImprumuturi. în zona Header a formularului creat s-a introdus un frame cu 2 butoane de op iune cu ajutorul c rora. Observa i. În VBA din Access.Value = 1 Then SubFormImprumuturiCititor. dupa numele cititorului lblImprumut. deci aceast idee. Între cele 2 semne este un spa iu.CarteID And tblCarti. cum se construie te o expresie SQL prin cod Visual Basic. care poate fi un bun exemplu pentru aplica iile pe care o s le face i în viitor.CititorID=" & cboCititor.DataImprumut.Denumire. lucrurile stau pu in altfel." Else SubFormImprumuturiCititor. de asemenea.4 Iat codul care trebuie introdus în aceast procedur : Private Sub cboCititor_Click() 'Se creaza expresia SQL pentru subformularul SubFormImprumuturiCititor If fraOptiuni.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.AutorID=tblAutori. tblAutori.DataRestituire IS Null " & _ "AND tblImprumuturi.AutorID=tblAutori. tblImprumuturi " & _ "WHERE tblImprumuturi. respectiv cum se trece pe un rând nou. formularul afi eaz toate c r ile împrumutate de un cititor. tblAutori. dar aceste obiecte au o proprietate Option Value care se poate stabili la 53 . f r a afecta continuitatea expresiei.Value & ". Deci obiectul frame nu era folosit în cod. Re ine i. numit aici fraOptiuni." End If 'Se schimba caption-ul.Prenume + ' ' + tblAutori.Perioada." & _ "tblImprumuturi. tblAutori. tblImprumuturi.CarteID=tblCarti. Putem grupa i aici casetele de validare i butoanele de op iune. Casetele de validare i butoanele de op iune aveau numai 2 valori: TRUE i FALSE. tblImprumuturi " & _ "WHERE tblImprumuturi.Caption = "Imprumuturi: " & cboCititor.DataImprumut.AutorID " & _ "AND tblImprumuturi.CarteID=tblCarti. tblImprumuturi. folosind combina ia de caractere (& _). Pe lâng caseta combinat cboCititori. Se tie de la Visual Basic c într-un frame se pot grupa butoane op iune i casete de validare.

.. una. 4. pentru obiectul selectat. 2. deci ar fi indicat s le folosim pe acestea. mai multe sau toate.. dup cum se poate vedea din ultima linie de cod. oricâte op iuni am avea nu trebuie s folosim de atâtea ori instruc inea IF . Prin urmare.. Obiectul care grupeaz aceste obiecte se nume te acum Option Group. Aici putem folosi instruc iunea de condi ionare multipl SELECT CASE.. Un mare avantaj al folosirii grupurilor de op iune este c . nici una. Valoarea acestei propriet i. Forma final a formularului Observa i c exist eticheta lblImprumut a c rei proprietate Caption se schimb în func ie de cititorul a c rei situa ie se afi eaz .36. va fi i valoarea obiectului Option Group. Forma final a formularului creat este ar tat în figura 4. Fig.4 crearea acestor obiecte. 54 . Ne reamintim c diferen a major dintre butoanele de op iune i casetele de validare este c în cazul primelor poate fi activ numai un buton. iar în cazul celorlalte pot fi setate.36. de regul valori întregi (1. cum era în Visual Basic-ul clasic.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. THEN. nu este logic s grup m casete de validare în frame-uri pentru c ele se comport ca i butoanele de op iune.). De remarcat faptul c numai un obiect din frame-ul Option Group poate fi activat.

Iat pa ii care trebuie parcur i: 1. vezi figura 4. 2.AutorID=tblAutori.Denumire. de altfel. toate c r ile existente i s le grup m pe edituri i s afi m i valoarea c r ilor de la fiecare editur . tblEdituri WHERE tblCarti.37. tblCarti. Fig. Deci este important s avem sursa de date a raportului.Stoc FROM tblCarti.EdituraID ORDER BY tblCarti. Alege i numele interog rii qryCartile din biblioteca.AutorID AND tblCarti. Alegerea sursei de date pentru raport Toate câmpurile din stânga ferestrei trebuie s le trece i în dreapta pentru c avem nevoie de toate.Prenume+" "+tblAutori. Ap sa i butonul Next. 55 . Primul lucru pe care trebuie s -l l murim este s afl m de ce rapoarte avem nevoie. În acest fel ve i putea însuma valorile aferente unei edituri. când a i studiat capitolul Interog ri. a a cum vi se cere.Denumire AS Editura. Da i comanda Reports – New – Report Wizard. tblCarti. tblCarti. din baza de date. de altfel.Nume AS Autor.EdituraID=tblEdituri. Aceast interogare a i creat-o. care se tip resc pe hârtie i sunt folosite ca documente care se pot pune în dosare sau se arhiveaz . fie c este un tabel sau o interogare.37. Tehnica de lucru este asem n toare cu cea de la formulare. tblAutori.38. ne propunem s tip rim. 4. Ca i formularele. Trebuie s ave i ceea ce se vede în figura 4. Pentru a grupa informa iile alege i tabelul cu tblEdituri. care particip la interogarea surs . care are urm toarea expresie SQL: SELECT tblAutori.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. rapoartele au o surs de date care poate fi un tabel sau o interogare. Pentru a trece la pasul urm tor ap sa i butonul Next. Astfel. tblCarti.4 Rapoartele bazei de date „Biblioteca” Dup cum ti i. tblCarti.Denumire. rapoartele nu sunt altceva decât ni te formulare cu informa ii extrase din baza de date. a a c ar trebui s o ave i.Valoare.AnAparitie AS Aparut. tblEdituri.Pagini.

figura 4. Tot aici se vede c pute i opta ca în raport s apar detaliile sumariz rii (Detail and Summary) sau s apar numai sumele f r detalii (Summary Only). Urm toarea caset de dialog v cere s alege i dup care câmp vor fi sortate grupurile i ce calcule aplica i asupra câmpurilor.39. Fig. 4.4. 4. Prin ap sarea butonului OK reveni i la caseta din stînga. Alegerea criteriului de grupare 3.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.39.38. Caseta de dialog care urmeaz . Opta i pentru varianta Block prezentat în figura 4. 56 . v cere s alege i modelul de prezentare a raportului. Stabilirea sort rii i sumariz rii Prin ap sarea butonului Summary Options se deschide caseta de dialog din dreapta.4 Fig. cum se vede în figur . Cu butonul Next ajunge i la pasul urm tor. unde pute i opta s face i suma pe câmpul Valoare.40.

57 . 4. 4. Alegerea formei de afi are (Block) Ap sa i butonul Next pentru a ajunge la caseta de dialog din figura 4. Fig.4 Fig. Alegerea stilului Ap sând butonul Next. unde pute i alege din mai multe variante.41. Opta i pentru stilul Formal. 4.42. Fig.40.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. ajunge i la ultima caset de dialog unde pute i da numele raportului.42. stilul de scriere în raport. a a cum se vede în figura 4. Alegerea numelui raportului (rptInventar) Ap sa i butonul Finish pentru a încheia.41.

s modifica i formatele de scriere cu ajutorul tabelului de propriet i din dreapta figurii.45 pentru a vedea unde trebuie s ajunge i. s pune i un titlu raportului. Pentru aceasta intra i în modul Design i începe i ac iunea de cosmetizare a raportului. Fig. 4. Forma brut a raportului Forma raportului este departe de a ne mul umi.4 În urma procedurii parcurse a i ob inut un raport brut. În figura 4. Fig.44 ave i formularul brut. 58 .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. 4.44. de aceea va trebui s interveni i în modificarea aspectului raportului. a a cum se vede în figura 4. Pentru orice neclarit i cere i ajutorul profesorului. Cel mai simplu lucru este s studia i figura 4. Forma brut a raportului Tot ce ave i de f cut este s modifica i cu ajutorul mouse-ului pozi iile câmpurilor.43.43. în modul Design.

a fost schimbat m rimea fontului de la 8 la 11 (proprietatea Font size). s-au m rit casetele de text acolo unde nu înc pea textul. 4 Aceast lucrare s-a desf urat pe parcursul mai multor ore de laborator. Este metoda cea mai eficient i practic .4 Fig. Observa i c pentru elaborarea rapoartelor aspectuoase. dar c r ile s fie grupate dup domeniu. Dup acest model încerca i s face i i alte rapoarte. indicat i de speciali tii domeniului.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Lucrarea este finalizat când s-au creat toate obiectele bazei de date ”Biblioteca”: • Tabelele • Formularele • Interog rile • Rapoartele 59 . de exemplu acela i raport. Finalizarea lucr rii nr.Transparent).45. 4. a fost scoas bordurarea câmpurilor (proprietatea Border Style . Forma final a raportului Iat câteva modific ri care s-au f cut raportului ini ial: a fost schimbat pagina din portret în landscape. câmpul Aparut a fost pus ultimul. trebuie s porni i cu Report Wizard i s continua i manual. au fost schimbate câmpurile între ele prin „tragere”.

60 . va fi creat baza de date Expresii_SQL.mdb Aceste baze de date.mdb / Expresii_SQL. a i acumulat cuno tin e care v vor fi de un real folos în activitatea viitoare. create i implementate de voi. Dac a i lucrat cu consecven i implicare. care va con ine tabelele tblStudenti i tblEvidenta i toate interog rile pe care le-a i f cut cu ajutorul expresiilor SQL. mdb.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. f r s fi f cut un efort mare.4 De asemenea. Fiecare student va avea pe server structura de directoare: My Documents / Baze de date / Lucrarea 4 / Popescu Adrian-Biblioteca. vor fi oglinda activit ii voastre de-a lungul unui semestru.

• Rularea cererilor de interogare de ac iune.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.5 Lucrarea nr. • Apelarea altor comenzi macro. În Microsoft Access exist un mare num r de tipuri de ac iuni care pot fi executate în cadrul unor comenzi macro. un dublu-clic etc.). 5. • Efectuarea condi ionat a anumitor ac iuni. de o mare importan este automatizarea acesteia. vom crea macro-uri i vom folosi o form de start. 61 . • Deschiderea sau închiderea unui formular sau raport. vom da o form profesional aplica iei ”Biblioteca”. se determin realizarea uneia sau mai multor opera ii (activarea unuia sau mai multor obiecte. interog ri. care împreun se constituie într-o aplica ie de baze de date. cum ar fi ap sarea unui buton al interfe ei. • Ac iunea asupra unor obiecte de control din formulare. formulare sau rapoarte. Particularizarea bazei de date ”Biblioteca” În aceast lucrare de laborator vom face câteva incursiuni printre posibilit ile performante ale programului Access. tabele. Exploatarea unei aplica ii de baze de date presupune o mul ime de opera ii manuale care sunt executate de orice operator implicat. formulare. • Prin utilizarea macrocomenzilor. în cuno tin de cauz . interog ri. rularea unor interog ri etc. Iat câteva din aceste ac iuni: • Deschiderea sau închiderea unor tabele. • Vizualizarea sau tip rirea rapoartelor. Concret. Totul depinde de noi. Prin evenimente putem în elege: • Modific ri ale datelor. În cadrul unei aplica ii Access. am v zut c o baz de date Access este o colec ie de obiecte. Aceast automatizare a aplica iilor realizate în Access se poate face în dou moduri: • Prin utilizarea limbajului Visual Basic for Applications (VBA). care reprezint o form simplificat a limbajului VBA. Prin automatizare în elegem c pe baza unei ac iuni a utilizatorului. în aspectele profesionale ale sale. într-un cuvânt. O scurt prezentare a Macro-urilor Din cele studiate pân acum. Noi am înv at s construim aceste obiecte. Toate obiectele unei baze de date trebuie legate într-un flux continuu de opera ii. s le cunoa tem i s le aplic m corect. rapoarte etc. Comenzile macro sunt deosebite prin caracteristica lor unic i anume c permit automatizarea diverselor evenimente f r ca realizatorul aplica iei s fie nevoit s cunoasc un anumit limbaj de programare.

adic cele în care ve i defini i comenta ac iunile. 62 . O macrocomand poate fi alc tuit dintr-o singur ac iune. Ca s ad uga i în macrocomand o ac iune. De exemplu. mai ales pentru interven iile ulterioare în modific rile aduse aplica iei. Fereastra Macro Design Rolul fiec rei coloane. numai aceste dou coloane vor fi afi ate la început. redenumirea. Fig. dintre care multe au subac iuni suplimentare. Presupunem c am g sit un astfel de scenariu.1. • tergerea. de unde alege i una din cele peste 50 de ac iuni. • Afi area anumitor mesaje. copierea sau salvarea diferitelor obiecte ale aplica iei. cele mai importante sunt coloanele Action i Comment. Pentru început. ceva care facem de mai multe ori pe zi sau s pt mânal. • Deschiderea sau închiderea unor meniuri din Access. Cea mai bun metod de a începe s proiect m macrocomenzi este s ne gândim la un proces pe care îl parcurgem în mod repetat. În partea de jos-stânga. Coloana Macro Name Coloana Condition Coloana Action Coloana Comment Zon în care vor fi afi ate argumentele ac iunii curente. în care sunt peste 50 de ac iuni care acoper necesarul pentru macro-urile obi nuite. vor fi afi ate cererile de argumente pentru ac iunea selectat . îl pute i deduce dup numele ei. • Comunicarea cu alte produse soft. Observa i c ac iunile pe care dori i s le executa i trebuie alese din coloana Action dintr-un comboBox.1. Crearea macrocomenzilor cu o singur ac iune Crearea macrocomenzilor se face cu ajutorul ferestrei Macro Design prezentat în figura 5. cum ar fi Word i Excel. 5. deci putem trece la automatizarea lui. De altfel. muta i cursorul în coloana Action i deschide i lista derulant . dac în fiecare zi avem de dat conducerii un raport cu vânz rile zilei sau avem frecvent de f cut unele modific ri cu ajutorul unor interog ri de ac iune. Este un obicei bun de a comenta fiecare ac iune pentru o bun informare.5 • C utarea anumitor date în tabele. sau din mai multe. Pentru afi area celorlalte va trebui s ap sa i butoanele ( ) i( ) din toolbar-ul situat în partea de sus a ecranului.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.

2. 5. 5. una care deschide un formular i alta care produce un semnal sonor.2. Fig. celelalte fiind ignorate. În fereastra Database. selecta i obiectul Macros (dac nu e selectat). Ne propunem s afi m un formular care exist în baza noastr de date.5 Un exemplu simplu v va ajuta s crea i i s executa i o prim macrocomand . Pentru a executa un anumit grup dintr-o macrocomand .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Macromand cu o singur ac iune Macrocomenzile se salveaz ca i formularele i se lanseaz cu un dublu-clic sau cu butonul Run din fereastra Database.2.3.3 se pot vedea 2 macrocomenzi. în acest mod se execut numai primul grup de ac iuni. În cazul în care vre i s rula i manual o anumit macrocomand dintr-un grup folosi i metoda descris în continuare. 3. 63 . Fig. Frereastra Database cu 2 macro-uri Rularea unei macrocomenzi din fereastra Database Pa ii pe care trebuie s -i parcurge i sunt urm torii: 1. În figura 5. v reamintesc c în cazul macrocomentilor care con in grupuri. Executa i clic pe butonul Run pentru a executa macrocomanda. folosi i meniul. De i pute i rula în acest mod toate macrocomenzile pe care le-a i creat. Selecta i macrocomanda pe care dori i s o rula i. Macrocomanda rezultat se vede în figura 5.

5 Macrocomenzi ata ate evenimentelor Probabil c metoda cea mai utilizat pentru rularea macrocomenzilor din aplica iile Access. Iat un exemplu de utilizare prezentat în figura 5. Access verific dac în cadrul acesteia nu exist o macrocomand cu numele AutoExec. În aplica ia dumneavoastr v pute i folosi de aceste evenimente spunându-i programului s ruleze la apari ia unui anumit eveniment ata at unui formular. iar dac utilizatorul actualizeaz datele dintr-un control al unui formular se declan eaz evenimentul AfterUpdate ata at controlului respectiv. men ine i În general. la introducerea unei valori într-o caset de text declan eaz evenimentul OnClick. de regul ea este folosit împreun cu op iunile de pornire a Access-ului. Este de la sine în eles c sunte i pe un formular aflat în modul Design. Access-ul îi acord un tratament special. de exemplu. 64 . activând op iunea Event din fereastra Properties. Acestei macrocomenzi. deschiderea unui formular declan eaz evenimentul OnOpen al formularului respectiv. ci ca r spuns la un eveniment Access. Macrocomanda AutoKeys. Dac exist o astfel de macrocomand . utilizatorilor s se deplaseze între diferite obiecte ale aplica iei f r s tie m car de existen a ferestrei Database. nu este rularea direct . raport sau chiar de control individual din cadrul acestora – de exemplu. Utilizând evenimentele în acest mod v pute i perfec iona aplica ia. astfel încât ea s ofere ceva în plus fa de func iile oferite de Access – permi ând. ea este executat automat. nu ave i decât s selecta i obiectul respectiv i s -i studia i evenimentele. Utilizarea macrocomenzilor AutoExec i AutoKeys Aceste macrocomenzi au nume speciale.4. rezervate programului Access. Atunci când deschide i baza de date. Observa ie important !! Dac dori i s evita i rularea macrocomenzii ap sat tasta Shift în timp ce deschide i baza de date. Cu ajutorul acestei macrocomenzi pute i s asocia i oric rei ac iuni. Aceast macrocomand poate fi folosit pentru preg tirea aplica iei. AutoExec. Pentru a identifica evenimente ale diferitelor obiecte. o combina ie de taste dintre cele disponibile. pute i chiar s modifica i comportamentul prestabilit al anumitor combina ii de taste. Mai mult.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Aceste evenimente pot fi declan ate de tot felul de lucruri care se pot întâmpla la nivel de formular. i sunt mocrocomenzi native ale Macrocomanda AutoExec. raport sau control o anume macrocomand . se folose te comanda AutoExec pentru a apela o func ie VBA (prin intermediul ac iunii RunCode) personalizat pentru fiecare aplica ie în parte.

Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. d m comanda Tools – Startup. putem s înlocuim toat ”fa ada” programului Access.5 Fig. Fig. a fost introdus o posibilitate de setare a op iunilor de pornire a aplica iilor.5. Pentru astfel de încerc ri. iar combina ia de taste a fost trecut în coloana Macro Name. Re ine i c macrocomanda se nume te AutoKeys. dup ce aplica ia a fost testat i nu mai avem nimic de modificat la ea. trebuie amintit aici c începând cu versiunea Access 95. înainte de forma final . combina ia de taste SHIFT + p. lanseaz macrocomanda care afi eaz o list cu produse.5. Metod rapid de pornire a aplica iilor Ca o alternativ a macrocomenzii AutoExec.4. Exemplu de atribuire a unei combina ii de taste unei macrocomenzi În exemplul nostru. Re ine i c aceast manevr este ultima. 5. Nu încerca i s ascunde i meniul principal i toolbar-urile. 65 . care va deschide caseta de dialog din figura 5. Practic. Având deschis aplica ia ale c rei op iuni de pornire vrem s le automatiz m. Caseta de dialog Startup Set rile din aceast caset de dialog sunt destul de evidente. face i-v o copie de rezerv . pentru c a i putea ajunge s nu mai pute i interac iona cu aplica ia deoarece nu mai ave i instrumente de acces. 5.

conform tabelului 5. apoi New. 5. Forma de start a aplica iei ”Biblioteca” Fiecare buton are în spate câte un macrou. Macros.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Vom parcurge urm torii pa i: Din caseta Database alegem op iunea figura 5. • Configurarea formei de start. urmeaz s cre m câte un macro corespunz tor fiec rui buton. 10 la num r. Ac iunile executate de fiecare macrou va fi OpenForm i Close.6. care are misiunea s deschid un formular. Fig.5 Desf urarea lucr rii Desf urarea lucr rii va consta în mai multe etape i anume: • Crearea macro-urilor care deschid formularele deja existente. În final trebuie s ajungem la interfa a aplica iei. Formularele le avem deja. Crearea macro-rilor aplica iei ”Biblioteca” Aceste macro-uri sunt cu 2 ac iuni i vor fi simplu de creat. verifica i dac ave i create toate formularele. care este prezentat în figura 5. Observa ie important !! Inainte de a trece efectiv la crearea macro-urilor.1.6. prezentat pu in mai încolo (peste 2 pagini). • Crearea interfe ei i legarea butoanelor sale de aceste macro-uri.7. Se va deschide caseta de dialog din 66 .

În cazul de fa alegem comenzile OpenForm. Dup ce s-a ales formularul care va fi deschis. se poate alege formularul care se închide. 67 .8. Macro-ul creat Observa i în partea de jos. c la comanda OpenForm putem alege formularul care va fi deschis. 5. se salveaz macro-ul creat cu comanda din meniul de sus. Save Dup aceast metodologie se vor crea toate macro-urile care deschid formulare. De asemenea. În tabelul 5. Caseta de dialog pentru crearea macro-urilor În coloana Action putem alege comezile pe care dorim s le efectueze macrocomanda noastr .8. pentru deschiderea formularului de introducere a c r ilor i Close pentru închiderea formei de start. Observa i c numele fiec rui macro începe cu prefixul ”mcr”. 5. iar macro-ul creat va avea numele mcrIntroducereCarti. aici frmIntroducereCarti din caseta derulant Form Name.7.5 Fig. macro-urilor i formularelor implicate în aplica ia ”Biblioteca”.1 sunt prezentate numele butoanelor. aici frmStart. Fig.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. În final vom avea imaginea din figura 5.. de care nu avem nevoie cât timp e deschis o alt form .

Adresa.Localitate. Crearea formei de start pentru aplica ia ”Biblioteca” Înainte de a începe aceast ac iune. ceea ce înseamn c acum vom trata obiectele bazei de date. Utilizatorii bazelor de date tiu s .5 Tabel 5.Nume+" "+tblCititori. Formularul frmCititori are ca surs interogarea qryCititori. Pân acum avem în baza de date tabele. prezentat la pagina 49. formulare i rapoarte. verifica i dac ave i create toate cele 10 formulare i cele 10 macrouri de deschidere a cestora. Observa i c baza de date a devenit aplica ia ”Biblioteca”.ProfesieID And tblCititori. s înregistreze împrumuturile etc. Observa i c toate cele 10 macrouri deschid câte un formular. ceea ce nu e la îndemâna oricui.JudetID = tblJudete.ProfesiaID = tblProfesii. 68 .Denumire AS Judetul. Pentru manipularea tuturor obiectelor bazei de date este nevoie de cunoa terea programului Access. bibliotecara trebuie s introduc noi c r i. fie pentru modificarea i introducerea de date. tblProfesii.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. tblCititori. formularelor i rapoartelor. tblCititori. tblCititori. Acestea au fost create cu un anume scop. Este pu in probabil c va fi interesat de denumirile corecte ale tabelelor. cititori. tblJudete.1.JudetID ORDER BY tblCititori. care are urm toarea expresia SQL: SELECT tblCititori.Nume. Încerca i în elege i expresia SQL de mai sus. fie pentru extragerea unor informa ii din baza de date. ca interac ionând între ele într-o succesiune logic . Crea i formularul frmCititori dup metodologia de la crearea formularului frmCartile din biblioteca.i fac doar treaba lor. de exemplu în cazul nostru.Denumire AS Profesia FROM tblCititori.DataN AS [Data nasterii].Prenume AS Cititor. pentru a fi folosite. interog ri. Obiectele aplica iei Buton Name cmdA_carti cmdA_autori cmdA_cititori cmdA_edituri cmdA_domenii cmdA_profesii cmdA_imprumuturi cmdCartile cmdImprumuturi cmdCititori Caption Carti Autori Cititori Edituri Domenii Profesii Situatii imprumuturi Cartile din biblioteca Situatii imprumuturi Lista cititorilor Macro mcrIntroducereCarti mcrIntroducereAutori mcrIntroducereCititori mcrIntroducereEdituri mcrIntroducereDomenii mcrIntroducereProfesii mcrIntroducereImprumuturi mcrCartile mcrSituatiiCititori mcrCititori Func iune Deschide formularul frmIntroducereCarti Deschide formularul frmIntroducereAutori Deschide formularul frmIntroducereCititori Deschide formularul frmIntroducereEdituri Deschide formularul frmIntroducereDomenii Deschide formularul frmIntroducereProfesii Deschide formularul frmIntroducereImprumuturi Deschide formularul frmCartile din biblioteca Deschide formularul frmSituatieCititoriMain Deschide formularul frmCititori Acest tabel v va fi foarte util pentru crearea formei start pe care o ve i face în continuare. tblProfesii. tblJudete WHERE tblCititori.

de unde ve i alege op iune Design View. parc ne d un oarecare curaj. nu-i a a? Vom parcurge urm torii pa i: Din caseta Database alegem op iunea Form. Astfel de formulare a i întânit i chiar a i creat. Cum vom face asta? Chiar aceasta este tema acestei lucr ri de laborator. nu-i a a? Oberv m c pentru a deschide formularul de actualizare a c r ilor. Alegerea formei de start Dup ap sarea butonului OK va apare forma în modul Design. O astfel de interfa la pornirea aplica iei.5 Cel mai simplu. e suficient s ap s m butonul Carti. 5. 5. ap s m butonul Situatii imprumuturi.6. pentru bibliotecara noastr . De altfel.10. la ap sarea c rora s ni se deschid formularele de care avem nevoie. pentru a v face o imagine. în Visual Basic. apoi figura 5. Se va deschide caseta de dialog din Fig. iar pentru a vedea situa iile cititorilor. crearea unei interfe e cu obiecte pe ea ar trebui s v fie cunoscut de la Visual Basic. unde trebuie s ajunge i. ar fi s aib un formular cu multe butoane de comand . ar tat în figura 5. Revede i formularul din figura 5. f r a face alte manevre. Forma de start a a cum arat la început 69 .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr.10. New.9. Fig.9. pentru a introduce un împrumut ap s m butonul Actualizare imprumuri.

care se deschide cu butonul Properties ( ) din toolbar-ul standard.12. 5. Aspectul formularului dup modificarea propriet ilor de mai sus Urmeaz etapa cea mai pl cut .11. “împodobirea” formularului cu butoane de comand .11. a a cum se vede în figura 5. Pentru a o aduce la aspectul dorit. Modifica i urm toarele propriet i (care se g sesc în eticheta Format a casetei Properties): Scroll Bars . În urma acestor modific ri i dup activarea formularului. 5. Fig. el trebuie s arate ca în figura 5.12. trebuie s -i modific m unele propriet i cu ajutorul casetei de dialog cu propriet ile.6 i tabelul 5. Pentru aceast activitate trebuie s activ m caseta cu obiecte Toolbox ( ) i caseta de dialog Properties. 70 Fig.5 Aspectul formei de start este stabilit de propriet ile sale care au valorile implicite. Formularul Toolbox Caseta Properties Pentru pozi ia butoanelor i numele lor consulta i figura 5.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Configura ia spa iului de lucru pentru crearea butoanelor de pe interfa a de start . Aceste butoane se vor grupa în interiorul unui frame.1.Neither No None No No Record Selectors Navigation Buttons Border Style Dividing lines Min Max Buttons - Dialog Prin aceste modific ri de propriet i nu am f cut decât s scoatem elementele inutile de pe formular.

). mcrCititori).. Prin ap sarea fiec rui buton se va deschide formularul corespunz tor. dup ce am terminat lucrul în fiecare din cele 10 formulare. Prin urmare. la ap sarea fiec rui buton se deschide un formular i se închide formularul de start. Schema aplica iei ”Biblioteca” Conform macrourilor create. 71 .. pute i intra în modul Run al formularului. 5.5 Pentru fiecare buton pe care îl pune i pe interfa propriet i: Name – numele butonului (cmd. Se pune. întrebarea cum revenim la forma de start. frmIntoducereCarti frmIntoducereAutori frmIntoducereCititori frmIntoducereEdituri frmIntoducereDomenii frmIntoducereProfesii frmIntoducereImprumuturi frmCartile din biblioteca frmSituatieCititoriMain frmCititori Fig.13. Acest lucru se poate face prin apelarea unui macro care deschide formularul de start i închide formularul curent.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. Pentru aceasta. va trebui s cre m alte 10 macrouri care s fie legate de evenimentul On Close al fiec ruia din cele 10 formulare. Actualizare imprumuturi). On Click – se va scrie numele macroului care va fi executat (ex. În figura 5. trebuie g sit o modalitate de reveni la formularul de start când se închide alt formular.13 este prezentat schema de func ionare a aplica iei. firesc. adic s -l activa i. va trebui s preciza i valorile urm toarelor Caption – ceea ce apare scris pe buton (ex. Dup ce a i creat toate butoanele i le-a i setat cele 3 propriet i. la evenimentul On Close al formularului din care vrem s ie im.

am terminat aplica ia noastr . Deja avem suficient experien pentru acest lucru.14. apoi New. 72 . a a cum se vede în figura 5. macrourilor: frmIntroducereCarti frmIntroducereAutori frmIntroducereCititori frmIntroducereEdituri frmIntroducereDomenii frmIntroducereProfesii frmIntroducereImprumuturi frmCartile din biblioteca frmSituatieCititoriMain frmCititori mcrCloseIntrodCarti mcrCloseIntrodAutori mcrCloseIntrodCititori mcrCloseIntrodEdituri mcrCloseIntrodDomenii mcrCloseIntrodProfesii mcrCloseIntrodImprumuturi mcrCloseCartile mcrCloseSituatieCititori mcrCloseCititori Deschide i acum fiecare din cele 10 formulare în modul Design. mai ales c macrourile se aseam n foarte mult cu precedentele pe care le-am f cut în aceast lucrare.Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. pentru fiecare din cele 10 formulare. Fig.14.5 Adaptarea formularelor aplica iei ”Biblioteca” Primul pas pe care trebuie s -l facem este s cre m cele 10 macrouri. c uta i evenimentul On Close i atribui i-i macroul corespunz tor. Macroul de deschidere i închidere a formularelor Repeta i aceast opera iune de 10 ori. Vom parcurge urm torii pa i: Din caseta Database alegem op iunea Macros. Da i urm toarele denumiri. 5. Primul macro pe care îl vom crea este mcrCloseIntrodCarti. În sfâr it. putem trece la configurarea formei de start.

pute i trece la configurarea final . func ionarea aplica iei trebuie s fie dup cum arat figura 5. În acest fel avem senza ia c aplica ia noastr a fost f cut de ni te profesioni ti. Fig.ico.14. 73 . chiar ar putea s -l încurce. în urma c ruia se va deschide caseta de dialog din figura 5. Observa ie important !! Dac dori i ca aplica ia s se deschid normal. adic s pornim cu formularul de start. numai de ei tiut. f r set rile formei de start. pe rând formularele de care avem nevoie prin ap sarea butonului corespunz tor. când face i click pe butonul Enable Macros. Pentru a configura programul Access în sensul celor ar tate mai sus.14. cu cuno tin ele dobândite la cursul de baze de date. De asemenea. Utilizatorul aplica iei nu are nevoie s vad fereastra Database. nu e nevoie de meniuri i toolbar-uri. Application Icon: .Baze de date – Îndrum tor de lucr ri de laborator Lucrarea nr. adic a i încercat dac toate butoanele fac ce trebuie. este aplica ie f cut de noi.bmp. din meniul principal al Access-ului.numele aplica iei.5 Configurarea formularului de start Dup ce a i verificat func ionarea aplica iei.alege i din caseta derulant numele formularului de start. Configurarea formei de start Din figur se vede clar ce ave i de f cut. într-un limbaj complicat. În primul.alege i iconi a aplica iei. închid i deschid formularele dorite. . un fi ier care are una din extensiile . apoi completa i urm toarele rubrici: Application Title: . Dar nu este de loc a a. . apoi s deschidem. da i comanda: Tools – Startup . . În principiu. ine i ap sat butonul SHIFT. debifa i toate checkbox-urile.13. Display Form/Page: . 5.

la care au acces to i membrii acesteia. Se doresc situa ii despre rezultatele la înv tur cum ar fi situa ii cu promova ii dintro clas la o anumit materie. cu palmaresele i antrenorii lor. informa ii despre profesori. 1: Proiectarea unei baze de date pentru o unitate de înv mânt (liceu). Tema nr. globale i pe categorii. 4: Proiectarea unei baze de date pentru o gospod rirea unei familii. Se doresc sitau ii despre traseul antrenorilor. etc. la fel corigen ii. antrenorilor. Se va avea în vedere i echipa na ional i de tineret. Se doresc situa ii despre cluburi. cu echipele i perioadele în care au jucat. plane de înv mânt. Teme de proiect propuse Tema nr. Obiectivele misiunii: Se doresc situa ii despre veniturile familiei. în condi iile de mai jos: Declara ia de inten ie: Se dore te o baz de date pentru gestionarea unei institu ii de înv mânt. Tema nr. a antrenorilor etc. Acela i lucru despre echipa de tineret. a cluburilor. Declara ia de inten ie: Se dore te o baz de date pentru gestionarea juc torilor federa iei. Furnizorii cei mai mari. perioadele i echipele la care au jucat. 2: Proiectarea unei baze de date pentru gestionarea unui depozit. Obiectivele misiunii: Se doresc situa ii despre profesorii titulari i asocia i. Un produs poate proveni de la mai mul i furnizori. Obiectivele misiunii: Se doresc situa ii despre fiecare juc tor. furnizorilor i produselor. lot. Se doresc situa ii despre produsele livrate(care ies din depozit). Va fi eviden iat situa ia juc torilor. Situa ii despre cei mai fideli clin i. Tema nr. palmares. 2 copii i o bunic . Eviden a tuturor datelor se va ine la zi pe calculatorul familiei. antrenori. Produsele vor fi împ r ite în grupe i subgrupe i se vor codifica. Declara ia de inten ie: Se dore te o baz de date pentru gestionarea cilen ilor. Se vor împ r i veniturile i cheltuielile pe categorii. Se dore te afi area planului de înv mânt al fiec rei clase.Anexa A. discipline. Situa ii despre echipa na ional . 74 . Se doresc situa ii despre produsele recep ionate(care intr în depozit). antrenori. Se dore te afi area fiec rei clase din coal . 3: Proiectarea unei baze de date pentru federa ia român de fotbal. palmares. Declara ia de inten ie: Se dore te o baz de date pentru gestionarea veniturilor i cheltuielilor unei familii format din 5 persoane – 2 adul i. elevi. Obiectivele misiunii: Se doresc situa ii despre stocurile unor produse.

etc. str in . Obiectivele misiunii: Se doresc situa ii despre c r ile unui domeniu. C r ile vor fi codificate pe domenii. an apari ie. 75 . cum ar fi car i tehnice. Declara ia de inten ie: Se dore te o baz de date pentru gestionarea c r ilor din biblioteca personal . autori. Situa ii despre cele citite i necitite. Situa ii legate de cheltuielile cele mai mari. Tema nr. Situa ii despre veniturile cele mai mari. Situa ia c r ilor împrumutate. Alte situa ii.Se doresc situa ii despre cheltuielile familiei. num r de file. literatur român . Situa ia datoriilor i a crean elor dac exist . Alte situa ii. globale i pe categorii. sport. 5: Proiectarea unei baze de date pentru gestionarea bibliotecii personale.

Sign up to vote on this title
UsefulNot useful