Obiective 1. mprirea datelor n tabele 2. Definitivarea modelului relaional 3. Crearea tabelelor n Access
Aplicaia 2 Se cere informatizarea activitii unei firme. Se va crea o baz de date cu numele Firme. Furnizorii sunt identificai prin cod furnizor, denumire furnizor (numele i prenumele furnizorului), localitatea, adresa, email, banca furnizor i cont furnizor. Despre produse se cunosc cod produs, denumire produs, unitate de msur, stoc, pre unitar. Produsele sunt depozitate n magazii, pentru care se cunosc cod magazie, denumire magazie, gestionar (numele persoanei care are n gestiune depozitul respectiv). Operaiunile se desfoar pe baza unor facturi, care trebuie s conin numrul facturii i data facturii. Fiecare factur conine detaliate liniile facturii i anume denumirea produsului, preul unitar, cantitatea facturat, calculndu-se valoarea produsului (cu i fr TVA) i valoarea total a facturii cu i fr TVA.
3. Mod de lucru Primul pas este crearea bazei de date. Aceasta va purta numele Firme.
Pentru a crea baza de date, se deschide mediul de lucru Access, apoi se alege opiunea Blank Database. Pentru a alege locaia n care va fi salvat fiierul se alege icoana galben de folder, selectndu-se Desktop-ul ca destinaie, apoi se tasteaz denumirea: Firme.
Dup crearea bazei de date se trece la analiza fiecrui tabel n parte i alegerea tipului de cmp cel mai potrivit datelor care vor fi salvate n acesta.
Este foarte important ordinea n care tabelele voi fi create. Pentru aceasta se aleg tabelele de referin (tabelele printe, cum ar fi Furnizori, Magazii, Produse) urmnd ca dup crearea acestora s se creeze tabelele referite (Facturi, ProduseFacturate, ProduseMagazii).
n momentul n care se creaz baza de date, Access deschide automat un tabel cu numele Table1.
Se va modifica tabelul Table1 n tabelul Furnizori. Pentru aceasta vomsalva tabelul cu numele Furnizori, apelnd butonul Save de lng butonul Office. Pentru a aduga cmpuri i pentru a modifica proprietile acestora, se va trece n modul de vizualizare Design View, fie folosind butonul View de pe panglic, fie butonul cu acelai nume de pe bara de stare.
Se vor introduce urmtoarele cmpuri: primul cmp l vommodifica din ID n cod_f (codul furnizorului), vomalege tipul de date Number, Field Size: Integer, i Caption: cod furnizor, Validation Rule: >0, Validation Text: Introducei un numr pozitiv, Required: Yes; pentru cmpul den_f (denumirea furnizorului) tipul de dat Text, Field Size: 30, Format: >, Caption: denumire furnizor, Required: Yes, Allow Zero Length: No, Indexed: Yes (Duplicates OK); localit (localitate) de tip Text, Field Size: 30, Caption: localitate, Default Value: Timisoara; adresa de tip Memo; email de tip Hyperlink; banca de tip Text, Field Size: 30, Format: >, Required: Yes, Allow Zero Length: No; cont (contul din banc, IBAN) de tip Text, Fields Size: 24, Input Mask: "RO"99LLLL9999999999999999.
Fig. 1 Butonul View
Dup ce toate cmpurile au fost create, se salveaz tabela alegnd butonul Save, apoi se apas sgeata de pe butonul View, de unde se alege Datasheet View figura 66, pentru a introduce datele a trei furnizori n tabel figura 2. Microsoft Access2007 Page 2
Laborator VI
Fig. 2 Tabela Furnizori n Datasheet View Dup ce tabela a fost creat i s-au introdus nregistrri n ea, aceasta va fi nchis.
Pentru a crea o nou tabel, de pe bara de meniuri se alege opiunea Create, butonul Table Design. Pentru tabela Magazii se insereaz urmtoarele cmpuri: cod_m (cod magazie) Primary key, de tip Number, Field Size: Byte, Caption: Cod magazie, Required: Yes; den_m de tip Text, Field Size: 15, Caption: Denumire magazie, Indexed: Yes (Duplicates OK); gest de tip Text, Field Size: 30, Caption: Gestionar.
Se vor introduce 3 magazii, cu codurile magazinelor 111, 112 i 113;
Fig. 3 Tabela Magazii n Datasheet View
Pentru tabela Produse: cod_p (codul produsului) Primary key, de tip Number, Field Size: Long Integer, Caption: Codul produsului, Required: Yes; den_p (denumirea produsului) tipul cmpului Text, Field Size:15, Caption: Denumirea produsului; um (unitate de msur) de tipul Lookup Wizard, apoi opiunea I will type in the values that I want, n caseta Number of Columns nu se modific valoarea 1, iar n lista col1 vor fi tastate pe rnd, una sub alta, valorile dorite: kg, l, m, buc, selectnd butonul Next, apoi Finish.
n tabela Produse se vor introduce 3 produse, cu codurile 11111, 111112 i 111113 figura 4.
Fig. 4 Tabela Produse
Tabela ProduseMagazii: cod_p (cod produs) un cmp de tip Lookup Wizard pentru care se selecteaz opiunea I want the lookup column to lookup the values in a table or query, apoi se alege tabela Produse, apoi se selecteaz butonul Next; se alege cmpul cod_p, apoi se apas butonul Next figura 5. Ordonarea va fi fcut dup acelai cmp cod_p, apoi se alege butonul Next.
Microsoft Access2007 Page 3
Laborator VI
Fig. 5 Crearea legturii cu tabela Produse
n ecranul urmtor pot fi observate valorile introduse anterior n tabela Produse, apoi se apas butonul Next figura 6.
Fig. 6 Valorile introduse n cmpul cod_p din tabela Produse
La ultimul pas este posibil modificarea numelui cmpului (acesta va fi lsat neschimbat) apoi se apas butonul Finish; ntre cele dou tabele (Produse(tabela printe) i ProduseMagazii (tabela copil) va fi creat automat o relaie. De aceea Access cere salvarea tabelei cu un nume (ProduseMagazii). Datorit faptului c nu a fost creat nici o cheie primar, sistemul sugereaz crearea uneia. Se va alege No (cheia primar compus va fi creat dup crearea cmpului cod_m). cod_m (cod magazie) un cmp pentru care se alege Lookup Wizard se selecteaz opiunea I want the lookup column to lookup the values in a table or query, apoi se alege tabela Magazii; selectm cmpul cod_m (cod magazie). Ca ordine de sortare se alege cod_m, se vizualizeaz codurile magaziilor introduse n tabela Magazii, apoi se las neschimbat numele cmpului i se apas Finish. Se cere din nou salvarea tabele; stoc (stocul disponibil n magazie) de tip Number, Field Size: Long Integer, Caption: Stoc produs, Required: Yes. Pentru a crea o cheie primar compus, se selecteaz utilizndu-se ptratul gri din faa numelui cmpului ambele cmpuri cod_p i cod_m i se apas butonul Primary Key de pe panglic. Se salvez tabela i se trece n modul de vizualizare Datasheet View pentru a introduce date n tabel. Pentru ca ambele relaii s fie de tipul one-to-many, se vor introduce minim 4 nregistrri, un produs fiind depozitat n dou magazii (de exemplu 111113).
Fig. 7 Tabela ProduseMagazii
Microsoft Access2007 Page 4
Laborator VI
Pentru tabela Facturi: nr_f (numrul facturii) Primary key, de tip Number, Field Size: Long integer, Caption: Numarul facturii, Required: Yes; data_f de tip Date/Time, Caption: Data Facturii, Required: Yes, Format: Short date, Default Value =Date(); cod_f (cod furnizor) tipul de date Lookup Wizard, se creaz o legtur cu tabela Furnizori, cmpul cod_f, Caption: Cod furnizor.
Tabela Facturi este copilul tabelei Furnizori. Avnd 3 furnizori n tabela printe, vom introduce minim 4 facturi, codul furnizorului 1 repetndu-se de 2 ori:
Fig. 8 Tabela Facturi
Tabela ProduseFacturate: nr_f (numrul facturii) un cmp pentru care se alege Lookup Wizard, se creaz a legtur cu tabela Facturi, cmpul nr_f; Caption: Numarul facturii. Se salveaz tabela cu numele ProduseFacturate, iar la ntrebarea dac se dorete alegerea unei chei primare se alege No; nr_crt (numr curent) un cmp de tip Number, Field Size: Integer, Caption: Numar curent; cod_p (codul produsului) un cmp pentru care se selecteaz Lookup Wizard, se creaz o legtur cu tabela Produse, pe baza cmpului cmpul cod_p; cantit un cmp de tip Number, Field Size: Integer, Caption: Cantitate; pret_u un cmp de tip Currency, Caption: Pret unitar; cotaTVA un cmp de tip Number, Field Size: Single, Default Value: 0,24, Caption: Cota TVA.
Se selecteaz cmpurile nr_f i nr_crt i se creeaz o cheie primar compus apsnd butonul Primary Key de pe panglic.
Acest tabel fiind copilul tabelelor Produse i Facturi, vom introduce 8 nregistrri:
Fig. 9 Tabela ProduseFacturate
Pentru a verifica relaiile i a seta regulile de integritate referenial, se selecteaz butonul Relationships de pe panglic figura 10.
Microsoft Access2007 Page 5
Laborator VI
Fig. 10 Butonul Relationship
Pentru fiecare legtur n parte, se apeleaz meniul contextual, se alege opiunea Edit Relationships... Pentru a seta regulile de integritate referenial se selecteaz opiunea Enforce Referential Integrity, bifnd opiunea Cascade Update Related Field. Dac se dorete modificarea tipului de relaie dintre cele dou tabele, se selecteaz butonul Join Type..., alegnd una dintre cele trei tipuri de relaii (Left Join, Inner Join sau Right Join).
Fig. 11 Fereastra Edit Relationships
Selectnd pentru fiecare relaie n parte opiunile respective i reordonnd tabele, se obine urmtoarea situaie:
Fig. 12 Fereastra Relationships Microsoft Access2007 Page 6