Sunteți pe pagina 1din 143

1.

Baze de date Introducere

Cuprins
Cuprins .................................................................................................................................... 1 1. Baze de date Introducere .................................................................................................. 4 1.1. Tipuri de baze de date................................................................................................... 4 1.1.1. Baze de Date Ierarhice........................................................................................... 4 1.1.2. Baze de Date Reea................................................................................................ 6 1.1.3. Baze de Date Relaionale....................................................................................... 8 1.1.4. Baze de Date Orientate pe Obiecte...................................................................... 10 1.2. SGBD (Acces) ............................................................................................................ 11 1.2.1. SGBD .................................................................................................................. 11 1.2.2. Arhitectura aplicaiilor Microsoft Access ........................................................... 12 2. Microsoft Access Tabele (Tables).................................................................................. 14 2.1. Crearea tabelelor......................................................................................................... 15 2.1.1. Design View ........................................................................................................ 16 2.1.1.1. Descrierea cmpurilor (Zona A)................................................................... 16 2.1.1.2. Tipurile i subtipurile de date ....................................................................... 17 2.1.1.3. Field Properties (Zona B) ............................................................................. 19 2.1.1.4. Definirea cheii primare i a indecilor.......................................................... 27 2.1.2. Datasheet View.................................................................................................... 28 2.1.3. Table Wizard ....................................................................................................... 29 2.1.4. Proprieti ale unui tabel...................................................................................... 29 2.1.5. Salvarea tabelelor ................................................................................................ 29 2.2. Operaii asupra nregistrrilor dintr-o tabel .............................................................. 30 2.2.1. Adugarea nregistrrilor..................................................................................... 30 2.2.2. tergerea de nregistrri....................................................................................... 30 2.2.3. Cutarea unei nregistrri se realizeaz n acces secvenial sau n acces direct .. 31 2.2.4. Modificarea nregistrrilor................................................................................... 31 2.2.5. Ordonarea nregistrrilor ..................................................................................... 32 2.2.6. nghearea afirii cmpurilor.............................................................................. 32 2.3. Definirea relaiilor ntre tabele ................................................................................... 33 2.4. Aplicaii ...................................................................................................................... 38

Nchil Ctlin laborator Access

1. Baze de date Introducere 3. Microsoft Access Interogri (Queries) ........................................................................... 48 3.1. Generaliti ................................................................................................................. 48 3.2. Interogarea prin selecie.............................................................................................. 50 3.2.1. Crearea unui obiect de tip interogare................................................................... 51 3.2.2. Modificarea unei cereri........................................................................................ 57 3.2.3. Utilizarea operatorilor.......................................................................................... 57 3.2.4. Cmpuri calculate n interogri de selecie.......................................................... 61 3.2.5. Utilizarea parametrilor......................................................................................... 69 3.2.6. Interogri de sintetizare a datelor ........................................................................ 73 3.2.7. Extragerea subcmpurilor dintr-un cmp ............................................................ 84 3.3. Interogarea tip tabel ncruciat ................................................................................... 87 3.4. Interogri de aciune ................................................................................................... 94 3.4.1. Interogri pentru crearea de noi tabele (Make Table Query) .............................. 94 3.4.2. Interogri pentru actualizarea datelor (Update Query)........................................ 96 3.4.3. Interogri pentru adugarea de nregistrri (Append Query) .............................. 97 3.4.4. Interogri pentru tergerea de nregistrri (Delete Query) .................................. 98 4. Microsoft Access Formulare (Forms) .......................................................................... 104 4.1. Generaliti ............................................................................................................... 104 4.2. Formularele Wizard.................................................................................................. 105 4.2.1. Form Wizard & AutoForm ................................................................................ 105 4.2.2. Chart Wizard...................................................................................................... 108 4.2.3. Pivot Table Wizard............................................................................................ 108 4.3. Design View ............................................................................................................. 110 4.3.1. Proprietile obiectelor Forms ........................................................................... 112 4.3.2. Controale n formulare (Toolbox) ..................................................................... 117 4.3.3. Proprietile controalelor ................................................................................... 118 4.4. Subformulare ............................................................................................................ 126 5. Microsoft Access Rapoarte (Reports) .......................................................................... 131 5.1. Generaliti ............................................................................................................... 131 5.2. Generarea rapoartelor cu instrumentul Wizard ........................................................ 133 5.3. Generarea rapoartelor folosind opiunea Design View ............................................ 138 5.4. Crearea de rapoarte cu subrapoarte .......................................................................... 141 5.5. Proprieti ale obiectelor de tip raport i ale seciunilor lor ..................................... 141

Nchil Ctlin laborator Access

1. Baze de date Introducere

Nchil Ctlin laborator Access

1. Baze de date Introducere

1. Baze de date Introducere


Baz de date = una sau mai multe colecii de date aflate n interdependen, mpreun cu descrierea datelor i a relaiilor dintre ele.

1.1. Tipuri de baze de date


Din punct de vedere al modului de organizare, structurare i accesare a datelor, cele mai cunoscute tipuri de baze de date sunt: baze de date ierarhice; baze de date de tip reea; baze de date relaionale; baze de date orientate pe obiecte.

1.1.1. Baze de Date Ierarhice


Bazele de date ierarhice se caracterizeaz prin faptul c elementele componente au relaii de subordonare de tip unu la muli, astfel nct fiecare entitate are n subordine una sau mai multe entiti i este subordonat, la rndul ei, unei singure entiti superioare, conform modelului ierarhic de organizare a datelor. n acest model de organizare a bazelor de date: entitile (cmpurile i nregistrrile) sunt structurate sub form de noduri; nodurile conecteaz ramurile unui arbore descendent; un nod de pe nivelul inferior este subordonat unui singur nod din nivelul ierarhic imediat superior, dar poate fi n relaie cu n noduri aflate la nivelul inferior; altfel spus: fiecare entitate are un nod printe i mai multe noduri copil; Observaii. dac se terge un nod printe, se terg toate nodurile copil subordonate; un nod copil poate fi adugat numi dac au fost adugate mai nti nodurile printe; ntre nodurile copii nu pot fi stabilite relaii. Exemplul 1: Baz de date pentru sistemul de rezervri a unei companii aeriene. Nodul printe = Bucureti. Acest nod are patru copii: Cluj, Constana, Iai, Timioara. Timioara are doi copii: 210 i 211. Zborul 210 are trei copii: pasagerii.

Nchil Ctlin laborator Access

1. Baze de date Introducere

Plecare

Bucureti

Sosire

Cluj

Constana

Iai

Timioara

Nr. zbor

210

211

Pasager

Persoana 1

Persoana 2

Persoana 3

Fig. 1.1. Exemplul 1

Exemplul 2: Se consider o baz de date cu informaii despre angajaii i serviciile (departamentele) unei companii. Un serviciu poate avea mai muli angajai, n schimb, un angajat poate face parte dintr-un singur serviciu.

Fig. 1.2. Exemplul 2 Diagrama de structur

Servicii

Conducere

Marketing

Contabilitate

10

Pop Ion

Dir. Gen.

30

lie Dan

Dir. Ec.

31 Maria Stan

Ec.

32 Petre Ioana

Ec.

Fig. 1.3. Exemplul 2 nregistrri (Realizri)

Nchil Ctlin laborator Access

1. Baze de date Introducere

1.1.2. Baze de Date Reea


Acest model este similar cu modelul de tip ierarhic cu deosebirea: c un nod copil poate s aib mai multe noduri prini; ntre nodurile printe i nodurile copil se adaug conexiuni adiionale (unui nod i se poate aduga o cale nou i pot fi trasate ramuri noi); n aceast organizare fiecare entitate poate avea un numr nelimitat de conexiuni. Exemplul 3: Baza de date a produselor care s execut ntr-o fabric. Fiecare produs este format din mai multe ansambluri, iar fiecare ansamblu este format din mai multe piese. Fiecare pies poate intra n componena mai multor produse.

Fig. 1.4. Exemplul 3

Exemplul 4: Se consider o baz de date cu informaii despre angajai, funciile i serviciile (departamentele) unei companii. Un serviciu poate avea mai muli angajai, n schimb, un angajat poate face parte dintr-un singur serviciu. O funcie poate fi ocupat de mai muli angajai, n schimb, un angajat poate ocupa o singur funcie.

Fig. 1.5. Exemplul 4 Diagrama de Structur

Nchil Ctlin laborator Access

1. Baze de date Introducere

Fig. 1.6. Exemplul 4 nregistrri

n exemplul luat: tipului de nregistrare printe Servicii i corespund trei nregistrri: (1, Conducere), (2, Marketing) i (3, Contabilitate) tipului de nregistrare Funcii patru nregistrri: (101, Dir Gen), (201, Dir Corn), (301, Dir Ec) i (302, Ec), tipului de nregistrare Angajat tot patru nregistrri: (10, Pop Ion, Dir Gen), (30, Ilie Dan, Dir Ec), (31, Stan Mria, Ec) i (32 Petre Ioana, Ec). nregistrrile (1, Conducere) - Servicii i (101, Dir Gen) - Funcii - sunt prini pentru (10, Pop Ion, Dir Gen) - Angajat. nregistrrile (2, Marketing) i (201, Dir Corn) nu au nregistrri copil. nregistrarea (30, Ilie Dan, Dir Ec) are drept prini (3, Contabilitate) - Servicii - i (301, Dir Ec) - Funcii. nregistrrile (57, Stan Mria, Ec) i (32, Petre Ioana, Ec) - Angajat sunt copii nregistrrilor (3, Contabilitate) - Servicii i (302, Ec) - Funcii.

Nchil Ctlin laborator Access

1. Baze de date Introducere

1.1.3. Baze de Date Relaionale


Modelul relaional asociaz unei entiti o tabel bidimensional numit relaie. Baza de Date Relaional este o colecie de tabele (sau fiiere de date) numite relaii sau structuri, legate ntre ele prin cmpuri comune numite cmpuri cheie. n tabel, coloanele reprezint atributele entitii iar liniile (rndurile) tabelei reprezint membrii entitii. Fiecare coloan are un nume distinct, prima linie fiind destinat amplasrii acestor nume de atribute. O linie dintr-o relaie se numete tuplu. Numrul de tupluri dintr-o relaie reprezint cardinalitatea relaiei. Numrul de atribute (n n figura 1.7) se numete gradul relaiei. La nivelul organizrii fizice exist urmtoarele corespondene: o relaie poate fi asociat unui fiier, un tuplu se asociaz cu o nregistrare, coloan corespunde unui cmp din nregistrare.

Fig. 1.7. Elementele unei relaii

Privit prin prisma modelului relaional, baza de date apare ca o colecie de relaii (tabele), n care fiecare coloan reprezint un atribut distinct, iar fiecare rnd, un tuplu distinct, de unde i apelativul tabel bidimensional.

Nchil Ctlin laborator Access

1. Baze de date Introducere

Cheia este un cmp (atribut) sau un ansamblu de cmpuri (atribute) care au rolul de a identifica un tuplu dintr-o tabel. Tipuri de chei: primare / alternate, simple / comune, externe. Tuplurile unei relaii se pot identifica n mod unic prin intermediul valorilor unuia sau mai multor cmpuri (eventual toate cmpurile), care joac rol de cheie primar a relaiei respective. Se numete domeniu primar un domeniu pe care este definit un singur atribut drept cheie primar. Dndu-se dou relaii R1 i R2 cu atributele A1 i A2 chei primare definite pe acelai domeniu primar D, spunem c A1 este cheie extern, dac, utiliznd o parte din valorile sau toate, putem regsi tuplurile relaiei R2. Altfel spus, un atribut al unei relaii este cheie extern, dac se regsete pe post de cheie primar ntr-o alt relaie. Nici un cmp (atribut) care particip la formarea cheii nu poate avea valori nule. Exemplul 5: O baz de date ce conine 4 tabele. Cmpurile tabelelor sunt: elevi note disciplin profesori id_e, nume_e, pren_e, adresa_e; id_n, id_e, id_d, nota1, nota2, nota3; id_d, id_p, dendisciplin; d_p, nume_p, pren_p, adresa_p;

id_e

nume_e

pren_e

adr_e

id_n id_e id_d nota1

nota2 nota3

id_d

id_p

dendisciplin

id_p

nume_p

pren_p

adr_p

Fig. 1.8 Exemplul 5 Relaii Nchil Ctlin laborator Access 9

1. Baze de date Introducere

1.1.4. Baze de Date Orientate pe Obiecte


Bazele de date orientate pe obiecte, numite i baze de date obiectuale, sunt construite pe modele de date complexe, structurate pe obiect. Conceptul de obiect definete o entitate informaional att ca structur ct i ca funcii (comportament). Bazele de date orientate pe obiect reprezint o abordare mai eficient fa de cele menionate, dar nu le substituie total. Superioritatea acestora poate fi rezumat n urmtoarele: se construiesc o singur dat i pot fi utilizate de nenumrate ori, ceea ce asigur crearea rapid de aplicaii complexe; modificrile intervenite pe parcurs nu afecteaz toat logica aplicaiei, ci doar obiectele respective, asigurnd astfel o flexibilitate sporit a ntregului sistem.

Nchil Ctlin laborator Access

10

1. Baze de date Introducere

1.2. SGBD (Acces)


1.2.1. SGBD
Pentru crearea unei baze de date, pentru actualizarea coninutului acesteia, pentru consultarea i prelucrarea datelor stocate aici este utilizat un sistem specializat de programe cunoscut sub denumirea de Sistem de Gestiune a Bazelor de Date (SGBD). SGBD reprezint ansamblul de programe care asigur interfaa ntre baza de date i utilizatorii acesteia. Un SGBD trebuie s asigure urmtoarele funcii elementare: definirea bazei de date; ncrcarea bazei de date; introducerea datelor n baza de date; accesul la date (interogare, actualizare); modificarea unor date existente n baza de date; tergerea unor date; extragerea informaiilor stocate n baza de date; protejarea datelor; etc. Exemple de SGBD: Access, Oracle, Fox, dBase Cele mai importante caracteristici ale SGBD-ului Access sunt: este un sistem de gestiune a bazelor de date relaional; posibilitatea crerii unei baze de date care s poat fi utilizat de ctre un utilizator sau mai muli utilizatori n mod partajat; creeaz o baz de date care poate fi utilizat n mod exclusiv sau n mod multiutilizator; permite interogarea bazei de date fie n mod grafic, utiliznd interfaa QBE (Query By Example), fie utiliznd limbajul SQL (Structured Query Language); permite automatizarea unor activiti/aciuni prin programare n limbajul VBA (Visual Basic for Applications) sau apelnd la generatorul de macrocomenzi; realizarea importului/exportului de date ctre alte aplicaii ale pachetului Microsoft Office sau ale SGBD relaionale (FoxPro, xBase, Paradox, etc.) ; permite accesul la baze de date din reeaua Internet, fiind un instrument util pentru publicarea informaiilor n paginile Web; permite utilizarea obiectelor ACCESS din cadrul altor aplicaii rulate sub sistemul de operare Windows; permite crearea de grupuri de obiecte definite de utilizator n cadrul bazei de date. Nchil Ctlin laborator Access 11

1. Baze de date Introducere

1.2.2. Arhitectura aplicaiilor Microsoft Access


O baz de date ACCESS poate fi definit ca o colecie de obiecte: tabele (table), cereri de interogare (query), formulare (form), rapoarte (report), pagini Web (pages), comenzi macro (macro) i module (module).

Fig. 1.9. Aplicaia Microsoft Access Trebuie subliniat diferena major care exist ntre Microsoft Access i alte sisteme de gestiune a bazelor de date. Astfel, n Visual FoxPro, prin baze de date (database) se neleg doar acele fiiere n care sunt stocate datele. Tabele (Table) este un obiect definit de utilizator n care sunt stocate datele (expresia modelului relaional). Formularul (Form) este un obiect care permite introducerea datelor, afiarea acestora sau controlul ntregii aplicaii. Interogarea (Query) este un obiect care permite vizualizarea informaiilor obinute prin prelucrarea datelor din una sau mai multe tabele (permit extragerea din baza de date a acelor date de care utilizatorul are nevoie). Raportul (Report) este un obiect care permite formatarea i tiprirea informaiilor obinute n urma consultrii bazei de date sub form de documente. Pagina Web de accesare a datelor (Pages) reprezint un obiect care include un fiier HTML i alte fiiere suport n vederea furnizrii accesului la date prin intermediul browser-elor Internet.

Nchil Ctlin laborator Access

12

1. Baze de date Introducere Comanda Macro (Macro) reprezint un obiect care conine o definiie structurat a uneia sau mai multor aciuni pe care Access le realizeaz ca rspuns la un anumit eveniment. Modulul (Module) reprezint un obiect care conine proceduri definite de utilizator i scrise n limbajul de programare Visual Basic. n figura 1.10 sunt prezentate legturile ce exist ntre diferitele obiecte ce compun o aplicaie realizat n Access. Astfel, n cadrul tabelelor sunt stocate datele introduse iniial de utilizator sau extrase cu ajutorul cererilor de interogare i sunt afiate sub form de rapoarte sau sunt modificate cu ajutorul formularelor sau paginilor Web de accesare a datelor. Cererile de interogare pot folosi funcii Visual Basic n vederea realizrii unor calcule definite de utilizator.

Fig. 1.10. Legturi ntre obiectele Microsoft Access

Nchil Ctlin laborator Access

13

2. Microsoft Access Tabele (Tables)

2. Microsoft Access Tabele (Tables)


Datele ce fac obiectul prelucrrii (datele de intrare) vor fi memorate ntr-o baz de date; elementele fundamentale ce creeaz o baz de date relaional sunt tabelele. Este esenial ca fiecare tabel al bazei de date s conin informaii specifice unui singur tip de obiecte. Un tabel reprezint o colecie de date legate ntre ele, memorat pe linii i coloane; fiecare linie conine o nregistrare (entitate complet de date referitoare la un anumit tip de obiecte). La rndul ei, fiecare nregistrare este compus din coloane sau cmpuri (un cmp reprezentnd cea mai mic entitate de date). ntr-un tabel se stocheaz att descrierea structurii tabelei ct i nregistrrile de date. Lansarea aplicaiei Access se poate realiza din Start > Programs > Microsoft Access sau prin dublu click pe pictograma Access. n ambele cazuri pe ecran se afieaz fereastra de baz Access (figura 2.1).

Fig. 2.1. Microsoft Access Fereastra principal

Nchil Ctlin laborator Access

14

2. Microsoft Access Tabele (Tables)

2.1. Crearea tabelelor


Gestiunea tabelelor (creare, modificare, vizualizare, tergere) unei baze de date Access se poate realiza din seciunea Tables a ferestrei bazei de date (Database Window) figura 2.2.. n aceast seciune se gsesc controale specifice care permit crearea, modificarea sad vizualizarea structurii unui tabel.

Fig. 2.2. Database Window

Exist mai multe modaliti de creare a tabelelor puse la dispoziie de ctre Access: alegnd comanda Table din meniul Insert; prin acionarea butonului de comand New din fereastra Database Window; folosind hiperlink-urile salvate n fereastra bazei de date (Create table in Design View, Create table by using wizard, Create table by entering data); importnd dintr-o baz de date (Import Table); legnd de alte tabele aparinnd altor baze de date (Link Table).

Nchil Ctlin laborator Access

15

2. Microsoft Access Tabele (Tables)

2.1.1. Design View


Design View este echivalent cu acionarea hyperlink-ului Create table in Design View. Utilizatorul stabilete absolut toi parametrii necesari pentru descrierea structurii unui tabel: numele cmpurilor, tipurile de date ale acestora; reguli de validare, etc.. Fereastra Access de descriere a tabelei (figura 2.3) este format din dou zone: zona A n care se definesc cmpurile din structura tabelei zona B n care sunt precizate proprietile acestora.

Fig. 2.3. Design View

2.1.1.1. Descrierea cmpurilor (Zona A)


Numele cmpului (Field Name) trebuie s respecte urmtoarele reguli: poate s conin litere (majuscule sau minuscule), cifre i caractere speciale; poate s conin maximum 64 de caractere; este interzis utilizarea caracterelor: punct (.), semnul exclamrii (!), parantezele drepte ([]); numele cmpului nu poate s nceap cu un spaiu.

Nchil Ctlin laborator Access

16

2. Microsoft Access Tabele (Tables) n formarea numelui cmpului se recomand: s nu se utilizeze caracterul spaiu; pentru mbuntirea lizibilitii numelui se poate nlocui spaiul cu caracterul de subliniere ( _ ) sau se pot utiliza litere majuscule i minuscule n acelai nume; reducerea lungimii numelui cmpurilor pentru a conserva resursele sistemului i pentru a scuti utilizatorul de introduceri lungi atunci cnd se fac referiri la numele cmpului. Tipul de date al cmpului (Data Type); utilizatorul are la dispoziie zece tipuri de date de baz (tabelul 2.1.), pentru unele dintre ele fiind disponibile subtipuri de date, n funcie de necesiti; subtipurile se configureaz n zona de jos a ferestrei (seciunea General). Comentarii (Description) proprietate opional, unde utilizatorul poate introduce sub form de iruri de caractere diverse informaii cu privire la cmp.

2.1.1.2. Tipurile i subtipurile de date


Tipurile i subtipurile de date Access sunt prezentate n tabelul 2.1..

Tip de date

Subtip de Date

Descriere Este un tip de date alfanumeric, de lungime maxim 255. Implicit, Access propune dimensiunea (proprietatea Field Size) 50 pentru un cmp de tip Text. Un cmp de acest tip poate s conin practic orice caracter. Este un tip de date alfanumeric (poate conine orice caracter), n lungime maxima de 65535 caractere. Utilizatorul nu poate configura o dimensiune mai mic dect aceasta.

Text

Memo

Number

Byte Integer Long Integer

Tip de date ntreg a crui plaj de valori admis este ntre 0 i 255. Spaiul ocupat de un asemenea cmp este de 1 byte. Tip de date ntreg cu plaja de valori admis ntre 32768, 32768). Ocup 2 bytes. (

Tip de date ntreg de dimensiuni mari cu plaja de valori admis ntre (2147483648, +2147483647). Ocup 4 bytes. Tip de date cu plaja de valori admis n intervalul ( 3, 402823 1038 , 1, 401298 1045 ) pentru numere negative,

Single

iar pentru numere pozitive n intervalul 45 38 (1, 401298 10 , 3, 402823 10 ) . Ocup 4 bytes i are

precizie de 7 zecimale.

Nchil Ctlin laborator Access

17

2. Microsoft Access Tabele (Tables)


Tip de date Subtip de Date Descriere

Tip de date de dimensiuni foarte mari cu plaja de valori admis n intervalul Double

; 4,94065645841247 10 324 ) pentru numere negative, iar pentru numere pozitive n intervalul (4,94065645841247 10 324 ; 1,79769313486231 10 308 ). Ocup 8 bytes i are precizie de 15 zecimale.
308

( 1,79769313486231 10

Replication ID

Tip de date GUID (Global unique identifier). Ocup 16 bytes. Sunt utile pentru cmpurile care sunt (sau fac parte dintr-o) cheie extern ale cror chei primare sunt de tipul AutoNumber, ReplicationID. Tip de date cu plaja de valori admis ntre 10 28 1 i 10 28 1 . Ocup 12 bytes i precizie (proprietatea Precision) maxim de 28. Memoreaz date calendaristice, inclusiv ora i formate predefinite. Datele calendaristice admise sunt ntre anul 100 i 9999. Formatele de afiare se stabilesc n proprietatea Format. Ocup 8 bytes. Tip de date numeric, care opereaz cu maxim patru zecimale i maxim 15 poziii n stnga punctului zecimal. Ocup 8 bytes. Tip de date care i atribuie automat valori, la crearea unei noi nregistrri. Valorile atribuite pot fi secveniale (proprietatea NewValues = Increment) sau aleatoare (proprietatea New Values = Random). Cmpurile de tip AutoNumber, nu pot fi actualizate. Ocup 4 bytes. Tip de date care i atribuie automat valori de tip GUID. Exemplu de valoare GUID: {E0DC2C27-EDE8-412A-B1C4AF69021A1365}. Ocup 16 bytes. Tip de date logic, care poate lua doar dou valori: adevrat (valoarea 1) sau fals (valoarea 0). Ocup 1 bit. Tip de date care poate s includ imagini, documente Word, foi de calcul Excel, etc. Dimensiunea maxim este de 1 Gb, cu condiia s existe acest spaiu pe disc. Nu poate fi cheie i nici nu poate fi index. ir de caractere, care poate memora o adres Web, ce va fi utilizat sub form de hyperlink. Este format din trei pri: textul de afiat, adresa i subadresa. Dimensiunea maxim a fiecrei pri este de 2048 caractere.

Decimal

Date / Time

Currency

LongInteger AutoNumber Replication ID

Yes / No

OLE Object

Hyperlink

Nchil Ctlin laborator Access

18

2. Microsoft Access Tabele (Tables)


Tip de date Subtip de Date Descriere

Lookup Wizard

Cmpuri ale cror valori vor fi completate automat prin selecia dintr-o list simpl de valori (List Box) sau dintr-o list derulant de valori (Combo Box).

Tabelul 2.1. Tipuri de date

2.1.1.3. Field Properties (Zona B)


n zona B (General i Lookup) se pot stabili valori pentru dou categorii de proprieti:
proprieti pe care le au toate cmpurile; proprieti specifice anumitor cmpuri, n funcie de tipul de date.

Proprieti din categoria General: Field Size stabilete dimensiunea maxim admis pentru tipurile de date Number, AutoNumber, Text; pentru primele dou, valorile sunt precizate n tabelul 2.1, iar pentru tipul Text o valoare ntre 0 i 255; Decimal places stabilete numrul de zecimale utilizat pentru afiarea unui numr; valorile posibile sunt Auto (numrul este afiat cu attea zecimale cu ct a fost calculat; nu sunt afiate mai mult de 15 zecimale) sau un numr ntre 0 i 15. Format stabilete formatul de afiare a unui cmp; aceste formate se pot defini de utilizator cu ajutorul unor secvene speciale sau, pentru unele tipuri de date, exist deja predefinite formate uzuale. Formatul dorit se selecteaz din lista oferit n urma activrii butonului de control. Pentru datele de tip numeric, de exemplu, se poate opta ntre urmtoarele formate de afiare: General Number, Currency, Euro, Fixed, Standard, Fig. 2.4. Number -> Format Percent, Scientific; (fig. 2.4.) Pe lng aceste formate predefinite se mai pot utiliza anumite combinaii speciale de caractere. Caracterele ce se pot utiliza ntr-un format de afiare al unui cmp numeric sunt prezentate n tabelul 2.2..

Nchil Ctlin laborator Access

19

2. Microsoft Access Tabele (Tables)

Pentru cmpurile numerice formatul de afiare se mparte n patru zone separate prin caracterul ; :
prima zon se refer la modul de afiare al numerelor pozitive; a doua zon se refer la modul de afiare al numerelor negative; a treia zon se refer la modul de afiare al numrului zero; a patra zon se refer la modul de afiare al valorii Null.

. ,

separatorul este punctul

zecimal

# $

sunt afiate cifre sau spaiu este afiat i caracterul $ numrul este nmulit cu 100 i alturi este afiat caracterul procent

separatorul miilor este virgula sunt afiate cifre sau zero stabilete formate de afiare n format tiinific

E+, E-, e+, e-

Tabel 2.2. Caracterele ce se pot utiliza ntr-un format de afiare al unui cmp numeric

Caption stabilete un ir de caractere care va fi afiat n titlul unei coloane, n momentul introducerii datelor; dac aceast proprietate nu are nici o valoare, irul afiat n titlul unei coloane este chiar numele cmpului; valoarea acestei proprieti nu are nici o influen asupra numelui cmpului n utilizarea sa n interogri, VBA, etc.
Exemplu: dac numele unui cmp este DenProd, i n proprietatea Caption se scrie Denumire Produs.

Default Value stabilete o valoare implicit care este propus n momentul n care se introduc date ntr-un tabel; se recomand n cazul n care exist o valoare preponderent a coninutului unui cmp; n cazul n care utilizatorul nu introduce o alt valoare n cmpul respectiv, valoarea din aceast proprietate va fi memorat n coninutul acestuia.
Exemplu: pentru un cmp care memoreaz valoarea TVA, innd cont c pentru majoritatea produselor aceasta este 19%, pentru a uura munca de culegere date, este recomandat ca n proprietatea Default Value s se stabileasc aceast valoare. La introducerea datelor, dac un produs are aceast cot, atunci valoarea sa nu se mai tasteaz.

Nchil Ctlin laborator Access

20

2. Microsoft Access Tabele (Tables)

Input Mask stabilete un format (masc, ablon) de introducere a datelor pentru un anumit cmp. La fel ca n cazul proprietii Format, exist o serie de caractere prin care se stabilete acest format de introducere a datelor; n cazul n care se utilizeaz ambele proprieti, proprietatea Format are prioritate fa de proprietatea Input Mask. Proprietatea Input Mask pune la dispoziia utilizatorului cteva mti predefinite dar i posibilitatea definirii unor mti personalizate. Mtile personalizate se definesc sub forma a trei zone separate prin caracterul punct i virgul (;):
prima zon se utilizeaz pentru definirea propriu-zis a formatului de introducere; a doua zon, se utilizeaz pentru a specifica dac se memoreaz i caracterele care fac parte din ablonul de introducere sau nu; valoarea zero stabilete c se memoreaz inclusiv caracterele din definiia ablonului, iar valoarea unu inhib aceast posibilitate: a treia zon se utilizeaz pentru a specifica un caracter, care este afiat ntr-o poziie din ablon.

Caractere ce se pot utiliza pentru definirea unui ablon de introducere a datelor sunt prezentate n tabelul 2.3..
Exemple: \O\R\A\:00:00:00 va afia i cuvntul ORA: fr a fi memorat. De remarcat c Access transform automat secvena \O\R\A\: n ORA:. "(040)-"00\-00000##

este un posibil ablon pentru introducerea unui numr de

telefon din Romnia; la introducere va afia: (040)__ . Prin utilizarea caracterului 0, nu se permit prefixe dect din dou cifre, i numere de telefon de minim 5 cifre, iar prin utilizarea caracterului # sunt permise numere din 6 i 7 cifre.
>AAAA<aaaa definete un format de introducere n care primele 4 caractere sunt obligatorii i sunt transformate automat n majuscule, iar urmtoarele 4 sunt opionale i transformate automat n minuscule.

Utilizarea proprietii Input Mask inhib tasta Insert, singurul mod de lucru fiind cel de suprascriere.

Nchil Ctlin laborator Access

21

2. Microsoft Access Tabele (Tables)

sunt permise toate cifrele de la 0 la 9, fr semn; nu se permite coninut incomplet al cmpului, dac se utilizeaz acest simbol. Exemplu: o masc definit sub forma 000000, va afia la introducere i nu va permite dect introducerea a exact ase cifre. sunt permise toate cifrele de la 0 la 9, fr semn, inclusiv spaiu; este permis coninutul incomplet; sunt permise cifrele de la 0 la 9, inclusiv spaiu, semn; este permis coninutul incomplet sunt permise literele de la A la Z; nu este permis coninutul incomplet al cmpului sunt permise literele de la A la Z i coninutul incomplet

<

caracterele introduse sunt convertite n minuscule

>

caracterele introduse sunt convertite n majuscule separatorul pentru zecimale, pentru mii separatori pentru date calendaristice i pentru timp afieaz caracterul asterisc (*) n momentul introducerii de date afieaz un caracter n ablon fr a determina memorarea acestuia n coninutul cmpului orice caracter sau spaiu i coninut incomplet al cmpului

. ,

: ; /

password

sunt permise toate literele i cifrele; nu este permis coninutul incomplet al cmpului orice caracter sau spaiu; nu este permis coninutul incomplet al cmpului

&

Tabel 2.3. Caractere ce se pot utiliza pentru definirea unui ablon de introducere a datelor

Validation Rule definete o regul de validare pentru un cmp, practic o expresie ce se a testa pentru coninutul introdus ntr-un cmp. Regulile de validare se testeaz dup introducerea unei valori ntr-un cmp sau n momentul n care se ncearc salvarea unei nregistrri (n momentul n care se ncearc introducerea unei nregistrri noi, la trecerea ie la o nregistrare la alta, sau la salvarea explicit a acesteia) pentru cmpurile nevizitate de utilizator. Dac o regul de validare a unui cmp nu se verific, nregistrarea nu se poate salva dect dac se corecteaz coninutul cmpului n aa fel nct s se verifice regula de validare stabilita Expresia pentru aceast proprietate se poate scrie i n mod . asistat cu ajutorul ferestrei Expression Builder, ce poate fi invocat din butonul

Nchil Ctlin laborator Access

22

2. Microsoft Access Tabele (Tables)

Numele cmpurilor dintr-o expresie Validation Rule trebuie scris ntre caracterele [ ]. O expresie Validation Rule la nivel de cmp nu poate referi alte cmpuri, dect cel curent. Se pot utiliza funcii Access, constante, operatori, etc.
Exemple de reguli de validare pentru un cmp de tip Number, Integer: >100 and <=200 stabilete valorile posibile ntre 101 i 200 <>Null sau Is Not Null cmpul trebuie s conin o valoare. Exemple de reguli de validare pentru un cmp de tip Text: "Clrai" Or "Bucureti" Or "Braov" In("Calarai"; "Bucureti"; "Braov") valoarea cmpului nu poate fi dect una din cele trei. Mid([nume];l;l)="A" primul caracter introdus n cmpul nume nu poate fi dect A sau a. Exemple de reguli de validare pentru un cmp de tip Date/Time: >=Date() data introdus trebuie s fie mai mare sau egal cu data sistemului. Year([data factura])=Year(Date()) anul din cmpul data factura trebuie s fie n momentul introducerii, acelai cu cel din data sistemului.

Validation Text definete un mesaj de atenionare care va fi afiat n momentul n care regula de validare definit n proprietatea Validation Rule este nclcat. Required poate lua valoarea Yes sau No, corespunztoare valorilor logice adevrat (True) sau fals (False) i stabilete dac valoarea unui cmp este obligatoriu (Yes) de introdus sau nu (No). Pentru cmpurile de tip Text, Memo, Hyperlink este bine s se utilizeze aceast proprietate n strns legtur cu proprietatea Allow Zero Length. Allow Zero Length stabilete dac este permis introducerea unui ir de lungime zero (Yes) sau nu (No) ntr-un cmp de tip Text, Memo sau Hyperlink. Variantele de memorare n condiiile utilizrii proprietilor Required i Allow Zero Length sunt prezentate n tabelul 2.5. Date/Time formatele predefinite de afiare pentru cmpurile de tip sunt prezentate n figura 2.5.
Fig. 2.5. Date -> Format

Nchil Ctlin laborator Access

23

2. Microsoft Access Tabele (Tables)

: / d dd ddd dddd w ww m mm mmm

separator pentru timp separator pentru data calendaristic ziua este afiat sub form de valori de la 1 la 31 ziua este afiat sub form de valori de la 01 la 31 sunt afiate numai primele trei caractere din numele unei zile este afiat numele complet al unei zile ziua este afiat ca valoare din sptmn, de la 1 la 7 este afiat numrul sptmnii n an, de la 1 la 53 este afiat numrul lunii din an, de la 1 la 12 este afiat numrul lunii din an de la 01 la 12 sunt afiate numai primele trei caractere din numele unei luni

mmmm y yy yyy q h hh n nn s ss

este afiat numele complet al lunii numrul zilei din an sunt afiate ultimele dou caractere din an de la 01 la 99 anul este afiat complet de la 100 la 9999 data este afiat ca numrul trimestrului din an, de la 1 la 4 ora este afiat prin numere de la 0 la 23 ora este afiat prin numere de la 00 la 23 minutele sunt afiate prin numere de la 0 la 59 minutele sunt afiate prin numere de la 00 la 59 secundele sunt afiate prin numere de la 0 la 59 secundele sunt afiate prin numere de la 00 la 59

AM/PM sau am/pm sau A/P sau a/p

este afiat AM, am, A sau a pentru primele 12 ore ale zilei i PM, pm, P sau p pentru ultimele 12 ore din zi

Tabel 2.4. Caractere care se pot utiliza ntr-un cmp de tip Date/Time Exemple: "Data: "dd/mm/yy" sptmna: 22 sptmna: "ww

afieaz

Data:

01/06/01

dddd/mmmm/yyyy afieaz vineri/iunie/2001 "ORA:"hh:nn:ssAM/PM afieaz ORA:12:00:00AM

Nchil Ctlin laborator Access

24

2. Microsoft Access Tabele (Tables)

Valoarea din proprietatea Allow zero length

Valoarea din proprietatea Required

Aciunea utilizatorului Enter

Valoarea memorat Null Null

No

No

Bara spaiu ir de lungime 0


Enter

Nu este permis
Null Null

No

Yes

Bara spaiu ir de lungime 0


Enter

Nu este permis
Null Null

Yes

No

Bara spaiu ir de lungime 0


Enter

ir de lungime 0 Nu este permis Nu este permis Nu este permis Nu este permis ir de lungime 0 ir de lungime 0

No

Yes

Bara spaiu ir de lungime 0


Enter

Yes

No

Bara spaiu ir de lungime 0

Tabel 2.5. Proprietile Allow zero length i Required

Indexed stabilete un cmp drept index. Valori posibile:


No - neindexat Yes (Duplicates OK) sunt permise valori duplicate pe cmpul index; Yes (No Duplicates) index; nu sunt permise valori duplicate pe acest cmp.

Nchil Ctlin laborator Access

25

2. Microsoft Access Tabele (Tables)

Pentru cmpurile de tip Yes/No formatele de afiare predefinite sunt: True/False, Yes/No, On/Off. Pe lng aceste formate predefinite, utilizatorul i poate crea propriile formate pentru cmpurile logice ntr-o structur format din trei zone separate prin caracterul ; .
n prima zon, se poate stabili un text care nu are influen asupra coninutului cmpului; a doua zon este utilizat pentru a stabili un text afiat n cazul n care valoarea memorat este adevrat (True); a treia zon este utilizat pentru textul afiat n cazul n care valoarea memorat este False.

n cazul cmpurilor de tip logic, efectul formatelor definite de utilizator se poate observa numai dac se utilizeaz controale de tip caset de text (Text Box). n cazul cmpurilor de tip Text sau Memo, nu exist formate predefinite de afiare, ns prin intermediul unor caractere, utilizatorul i poate stabili propriile formate. Aceste formate se stabilesc sub forma a dou zone:
prima zon se utilizeaz pentru a stabili formatul propriu-zis de afiare al coninutului cmpului; a doua zon, pentru stabilirea formatului de afiare n cazul valorilor vide sau Null.

Caractere ce se pot utiliza pentru stabilirea formatelor de afiare pentru cmpurile de tip Text sau Memo: @ este obligatorie introducerea unui caracter sau spaiu; & nu este obligatorie introducerea unui caracter; > transform toate caracterele n majuscule, indiferent de modul de tastare; < transform toate caracterele n minuscule, indiferent de modul de tastare;
Exemplu: <; Nu exista text va afia irul introdus cu litere minuscule, iar n cazul n care nu este introdus un ir va afia textul Nu exista text.

Aa cum s-a amintit, pe lng aceste formate de caractere predefinite se pot utiliza i secvene speciale de caractere, care pot fi utilizate dup necesiti. Sunt caractere care se pot utiliza pentru orice tip de cmp i caractere care se pot utiliza numai pentru anumite tipuri de date. Caractere care se pot utiliza n orice tip de cmp :
ir caractere afieaz irul de caractere dintre ghilimele mpreun cu coninutul cmpului; ! aliniaz coninutul unui cmp la stnga, n loc de alinierea dreapta; [Culoare] afieaz coninutul unui cmp n culoarea precizat; (space)

Nchil Ctlin laborator Access

26

2. Microsoft Access Tabele (Tables)

2.1.1.4. Definirea cheii primare i a indecilor


Orice tabel trebuie s posede o cheie primar (Primary Key), adic un cmp sau un grup de cmpuri care identific n mod unic fiecare nregistrare. Dac utilizatorul nu stabilete o cheie primar, Access stabilete una n mod implicit crend un cmp de tip AutoNumber care va conine un numr unic pentru fiecare nregistrare. Dei Access creeaz n mod implicit o cheie primar, urmtoarele raiuni recomand utilizatorului s defineasc o cheie primar:
cheia primar este un index. indecii realizeaz o clasificare a datelor dup unul sau mai multe cmpuri ceea ce are drept consecin creterea vitezei de realizare a interogrilor. la fiecare adugare a unei noi nregistrri, Access nu autorizeaz nregistrri duble pentru cmpul cheie primar. Microsoft Access afieaz datele n ordinea cheii primare.

n afar de indeci pe un singur cmp se pot defini i indeci multipli, care funcioneaz pe mai multe cmpuri simultan. Acetia se pot defini/modifica numai n fereastra Indexes. n aceeai fereastr se pot gestiona i indecii pe un singur cmp. Fereastra cu indecii unei tabele (Indexes) se activeaz din meniul View, opiunea Indexes (figura 2.5.)

Fig. 2.5. View -> Indexes

Nchil Ctlin laborator Access

27

2. Microsoft Access Tabele (Tables) Pentru definirea unui index (sau pentru o cheie primar) format din mai multe cmpuri, se scrie numele indexului n coloana Index Name, iar n coloana Field Name se aleg cmpurile care formeaz indexul sau cheia primar. Coloana Sort Order indic modul de ordonare al datelor n index. n cazul indecilor ce includ mai multe cmpuri, valoarea proprietii Indexed, pentru fiecare cmp n parte este No. Proprietile din fereastra Indexes: Primary valoarea Yes indic faptul c indexul este cheie primar; Unique valoarea Yes indic faptul c indexul va avea valori unice, nefiind permise duplicatele; pentru o cheie primar, aceast proprietate are obligatoriu valoarea Yes. Ignore Nulls - valoarea Yes indic faptul c sunt permise valorile Null ntr-un index; pentru o cheie primar, aceast proprietate are obligatoriu valoarea No. Pe lng modalitatea descris anterior, cheia primar a unui tabel se mai poate defini astfel:
dac este vorba de o cheie format dintr-un singur cmp, se poziioneaz cursorul n cmpul respectiv, se acioneaz click dreapta i se alge opiunea Primary Key; pentru chei primare formate din mai multe cmpuri, se selecteaz cmpurile din bordura ferestrei de proiectare i se acioneaz butonul menionat anterior.

O cheie extern nu se definete explicit n Access sub noiunea de cheie extern, ea fiind stabilit prin definirea relaiilor dintre tabele. Pentru creterea performanelor se recomand definirea de indeci pentru fiecare cheie extern.

2.1.2. Datasheet View


Datasheet View este echivalent cu acionarea hyperlink-ului Create table by entering data. n aceast variant, Access propune o fereastr de introducere date sub forma unui tabel cu nume de cmpuri generice Field1, Field2....Field10. Inserarea de noi cmpuri pe lng cele zece propuse implicit, se realizeaz din meniul Insert->Column.

Schimbarea numelor implicite ale coloanelor se realizeaz din meniul Format->Rename Column funcie de datele introduse n celule, la salvarea tabelului, Access stabilete ce tip de date va aloca fiecrui cmp. Dac, de exemplu, coloana unui cmp conine celule cu numere i o celul cu un ir de caractere, Access, va alege pentru acel cmp tipul de date Text. Dac o coloan conine numai numere, Access va alege un tip de date numeric, care s satisfac toate valorile existente n celulele cmpului. Aceast variant de creare a unui tabel este avantajoas doar n cazul n care se dorete crearea rapid a unui tabel, fr a interesa prea mult tipurile de date ale cmpurilor, numele acestora, stabilirea de reguli de validare i alte parametrizri importante, toate aceste operaii fiind disponibile doar dup salvarea tabelului prin modificarea structurii acestuia (butonul de comand Design View).

Nchil Ctlin laborator Access

28

2. Microsoft Access Tabele (Tables)

2.1.3. Table Wizard


Table Wizard este echivalent cu acionarea hyperlink-ului Create table by using wizard. Alegerea acestei variante are ca efect activarea unei ferestre n care se propun diverse modele de tabele cu o mare varietate de cmpuri.

2.1.4. Proprieti ale unui tabel


Pentru a vizualiza fereastra cu proprieti a unui tabel se activeaz opiunea Properties din meniul View. Validation Rule - are aceeai semnificaie ca proprietatea cu acelai nume ataat cmpurilor, numai c opereaz la nivel de tabel. n momentul n care se ncearc salvarea unei nregistrri (n momentul n care se ncearc introducerea unei nregistrri noi, la trecerea de la o nregistrare la alta, sau la salvarea explicit a acesteia), dac nu se verific aceast regul de validare, nu se va putea salva nregistrarea. Fa de aceeai proprietate la nivel de cmp, la nivel de tabel, se pot referi mai multe cmpuri ale tabelului n expresia care definete proprietatea. Validation Text afieaz un mesaj n momentul n care regula de validare definit la nivel de tabel, este testat i nu se verific. Filter stabilete un criteriu n funcie de care vor fi selectate nregistrrile n fereastra de introducere date. Pentru a activa/dezactiva filtrul trebuie acionat butonul Apply Filter sau din meniul Records, opiunea Apply Filter/Sort respectiv Remove Filter/Sort. Order By stabilete ordinea de afiare a nregistrrilor, n momentul introducerii datelor. Numele cmpurilor trebuie precizate ntre [].

2.1.5. Salvarea tabelelor


Tabelele Access se pot salva n mai multe moduri:
din meniul File se alege opiunea Save; se execut click pe butonul Save de pe bara cu instrumente de lucru; se execut evenimentul click pe butonul de nchidere a ferestrei de descriere a tabelei din meniul de control se alege opiunea Close

Indiferent de modul de salvare, Access afieaz caseta de dialog Save As care solicit furnizarea unui nume pentru tabel. Utilizatorul introduce numele tabelei n caseta de text Table Name i apoi execut click pe butonul OK. Numele tabelelor pot avea pn la 64 de caractere i trebuie s respecte conveniile Access descrise pentru formarea numelor de cmpuri.

Nchil Ctlin laborator Access

29

2. Microsoft Access Tabele (Tables)

2.2. Operaii asupra nregistrrilor dintr-o tabel


ntr-o tabel Access se pot realiza urmtoarele operaii: Adugarea nregistrrilor; tergerea de nregistrri; Cutarea de nregistrri; Modificarea nregistrrilor; Ordonarea nregistrrilor; Filtrarea nregistrrilor; Pentru a efectua aceste operaii este necesar ca tabela s fie deschis n modul DataSheet
View.

2.2.1. Adugarea nregistrrilor


Dac tabela este deschis imediat dup creare, Access va afia o foaie de date vid, iar va fi plasat pe prima i unica linie, pe butonul ei de selecie (butonul gri pointerul de nregistrare din prima coloan din tabela afiat n modul Datasheet View). Pentru a introduce date se plaseaz pur i simplu cursorul pe cmp i se introduce o valoare. n timp ce se efectueaz aceast operaie, pointerul de nregistrare se transform ntr-un creion, ilustrnd faptul c se editeaz o nregistrare. O nou linie vid apare dedesubtul primei linii. n locul pointerului de nregistrare figureaz un asterisc indicnd o nou nregistrare. Dac tabela care se deschide n modul Datasheet View conine date, pentru a aduga o nou nregistrare trebuie plasat cursorul pe ultima linie (al crei pointer este un asterisc) i se introduce noua nregistrare. Pentru plasarea cursorului pe ultima linie se execut click pe butonul New Record de pe bara cu instrumente sau se alege Insert > Record sau se utilizeaz tasta sgeata n jos.

2.2.2. tergerea de nregistrri


Pentru a terge una sau mai multe nregistrri se selecteaz nregistrarea sau nregistrrile i se acioneaz tasta Delete sau butonul Delete Record de pe bara cu instrumente sau se alege din meniul Edit > Delete. Se recomand o atenie deosebit la tergerea nregistrrilor deoarece Access nu permite anularea tergerii nregistrrii.

Nchil Ctlin laborator Access

30

2. Microsoft Access Tabele (Tables)

2.2.3. Cutarea unei nregistrri se realizeaz n acces secvenial sau n acces direct
Cutarea secvenial a unei nregistrri se face utiliznd setul de butoane din partea stng a barei aflate n partea de jos a ferestrei Datasheet View: Next Record, First Record, Last Record, Previous Record. Pentru cutarea direct se selecteaz cmpul n care se face cutarea i se utilizeaz butonul Find de pe bara cu instrumente sau se alege Edit > Find (figura 2.6.). Cutarea se poate realiza n ntreaga tabel, ncepnd cu nregistrarea curent pn la sfritul tabelei (Down), de la nregistrarea curent spre prima nregistrare sau de la ultima nregistrare spre nceputul tabelei (Up), opiuni care se pot preciza n zona Search. Din lista derulant Match (potrivire) se poate selecta:
Whole Field (ntregul cmp); Start of Field (nceputul cmpului); Any Part of Field (orice parte a cmpului).

Pentru a indica o cutare care s in seama de literele mari i mici, se marcheaz caseta Match Case.

Fig. 2.6. Find

2.2.4. Modificarea nregistrrilor


Pentru nlocuirea automat a valorilor dintr-un cmp din mai multe nregistrri se utilizeaz caseta de dialog Replace. Caseta Replace se afieaz prin comanda Edit > Replace sau a combinaiei de taste Ctrl + H (figura 2.7.). Comanda va nlocui valorile din cmpurile care se potrivesc cu valorile introduse n caseta de text Find What. nlocuirea se face cu valorile specificate n caseta de text Replace With. nlocuirea se poate face selectiv prin cutarea fiecrei valori de nlocuit i confirmarea nlocuirii (butoanele Field Next i Replace) sau pentru toate nregistrrile care corespund criteriul de nlocuire (butonul Replace All).

Nchil Ctlin laborator Access

31

2. Microsoft Access Tabele (Tables)

Fig. 2.7. Replace

2.2.5. Ordonarea nregistrrilor


Ordonarea i filtrarea nregistrrilor sunt operaii deosebit de importante pentru utilizatori, dar ele vizeaz ndeosebi cererile informaionale ale utilizatorilor, motiv pentru care ele sunt realizate pentru obiectele tip Query (cereri de iterogare) capitolul 3.

2.2.6. nghearea afirii cmpurilor


Dac o tabel conine prea multe cmpuri, ele nu pot fi afiate toate n modul Datasheet View. Pentru a vizualiza toate cmpurile se folosete bara de derulare orizontal sau nghearea afirii cmpurilor. Pentru nghearea afirii cmpurilor executm operaiile:
se deschide tabela n modul Datasheet View; se selecteaz coloana sau coloanele a cror afiare se va nghea executnd click pe butoanele antetelor acestor coloane; se utilizeaz comanda Format > Freeze Columns (nghearea coloanelor).

Pentru dezghearea coloanelor ngheate se alege comanda Format > Unfreeze All Columns.

Nchil Ctlin laborator Access

32

2. Microsoft Access Tabele (Tables)

2.3. Definirea relaiilor ntre tabele


Pentru a avea acces simultan la datele din mai multe tabele ale aceleiai baze de date este necesar s se defineasc relaiile standard dintre aceste tabele. Relaiile ntre tabele se definesc pe baza valorilor unui cmp dintr-o tabel utilizat drept cheie primar i valorilor aceluiai cmp dintro alt tabel, unde este utilizat drept cheie extern. Access impune existena aceluiai tip de date pentru cmpurile care particip la o relaie. n cazul cmpului de tip Number proprietatea Field Size a celor dou cmpuri trebuie s fie identic. Relaia dintre cmpurile de tip Text trebuie, n principiu, s foloseasc cmpuri de aceeai lungime. Se recomand ca stabilirea relaiilor ntre tabele s se fac nainte de nregistrarea datelor. n Access exist urmtoarele posibiliti de realizare a relaiilor dintre tabele:
Relaia 1 1 (one-to-one sau unu la unu) este cea mai simpl relaie ntre dou tabele. n aceast relaie, unei valori a cmpului cheie principal dintr-o tabel i corespunde o singur valoare din cmpul folosit drept cheie extern din cealalt tabel. Altfel spus, unei nregistrri din tabela aflat n partea stng a relaiei i corespunde o singur nregistrare din tabela aflat n partea dreapt a relaiei. Tabelele aflate ntr-o relaie one-to-one se pot combina ntr-o singur tabel, n care apar toate cmpurile celor dou tabele. Relaiile de acest tip nu sunt uzuale.

Tabelul A

Tabelul B

Relaia 1 n (one-to-many sau unul la mai muli) constituie tipul cel mai rspndit de relaii. Conform acestei relaii unei nregistrri din tabela aflat n partea stng a relaiei i corespund dou sau mai multe nregistrri din tabela aflat n partea dreapt a relaiei. Asocierea se bazeaz pe un cmp cheie principal unic ntr-o tabel i un cmp cheie extern din cealalt tabel care admite valori duplicate.

Tabelul A

Tabelul B

Nchil Ctlin laborator Access

33

2. Microsoft Access Tabele (Tables)

Relaia n1 (many-to-one sau mai muli la unul) este opus relaiei 1n. Pentru a crea relaia many-to-one este suficient s se inverseze relaia one-to-many. De aceea, se spune c relaia many-to-one este reflexiv, adic relaia many-to-one este reflexia relaiei corespondente one-to-many. Dac se selecteaz o nregistrare din tabela din partea many a relaiei se poate afla nregistrarea care corespunde cheii sale externe din tabela din partea one a relaiei. Relaiile n 1 nu sunt bazate pe cmpuri cheie primar din nici una dintre cele dou tabele.

Tabelul A

Tabelul B

Relaia mn (many-to-many sau muli la mai muli) nu poate fi exprimat ca o simpl relaie ntre dou tabele. Relaia many-to-many se poate exprima prin intermediul unei a treia tabele care are relaii one-to-many i many-to-one cu cele dou tabele.

Tabelul A

Tabelul B

Indiferent de tipul de relaii existent ntre dou/mai multe tabele este esenial ca cele dou cmpuri participante la aceasta s aib exact acelai tip de date. Pe lng stabilirea relaiilor ntre tabelele unei baze de date, Access permite i specificarea unor reguli care foreaz integritatea datelor. Aceste reguli se numesc restricii de integritate referenial. Ele permit s se conserve intacte relaiile ntre tabele ntr-un sistem de gestiune a unei baze de date relaionale. Integritatea referenial funcioneaz dup cmpul cheie. Acest sistem verific n mod continuu cmpul cheie, primar i strin, la fiecare operaie de adugare, tergere sau modificare a unei nregistrri. Dac o schimbare a unei chei afecteaz legtura ntre tabele, sistemul avertizeaz c se violeaz regulile de integritate referenial.

Nchil Ctlin laborator Access

34

2. Microsoft Access Tabele (Tables)

Atunci cnd dou tabele sunt legate printr-o relaie, o tabel se numete printe i cealalt se numete copil. Acest sistem este cunoscut sub numele de relaie printe-copil. Integritatea referenial garanteaz c nu vor exista nregistrri orfane adic nregistrare copil fr o nregistrare printe. Capacitatea de a asigura n mod automat integritatea referenial este o caracteristic important a programului Access. Definirea legturilor dintre tabele se realizeaz din meniul Tools-> Relationships, acesta activnd un panou de editare vizual a acestora. Prima activare a acestei opiuni are ca efect i afiarea unei ferestre cu obiectele bazei de date ce se pot plasa n panou prin dublu-click sau selectarea obiectului i butonul Add (figura 2.8.).

Fig. 2.8. Relationships

Pentru a putea defini o legtur ntre dou tabele, trebuie s existe compatibilitate ntre tipul de date al cheii primare i cel al cheii externe corespunztoare. Dup plasarea tuturor tabelelor n panoul de editare, definirea propriu-zis a unei relaii se realizeaz prin drag-and-drop dinspre cheia primar a unei tabele spre cheia extern corespunztoare sau invers. Dup realizarea acestei operaii, finalizarea definirii unei legturi se realizeaz n fereastra din figura 2.9, unde este prezentat definirea unei relaii ntre tabelul furnizor (cheie primar cod furnizor) i tabelul produs (cheie extern id). Dac o cheie este format din mai multe cmpuri, acestea se editeaz corespunztor n panoul Edit Relationship (figura 2.9.)

Nchil Ctlin laborator Access

35

2. Microsoft Access Tabele (Tables)

Fig. 2.9. Edit Relationships

Opiunile din fereastra Edit Relationships au urmtoarea semnificaie:


Enforce Referential Integrity definete o restricie de integritate referenial. Nu se permite actualizarea valorii unei chei externe, dac aceast valoare nu exist deja n tabelul unde aceasta este cheie primar. Cascade Update Related Fields actualizarea valorii unei chei primare dintr-un tabel se propag i n nregistrrile din tabelele unde aceasta este cheie extern. Cascade Delete Related Fields tergerea valorii unei chei primare, are ca efect i tergerea nregistrrilor din tabelele unde aceasta este cheie extern.

n caseta Relationship Type sunt prezentate tipurile de legturi care pot exista ntre dou tabele:
One to One -1-1; One to Many 1n

Dac n aceast caset este afiat mesajul Indeterminate, nseamn c tipul de relaie nu poate fi definit, cea mai probabil eroare fiind incompatibilitatea ntre tipul de date al cheii primare i cel al cheii externe, sau inexistena unei chei primare n relaia respectiv. Butonul de comand Join Type permite i definirea unor tipuri de relaii particulare ntre tabele, aa cum se observ din figura 2.10. Variantele 2 i 3 permit utilizarea implicit n interogri a join-urilor externe de tip Left i Right, care presupun ntr-o interogare luarea n considerare a tuturor nregistrrilor dintr-un tabel, indiferent dac au sau nu nregistrri corespondente dup cmpul (cmpurile) de legtur n celalalt tabel. n exemplul de legtur prezentat n figura 2.10, este posibil o interogare ntre cele dou tabele, n care vor fi luate n considerare toate nregistrrile din tabelul produse, indiferent dac au sau nu corespondent n tabelul furnizor.

Nchil Ctlin laborator Access

36

2. Microsoft Access Tabele (Tables)

Fig. 2.10. Edit Relationships > Join Properties

Nchil Ctlin laborator Access

37

2. Microsoft Access Tabele (Tables)

2.4. Aplicaii
Aplicaia 2.1. S se creeze tabela Furnizori care are urmtoarea structur:

cod (cheia primar) denumire data infiintarii adresa banca Proprietile cmpurilor tabelei Funizori:
Cmp Field name Proprieti Field Size Format Cod Default Value Validation Rule Validation Text Indexed Denumire Field Size Caption Format Data infiintarii Default Value Validation Rule Validation Text

AutoNumber Text Date Memo Text

Valori

Byte General Number 100 [Cod furnizor]>=100 and [Codfurnizor]<=200 Trebuie sa tastezi intre 100 si 200 Yes (No Duplicates) 20 Denumirea furnizorului General Date 1 martie 2004 <=Date() Ai depasit data curenta

Aplicaia 2.2. S se creeze tabela Facturi care are urmtoarea structur:

Nrfactura (cheia primar) Datafact Val factura Cod furnizor

Number Date Number Number

Nchil Ctlin laborator Access

38

2. Microsoft Access Tabele (Tables)

Proprietile cmpurilor tabelei Facturi:

Cmp

Proprieti Field Size Format Caption

Valori

Integer General Number Numar factura 2000 [Nrfactura]>=2000 And [Nrfactura]<=2500 Trebuie sa tastezi intre 2000 si 2500 Yes (No Duplicates) General Date Data facturii =Date() <=Date() Ai depasit data curenta Long Integer Currency 0 >0 Ai introdus o valoare negativ Byte General Number 100 Cod furnizor>=100 and Codfurnizor<=200 Trebuie sa tastezi intre 100 si 200

Nrfactura

Default Value Validation Rule Validation Text Indexed Format Caption

Datafact

Default Value Validation Rule Validation Text Field Size Format

Val factura

Default Value Validation Rule Validation Text Field Size Format

Cod furnizor

Default Value Validation Rule Validation Text

Nchil Ctlin laborator Access

39

2. Microsoft Access Tabele (Tables)

Aplicaia 2.3. Pentru raionalizarea procesului de introducere i actualizare a datelor, n cadrul unei aplicaii, se creeaz mai multe tabele independente. n mod obinuit informaiile dorite de utilizatori reclam consultarea concomitent a datelor din mai multe tabele. Din acest motiv ntro baz de date relaional ntre tabele se stabilesc relaii dup criterii logice i de nrudire.

Cmpurile comune (care au nume identice i sunt de acelai tip) prin care se stabilesc relaiile sunt:
cheia primar pentru tabela principal; cheia extern pentru tabela asociat.

Tabelele Produse, Comenzi i Clieni au urmtoarele structuri:


Produse : Cmp cod_produs den_produs um Tip de date Number Text Text Proprieti Field Size Caption Caption Field Size Caption Field Size Caption Valori

Integer Codul produsului Denumirea produsului 4 Unitate msur Single Pre unitar

pret_unitar

Number

Comenzi : Cmp nr_comanda Tip de date Number Proprieti Field Size Caption Field Size Caption Field Size Caption Field Size Format Valori

Integer Numrul comenzii Integer Codul clientului Single Codul produsului Single Short Date

cod_client

Number

cod_produs cantitate data_comenzii

Number Number Date / Time

Nchil Ctlin laborator Access

40

2. Microsoft Access Tabele (Tables)

Clieni : Cmp cod_client den_client localitate adresa nr_telefon tara Tip de date Number Text Text Text Number Text Proprieti Field Size Caption Caption Field size Field size Field size Caption Field Size Valori

Integer Codul clientului Denumirea clientului 20 30 Long Integer Telefon 20

Cheile primare n tabelele de mai sus sunt:


n tabela Produse cmpul cod_produs; n tabela Comenzi cmpul nr_comanda; n tabela Clieni cmpul cod_client.

n tabela Comenzi cmpurile cod_client i cod_produs sunt chei externe pentru asocierea cu celelalte tabele. Din datele prezentate n figura 2.11. rezult c unei nregistrri din tabela Produse i corespund una sau mai multe nregistrri din tabela Comenzi (se pot emite mai multe comenzi pentru acelai produs). De asemenea, unei nregistrri din tabela Clieni i corespund una sau mai multe nregistrri din tabela Comenzi (un client poate s emit una sau mai multe comenzi).

Fig. 2.11. Aplicaia 2.3

Nchil Ctlin laborator Access

41

2. Microsoft Access Tabele (Tables)

Tipul de legtur (Join) pentru asocierea acestor tabele cnd se leag nregistrrile pentru care cmpurile de legtur au valori egale este Equi-Join. Regulile generale prin care se asigur integritatea referenial atunci cnd ne referim la operaiile de adugare i eliminare a nregistrrilor din cele 3 tabele sunt:
toate cele 3 tabele s aparin aceleiai baze de date; fiecare tabel s aib o cheie primar (un index unic); cmpurile de legtur s aib acelai tip de dat. cod_produs i cod_client sunt de tip Number pentru care proprietatea Field Size a luat valoarea Integer.

Access asigur integritatea referenial astfel:


nu se pot introduce n tabela Comenzi dac nu sunt nregistrri corespunztoare n tabelele Produse i Clieni; nu se pot elimina nregistrri din tabelele Produse i Clieni atta timp ct mai exist nregistrri asociate n tabela Comenzi.

Pentru crearea relaiilor ntre tabelele Produse, Comenzi i Clieni se parcurg urmtorii pai:
n fereastra Database se alege opiunea Relationships din meniul Tools; prin intermediul ferestrei Show Table se aduc tabelele n fereastra Relationships; se execut click pe numele tabelei i apoi se apas pe butonul Add. se nchide tabela Show Table. se selecteaz cmpul cheie primar cod_produs din tabela Produse i se trage peste cmpul corespunztor din tabela Comenzi (cmpul cheie extern cod_produs).

Access deschide o fereastr n care sunt confirmate detaliile relaiei:


tabelele implicate n relaie (Produse i Comenzi); cmpurile prin care s-a stabilit relaia (cod_produs n ambele tabele); o caset de validare Enforce Referenial Integrity (impune integritatea referenial) care dup validare ofer posibilitatea (opional) de actualizare i tergere n cascad; opiunile care precizeaz tipul de combinare (Join Type). n cazul nostru se accept tipul prestabilit (1) care va lua n considerare numai nregistrrile prezente n ambele tabele.

Rezultatul va fi o legtur de tipul 1 ntre tabelele Produse i Comenzi; Se repet aceleai operaii pentru tabelele Clieni i Comenzi pe cmpul de legtur cod_client. n fereastra Relationships vom avea cele 3 tabele asociate (figura 2.11.).

Nchil Ctlin laborator Access

42

2. Microsoft Access Tabele (Tables)

Aplicaia 2.4. S se stabileasc dou relaii de tipul 1:m ntre tabela Facturi i tabela Poziie factur i ntre tabela Produse i tabela Poziie factur, astfel nct fereastra Relationships s arate ca n figura 2.12.

Fig. 2.12. Aplicaia 2.4

Aplicaia 2.5. Creai o baza de date pentru evidena situaiei colare a studenilor. Baza de date trebuie s stocheze notele acordate de profesori, studenilor, la fiecare materie n sesiunea de examene. Rezolvare:

Entitile bazei de date sunt: studenii, profesorii, materiile i notele. Identificarea asocierilor ntre entiti este urmtorul pas. Prin asociere se nelege o legtura ntre cele dou entiti bazat pe un cmp al lor. Stabilirea acestora este o operaie relativ intuitiv care, n cazul bazelor de date mari, este organizat pe baza unor metodologii. n cazul nostru entitile au urmtoarele asocieri care genereaz relaii de tip unu-la-muli:

Fig. 2.13. Aplicaia 2.5

Nchil Ctlin laborator Access

43

2. Microsoft Access Tabele (Tables)

Un student are mai multe note, evident, la o materie poi primi mai multe note (dac ai absentat sau nu ai promovat examenul, sau te prezini la mrire de not), un profesor acord mai multe note. Stabilirea cmpurilor se face n funcie de specificul utilizrii bazei de date. O atenie sporit trebuie acordat atributelor cheie primar. n cazul nostru am preferat, pentru simplificarea codificrii datelor, vom folosi tipul de dat AutoNumber.
Studeni: Cmp id_stud nume prenume adresa telefon email Tip de dat AutoNumber Text Text Text Number Hyperlink Format Proprieti Valori

"(040)."000.000.000

Profesori: Cmp id_prof nume prenume catedra titlu adresa telefon email Tip de dat AutoNumber Text Text Text Lookup Wizard Text Number Hyperlink Format Validation Rule Proprieti Valori

"prof" Or "conf" Or "sef lucr" Or "lector" Or "asist"

"(040)."000.000.000

Nchil Ctlin laborator Access

44

2. Microsoft Access Tabele (Tables)

Materii: Cmp id_prof denumire descriere Tip de dat AutoNumber Text Text Proprieti Valori

Note: Cmp nota data id_stud id_prof id_mat Tip de dat Number Data / Time Number Number Number Proprieti Validation Rule Validation Rule Valori

>=0 And <=10 <=Date()

Relaiile sunt:

Fig. 2.14. Aplicaia 2.5

Nchil Ctlin laborator Access

45

2. Microsoft Access Tabele (Tables)

Aplicaia 2.6. Creai baza de date:

Tabel material stoc gestiune furnizor nrcd mataprovizionat bonconsum matconsumat locconsum plati codmaterial, denmaterial, um

Cmpuri

codgestiune, codmaterial, stocinitial, datainitiala codgestiune, dengestiune, numegestionar codfurnizor, denfurnizor, localitate, adresa, codfiscal nrnrcd, datanrcd, codfurnizor, codgestiune, codfactura, datafact nrnrcd, codmaterial, cantaprov, pretaprov codbon, databon, codconsum, codgestiune codbon, codmaterial, cantconsum codconsum, denconsum, codcomanda coddocument, sumadocument, datadocument, codfurnizor

Cmpurile subliniate cu linie continu sunt cheile primare prin care se identific n mod unic fiecare nregistrare. Pentru tabela stoc cheia primar este reprezentat printr-un cmp compus (codgestiune i codmaterial), n ideea c un material se poate regsi n mai multe gestiuni. Pentru tabelele mataprovizionat i matconsumat s-au utilizat de asemenea chei primare pe cmpuri compuse. S lum de pild tabelele nrcd i mataprovizionat care au ca surs de date documentul Nota de Recepie i Constatare de Diferene. Tabela nrcd cuprinde datele din partea comun a documentului cu cheia primar nrnrcd, iar tabela mataprovizionat cuprinde datele din partea n care sunt consemnate materialele care au intrat (acestea pot fi mai multe), identificarea acestora realizndu-se prin cmpul cheie primar compus din nrnrcd i codmaterial. Aceleai raiuni au stat i la stabilirea cheilor primare pentru tabelele bonconsum i matconsumat care au ca surs de date documentul Bon consum. Cmpurile subliniate cu linie ntrerupt sunt cmpuri de legtur ntre tabele. Relaiile dintre tabele sunt prezentate n figura 2.15..

Nchil Ctlin laborator Access

46

2. Microsoft Access Tabele (Tables)

Fig. 2.15. Aplicaia 2.6

Nchil Ctlin laborator Access

47

3. Microsoft Access Interogri (Queries)

3. Microsoft Access Interogri (Queries)


3.1. Generaliti
Interogarea const n extragerea datelor dintr-o tabel (tabele), dintr-o interogare anterioar sau din ambele, prelucrarea acestora ntr-o form mai mult sau mai puin complex i furnizarea informaiilor ctre utilizatori. Rezultatele interogrilor pot fi folosite ca atare sau pot constitui surs de nregistrri pentru crearea formularelor i rapoartelor. Principalele operaii care se pot realiza cu ajutorul interogrilor sunt:
extragerea din tabele numai a cmpurilor relevante pentru utilizatori; extragerea nregistrrilor din tabele prin specificarea unor criterii de selecie; regsirea i ordonarea datelor dup anumite criterii; crearea de cmpuri calculate; extragerea datelor din una sau mai multe tabele i realizarea unor informaii sintetice; crearea de tabele, adugarea nregistrrilor n tabele, tergerea nregistrrilor din tabele i actualizarea datelor; combinarea i compararea ieirilor prin realizarea mai multor interogri n acelai timp; interogarea i a altor baze de date (FoxPro, SQL Server); pregtirea datelor n vederea afirii lor n formulare sau rapoarte.

n Microsoft Access se pot crea urmtoarele tipuri de interogri: interogri de selecie; interogri parametrice; interogri ncruciate; interogri de aciune.
Interogrile de selecie extrag informaii din unul sau mai multe tabele i le afieaz sub form de list. Sunt cel mai uor de creat i au avantajul c pot afia un numr redus de date dintr-un tabel de mare capacitate (datele care ndeplinesc condiiile specificate). Ele permit i modificarea rezultatului afiat, modificare ce va fi vzut i n tabelul surs. De asemenea, permit i folosirea de parametri, cum este reuniunea de cmpuri din tabele ntre care nu exist nici o legtur precum i efectuarea de calcule.

Nchil Ctlin laborator Access

48

3. Microsoft Access Interogri (Queries)

Interogrile parametrice nu sunt un tip special de interogri, o funcie parametru putnd fi folosit pentru toate celelalte interogri prezentate mai sus; ele folosesc n mod repetat o interogare, efectund modificri n criteriile de selecie. Interogrile tip tabel ncruciat centralizeaz n formatul unei foi de calcul tabelar datele din unul sau mai multe tabele. Datele rezultate dup execuia unei astfel de interogri sunt prezentate ntr-un format potrivit pentru analiza datelor i crearea de grafice. Interogrile de aciune creeaz un nou tabel n baza de date sau realizeaz modificri majore ale unui tabel existent. n general, toate interogrile de aciune pot fi realizate pe baza unei interogri de selecie. Ele permit adugarea, modificarea sau tergerea de nregistrri ntr-un tabel. Exist patru tipuri de interogri de aciune: interogri de generare a unui nou tabel din datele coninute n setul de rezultate al interogrii; interogri de adugare a noi nregistrri ntr-un tabel; interogri de tergere a unor nregistrri dintr-un tabel; interogri de actualizare a unor nregistrri dintr-un tabel, conform cu o condiie ce trebuie ndeplinit.

Aciunile acestora sunt ireversibile asupra datelor din tabelele surs, iar n cazul ultimelor trei dintre ele, trebuie urmrit pstrarea integritii refereniale atunci cnd prin intermediul lor se acioneaz asupra mai multor tabele legate. Interogarea datelor din tabele se realizeaz n dou moduri: n mod grafic prin interfaa Query By Example (QBE) - interogare prin exemplu; prin limbajul SQL sub form de blocuri de cerere. n cadrul acestui capitol se va prezenta modul de construire a unei interogri folosind interfaa Query By Example (QBE). Access ofer trei posibiliti pentru definirea interogrii i afiarea rezultatelor acesteia.
Design View fereastr sub forma unei grile de interogare, n care se definete interogarea; Datasheet View fereastr n care se afieaz rezultatele interogrii; SQL View fereastr n care Access genereaz automat codul SQL al interogrii QBE; aceeai fereastr este folosit i pentru scrierea direct a unei interogri cu ajutorul instruciunilor SQL.

Nchil Ctlin laborator Access

49

3. Microsoft Access Interogri (Queries)

3.2. Interogarea prin selecie


Aplicaia 3.1: Fie o baz de date ce conine trei tabele: Produse, Clieni, Comenzi. Tabelele conin nregistrrile:

Fig. 3.1. Tabelele bazei de date

Construim relaiile:

Fig. 3.2. Relaiile

Nchil Ctlin laborator Access

50

3. Microsoft Access Interogri (Queries)

3.2.1. Crearea unui obiect de tip interogare


Iniierea crerii cererii se realizeaz n fereastra Database prin activarea fiei Query (Interogri) i apoi apsarea butonului New, sau selectnd din meniul Insert opiunea Query. Access ofer mai multe modaliti de creare a cererilor. Aceste modaliti sunt afiate n fereastra New Query (figura 3.3) afiat ca urmare a iniierii operaiei de creare a cererii:

Fig. 3.3. Fereastra New Query

Fig. 3.4. Fereastra Show Table cu lista tabelelor disponibile

Design View proiectarea interogrilor utiliznd interfaa grafic QBE; Simple Query Wizard utilizarea asistentului pentru cereri simple; Crosstab Query Wizard utilizarea asistentului pentru cereri ncruciate; Fiind Duplicates Query Wizard utilizarea asistentului pentru cutarea nregistrrilor duplicat; Find Unmatched Query Wizard utilizarea asistentului pentru cutarea nregistrrilor care nu au corespondent n dou tabele.

Pentru crearea unei cereri de selecie se alege opiunea Design View din caseta New Query. Fereastra Show Table (figura 3.4.) ofer posibilitatea precizrii sursei de date pentru construirea cererii. Sursa de date pentru o cerere poate fi reprezentat de:
una sau mai multe tabele; una sau mai multe interogri; tabele i interogri.

Se vor selecta tabela/tabelele i/sau cererile surs i se va aciona butonul Add pentru a realiza aducerea acestora n fereastra de proiectare a cererii. Dup ce a fost precizat sursa de date se va nchide fereastra Show Table prin acionarea butonului Close. La nevoie se poate redeschide fereastra folosind opiunea Show Table din meniul Query.

Nchil Ctlin laborator Access

51

3. Microsoft Access Interogri (Queries)

Dac sunt necesare date din mai multe tabele sau interogri se procedeaz asemntor i pentru celelalte obiecte. n partea superioar a ferestrei Query Design vor fi afiate tabelele sau interogrile, fiecare cu lista cmpurilor coninute (figura 3.5.). n cazul n care tabelele din care se extrag datele pentru interogare au fost puse n relaie anterior, ele apar n fereastra Query Design cu liniile de legtur precizate (1 1 sau l ). Dac nu, relaia ntre tabele poate fi creat n cadrul interogrii.

Fig. 3.5. Fereastra Select Query

Fereastra Select Query (figura 3.5) este mprit n dou zone: zona superioar, n care se vizualizeaz tabelele/interogrile surs de date precum i relaiile definite ntre acestea; grila Query Design structurat astfel:
linia Field: rezervat pentru selectarea unui cmp; linia Table: destinat precizrii sursei de date; linia Sort: permite precizarea sensului sortrii pentru atributul din coloana respectiv; linia Show: permite inhibarea afirii realizrilor cmpului respectiv; linia Criteria: ofer posibilitatea precizrii criteriilor de selecie prin introducerea expresiilor Access corespunztoare; liniile or: permite precizarea mai multor criterii de selecie n cazul expresiilor Access utiliznd operatorul OR.

Nchil Ctlin laborator Access

52

3. Microsoft Access Interogri (Queries)

Definirea interogrii de selecie presupune parcurgerea urmtorilor pai: 1. Precizarea cmpurilor ale cror realizri urmeaz s le returneze cererea. Numele acestor cmpuri se vor preciza n grila Query Design n rndul Field utiliznd una din urmtoarele modaliti: selectarea cmpului din cadrul listei Field; executarea unui dublu clik de mouse asupra cmpului dorit din tabela/interogarea aflat n panoul superior; metoda drag-and-drop care presupune selectarea cu mouse-ul a cmpului dorit din panoul superior i tractarea acestuia n linia Field.

Dac este necesar s fie aduse n panoul inferior toate cmpurile aparinnd unei tabele se va proceda n unul din urmtoarele moduri:
selectarea tuturor cmpurilor din tabela surs (aflat n panoul superior) printr-un dublu clik de mouse pe numele tabelei i se trag cmpurile pe gril; utilizarea asteriscului aparinnd tabelei surs: tragei cu mouse-ul asteriscul n prima coloan Field;. chiar dac n grila de proiectare este completat doar prima coloan Field la execuie interogarea va returna realizrile tuturor atributelor; utilizarea proprietii Output All Fields: se va deschide caseta Query Properties utiliznd

butonul Properties din bara de instrumente sau executnd dublu click ntr-o zon liber a panoului superior; n linia Output All Fields se va preciza Yes; precizarea valorii Yes pentru proprietatea Output All Fields nu va determina aducerea n grila de proiectare a cmpurilor din tabela surs, dar, n momentul executrii cererii, vor fi cuprinse toatea realizrile tuturor atributelor. n mod implicit, antetul coloanelor tabelului rezultat n urma interogrii este reprezentat de numele cmpului, cu excepia cazului n care la crearea tabelei ai precizat o alt etichet prin intermediul proprietii Caption. Dac dorii afiarea n tabelul rezultat n urma interogrii a unei noi etichete pentru un cmp plasai mouse-ul n linia Field naintea numelui cmpului, tastai eticheta dorit urmat de caracterul :.
Observaie: Dup aducerea cmpurilor din tabele sau interogri pe grila de interogare sunt posibile operaii de inserare a unui cmp, tergerea unui cmp, deplasarea unui cmp ntr-o alt poziie, modificarea dimensiunilor unei coloane i modificarea numelui unui cmp. 2. Se precizeaz criteriul de selecie (n mod implicit se returneaz realizrile tuturor tuplurilor pentru cmpurile specificate) prin introducerea unei expresii Access valide n rndul Criteria (eventual i rndul OR). Introducerea expresiei Access se face prin tastare sau se construiete prin intermediul generatorului de expresii (Expression Builder) a crui fereastr se deschide selectnd opiunea Build a meniului pe care l activai printr-un click dreapta de mouse n rndul Field. 3. Se precizeaz, dac este necesar, cmpul/cmpurile dup care se dorete o eventual sortare i sensul acesteia n linia Sort.

Nchil Ctlin laborator Access

53

3. Microsoft Access Interogri (Queries)

n figura 3.6. se exemplific o interogare cu date luate din tabelele Produse, Comenzi i Clieni asociate anterior, iar n figura 3.7. se afieaz rezultatele interogrii.

Fig. 3.6. Interogare folosind date din mai multe tabele

Fig. 3.7. Rezultatele interogrii

Pentru ca rezultatele interogrii s fie interpretate mai uor, utilizatorul poate s cear ordonarea nregistrrilor n funcie de valorile anumitor cmpuri. Sortarea este posibil pe cmpurile numerice, de tip text i data calendaristic. Se pot specifica sortri pe mai multe cmpuri din cadrul aceleiai interogri. Pentru exemplificare s considerm c utilizatorul dorete s vad nomenclatorul de produse (tabela Produse) ordonat cresctor pe cmpul den_produs. Va construi interogarea din figura 3.8..

Nchil Ctlin laborator Access

54

3. Microsoft Access Interogri (Queries)

Fig. 3.8. Sortarea cresctoare a datelor din tabel

Aplicaia 3.2: Fie o baz de date constituit pentru o firm care i comercializeaz produsele prin intermediul potei, pe baza comenzilor primite de la clieni. Firma dispune de un nomenclator al produselor fabricate n care sunt consemnate denumirea fiecrui produs, unitatea de msur i categoria de calitate aferent. Clienii firmei sunt persoane fizice crora li se solicit numele, adresa, codul potal i numrul de telefon. Comenzile primite sunt numerotate secvenial, pe fiecare consemnndu-se data recepionrii comenzii i termenul de livrare (exprimat n zile) iar, n momentul onorrii comenzii, se completeaz data la care s-a efectuat livrarea. Pe o comand pot fi solicitate unul sau mai multe produse n diferite cantiti. Preurile practicate de firm sunt negociabile i variabile n timp.

Modelul propus pentru baza de date este prezentat n figura 3.9:

Fig. 3.9. Relaiile ntre tabele

Nchil Ctlin laborator Access

55

3. Microsoft Access Interogri (Queries)

Fig. 3.10. Proiectarea unei interogri de selecie

n figura 3.10 se prezint modul n care s-a definit interogarea de selecie prin care se realizeaz:
afiarea numelui clienilor cu adresa n Ploieti sau Braov (primul criteriu de selecie), numrului comenzii trimise i data convenit a livrrii care trebuie s fie anterioar datei curente (cel de al doilea criteriu de selecie precizat).

Afiarea se realizeaz n ordinea alfabetic dup numele clienilor. Sursa de date a cererii este reprezentat de dou tabele ale bazei de date: Clieni i respectiv Comenzi. Pentru a evita repetarea restriciei puse asupra cmpului data_livrare pe mai multe rnduri (pentru fiecare ora) s-ar fi putut apela la soluia scrierii tuturor localitilor pe acelai rnd i utilizrii operatorului OR (figura 3.11.).

Fig. 3.11. Utilizarea operatorului OR

Nchil Ctlin laborator Access

56

3. Microsoft Access Interogri (Queries) n figura 3.12 este redat rezultatul executrii cererii anterior proiectate.

Fig. 3.12. Rezultatul interogrii de selecie

3.2.2. Modificarea unei cereri


Pentru a modifica o cerere, aceasta trebuie deschis n modul Design. Modificrile se pot realiza insernd noi coloane sau tergnd coloane deja definite.
Inserarea unei noi coloane se efectueaz selectnd coloana naintea creia dorim s introducem noua coloan i alegnd opiunea Column din meniul Insert. tergerea unei coloane din grila de proiectare se realizeaz selectnd coloana i acionnd tasta Delete sau butonul Cut din bara de instrumente sau executnd opiunea Delete Column din meniul Edit.

Modificarea unei cereri poate presupune i extinderea sursei de date (utiliznd fereastra Show Table). De asemenea modificarea cererii poate implica i precizarea unor formate de afiare asociate unor coloane pentru ca datele returnate s fie uor de parcurs (pentru precizarea unui anumit format de afiare se va plasa cursorul mouse-ului n coloana dorit i se va executa clik dreapta, selectndu-se din meniul contextual opiunea Properties. Va fi afiat caseta Field Properties n care se va putea specifica numrul de zecimale dorit sau un format de afiare pentru cmpul respectiv. Pe lng modurile de vizualizare Design i Datasheet Access permite utilizatorilor vizualizarea i modificarea codului SQL al interogrilor. Pentru aceasta se va apela din meniul View opiunea SQL View.

3.2.3. Utilizarea operatorilor


Pentru a construi expresii pe rndul Criteria se utilizeaz operatorii: aritmetici: adunare (+); scdere (), nmulire (*), mprire (/), ridicare la putere (^), mprirea a dou numere cu returnarea unui ntreg (\), mprirea a dou numere cu returnarea restului mpririi (MOD). de comparaie: <, >, =, <=, >=. Aceti operatori returneaz valorile logice True i False. Excepie reprezint cazul n care unul dintre operatori are valoarea NULL i deci orice comparare va returna valoarea NULL.

Nchil Ctlin laborator Access

57

3. Microsoft Access Interogri (Queries) asociai operatorilor de comparare:


IS NULL, IS NOT NULL o valoare NULL (cmp necompletat) nu este nici TRUE nici FALSE. nregistrrile care au valoarea NULL n cmpurile selectate nu apar ca rezultate ale interogrii; LIKE se folosete mpreun cu caracterele de nlocuire * i ? pentru a stabili dac o valoare ncepe cu unul sau mai multe caractere; caracterul * poate nlocui orice numr de caractere; caracterul ? nlocuiete numai un caracter; IN stabilete dac o valoare este cuprins ntr-o list; BETWEEN stabilete dac o valoare aparine unui interval specificat.

logici:
NOT negaia; AND pentru conjuncia a dou valori; OR pentru disjuncia a dou valori; XOR pentru disjuncia exclusiv a dou valori; Eqv verific echivalena a dou valori.

de concatenare a irurilor de caractere: + i &. de identificare:! i . . Aceste dou caractere sunt utilizate ca separatori, astfel:
Combin numele coleciilor de obiecte i numele obiectelor pentru a selecta un anumit obiect sau proprietate a lui: Forms! [Clieni] Identific atribute aparinnd unei tabele: Clieni! [Localitate] Deosebete numele obiectelor de cele ale proprietilor: TextBox1.FontSize=12 unde: TextBox reprezint un obiect de control iar FontSize reprezint o proprietate (stabilete dimensiunea fontului)

constante: constantele utilizate n construirea expresiilor Access pot fi de natur


numeric (ex: 1200,5,0); text (123, Toma Ion, str. Viilor 15); dat calendaristic (ex: #12.31.01# ceea ce indic data de 31 decembrie 2001).

Identificatorii: sunt nume de obiecte Access (tabele, atribute, formulare, etc.)


prin intermediul identificatorilor se pot prelua valori pentru definirea criteriilor de pe formulare create anterior (exemplul din figura 3.13 prezint o interogare ce va afia comenzile i data comenzilor pentru un produs a crui nume a fost selectat ntr-o caseta de tip ListBox, numit ListaProduse, pe un formular numit Selecie (interogarea poate fi executat doar dac formularul este deschis)).

Nchil Ctlin laborator Access

58

3. Microsoft Access Interogri (Queries)

Fig. 3.13. Preluarea unei valori de pe un formular n cmpul de criterii

Funciile: pot fi de natur:


Dat calendaristic : Date(), Month(), Year (), etc.

Exemple: Date() returneaz data curent;


Month(Date()) returneaz numrul lunii calendaristice curente. Year(Date()) returneaz anul curent. De tip text: Len() returneaz lungimea unui ir; Trim() elimin spaiile de la nceputul i de la sfritul unui ir; Left() returneaz primele n caractere de la nceputul unui ir, etc. Matematice i trigonometrice: ABS() returneaz valoarea absolut a unui numr; INT() returneaz partea ntreag dintr-o valoare numeric, ROUND() rotunjete o valoare cu un anumit numr de zecimale; SUM() calculeaz suma; AVG() calculeaz media, etc. Financiare: PV() returneaz valoarea actual a unei anuiti pltite n rate periodice egale; SLN() returneaz valoarea amortizrii unui mijloc fix dup o anumit perioad (amortizare liniar) etc. Funcii diverse: ISNUMERIC(), ISNULL(), etc. Reguli de formare a expresiilor introduse pe cmpul Criteria: datele de tip Text se tasteaz ca atare, iar Access adaug automat ghilimele; pentru datele de tip Number i Currency se tasteaz cifrele i eventual simbolul zecimal, fr simbolul monetar sau separatorul de mii; referirile la numele de cmpuri trebuie incluse ntre paranteze drepte, altfel se adaug automat ghilimele, considerndu-se text; formatul internaional de dat calendaristic este mm/dd/yy. Access adaug automat delimitatorul # ; Access adaug automat IS la referirile care implic valoarea NULL.

Nchil Ctlin laborator Access

59

3. Microsoft Access Interogri (Queries)

Pe rndul Criteria din grila de interogare se poate introduce un singur criteriu de selecie sub un cmp sau mai multe criterii sub cmpuri diferite. Dac criteriile de selecie se introduc pe un singur rnd Criteria, se extrag nregistrrile care ndeplinesc toate condiiile (operatorul logic AND), iar dac se introduc pe rnduri diferite se includ n rspuns doar nregistrrile care ndeplinesc oricare dintre criteriile menionate (operatorul logic OR).
Aplicaia 3.3: Pentru exemplificare se utilizeaz tabela Telefon care cuprinde populaia din Bucureti cu sau fr telefon. Tabela are urmtoarele cmpuri: cod_persoan, nume, prenume, strada, nr, sector, nr_telefon, data_instalrii

Se cere:
1. Realizarea unei interogri pentru obinerea unei liste cu persoanele care au numrul de telefon care ncepe cu 7 (figura 3.14.)

Sub cmpul nr_telefon pe rndul Criteria se scrie expresia: LIKE 7*

Fig. 3.14. Interogarea abonai cu numrul de telefon care ncepe cu 7 2. Realizarea unei interogri pentru obinerea unei liste cu abonaii care au numrul de telefon care nu ncepe cu 7.

Sub cmpul nr_telefon pe rndul Criteria se scrie expresia: NOT LIKE 7*


3. Realizarea unei interogri pentru obinerea unei liste cu abonaii care nu au telefon.

Sub cmpul nr_telefon pe rndul Criteria se scrie expresia: IS NULL


4. Realizarea unei interogri pentru obinerea unei liste cu persoanele din sectorul 6 care au numrul de telefon care ncepe cu 7 sau a celor care nu au telefon.

Nchil Ctlin laborator Access

60

3. Microsoft Access Interogri (Queries) Pe rndul Criteria sub cmpul sector se scrie 6, iar sub cmpul nr_telefon se scrie expresia: IS NULL OR LIKE 7 *
5. Lista telefoanelor instalate ntre 1 Ianuarie 2004 i 31 Decembrie 2004 se obine printr-o interogare n care pe rndul Criteria sub data_instalarii se scrie expresia: LIKE *.*.2004 6. Lista telefoanelor instalate n luna Mai 2004 se obine dac sub cmpul data_instalarii pe rndul Criteria se scrie expresia: LIKE *.05.2004. 7. Interogarea pentru obinerea listei persoanelor crora li s-a instalat telefon n luna 12, 2004 va cuprinde sub cmpul data_instalarii expresia: >= # 01.12.2004 # And <= # 31.12.2004 # 8. Pentru a obine o list a persoanelor din sectoarele 1, 2 i 3 care nu au telefon instalat, se va realiza interogarea: sub cmpul sector se scrie expresia: IN (1,2,3) iar sub cmpul nr_telefon se scrie expresia: IS NULL. 9. Pentru a obine o list cu telefoanele instalate n ultimul trimestru al anului 2004, se va realiza interogarea: sub cmpul data_instalarii se scrie expresia:

Between #01.10.2004# And #31.12.2004#

3.2.4. Cmpuri calculate n interogri de selecie


Interogrile de selecie pot cuprinde i cmpuri calculate. Aceste cmpuri returneaz, la executarea interogrii, valoarea expresiilor Access asociate lor.
Pentru a crea un cmp calculat trebuie avute n vedere urmtoarele:

se introduce n celula Field a grilei de interogare un nume de coloan (dac nu se specific se atribuie numele implicit Expr l, Expr2, ...), urmat de semnul : i formula de calcul, astfel: stoc_final: [stoc_initial] + [Cant_intrata] - [Cant_iesita] cmpuri calculate pot fi create i pentru text (concatenarea cmpurilor): Numepren: [Nume] & & [ Prenume] cmpurile calculate pot fi sortate, li se pot aplica criterii de selecie sau se pot totaliza. n cmpurile calculate se poate utiliza funcia IIF cu urmtoarea sintax: IIF ( <expresie>, valoare 1, valoare2) unde:
<expresie> este o expresie a crei valoare de adevr este evaluat pentru fiecare nregistrare; valoare 1 este valoarea returnat dac expresie este adevrat; valoare2 este valoarea returnat dac expresie este fals.

Pentru a aduga un cmp calculat ntr-o interogare se tasteaz numele acestuia ntr-o nou coloan din grila Query Design, se adaug dou puncte i apoi se completeaz expresia dorit.

Nchil Ctlin laborator Access

61

3. Microsoft Access Interogri (Queries)

Exemplu: Interogarea din figura 3.15 (pentru aplicaia 3.2) calculeaz data limit pn la care trebuie onorat fiecare comand.

Fig. 3.15. Exemplu de cmp calculat ntr-o interogare

Expresiile pot fi utilizate ntr-o interogare de selecie fie drept criterii de selecie fie pentru a calcula anumii indicatori. Expresia poate fi tastat n rndul Field al unei coloane (exemplul din figura 3.15) sau poate fi construit cu ajutorul generatorului de expresii (a crui fereastr se activeaz efectund click dreapta n linia Field i selectnd din mediul contextual opiunea Build). Exemplul din figura 3.16 prezint utilizarea generatorului de expresii pentru a calcula valoarea fiecrui produs de pe o comand.

Fig. 3.16. Fereastra Expression Builder

Nchil Ctlin laborator Access

62

3. Microsoft Access Interogri (Queries)

Fig. 3.17. Interogarea

Fig. 3.18. Rezultatul interogrii

Nchil Ctlin laborator Access

63

3. Microsoft Access Interogri (Queries)

Aplicaia 3.4: Pe baza tabelelor: nrcmd (nr_comanda, data, cod_furnizor, cod_gestiune, cod_factura) material (nr_comanda, cod_material, cant_aprov, pret_aprov),

s se realizeze o interogare pentru calcularea valorii materialelor, a taxei pe valoarea adugat i valoarea total (figura 3.19.)

Fig. 3.19. Cmpuri calculate

Fig. 3.20. Rezultatul interogrii

Nchil Ctlin laborator Access

64

3. Microsoft Access Interogri (Queries)

Aplicaia 3.5: S se creeze tabelul Studeni cu urmtoarea structur:

Nume cmp (Field name) ID Nume Prenume Tip student

Tip de date (Data type)

General

AutoNumber Text Text Lookup Wizard Text Lookup Wizard Text Lookup Wizard Number Number Number Number Validation rule Validation text Validation rule Validation text Validation rule Validation text "student" Or "masterand" Or "doctorand" eroare "Inginerie" Or "Stiinte" Or "Economie" Or "Litere" eroare 1 Or 2 Or 3 Or 4 eroare

Facultatea

An studiu Nota 1 Nota 2 Nota 3

1. s se creeze o interogare care s afieze doar numele i prenumele studenilor afiai n ordine alfabetic 2. s se creeze o interogare care s calculeze media studenilor i care s afieze doar numele, prenumele i media acestora precum i dac au fost admii sau nu.

Nchil Ctlin laborator Access

65

3. Microsoft Access Interogri (Queries)

1. s se creeze o interogare care s afieze doar numele i prenumele studenilor afiai n ordine alfabetic

Se de click pe butonul Queries (Interogri) din fereastra Database: i se alege opiunea Create query in Design view. Fereastra Show Table conine tabelele (afiare implicit), interogrile sau combinaiile dintre acestea, de unde utilizatorul alege sursa de date pentru interogare curent (figura 3.21.).

Fig. 3.21.

Selectm Studeni apoi executm click pe Add. Se aduc cmpurile din tabel pe grila de interogare ntr-o ordine dorit de utilizator. Sunt mai multe posibiliti pentru a aduce cmpurile pe grila de interogare. Ne vom referi numai la dou dintre acestea:
pentru a aduce cmp cu cmp pe gril, se execut click pe cmpul din tabel i se trage pe grila de interogare, sau se execut dublu click pe cmp, acesta adugndu-se automat n gril; pentru a aduce toate cmpurile tabelului deodat, se execut dublu click pe numele tabelului i se trag cmpurile pe gril.

Aducem cmpurile Nume, Prenume. La linia Sort alegem tipul de sortare ascendent. Interogarea va arta ca n figura 3.22.. nchidem interogarea de la butonul x, se salveaz sub numele Interogarea 1, apoi vizualizm rezultatul prin deschiderea acesteia din fereastra Database, opiunea Queries (Interogri). Rezultatul va fi conform figurii 3.23..

Nchil Ctlin laborator Access

66

3. Microsoft Access Interogri (Queries)

Fig. 3.22. Interogarea

Fig. 3.23. Rezultatul interogrii

Nchil Ctlin laborator Access

67

3. Microsoft Access Interogri (Queries)

2. S se creeze o interogare care s calculeze media studenilor i care s afieze doar numele, prenumele i media acestora precum i dac au fost admii sau nu.

Se de click pe butonul Queries (Interogri) din fereastra Database: i se alege opiunea Create query in Design view. Aducem cmpurile Nume, Prenume. Completm urmtoarele dou coloane din gril cu:
Medie: ([Nota 1]+[Nota 2]+[Nota 3])/3 Rezultat: IIf([Medie]>=5;"admis";"respins")

La linia Sort alegem tipul de sortare ascendent. Interogarea va arta ca n figura 3.24.. nchidem interogarea de la butonul x, se salveaz sub numele Interogarea 2, apoi vizualizm rezultatul prin deschiderea acesteia din fereastra Database, opiunea Queries (Interogri) (figura 3.29).

Fig. 3.24. Interogarea

Nchil Ctlin laborator Access

68

3. Microsoft Access Interogri (Queries)

Fig. 3.25. Rezultatul interogrii

3.2.5. Utilizarea parametrilor


Interogrile de selecie prezentate pn n acest moment returneaz ntotdeauna nregistrrile din tabelele surs care corespund unei anumite cereri fixe: clienii trebuie s aib domiciliul n Bucureti sau Ploieti iar data livrrii s fie anterioare datei curente (vezi exemplul de interogare de selecie prezentat ntr-un paragraf anterior). De multe ori ns, ar fi util o interogare al crei criteriu de selecie s poat fi precizat la nivel general i particularizat de utilizator n funcie de necesitile sale de informare (precizndu-se concret ce realizri ale atributului sunt cutate) chiar n momentul execuiei cererii. O astfel de interogare se caracterizeaz prin faptul c n grila Design, pe coloana dorit, n linia Criteria, se va preciza ntre paranteze drepte un mesaj ce urmeaz a fi afiat la executarea cererii permind ca utilizatorul s introduc criteriul de selecie dorit. Parametrii pot fi utilizai nu doar n rndul de criterii, ci i n formulele cmpurilor calculate, dac se dorete introducerea unui termen variabil n expresii. Exemplul din figura 3.26. prezint o cerere care va solicita utilizatorului numrul comenzii ce se dorete a fi afiat i procentul ce va fi folosit pentru a calcula cmpul Reducere. Cnd se creeaz i salveaz o interogare este posibil s nu se cunoasc valorile pentru un cmp. Se va crea un parametru pentru interogare (un nume de cmp diferit de numele cmpurilor tabelei sau interogrii, ncadrat de paranteze drepte). La execuia interogrii apare o caset de dialog prin care se cere valoarea pentru cmpul parametru.

Nchil Ctlin laborator Access

69

3. Microsoft Access Interogri (Queries)

Fig. 3.26. Interogare cu parametri Aplicaia 3.6: Pe baza unei tabele existente cu structura: studenti2 (ID, Nume, Prenume, Tip student, Facultatea, Grupa, An studiu, Media)

s se realizeze o interogare parametrizat care s listeze studenii unei grupe dintr-o facultate, n ordine alfabetic (figura 3.27.). Rezultatul este prezentat n figura 3.28..

Fig. 3.27. Interogare cu parametri

Nchil Ctlin laborator Access

70

3. Microsoft Access Interogri (Queries)

Fig. 3.28. Rezultatul interogrii

Aplicaia 3.7: S se obin o lis a intrrilor de materiale pentru o anumit perioad. Pentru aceasta se va realiza o interogare parametrizat (figura 3.29) pe baza tabelelor: comenzi (nrnrcd, datanrcd, codfurnizor, codgestiune, codfactura, datafact) material (nrnrcd, codmaterial, cantaprov, pretaprov)

Fig. 3.29. Tabelele comenzi i material

Nchil Ctlin laborator Access

71

3. Microsoft Access Interogri (Queries)

Fig. 3.30. Interogarea Intrari

Rezultatele interogrii pentru datele 03.03.2004 i 14.04.2004 sunt redate n figura 3.31..

Fig. 3.31. Rezultatul interogrii Aplicaia 3.8: S se obin o list a intrrilor de materiale exprimate n dolari. Interogarea (figura 3.32.) va utiliza ca surs de date tabela material.

Pentru a afia datele din cmpul valoare cu semnul (figura 3.33.) trebuie parametrizat proprietatea Format, astfel:
se selecteaz din grila de interogare cmpul valoare; se afieaz fereastra Field Properties; pentru proprietatea Format se selecteaz formatul monetar dorit (Currency).

Nchil Ctlin laborator Access

72

3. Microsoft Access Interogri (Queries)

Fig. 3.32. Interogarea Valuta

Fig. 3.33. Rezultatul interogrii Valuta

3.2.6. Interogri de sintetizare a datelor


Pe lng posibilitatea de a utiliza expresii pentru a aduga cmpuri calculate n interogri, Access permite utilizatorilor realizarea unor cereri prin intermediul crora se pot aplica funcii unor nregistrri grupate dup criterii prestabilite. Prin intermediul acestor query cu rol de sintetizare a datelor se pot construi cu uurin cereri care s returneze totalul, media, minimul sau maximul unor grupuri de tupluri.

Nchil Ctlin laborator Access

73

3. Microsoft Access Interogri (Queries)

Pentru a realiza o cerere de sintetizare a datelor se va elabora interogarea de selecie aducndu-se n grila Query Design cmpurile necesare i adugndu-se eventualele cmpuri calculate, dup care se va apsa butonul Totals din bara de instrumente. Ca rezultat al acestei operaii, n grila Query Design, va fi disponibil un nou rnd intitulat Total. n mod implicit, gruparea datelor dup valorile cmpului toate coloanele vor avea selectat n linia total opiunea Group By (n cazul n care mai multe coloane au selectat n linia Total opiunea Group By, gruparea se va face nti dup primul cmp din stnga, apoi dup al doilea, .a.m.d.). Se va pstra opiunea Group By n dreptul cmpurilor de grupare, urmnd ca pentru celelalte cmpuri s fie selectat din lista de selecie funcia dorit (figura 3.34.).
Fig. 3.34.

Lista conine nou funcii de tip agregat (funcii ce permit calculul unor valori totalizatoare la nivel de grup) ce sunt prezentate n tabelul urmtor:
Funcia AVG COUNT FIRST LAST MAX MIN STDEV SUM VAR Returneaz Tipul de cmpuri pentru care se poate aplica

Media aritmetic Numrul total de valori Prima valoare Ultima valoare Valoarea maxim Valoarea minim Deviaia standard a valorilor Suma valorilor Varianta valorilor

Number, Date, Currency, AutoNumber Toate tipurile Toate tipurile Toate tipurile Text, Number, Date, Currency, AutoNumber Text, Number, Date, Currency, AutoNumber Number, Date, Currency, AutoNumber Number, Date, Currency, AutoNumber Number, Date, Currency, AutoNumber

Pe lng aceste funcii mai sunt disponibile opiunile Where i Expression. Opiunea Where se va utiliza dac un cmp trebuie utilizat pentru a preciza anumite criterii de selecie, dar nu se dorete efectuarea gruprii dup cmpul respectiv. Opiunea Expression se va utiliza pentru cmpurile calculate ce returneaz un singur rezultat la nivelul grupului.

Nchil Ctlin laborator Access

74

3. Microsoft Access Interogri (Queries)

Aplicaia 3.9: Interogarea din figura 3.35 calculeaz numrul de comenzi efectuate de ctre fiecare client n ultimele 60 zile.

Interogarea din figura 3.37 calculeaz valoarea total a fiecrei comenzi prin intermediul funciei Sum i, ntr-un cmp calculat ce utilizeaz funcia IIF, determin valoarea unei eventuale reduceri pentru respectiva comand (reducerea n sum de 25% din valoarea comenzii) se acord doar dac comanda depete 1.000.000 lei.

Fig. 3.35. Interogare totalizatoare

Fig. 3.36. Rezultatul interogrii

Se va observa alegerea cmpului cod_client pentru efectuarea gruprii (deoarece acest cmp are valori unice), a funciei First pentru a afia numele clientului i a opiunii Where pentru a preciza criteriul de selecie (ultimele 60 zile). Dac n loc de Where s-ar fi pstrat opiunea Group By s-ar fi produs gruparea dup datele comenzilor i un client ar fi aprut n lista de rezultate de mai multe ori (pentru fiecare zi n care a efectuat o comand).

Nchil Ctlin laborator Access

75

3. Microsoft Access Interogri (Queries)

Dac s-ar fi selectat Group By i pentru cmpul nume_client rezultatele interogrii ar fi fost identice dar gruparea dup cel de-al doilea cmp ar fi fost inutil din moment ce codurile clienilor sunt unice. Trebuie remarcat c un cmp pentru care a fost selectat opiunea Where nu mai poate figura n rezultatele cererii. Dup cum se poate vedea n figura 3.36 cmpurile rezultate ca urmare a aplicrii funciilor agregat poart nume ce includ ca prefix numele funciei (CountOf, FirstOf). Pentru a evita aceast situaie se poate tasta in linia Field numele dorit urmat de dou puncte (la fel ca n cazul cmpurilor calculate).

Fig. 3.37. Interogare totalizatoare

Fig. 3.38. Rezultatul interogrii

Nchil Ctlin laborator Access

76

3. Microsoft Access Interogri (Queries)

Aplicaia 3.10: Se dau tabelele: comenzi (nrnrcd, datanrcd, codfurnizor, codgestiune, codfactura, datafact) material (nrnrcd, codmaterial, cantaprov, pretaprov)

Fig. 3.39. Tabelele bazei de date S se obin lista totalurilor valorice, inclusiv TVA, pentru materialele intrate pe fiecare magazie (figurile 3.40 i 3.41). S se obin lista cu preurile maxim, minim i mediu pentru intrrile de materiale pe coduri (figurile 3.42 i 3.43). S se obin totalul valoric al materialelor aprovizionate de la un furnizor (figurile 3.44 i 3.45). S se afieze numrul intrrilor de materiale de la furnizor (numrul nregistrrilor) pe fiecare cod de materiale (figurile 3.46 i 3.47).

Nchil Ctlin laborator Access

77

3. Microsoft Access Interogri (Queries)

Fig. 3.40. Interogarea care utilizeaz funcia SUM

Fig. 3.41. Lista cu totalurile valorice pe gestiuni

Fig. 3.42. Interogarea

Nchil Ctlin laborator Access

78

3. Microsoft Access Interogri (Queries)

Fig. 3.43. Rezultatul interogrii

Fig. 3.44. Interogarea cu valoarea materialelor aprovizionate de la un furnizor

Fig. 3.45. Tabelul cu valoarea materialelor aprovizionate de la un furnizor

Nchil Ctlin laborator Access

79

3. Microsoft Access Interogri (Queries)

Fig. 3.46. Interogarea pentru numrarea nregistrrilor pe coduri de materiale

Fig. 3.47. Rezultatul interogrii

Nchil Ctlin laborator Access

80

3. Microsoft Access Interogri (Queries)

Aplicaia 3.11: Se dau tabelele: student (cod_student, Nume, Prenume, Grupa, Facultatea) curs (cod_curs, denumire) prof (cod_curs, cod_student, nota)

Fig. 3.48. Tabelele bazei de date

S se realizeze o interogare pentru obinerea mediei generale a grupei 200 pentru studenii care au medii de cel puin 5. Studenii au un numr de 6 discipline. Rezolvarea problemei se va realiza n dou etape:
se va face o interogare de tip total pentru calculul mediei fiecrui student de la toate grupele i se vor afia cele mai mari sau egale cu 5 interogarea Medie (figura 3.49.); se va face o interogare pe baza interogrii precedente, Medie, i a tabelei Student, se vor calcula mediile generale pe fiecare grup, dar va fi afiat numai grupa 200 interogarea Medie_generala (figura 3.51)

Dac se dorete afiarea mediei generale doar cu dou zecimale vom alege Properties > Format > Fixed pentru cmpul Media al interogrii Medie_generala.

Nchil Ctlin laborator Access

81

3. Microsoft Access Interogri (Queries)

Fig. 3.48. Tabelele bazei de date

Nchil Ctlin laborator Access

82

3. Microsoft Access Interogri (Queries)

Fig. 3.49. Interogarea Medie

Fig. 3.50. Rezultatul interogrii Medie

Fig. 3.51. Interogarea Medie_general

Fig. 3.52. Rezultatul interogrii Medie_general

Nchil Ctlin laborator Access

83

3. Microsoft Access Interogri (Queries)

3.2.7. Extragerea subcmpurilor dintr-un cmp


Aplicaia 3.12: Fie tabelul: clienti (cod_client, nume_client, tara, localitate, adresa, cod_potal, telefon).

Interogarea din figura 3.53 extrage din cmpul ara primele trei caractere.

Fig. 3.53. Interogarea

Fig. 3.54. Rezultatul interogrii

Aplicaia 3.13: Se cere o list cu specificarea lunii n care materialele au fost facturate.

Pentru a extrage luna din data calendaristic se utilizeaz expresia: Trim: DatePart(m, [datafact])

Nchil Ctlin laborator Access

84

3. Microsoft Access Interogri (Queries) Pentru a extrage anul din data calendaristic se utilizeaz expresia: An: DatePart(yyyy, [datafact]) Pentru a extrage anul din data calendaristic se utilizeaz expresia: An: DatePart(yyyy, [datafact])

Fig. 3.55. Interogarea ce extrage luna din data calendaristic

Fig. 3.56. Rezultatul interogrii

Nchil Ctlin laborator Access

85

3. Microsoft Access Interogri (Queries)

Lista intrrilor de materiale cu specificarea zilei i a lunii n care au fost recepionate, se poate realiza prin interogarea din figura 3.57..

Fig. 3.57. Interogarea ce extrage ziua i luna din data calendaristic

Fig. 3.58. Rezultatul interogrii

Nchil Ctlin laborator Access

86

3. Microsoft Access Interogri (Queries)

3.3. Interogarea tip tabel ncruciat


Sunt interogri de tip total, cu deosebirea c n listele obinuite care folosesc denumirea cmpurilor ca titluri de coloane, tabelul ncruciat este un mod de a sintetiza datele ntr-o form specific. Interogrile de tip tabel ncruciat (CrossTab Query) sunt extrem de utile n scopul analizei multidimensionale a datelor permind obinerea unor situaii sintetice asemntoare tabelelor pivot consacrate de procesoarele de tabele (Microsoft Excel, Lotus 123, etc.). Practic, este posibil elaborarea unor tabele n care gruparea i ordonarea datelor se realizeaz att pe linii ct i pe coloane la intersecia crora se pot efectua calcule complexe. Pentru o interogare tabel ncruciat sunt necesare cel puin 3 cmpuri:
unul care s furnizeze valorile pentru titlurile de rnd (Row Heading), cu meniunea c se pot alege mai multe cmpuri antet de rnd; unul care s dea valorile pentru titlurile de coloane (Column Heading); un singur cmp poate fi antet de coloan; unul care s fie baz pentru calcularea valorilor sintetice de afiat la punctele de intersecie rnd coloan; aceste valori se obin, de regul, prin nsumare i numrare utiliznd funciile Sum i Count.

Etapele ce trebuie urmate pentru realizarea unei astfel de cereri de interogare sunt urmtoarele (Access dispune i de un program wizard ce permite elaborarea asistat a unor astfel de interogri):
1. Elaborarea unei interogri de selecie n modul Design View. Se vor alege tabelele ce conin datele i se vor selecta cmpurile dorite pentru afiare i eventualele cmpuri pentru care se vor impune restricii. 2. Din meniul Query se va selecta opiunea CrossTab Query ce va avea ca efect imediat afiarea liniilor Total i Crosstab n grila interogrii. 3. Se va specifica modul de agregare a datelor, respectiv funciile totalizatoare n linia Total. 4. n linia CrossTab se va opta pentru Row Heading n cazul cmpurile ce vor fi afiate pe liniile tabelului, Column Heading pentru cmpul ce va fi afiat pe vertical, i Value pentru valorile ce vor fi afiate la intersecia liniilor cu coloanele. Este permis existena mai multor cmpuri ordonate pe orizontal (Row Heading), dar a unui singur cmp Column Heading i a unui singur cmp Value.

Nchil Ctlin laborator Access

87

3. Microsoft Access Interogri (Queries)

Aplicaia 3.14: Fie tabelele cu relaiile:

Se vrea:
obinere a unei situaii ce afieaz valoarea vnzrilor realizate de firm de la nceputul anului din fiecare produs n fiecare localitate (interogarea Vnzri pe localiti); aflarea numrului de comenzi realizate de fiecare client n fiecare lun a anului (interogarea Comenzi pe lun).

Fig. 3.59. Tabelele bazei de date

Nchil Ctlin laborator Access

88

3. Microsoft Access Interogri (Queries)

Fig. 3.59. Tabelele bazei de date

Fig. 3.60. Interogare de tip tabel ncruciat

Fig. 3.61. Rezultatul interogrii

Nchil Ctlin laborator Access

89

3. Microsoft Access Interogri (Queries)

Fig. 3.62. Interogare de tip tabel ncruciat

Fig. 3.63. Rezultatul interogrii

Dup cum se poate observa, interogarea nu afieaz coloanele aferente lunilor anului n care nu s-a efectuat nici o comand. Acest aspect conduce la inconveniente n cazul n care se dorete elaborarea unui raport avnd ca surs cererea de interogare deoarece raportul presupune specificarea unui numr fix de cmpuri. O soluie pentru afiarea coloanelor chiar dac acestea nu conin valori este precizarea numelor acestora n grila de proprieti a interogrii. Pentru aceasta se va deschide interogarea n modul de proiectare i din meniul View se selecteaz opiunea Properties, specificndu-se numele coloanelor obligatorii n rndul Column Headings al ferestrei Query Properties (figura 3.64).

Nchil Ctlin laborator Access

90

3. Microsoft Access Interogri (Queries)

Fig. 3.64. Aplicaia 3.15: Fie o baz de date ce conine tabelele: material (codmaterial, denmaterial, um) stoc (codgestiune, codmaterial, stocinitial, datainitiala)

Se cere afiarea cantitilor de materiale stocate n magaziile ntreprinderilor.

Fig. 3.65. Tabelele bazei de date

Nchil Ctlin laborator Access

91

3. Microsoft Access Interogri (Queries)

Fig. 3.66. Interogarea privind stocurile de materiale pe magazii

Fig. 3.67. Rezultatul interogrii

Aplicaia 3.16: Fie o baz de date ce conine tabelul: auto (nrfactura, datafactura, beneficiar, tipauto, cant, pret)

S se realizeze o interogare cu vnzrile lunare pe tipuri auto.

Nchil Ctlin laborator Access

92

3. Microsoft Access Interogri (Queries)

Fig. 3.68. Tabelul bazei de date

Fig. 3.69. Vnzrile lunare pe tipuri auto

Fig. 3.70. Rezultatul interogrii

Nchil Ctlin laborator Access

93

3. Microsoft Access Interogri (Queries)

3.4. Interogri de aciune

Interogrile de aciune pot avea ca rezultat: Crearea de noi tabele (Make Table Query) Actualizarea datelor (Update Query) Adugarea de noi nregistrri (Append Query) tergerea nregistrrilor (Delete Query) Modul de elaborare a unei interogri tip aciune este similar celui prezentat n cazul interogrilor de selecie, presupunnd ca etap suplimentar specificarea explicit prin intermediul meniului Query a tipului de cerere dorit. Modificrile asupra bazei de date sunt efectuate doar n momentul execuiei interogrii. Este recomandat proiectarea n prealabil a cererii ca o simpl interogare de selecie i verificarea rezultatelor ce vor fi afectate deoarece nu exist posibilitatea revenirii n cazul tergerii sau modificrii eronate a nregistrrilor.

3.4.1. Interogri pentru crearea de noi tabele (Make Table Query)


Crearea de noi tabele pe baza nregistrrilor din tabelele deja existente presupune parcurgerea urmtoarelor etape:
1. Elaborarea unei interogri de selecie n modul Design View (vor fi luate n calcul doar cmpurile ce dorim s fac parte din structura noii tabele, iar, n cazul n care sunt necesare i alte cmpuri pentru aplicarea unor criterii, acestea nu vor fi marcate n linia Show a grilei QBE). 2. Apelarea din meniul Query a opiunii Make Table Query i specificarea n casete Make Table a numelui noii tabele (se poate opta pentru crearea noii tabele ntr-o alt baz de date bifnd opiunea Another Database i specificnd numele fiierului). 3. Lansarea n execuie a interogrii.

Tabela rezultat va moteni doar tipurile de date i dimensiunile cmpurilor din tabelele surs, nu i cheia primar sau eventualele proprieti la nivel de cmp ori tabel. Exemplul urmtor ilustreaz crearea unei tabele (clieni 2 pentru aplicaiile 3.2, 3.9) ce va conine codurile, numele i telefoanele clienilor din afara rii (figura 3.71). Exist posibilitatea generrii unor tabele care s conin cmpuri ce nu exist n tabelele surs (cmpuri calculate). Un exemplu n acest sens este prezentat n figura 3.72 i reprezint modul de obinere a unei tabele n care sunt evideniate cantitile comandate din fiecare produs.

Nchil Ctlin laborator Access

94

3. Microsoft Access Interogri (Queries)

Fig. 3.71. Interogarea Make Table Query

Fig. 3.72.

n cazul executrii repetate a unei astfel de interogri, sau atunci cnd se specific n caseta Make Table numele unei tabele deja existente, vechea tabel cu acelai nume va fi tears naintea generrii celei noi.

Nchil Ctlin laborator Access

95

3. Microsoft Access Interogri (Queries)

3.4.2. Interogri pentru actualizarea datelor (Update Query)


Acest tip de interogri permit modificarea valorilor datelor din unul sau mai multe cmpuri ale nregistrrilor ce satisfac restriciile impuse de utilizator. Pentru a realiza o interogare de tip Update este necesar selectarea n modul Design View a cmpurilor ce vor fi actualizate i, eventual, a celor ce fac obiectul restriciilor, dup care se va apela din meniul Query opiunea Update Query. Ca rezultat al acestei operaii n grila QBE va fi disponibil linia Update To n care se va putea completa formula de calcul sau valoarea dorit pentru actualizare. Pentru exemplificare (figura 3.73) presupunem c, n urma renegocierii termenelor, s-a hotrt amnarea livrrilor ctre clientul SQL SRL cu 5 zile. Modificarea se va produce evident doar n cazul comenzilor care nu au fost nc expediate. Rezultatul este prezentat n figura 3.74.

Fig. 3.73. Interogarea Update Query

Se remarc notaia ntre paranteze drepte a denumirilor de cmpuri, chiar dac acestea nu conin spaii. n cadrul interogrilor Update nu sunt admise modificri asupra cmpurilor cheie primar sau modificri ce ar putea conduce la nerespectarea restriciilor de integritate. O situaie ce ar putea genera erori survine atunci cnd, n cazul cmpurilor de tip text, valoarea rezultat depete lungimea cmpului din tabel. n acest caz valoarea va fi trunchiat din partea dreapt.

Nchil Ctlin laborator Access

96

3. Microsoft Access Interogri (Queries)

Tabela comenzi nainte de update


Fig. 3.74.

Tabela comenzi dup de update

3.4.3. Interogri pentru adugarea de nregistrri (Append Query)


Interogrile pentru adugare ofer utilizatorilor posibilitatea inserrii de noi nregistrri n tabel pornind de la nregistrrile existente. Pentru a realiza o interogare de tip Append este necesar parcurgerea urmtoarelor etape:
1. Elaborarea unei interogri de selecie n modul Design View. Se va alege tabela ce conine datele i vor fi luate n calcul doar cmpurile ce conin valorile ce vor fi adugate, iar, n cazul n care se dorete aplicarea unor criterii de selecie a acestora, se vor aduga cmpurile de restricionat. 2. Se vor tasta eventualele condiii n linia de criterii a interogrii. 3. Din meniul Query se va selecta opiunea Append Query ce va conduce la afiarea ferestrei Append n care se va selecta numele tabelei n care dorim adugarea. 4. Transformarea interogrii de selecie ntr-o interogare de adugare are ca efect apariia rndului Append To n fereastra de proiectare a interogrii. n acest rnd se va specifica pentru fiecare cmp din tabela ce conine datele denumirea cmpului corespondent din tabela unde vor fi adugate.

Pentru exemplificare vom presupune c dorim adugarea n tabela clieni 2 (ce conine n momentul actual doar clienii din afara rii) a tuturor clienilor din tabele clieni ce nu au sediul n Bucureti (figura 3.74). Denumirile cmpurilor din linia Append o a grilei QBE sunt completate automat doar n cazul n care acestea coincid n tabela sursa cu cele din tabela destinaie.

Nchil Ctlin laborator Access

97

3. Microsoft Access Interogri (Queries)

Fig. 3.75. Interogarea Append Query

3.4.4. Interogri pentru tergerea de nregistrri (Delete Query)


Interogrile aciune de tip Delete ofer posibilitatea eliminrii mai multor nregistrri din tabele pe baza unor criterii impuse de utilizator.. Aciunea interogrilor de tergere acompaniat de opiunea de tergere n cascad configurat n fereastra Relationships poate conduce la tergerea simultan a datelor din mai multe tabele. Pentru a realiza o interogare de tergere se elaboreaz n mod normal o cerere selectndu-se cmpurile dorite i impunndu-se restriciile necesare dup care se apeleaz din meniul Query opiunea Delete. Exemplul urmtor prezint modalitatea n care se pot terge din baza de date toate comenzile efectuate dup data de 9 februarie de clienii ce au codurile 2 sau 3 (figura 3.76). Este evident c interogarea nu va putea fi executat n cazul n care tergerea unor nregistrri n tabela Comenzi ar conduce la nclcarea regulilor de integritate a bazei de date (relaia ntre tabela Comenzi i Coninut comand trebuie s accepte tergerea n cascad).

Nchil Ctlin laborator Access

98

3. Microsoft Access Interogri (Queries)

Fig. 3.76. Interogarea Delete Query

Fig. 3.77. Tabela comenzi nainte de delete

Fig. 3.77. Tabela comenzi dup delete

Nchil Ctlin laborator Access

99

3. Microsoft Access Interogri (Queries)

Aplicaia 3.17: Fie o baz de date ce conine tabelele:

Fig. 3.78. Tabelele bazei de date 1. S se creeze o nou tabel (gestiune) pentru un cod de gestiune precizat de utilizator n timpul execuiei i care s conin cmpurile: codgestiune (comenzi), nrnrcd (material_apr), codmaterial (material_apr), denmaterial, cantaprov, pretaprov (figura3.79). 2. n tabela gestiune creat anterior, s se mai adauge nregistrrile altei gestiuni. Interogarea va avea ca surs de date tabelele material, nrcd, material_apr (figura 3.81). 3. S se tearg nregistrrile referitoare la o gestiune din tabela gestiune rezultat din interogarea de la punctul doi (figura 3.83). 4. S se modifice pretaprov pentru un material precizat n timpul execuiei (se micoreaz preul cu 10%).

Nchil Ctlin laborator Access

100

3. Microsoft Access Interogri (Queries)

Fig. 3.79. Interogarea Make Table Query

Fig. 3.80. Rezultatul interogrii tabela gestiune

Fig. 3.81. Interogarea Append Query

Nchil Ctlin laborator Access

101

3. Microsoft Access Interogri (Queries)

Fig. 3.82. Rezultatul interogrii tabela gestiune

Fig. 3.83. Interogarea Delete Query

Fig. 3.84. Interogarea Update Query

Nchil Ctlin laborator Access

102

3. Microsoft Access Interogri (Queries)

Fig. 3.84. Rezultatul interogrii Update Query dup ce s-a introdus codmaterial =1000

Nchil Ctlin laborator Access

103

4. Formulare

4. Microsoft Access Formulare (Forms)


4.1. Generaliti
Access pune la dispoziia proiectantului o serie de faciliti n vederea crerii unui formular. Astfel se poate alege ntre:
generarea automat a unor formulare predefinite (AutoForm: Columnar, Tabular, Datasheet, PivotTable, Pivotchart); proiectarea asistat, caz n care utilizatorul este ndrumat de ctre o serie de asisteni (Wizards: Form Wizard, Chart Wizard, PivotTable Wizard).

Pentru obinerea unor machete mai complexe, utilizarea asistenilor nu este suficient, proiectantul fiind nevoit s aduc modificri formularelor generate de Access. Etapele necesare crerii unui formular sunt urmtoarele:
1. Se acioneaz butonul New din fereastra bazei de date pentru activarea asistentului New Form (figura 4.1.); 2. Se opteaz pentru una din variantele: Design View crearea formularului cade n sarcina exclusiv a utilizatorului; Form Wizard utilizatorul va fi asistat la crearea formularului; AutoForm: Columnar Access va genera automat un formular de tip single form; AutoForm: Tabular se creeaz automat un formular de tip Tabular, AutoForm: Datasheet se va genera automat un formular Datasheet; Chart Wizard utilizatorul va fi ndrumat n crearea unui formular ce va afia datele sub form de grafic; PivotTable Wizard - noul formular va ngloba o tabel pivot generat prin aplicaia Excel (folosind tehnica OLE). 3. Se stabilete sursa de date (tabel sau interogare) a formularului. Aceast etap este obligatorie pentru formularele generate automat (variantele AutoForm) i pentru formularele grafice (obinute prin Chart Wizard).

Fig. 4.1. Modaliti de creare a formularelor

Nchil Ctlin laborator Access

104

4. Formulare

4.2. Formularele Wizard


4.2.1. Form Wizard & AutoForm
Proiectarea formularelor prin varianta Form Wizard presupune urmtoarele etape (atunci cnd sursa de date este o tabel):
1. se acioneaz butonul New din fereastra bazei de date pentru activarea asistentului New Form (figura 4.1.); 2. se opteaz pentru varianta Form Wizard; 3. se selecteaz tabela sau interogarea dorit n rubrica derulant solicitat; prin click pe butonul Ok, sistemul intr n modul Wizard; 4. se selecteaz cmpurile din sursa de date, ce vor fi afiate n formular; cmpurile accesibile ale tabelei/interogrii selectate sunt afiate n zona Available Fields; cmpurile ce for face parte din formular sunt afiate n zona Selected Fields (figura 4.2.); selectarea cmpurilor se face cu ajutorul butoanelor: > pe al crui click se transmite un singur cmp selectat din zona Available Fields n zona Selected Fields; >> pe al crui click se transmit toate cmpurile din zona Available Fields n zona Selected Fields; < pentru revenirea unui cmp selectat din Selected Fields n Available Fields; << pentru revenirea tuturor cmpurilor selectate din Selected Fields n Available Fields;

Fig. 4.2.

Nchil Ctlin laborator Access

105

4. Formulare

5. se alege tipul de formular i anume opiunile privind forma de poziionare a datelor din formular; opiunile sunt: Columnar Tabular Datasheet Justified PivotTable PivotChart 6. se stabilete imaginea de fundal pentru formular (Stone, Standard etc.); 7. n ultima etap se definete titlul formularului, precum i modul n care va fi deschis formularul (figura 4.3.):

Fig. 4.3.

Exist posibilitatea opiunii asupra deschiderii noului formular:


Open the form to view or enter information pentru execuie; Modify the form's design pentru eventuale modificri.

Nchil Ctlin laborator Access

106

4. Formulare

Unele din tipurile Autoform existente:


Columnar prezint valorile cmpurilor selectate n rubrici ncolonate (figura 4.4.); Tabular prezint valorile n mod tabelar (pe coloane) (figura 4.5.); Datasheet este identic cu forma Design View de la crearea tabelelor (figura 4.6.); Justified prezint valorile cmpurilor selectate n rubrici ncolonate (figura 4.7.);

Fig. 4.4. Formular de tip Columnar

Fig. 4.5. Formular de tip Tabular

Nchil Ctlin laborator Access

107

4. Formulare

Fig. 4.6. Formular de tip Datasheet

Fig. 4.7. Formular de tip Justified

4.2.2. Chart Wizard


Un prim pas l constituie afiarea tuturor cmpurilor din tabela solicitat, cu zonele Available Fields i Selected Fields (identic modului Form wizard). Dup executarea unui click pe butonul Next, sistemul afieaz cel de-al doilea pas. Al doilea pas solicit tipul de grafic. Sistemul ofer 20 asemenea tipuri de grafice (coloane paralelipipedice, cilindrice, liniare, sub forma de bare orizontale, sub forma de disc etc.). Dup selectarea tipului dorit de grafic i executarea de clic pe butonul Next, n cadrul pasului al treilea, sistemul prezint modelul graficului, precum i cmpurile selectate anterior. n mijlocul modelului se specific posibilitatea de nsumare a unor valori, sau (n cazul unor alternative) mesajul Data. n mod distinct exist o caset Series. n partea dreapta a tabloului sunt afiate cmpurile selectate anterior din tabela sursa.

4.2.3. Pivot Table Wizard


Modul Pivot Table Wizard este o combinaie ntre metoda Wizard (de efectuare a lucrrilor n pai dictai de sistem) i interogrile de tip tabel ncruciat (Crosstab), adic genereaz formulare de tip crosstab prin pai dictai de sistem.

Nchil Ctlin laborator Access

108

4. Formulare

Aplicaia 4.1: Fie o baz de date ce conine tabelele:

Fig. 4.8. Tabelele bazei de date

S se completeze tabelele ageni i proprietari utiliznd tipurile de formulare formularele de tip Columnar, Tabular sau Justified prezentate (cte un formular pentru fiecare tabel).

Nchil Ctlin laborator Access

109

4. Formulare

S presupunem c se dorete graficul proporiei dintre apartamentele i garsonierele existente n baza de date, ca cele dou alternative n cadrul cmpului tip_mobil. Pentru obinerea unui asemenea grafic, n primul pas se va selecta, n zona Selected Fields, cmpul tip_mobil. Considerm c n pasul al doilea s-a optat pentru tipul de grafic Pie (sub form de disc). n pasul al treilea, se va draga cmpul tip_mobil, afiat n partea dreapta a tabloului Chart Wizard, peste caseta Series din partea stnga a tabloului. Se solicit suma preurilor de vnzare obinute n cadrul unor intervale calendaristice (luni). Pentru aceasta, au fost selectate cmpurile pre_vnzare i data_vnzrii. n funcie de tipul cmpului (text, numeric, dat calendaristic), sistemul organizeaz casetele Data i Series. Pentru cazul exemplificat, cmpul rezervat preului de vnzare va lua iniial expresia Sum (of pre_vnzare) i cmpul rezervat datei calendaristice a vnzrii va lua iniial expresia By month. Ambele expresii pot fi comutate diferit, prin executarea unui dublu click pe identificatorul expresiei. Astfel, Sum poate fi comutat la: Average, Min, Max, Count (valoare medie, minima, maxima, numrare), iar By month poate fi comutat la By year, Quarter, Week, Day, Hour, Minute (an, trimestru, sptmn, zi, or, minut).

4.3. Design View


Varianta Design View este mai puin folosit pentru crearea formularelor. Selectarea acestei opiuni din fereastra New Form (figura 4.1.) i alegerea unui tabel sau interogri, are ca efect generarea unui formular gol, n care utilizatorul i poate defini propriile controale. Cmpurile sursei de date pot fi afiate prin preluarea lor din fereastra Field List (opiunea View > Field List) n interiorul formularului (de obicei n seciunea Detail) (figura 4.9.).

Lista cmpurilor

Zona formularului

Zona din afara formularului

Fig. 4.9. Crearea unui formular prin Design View

Nchil Ctlin laborator Access

110

4. Formulare

Bara de titlu Antetul formei Antetul paginii

Coninutul formei

Subsolul paginii Subsolul formei

Fig. 4.10. Elementele unui formular (Design View)

Un formular are urmtoarea structur (figura 4.10.): Bordura definete chenarul ce va delimita formularul pe ecran. Antetul formularului (Form Header) este folosit, de regul, pentru a afia titlul formularului. Aceast zon nu este vizibil n modul Datasheet. Dac formularul este afiat n format Tabular, coninutul zonei de antet nu va fi derulat. Pentru ca aceast zon s fie disponibil n timpul proiectrii, se selecteaz opiunea View > Form Header/Footer, din meniul Access. Antetul de pagin (Page Header) este o zon ce apare numai cnd formularul este tiprit la imprimant. Pentru a fi disponibil n cursul proiectrii, se selecteaz opiunea View > Page Header/Footer din meniul Access. Seciunea de detaliu (Detail) va conine toate controalele necesare afirii/editrii nregistrrilor. n timpul execuiei, formularul poate conine n aceast zon un control numit selector de nregistrare (record selector) situat n marginea din stnga a formularului (figura 4.11.).

Nchil Ctlin laborator Access

111

4. Formulare Acest control permite:


afiarea strii nregistrrii curente (n curs de editare, nregistrare nou, nregistrare blocat etc.) selectarea nregistrrii curente n vederea tergerii sau copierii acesteia.

Subsolul de pagin (Page Footer) este afiat numai la tiprirea formularului i poate conine data curent, numrul de pagin, etc. h. Subsolul formularului (Form Footer) are aceleai caracteristici cu zona de antet i poate s conin, spre exemplu, totalul general sau diverse alte controale (butoane pentru salvare, adugare, tergere de nregistrri etc.). Butoane de navigare sunt afiate numai n timpul execuiei formularului i pot fi folosite pentru deplasri n cadrul nregistrrilor.

Selector de nregistrare

Butoane de navigare

Fig. 4.11. Formular (Design View)

4.3.1. Proprietile obiectelor Forms


Proprietile formularelor pot fi accesate fie prin intermediul ferestrei Properties (activat prin opiunea View > Properties, din meniul Access), fie prin intermediul obiectelor de tip macro sau limbajul VBA. Metodele pot fi accesate (att la proiectare, ct i n cursul execuiei) numai prin aciuni macro sau din cadrul unor proceduri/funcii VBA.

Nchil Ctlin laborator Access

112

4. Formulare

Setarea unei proprieti se poate face prin urmtoarele variante:


tastarea valorii respective; selectarea valorii dintr-o list derulant (dac aceasta este disponibil); cu ajutorul asistentului, care poate fi invocat prin apsarea butonului Build Wizard (atunci cnd acest buton este disponibil).

n cadrul ferestrei Properties, proprietile formularului curent sunt mprite n patru categorii:
1. Format conine atribute privitoare la dimensiune, aspect, coordonatele de afiare ale formularului etc.;

Caption conine titlul formularului ce va aprea n bara de titlu a acestuia; Default View specific modul implicit de afiare, folosit la execuia formularului (Single Form, Tabular Form, Datasheet); Views Allowed reprezint modurile de afiare ce sunt disponibile n timpul execuiei; Scroll Bars seteaz barele de defilare vizibile n cursul execuiei (bara orizontal, bara vertical, amndou sau nici una); Record Selectors afieaz sau nu selectorul de nregistrare n timpul execuiei formularului; Navigation Buttons specific dac formularul va conine butoanele de navigare n cursul execuiei sale; Dividing Lines precizeaz dac se afieaz linii pentru delimitarea seciunilor formularului sau a nregistrrilor la execuie; Auto Center dac este setat pe valoarea Yes, formularul va fi afiat, la execuie, n centrul ecranului; Border Style specific tipul bordurii. Setarea acestei proprieti va avea efect i asupra comportamentului formularului:
None formular fr bordur (formularul nu va putea fi redimensionat la execuie); Thin bordur subire (formularul nu va putea fi redimensionat); Sizable bordura implicit (formularul poate fi redimensionat); Dialog bordura subire (formularul nu poate fi redimensionat iar bara de titlu va conine doar butonul pentru nchidere Close obinndu-se astfel un formular de tip Dialog Box).

Control Box indic prezena meniului sistem n bara de titlu; Min Max Buttons dezactiveaz sau activeaz fie ambele, fie unul din butoanele de minimizare i maximizare din bara de titlu; Close Button indic prezena butonului de nchidere (Close) n bara de titlu;

Nchil Ctlin laborator Access

113

4. Formulare

Width specific limea formularului i implicit a tuturor seciunilor. Aceast proprietate poate fi modificat n timpul proiectrii formularului, dar i n cursul execuiei acestuia (dac bordura este de tip Sizable), cu ajutorul mouse-lui. Picture poate conine specificatorul unui fiier grafic, al crui coninut va fi afiat pe fundalul formularului; Picture Type specific varianta OLE folosit:
Embedded (nglobat) imaginea este inclus n formular; Linked (legat) se creeaz doar o legtur ctre fiierul grafic (formularul nu va afia imaginea respectiv dac fiierul este ters, mutat etc.).

Grid X conine numrul de subdiviziuni orizontale pe unitatea de msur (cm, inch, etc.). Grila (Grid) servete la alinierea automat a controalelor. Grid Y conine numrul de subdiviziuni verticale pe unitatea de msur (intervalul 1-64).

2. Data grupeaz proprieti referitoare la sursa de date i nregistrrile aferente;

Record Source conine sursa de date a formularului (tabel sau interogare). Aceast proprietate poate conine chiar i o comanda SQL (sunt admise numai cererile de selecie). Un formular va avea ca surs de date o interogare dac:
afieaz n format Datasheet sau Tabular, controale nelegate; afieaz cmpuri din mai multe tabele.

Filter conine criteriul de selecie care se va aplica nregistrrilor din formular. Condiia de filtrare este o clauz SQL WHERE, ns fr s conin cuvntul WHERE. Pentru ca filtrul s fie activ, proprietatea Filter On trebuie setat pe valoarea True (setare ce se poate face numai din VBA). Order By permite specificarea cmpurilor dup care vor fi sortate nregistrrii din formular. Sintaxa este identic cu sintaxa clauzei SQL, OrderBy. Pentru ca operaia de ordonare s se execute automat la deschiderea formularului, proprietatea OrderByOn trebuie setat pe True (proprietatea este disponibil numai din VBA). Data Entry dac este setat pe valoarea Yes, formularul nu va afia, la deschidere, nregistrrile existente. Proprietatea este util pentru formularele ce vor permite numai adugarea de nregistrri. Record Locks specific dac i ce nregistrri vor fi blocate pentru ali utilizator (blocarea se poate face fie pentru toate nregistrrile, fie numai pentru nregistrarea curent).

Nchil Ctlin laborator Access

114

4. Formulare

3. Event conine evenimentele ce pot fi tratate fie prin proceduri sau funcii scrise n limbajul VBA, fie prin macro-un. Proprietile acestei categorii se numesc proprieti eveniment i au denumiri asemntoare cu cele ale evenimentelor crora le sunt ataate. Apar astfel trei posibiliti:

eveniment tratat printr-o funcie proprietatea eveniment va conine o expresie de forma:


NumeFuncie([ListaParametrii])

eveniment tratat printr-o procedur eveniment proprietatea eveniment va conine expresia EventProcedure, iar editarea procedurii se poate face prin acionarea butonului BuildWizard, la invocarea cruia Access deschide editorul de module, n care genereaz o procedur vid sub forma:
Private Sub Form_numeEveniment([ListParametriiFormali]) End Sub

eveniment tratat printr-un macro Cele mai uzuale evenimente sunt:


Eveniment Current Poate fi abandonat ? Proprietatea eveniment On Current Descriere

Nu

Este nregistrat n momentul trecerii de la o nregistrare la alta. Apare naintea salvrii nregistrrii curente i tabel. Acest eveniment este frecvent folosit pentru validarea datelor curente. Evenimentul apare naintea tergerii nregistrrii curente i poate fi folosit pentru obinerea unei confirmri din partea utilizatorului cu privire la aceast operaie. Dac se dorete tergerea unui bloc de nregistrri, atunci evenimentul se va declana pentru fiecare nregistrare. Apare naintea afirii pe ecran a formularului, la deschiderea acestuia. Poate fi folosit pentru activarea criteriului de selecie definit i proprietatea Filter, pentru setarea unor controale naintea afirii acestora, pentru citirea argumentului transmis formularului, etc.. Este un eveniment declanat naintea nchiderii formularului. Evenimentul poate fi folosit pentru a cere confirmarea utilizatorului cu privire la nchiderea formularului, atunci cnd datele nu au fost salvate.

BeforeUpdate

Da

BeforeUpdate

Delete

Da

On Delete

Open

Da

On Open

Unload

Da

On Unload

Nchil Ctlin laborator Access

115

4. Formulare Evenimentul este nregistrat n timpul nchiderii formularului (formularul este afiat pe ecran) i poate fi folosit pentru deschiderea altor formulare, pentru tergerea obiectelor temporare generate "n timpul execuiei formularului, etc.. Este declanat la activarea formularului (fie la deschiderea lui, fie la selectarea lui dintr-o alt fereastr) i poate fi folosit, de exemplu, pentru refacerea valorilor unei liste derulante, n urma actualizrii tabelei surs printr-un alt formular. Apare la efectuarea unui click pe selectorul de nregistrare sau pe zona liber a formularului (zona aflat n afara seciunilor). Evenimentul este declanat la apariia unei erori n cursul execuiei formularului (de exemplu, eroarea generat la introducerea unei valori ce nu respect condiiile de validare sau restricia de integritate). Utilitatea acestui eveniment apare atunci cnd se dorete interceptarea erorilor generate de Access h vederea tratrii lor. Este un eveniment care apare la o anumit perioad de timp, stabilit de utilizator prin proprietatea Timer Interval (valoarea atribuit este n milisecunde). Poate fi utilizat pentru crearea diferitelor efecte vizuale, pentru citirea/setarea unor variabile globale etc..

Close

Nu

On Close

Activate

Nu

On Activate

Click

Nu

On Click

Error

Nu

On Error

Timer

Nu

On Timer

4. Other conine diverse alte proprieti.

Pop Up dac se dorete ca, n cursul execuiei sale, formularul s fie permanent vizibil (va fi poziionat permanent deasupra celorlalte ferestre, chiar dac nu este activ), aceast proprietate se va seta pe valoarea Yes; Modal specific dac formularul va fi modal sau nemodal; Cycle descrie efectul apsrii tastei Tab pe ultimul cmp din formular: salt la urmtoarea nregistrare (All records), revenire la primul cmp (Current record), revenire la primul cmp din pagina curent (Current Page); Menu Bar conine numele unui meniu creat de utilizator, ce va fi afiat la lansarea n execuie a formularului; Toolbar indic toolbar-ul propriu ce va fi disponibil n cursul rulrii.

Nchil Ctlin laborator Access

116

4. Formulare

4.3.2. Controale n formulare (Toolbox)


Controalele sunt obiecte grafice (elemente vizuale) ce sunt incluse n formulare sau rapoarte, n scopul editrii/afirii datelor sau executrii unor aciuni (ex.: etichete, casete text, butoane, etc.). Adugarea controalelor se poate face numai n etapele de creare sau modificare a formularelor, astfel:
din fereastra Toolbox se selecteaz butonul aferent controlului dorit; se descrie, cu ajutorul mouse-lui, o zon dreptunghiular pe suprafaa formularului, definind astfel poziia i dimensiunea noului control.

Control

Descriere

Indicator (Select Objects) Asisteni (Control Wizards) Eticheta (Label) Caseta text (Text Box) Butonul de comand (Command Button) Caseta list (List Box) Caseta combinat (Combo Box) Butonul-comutator (Toggle Button), Butonul de opiune (Option Button), Caseta de validare (Check Box)

Instrument folosit la proiectarea controalelor (selecie, repoziionare, redimensionare, etc.) Activeaz/dezactiveaz utilitarele Wizards folosite la generarea unor controale mai complexe (casete combinate, casete list, grupuri de opiune, etc.). Control cu coninut fix, folosit pentru afiarea unor mesaje. n general, Access genereaz cte o etichet pentru majoritatea controalelor definite de utilizator. Control utilizat pentru afiarea i editarea datelor.

Servete la declanarea unor aciuni.

Permite selectarea unei valori dintr-o list. mbin proprietile unei casete text cu cele ale unei casete de tip list (permite att editarea unei valori, ct i selectarea acesteia dintr-o list derulant). Caseta combinat este un control ce se folosete frecvent pentru actualizarea cheilor externe.

Sunt controale folosite pentru editarea unor valori de tip logic (Yes / No, On / Off, True / False).

Nchil Ctlin laborator Access

117

4. Formulare Este un control container folosit pentru afiarea unui set de alternative i poate grupa mai multe tipuri de controale (buton de opiune, caset de validare etc.) Controlul Page Break mparte formularul n mai multe pagini care pot fi vizualizate cu ajutorul tastelor PageUp i PageDown. Poate fi, de asemenea, folosit pentru salt la pagin nou, n cazul tipririi formularului Controlul de tip Tab este un control container ce permite gruparea altor controale n mai multe pagini, atunci cnd formularul conine un numr prea mare de controale. Controalele servesc la trasarea diverselor figuri geometrice. Permite afiarea coninutului unor fiiere grafice (.bmp, .gif, .wmf, .pcx, etc.), pe fundalul formularului. Este un control ce va conine un obiect (grafic, multimedia, document etc.), importat dintr-o alt aplicaie Windows (Word, Excel, Paint, Sound Recorder etc.) prin tehnologia OLE (Object Linking and Embedding). Conine un obiect stocat ntr-un cmp de tip OLE din tabela surs Permite definirea unui subformular n cadrul formularului curent. Afieaz alte controale nregistrate, ce pot fi ataate formularului (controale ActiveX etc.)

Grupul de opiune (Option Group) Delimitator de pagin (Page Break) Index (Control Tab) Linie (Line) Dreptunghi (Rectangle) Imagine (Image) Obiect cadru nelegat (Unbound Object Frame) Obiect cadru legat (Bound Object Frame) Subformular (Subform) Alte controale (More Controls)

4.3.3. Proprietile controalelor


Proprietile unui control sunt afiate n fereastra Properties, atunci cnd controlul respectiv este selectat. Ca i n cazul formularelor, metodele aferente controalelor sunt grupate n patru categorii (Format, Data, Events, Other) i sunt disponibile numai prin intermediul macro-urilor sau modulelor VBA. Cele mai uzuale proprieti sunt:
1. Proprieti din categoria Format: Format specific modelul (masca) de afiare a datelor (numai pentru casetele text); Decimal Places indic numrul de zecimale cu care vor fi afiate datele (numai pentru casete text);

Nchil Ctlin laborator Access

118

4. Formulare

Caption conine textul afiat de control (numai pentru controalele needitabile: etichete, butoane etc.); Visible determin afiarea sau nu a controlului n timpul execuiei formularului; Left stabilete coordonata orizontal a colului stnga-sus al controlului; Top indic poziia pe vertical a colului stnga-sus; Width stabilete limea controlului: Height stabilete nlimea obiectului; Back Style determin modul de afiare: control normal sau transparent; Back Color stabilete culoarea de fundal a controlului; Special efect specific efectele tridimensionale ale controlului; Border Style indic tipul linie folosit la trasarea bordurii controlului (transparent, continuu, punctat etc.); Border Color determin culoarea bordurii; Border Width grosimea bordurii; Fore Color culoarea textului afiat de control; Font Name tipul fontului aferent textului din control; Font Size dimensiunea fontului; Picture specific numele i calea fiierului grafic ce va fi afiat n interiorul controlului (numai pentru butoane i controale de tip imagine); Text Align stabilete modul de aliniere a textului n interiorul controlului.

2. Proprieti din categoria Data: Control Source conine sursa de date a controlului i poate fi:

Numele unui cmp (pentru controale legate); O expresie de calcul precedat de semnul "=" (pentru casete text nelegate).
Exemplu: o caset text ce va afia valoarea unui material contractat, pe baza preului i a cantitii contractate, va conine n proprietatea control source expresia: =[Cantitate]*[Pre] unde [Cantitate] i [Pre] sunt denumirile a dou cmpuri (sau controale) din formular; Input Mask indic formatul folosit la introducerea datelor (numai pentru casete text)

Nchil Ctlin laborator Access

119

4. Formulare

Default value specific valoarea implicit (valoarea prin lips) a controlului. Exemplu: pentru o caset text destinat actualizrii unui cmp de tip Date/Time, aceast proprietate poate conine funcia Date(), care returneaz data sistemului: =Date() Validation Rule conine regula dup care se face validarea datelor introduse n control. La execuia formularului, mai nti se verific regula de validare a controlului i apoi cea a cmpului ataat. Proprietatea validation rule poate fi folosit pentru definirea unor restricii asupra cmpurilor din tabele diferite; Validation Text specific mesajul ce va fi afiat, atunci cnd regula de validare este nclcat; Enabled activeaz sau dezactiveaz controlul. Un control dezactivat va fi inaccesibil la execuia formularului; Locked servete la protejarea datelor afiate de control (controlul va deveni read-only). 3. Proprieti din categoria Event: conin denumirile funciilor, procedurilor eveniment sau macro-urilor, ce vor fi executate la declanarea evenimentelor ataate.

Cele mai uzuale evenimente sunt:

Eveniment

Poate fi abandonat?

Proprietatea eveniment

Descriere

BeforeUpdate

Da

BeforeUpdate

Apare naintea salvrii datelor din control i cmpul ataat acestuia. Evenimentul poate fi folosit pentru validarea datelor introduse i control. Se declaneaz h momentul i care datele din control (caset text sau caset combinat) sunt modificate. Evenimentul este nregistrat n momentul accesrii controlului n vederea editrii datelor (naintea activrii sale). Declanat, atunci cnd se prsete controlul curent n vederea accesrii altui control din formular. Acest eveniment nu apare n cazul i care controlul este n curs de editare i se activeaz o alt fereastr.

Change

Nu

On Change

Enter

Nu

On Enter

Exit

Da

On Exit

Nchil Ctlin laborator Access

120

4. Formulare Apare i momentul focalizrii controlului. Difer de evenimentul On Enter prin aceea c se declaneaz chiar i atunci utilizatorul comut ntre o alt fereastr i formularul curent. Evenimentul este nregistrat la defocalizarea controlului (fie prin trecerea la alt control din cadrul formularului, fie prin activarea altei ferestre).

Got Focus

Nu

On Got Focus

Lost Focus

Nu

On Lost Focus

Ordinea n care sunt declanate evenimentele la activarea/dezactivarea unui control este urmtoarea:
Enter > GotFocus > Exit > LostFocus

4. Proprieti din categoria Other: Name conine numele controlului. La creare, fiecare control primete un nume unic, format din tipul su plus un numr de ordine (ex.: TextBox5). Utilizatorul poate modifica acest nume, schimbndu-1 cu unul mai sugestiv. Controalele legate, generate automat de Wizards, au numele identice cu denumirile cmpurilor ataate; Status Bar Text specific mesajul afiat n bara de stare, n momentul selectrii controlului; Tab Stop dac este setat pe valoarea Yes, atunci controlul poate fi accesat cu ajutorul tastei Tab; Tab Index specific numrul de ordine al controlului, n funcie de care acesta va fi accesat cu ajutorul tastei Tab. Toate controalele editabile vor primi un numr de ordine unic, la creare. Acest numr poate fi modificat fie prin aceast proprietate, fie prin opiunea View-TabOrder din meniul Access; Control Tip Text conine mesajul afiat ntr-o fereastr ToolTip.

Pentru crearea unor controale complexe (casete combinate, casete de tip list etc.), proiectantul poate fi asistat de programele control wizards.

Nchil Ctlin laborator Access

121

4. Formulare

Aplicaia 4.2: Fie baza de date de la aplicaia 4.1:

Fig. 4.8. Tabelele bazei de date

S se creeze un formular utiliznd Design View pentru tabelul imobile care s arate ca n figura 4.12.

Nchil Ctlin laborator Access

122

4. Formulare

Fig. 4.12. Formularul (Form View)

Fig. 4.13. Formularul (Design View)

Nchil Ctlin laborator Access

123

4. Formulare

Se dorete ca la adugarea imobilului, proprietarul i agentul (numerele acestora) s se fac prin selectarea acestora din liste ce conin toi proprietari, respectiv toi agenii. Pentru cmpurile ce ndeplinesc rolul de cheie extern, este recomandat ca n formulare s se creeze controale de tip combo box sau list box, deoarece, datorit referinei de integritate, cheile externe nu admit dect valori comune cu cheile primare pe care le refer (sau valoarea nuli). Pentru combo box-un proprietatea Limit To List trebuie setat pe valoarea Yes (nu se admit valori care nu exist n list). Pentru crearea unei casete combinate, prin intermediul Control Wizards, se parcurg urmtoarele etape:
1. se activeaz butonul Control Wizards din fereastra toolbox (dac nu este deja activat); 2. n aceeai fereastr, se selecteaz butonul combo box; 3. se plaseaz mouse-ul n zona dorit pe formular i se execut click; 4. n fereastra Combo Box Wizard (figura 4.14.), se selecteaz prima variant.

Fig. 4.14. Tipuri de casete combinate

Cele trei opiuni afiate au urmtoarele semnificaii:


Lista va conine valorile unui cmp dintr-o tabel sau interogare. Controlul este utilizat de regul, pentru actualizarea cheilor externe. Caseta combinat conine valori definite de utilizator. Acest tip este utilizat pentru cmpuri ce prezint un numr relativ redus de valori standard (unitate de msur, valuta etc.). Selectarea unei valori din list determin saltul la nregistrarea aferent n sursa de date a formularului. Acest control este folosit n scopul facilitrii operaiilor de regsire a nregistrrilor dintr-un formular.

Nchil Ctlin laborator Access

124

4. Formulare

5. Se specific tabela sau interogarea ce va furniza date listei de valori a controlului (tabelele proprietari n cazul primului combo box respectiv agenti n cazul celui de al doilea combo box) 6. Se aleg cmpurile tabelei ce vor fi afiate n lista de valori. 7. Se ajusteaz dimensiunea fiecrei coloane din lista de valori (prima coloana este implicit ascuns). 8. Se alege cmpul din sursa de date a formularului ce va fi actualizat cu valoarea selectat din list (cmpul ataat controlului). 9. Se specific eticheta ataat controlului caset combinat.

Dac, din diferite motive, Wizard Controls nu funcioneaz (de exemplu, nu este setat aceast opiune le instalarea programului Access), proiectantul va fi nevoit s seteze singur proprietile controlului combo box:
Column Widths specific dimensiunea fiecrei coloane din list (valorile sunt separate de caracterul ";") List Width conine limea total a listei derulante Row Source Type specific tipul sursei de date pentru valorile din list (tabel sau interogare, valori definite de utilizator, realizrile unui cmp) Row Source conine denumirea tabelei, a interogrii (sunt admise i fraze SQL Select) sau valorile predefinte de utilizator (separate de caracterul ";") Bound Column va conine numrul de ordine al coloanei care va actualiza cmpul ataat controlului (coloana respectiv poate fi ascuns) Limit To List permite sau nu utilizatorului s introduc valori ce nu exist n lista controlului. Setarea acestei proprieti pe Yes va conduce la declanarea evenimentului On Not in List ori de cte ori se introduce o valoare inexistent n list.

Cele trei butoane se creaz tot prin intermediul Control Wizards (figura 4.15.), de unde se alege pentru fiecare n parte aciunile corespunztoare.

Fig. 4.15. Button Wizard

Nchil Ctlin laborator Access

125

4. Formulare

4.4. Subformulare
Rolul subformularelor este de a actualiza mai multe tabele prin intermediul unei singure ferestre (formular). Subformularele sunt create n general pentru anumite tabele dependente (tabele n care cmpul comun este cheie extern), din cadrul unei relaii de tip 1n. Definirea unui subformular presupune nglobarea (includerea) unui formular n cadrul altui formular, primul devenind subformular, iar al doilea formular principal. Avantajele oferite de utilizarea subformularelor constau n: Posibilitatea actualizrii mai multor tabele printr-un singur formular. Sincronizarea subformularului cu formularul principal, operaie care const n:
actualizarea automat a cmpului cheie extern din subformular, cu valoarea deinut de cmpul cheie primar din formularul principal; filtrarea automat a nregistrrilor din subformular, n funcie de valoarea cheii primare din formularul principal.

Pentru definirea unui subformular n modul Design se procedeaz astfel: se deschide n modul Design, formularul ce se dorete a fi formular principal; se activeaz fereastra bazei de date; folosind tehnica drag&drop, se aduce depune formularul, ce se dorete a fi subformular, n interiorul formularului principal; se salveaz formularul principal. Tot pentru definirea unui subformular se poate utiliza i controlul subform cadrul formularului principal. Modificare fcut ulterior asupra subformularului, ca obiect de tip formular, se va reflecta automat i n formularul principal. Sincronizarea formularsubformular se realizeaz prin intermediul cmpurilor de legtur cheia primar din sursa de date aferent formularului principal i cheia extern din sursa de date aferent subformularului. Denumirile acestor cmpuri sunt nscrise automat de Access n proprietile Link Master Field i Link Child Field ale controlului de tip subform din formularul principal. Completarea acestor proprieti este realizat automat de Access, atunci cnd ntre cele dou surse de date sunt definite relaii sau cnd acestea conin dou cmpuri cu aceeai denumire. Se recomand totui verificarea acestor proprieti chiar i n cazul completrii lor de ctre Access.

Nchil Ctlin laborator Access

126

4. Formulare

Aplicaia 4.3: Fie baza de date de la aplicaia 4.1. S se creeze un formular cu subformular n modul Form Wizard pentru tabelele ageni i imobil(figura 4.16.)

Fig. 4.16. 1. se acioneaz butonul New din fereastra bazei de date pentru activarea asistentului New Form; 2. se opteaz pentru varianta Form Wizard; 3. se selecteaz cmpurile din tabela ageni sau apoi din tabela imobil; 4. pentru tabelul ageni se selecteaz opiunea form with subform(s); 5. se alege un model de prezentare pentru subformular; 6. se stabilete imaginea de fundal pentru formular (Stone, Standard etc.); 7. se stabilete denumirea formularului i a subformularului. Aplicaia 4.4: Fie baza de date de la aplicaia 4.1. S se creeze un formular cu subformular n modul Design View pentru tabelele proprietari i imobil (figura 4.17.) 1. se acioneaz butonul New din fereastra bazei de date pentru activarea asistentului New Form; 2. se opteaz pentru varianta Design View; 3. se selecteaz tabela proprietari n rubrica derulant solicitat; prin click pe butonul Ok, 4. se aduc pe form toate cmpurile tabelei proprietari; 5. verificm dac este activ Control Wizards din Toolbox; 6. din Toolbox (View > Toolbox dac nu este activ) selectm controlul Subform/Subreport;

Nchil Ctlin laborator Access

127

4. Formulare

7. desenm dreptunghiul pe form; 8. din fereastra nou deschis alegem Use existing Tables and Queries; 9. din tabelul imobil alegem toate cmpurile sale; 10. din fereastra nou deschis alegem Choose from a list; 11. se stabilete denumirea subformularului.

Fig. 4.17.

Aplicaia 4.5: Se cere obinerea unui formular care s afieze (pe coloane) preurile solicitate i preurile de vnzare ale imobilelor din tabela imobile. n finalul formularului se cere obinerea sumelor preurilor solicitate, respectiv a preurilor de vnzare (figura 4.18.)

Prin modul n care este solicitat imaginea formularului (date dispuse pe diverse coloane), proiectantul va fi orientat spre a opta pentru modul Tabular de execuie. Sistemul Tabular nu este recomandat, n principiu, pentru c, n cazul multor coloane, afiarea datelor este imposibila pe un ecran. Dar, n cazul exerciiului propus, existnd numai trei coloane, modul Tabular devine convenabil.

Nchil Ctlin laborator Access

128

4. Formulare

Fig. 4.18.

Operaiile de efectuat sunt urmtoarele:


n fereastra New Form va fi accesat opiunea "Autoform: Tabular" i va fi selectat tabela imobile (ca surs de date). ca urmare, sistemul va afia formularul final, coninnd coloane care cuprind toate cmpurile (toi indicatorii) din tabela-surs. Se va putea remarca faptul c, din cauza lipsei unui spaiu disponibil pe limea ecranului, datele sunt trunchiate, cele numerice (de lungime mai mare) sunt afiate n form exponenial etc. trecem n modul Design; se terg toate cmpurile inutile, cu excepia cmpurilor solicitate prin exerciiu; se redimensioneaz coloanele respectiv titlurile acestora;

Nchil Ctlin laborator Access

129

4. Formulare

se genereaz un spaiu necesar pentru seciunea Form Footer (prin tragerea mouse-ului pe limita inferioar a titlului acestei seciuni). se copiaz textbox-ul pret_solicitat n se partea Form Footer; se copiaz textbox-ul pret_vnzare n se partea Form Footer; completm cele dou textbox-uri cu:

= sum ([pret_solicitat]) = sum ([pret_vnzare])


se acceseaz pictograma Label din Toolbox; se fixeaz (prin clic cu mouse-ul) locul de debut al etichetei n seciunea Form Footer; se scrie textul dorit (de exemplu: Total Preturi).

Nchil Ctlin laborator Access

130

5. Rapoarte

5. Microsoft Access Rapoarte (Reports)


5.1. Generaliti
Tratnd teoretic diferenele dintre formulare i rapoarte, se poate afirma c ambele au acelai coninut i pot servi acelorai obiective de informare. Practic, formularele sunt destinate proceselor interactive, ntrebare rspuns, ntre utilizator i afirile pe ecran ale sistemului, iar rapoartele sunt, n principal, destinate informrilor scrise (la imprimant). Cu Microsoft Access se pot realiza obiecte de tip raport utiliznd opiunea Reports din meniul Objects i butonul de comand New sau alegnd comanda Report din meniul Insert. Modalitile de creare propuse de Microsoft Access (figura 5.1.):
Design View: realizarea rapoartelor de ctre utilizator, n funcie de viziunea proprie a acestuia (utilizatorul precizeaz controalele din raport); Report Wizard: crearea rapoartelor este asistat de Wizard; AutoReport: Columnar: generarea automat a rapoartelor, cu particularitatea c datele dintr-o nregistrare sunt prezentate pe o singur coloan; AutoReport: Tabular: generarea automat a rapoartelor cu datele organizate sub forma tabelar; Chart Wizard: crearea de rapoarte cu grafice; Label Wizard: dup cum indic i numele opiunii de lucru, se creeaz, asistat de Wizard, rapoarte de dimensiunile cerute pentru imprimarea lor pe o etichet (utile n coresponden,ori n etichetarea produselor comercializate etc.). Fig. 5.1.

Se poate observa faptul c n partea stng a ferestrei New Report, dup selectarea unei posibiliti de lucru, apar explicaii referitoare la opiunea selectat. De asemenea, din lista derulant cu eticheta Choose the table or query where the object's data comes from: se poate alege o tabel ori o interogare constituind sursa de date a raportului. n structura unui raport se pot identifica elemente comune cu formularele, tratate n capitolul 4, cum ar fi:
seciunile unui raport: Report Header/Footer, Page Header/Footer, Detail, etc.; controale de tip casete text, etichete, butoane de comand, etc. i proprietile acestora (cu excepia celor eveniment (Event), care nu sunt accesibile controalelor din rapoarte).

Nchil Ctlin laborator Access

131

5. Rapoarte

Baza de date care va fi utilizat n cadrul acestui capitol are tabelele din figura 5.2. i interogarea din figura 5.3..

Fig. 5.2.

Nchil Ctlin laborator Access

132

5. Rapoarte

Fig. 5.3.

5.2. Generarea rapoartelor cu instrumentul Wizard


Etapele definirii asistate a structurii unui raport sunt urmtoarele:
1. Selectarea din fereastra Database, lista Objects, butonul Reports, apoi New, dup care, alegerea variantei Report Wizard din fereastra New Report (figura 5.1.) 2. Alegerea, din lista derulant Choose the table or query where the object's data comes from:, a numelui tabelei, ori interogrii, stabilite drept surs de date a raportului (n exemplul de mai jos, interogarea operaii) i activarea butonului OK. 3. n prima fereastr propus de Wizard (figura 5.4.) se pot alege cmpurile ce vor alctui structura raportului, cu ajutorul butoanelor >, >>, <, << sau cu dublu clic pe numele cmpului. Aceste cmpuri pot fi selectate din mai multe tabele ori interogri (dac la pasul 2 nu s-a stabilit deja o surs de date a raportului) utiliznd lista derulant Tables/Queries.

Lista simpl Avalable Fields conine toate cmpurile create n interogarea operaii, aleas drept surs de date, iar cea intitulat Selected Fields afieaz cmpurile selectate, dintre cele disponibile, pentru a defini structura raportului. Se avanseaz la etapa urmtoare cu ajutorul butonului Next.
4. Precizarea modului de aezare a datelor n raport se face cu fereastra din figura 5.5.. Se precizeaz criteriile de grupare a datelor n raport. Gruparea datelor nseamn cutarea tuturor nregistrrilor (rndurilor) din sursa de date care conin aceeai valoare pentru cmpul stabilit drept criteriu de grupare i afiarea lor, consecutiv, n raport (figura 5.6.).

Nchil Ctlin laborator Access

133

5. Rapoarte

Fig. 5.4.

Fig. 5.5.

Nchil Ctlin laborator Access

134

5. Rapoarte n exemplul prezentat, datele vor fi grupate dup numele agentului, tip_imobil, iar n cadrul acestuia, dup dat. Selectarea/deselectarea unui criteriu de grupare se realizeaz cu dublu clic pe acesta sau cu clic pe cmpul ales drept criteriu i apoi activarea butoanelor >, <. ntr-o prim faz, Wizard propune automat un criteriu, avansndu-1 n lista din dreapta ferestrei din figura 5.6. i colorndu-l, de regul, albastru. Dac aceast soluie nu se afl printre cele dorite de utilizator, cu dublu clic, sau cu clic pe cmpul respectiv i cu butonul <, se poate renuna la acel criteriu. Cu sgeile Priority se stabilete ordinea operaiunilor de grupare. Pentru precizarea faptului c gruparea se face dup luna din fiecare data de stocare, s-a deschis fereastra Grouping Intervals, n care, dup cum se observ, n coloana Grouping intervals: pe linia data_stocarii s-a precizat Month. Dac s-ar fi stabilit drept criteriu de grupare un cmp de tip text, atunci n coloana Grouping intervals, am fi putut preciza afiarea n raport a valorii cmpului n ntregime, sau numai a primei litere, sau numai a primelor dou litere, pn la primele cinci litere din valoarea stocat n cmp. Dac criteriul ar fi fost un cmp numeric, atunci Wizard propune afiarea unor intervale de mrime 10, 50, 100, 500, 1000, 5000 i 10000.

Fig. 5.6.

Nchil Ctlin laborator Access

135

5. Rapoarte

5. n fereastra din figura 5.7. se stabilesc cmpurile n funcie de valorile crora datele din raport vor fi ordonate (sortate), precum i cele pentru care se vor executa operaii de sintez (cu butonul Summary Options) cum sunt cele prezentate n figura 5.8. (nsumare, medie aritmetic, valorile minime i maxime din domeniul cmpului precizat).

Fig. 5.7.

Fig. 5.8.

Nchil Ctlin laborator Access

136

5. Rapoarte

6. n etapa urmtoare, instrumentul Wizard propune mai multe feluri de prezentare a datelor n raport (figura 5.9.), precum i dispunerea (Orientation) vertical ori orizontal a structurii raportului pe coala de imprimare.

Fig. 5.9.

n aceast etap, instrumentul Wizard propune mai multe feluri de prezentare a datelor n raport (figura 5.9.), precum i dispunerea (Orientation) vertical ori orizontal a structurii raportului pe coala de imprimare.
7. Urmtorul pas const n alegerea stilului n care este afiat fiecare categorie de informaie. 8. Ultima etap presupune stabilirea titlului raportului, ca n figura 5.10. Dac utilizatorul dorete s fac unele mici modificri privind structura raportului astfel creat, nainte de a activa butonul Finish, se selecteaz opiunea Modify the report 's design.

Fig. 5.10.

Nchil Ctlin laborator Access

137

5. Rapoarte

Pentru afiarea unor informaii de ajutor n timpul lucrului cu raportul, se bifeaz caseta de validare Display Help on working with the report?. Dup activarea butonului Finish, raportul se salveaz sub numele dat de titlul ales mai devreme. Vizualizarea situaiilor pe ecran se poate face n modul Preview (utilizarea, rularea raportului), ori n mod Design (proiectare, definire a structurii sale), ncadrarea n marginile paginii imprimate poate fi verificat cu Layout Preview Toate aceste trei posibiliti se regsesc i n meniul View al Microsoft Access. Tiprirea la imprimant se realizeaz cu meniul File, opiunea Print. Dac obiectul de tip raport este nchis, acesta se selecteaz n fereastra Database, apoi se alege Print din meniul File. Dup cum se poate remarca, o serie de aspecte ale raportului mai pot fi mbuntite. Pentru aceasta, se va deschide raportul n mod Design, pentru ca utilizatorul s poat opera schimbri n structura acestuia.

5.3. Generarea rapoartelor folosind opiunea Design View


Etapele definirii asistate a structurii unui raport sunt urmtoarele:
1. Selectarea din fereastra Database, lista Objects, butonul Reports, apoi New, dup care alegerea variantei Design View din fereastra New Report. 2. Alegerea, din lista derulant Choose the table or query where the object's data comes from: (figura 5.1.) a numelui tabelei, ori interogrii, stabilite drept surs de date a raportului (n exemplul dat, interogarea operaii) i activarea butonului OK.

Dac, din greeal nu s-a selectat nimic drept surs de date a raportului, atunci se poate utiliza fereastra de proprieti ale acestuia. Se deschide cu clic dreapta pe bara de titlu a ferestrei de definire a raportului, ori pe suprafaa gri a acesteia, ori pe cele dou rigle (orizontal i vertical, n afara poriunilor care permit selecii ale elementelor din raport), ori pe butonul general al raportului, din colul din stnga sus al ferestrei de definire, ori din meniul View, opiunea Properties. n fereastra de proprieti ale raportului (figura 5.11.), se alege tab-ul Data, iar din lista derulant cu eticheta Record Source, se selecteaz interogarea operaii.

Fig. 5.11.

Nchil Ctlin laborator Access

138

5. Rapoarte

3. n momentul deschiderii, fereastra de definire a raportului prezint doar trei seciuni (asemntoare celor din formulare): Page Header/Footer i Detail. Pentru crearea unui titlu al raportului (antet) i pentru definirea sfritului de raport (de regul, linii de total general), se utilizeaz meniul View, opiunea Page Header/Footer, sau aceeai opiune din meniul contextual (click buton dreapta mouse pe suprafaa alb de lucru) al raportului. Dac una dintre seciuni se consider inutil, atunci se reduce la zero lrgimea acesteia.

Alturat se observ renunarea la seciunea Page Footer, cu ajutorul mouse-ului, care are cursorul sub forma unei sgei bidirecionale n cruce. Linia neagr orizontal indic distana de la Report Footer cu care s-a micorat seciunea Page Footer.
4. Gruparea datelor i/sau sortarea lor se realizeaz fie cu meniul View, opiunea Sorting and Grouping fie cu aceeai opiune din meniul contextual. Se lucreaz cu fereastra Sorting and Grouping (figura 5.12.).

Fig. 5.12.

Pentru expresiile sau cmpurile din sursa de date stabilite drept criterii de grupare (i, eventual, sortare) se selecteaz Yes n rubricile corespunztoare antetului Group Header) i/sau subsolului de grup Group Footer, din lista de proprieti ale fiecrui grup de date Group Properties. n rubrica Sort Order se precizeaz dac sortarea datelor se va face n ordinea cresctoare (Ascending) sau descresctoare (Descending) a valorilor criteriului de grupare (sortare). Proprietile unui criteriu de grupare/sortare sunt accesibile numai dup poziionarea cursorului mouse-ului pe denumirea cmpului n cauz. n aceast rubric, s-a optat pentru extragerea lunii din data stocrii materialelor i constituirea ei drept al treilea criteriu de grupare si de sortare n ordine invers cronologic (Descending). Dac se dorete numai sortare n funcie de valorile unui anumit cmp, nu i grupare, atunci n rubricile Group Header, Group Footer se las valoarea No.
5. n seciunea Detail se aduc cmpurile care se vor afia n raport pentru a caracteriza fiecare intrare de material. Lista de cmpuri, dac n-a fost afiat automat, se poate vizualiza activnd fie meniul View, opiunea Field List. Expresiile de calcul se definesc cu ajutorul unor casete text, n care se vor scrie formulele, precedate de semnul = .

Nchil Ctlin laborator Access

139

5. Rapoarte Se poate observa c pentru a extrage luna din cadrul datei de stocare a unui material i a o afia scriindu-i denumirea cu caractere alfabetice, urmat de an, s-a scris formula
<<=Format$([Data stocrii],"mmmm yyyy",0,0)>>

Pentru definirea afiarea numrului curent al fiecrui material (obinut prin incrementare), s-a creat o caset text cu proprietile din figura 5.13.

Fig. 5.13.

n caseta Control Source se trece =1, iar pentru ca numrtoarea s se desfoare unitar pentru toate materialele intrate n stoc, indiferent de depozit ori lun, se alege Over All ("peste tot") n caseta Running Sum. Pentru calculul valorii s-a scris ntr-o caset text formula:
=[cantitate_stocata]*[Pret-unitar]

iar pentru a nsuma cantiti i valori i a afia subtotaluri pe lun, pe material i pe depozit (numai valoric) n Group Footer-urile corespunztoare, s-a utilizat funcia Sum() (ca i n proiectarea formularelor), aplicat cantitii i expresiei valorii. La fel se procedeaz pentru a calcula i afia, la final de raport (Report Footer), un total general valoric, precedat de eticheta Total general intrri..

Fig. 5.14.

Nchil Ctlin laborator Access

140

5. Rapoarte
6. Pentru evidenierea anumitor date (afiare cu caractere i chiar culori diferite a informaiilor n raport, n funcie de ndeplinirea unor condiii) se utilizeaz opiunea Conditional Formating din meniul Format al Microsoft Access. Aceasta este disponibil numai dup selectarea unui control legat la o surs de date (o caseta text (Text Box), de regul). n exemplul dat, se vor afia diferit rndurile de total pe lun cu valori ntre 500 i 800 i ntre 200 i 600 de lei. Se selecteaz caseta text de subtotal pe lun: =[cantitate_stocata]*[Pret-unitar]

apoi se alege opiunea Conditional Formating din meniul Format i se stabilesc cele dou condiii (utiliznd butonul Add pentru adugarea celei de-a doua condiii de formatare). Fereastra Conditional Formating este prezentat n figura 5.14. Pentru renunarea la o condiie se activeaz butonul Delete. Se pot stabili maxim trei condiii (dup cea de-a treia, butonul Add devine inactiv).

5.4. Crearea de rapoarte cu subrapoarte


Dac se dorete completarea informaiilor dintr-un obiect de tip raport cu altele, coninute de diferite obiecte de tip raport, se creeaz aa-numitele subrapoarte. Ele se pot insera att n seciunea de detaliu, ct i n celelalte seciuni (inclusiv n cele de grup). Ca i n operaiunea de creare a subformularelor, se utilizeaz butonul Subform/Subreport din caseta de instrumente (controale) Toolbox, cu sau fr activarea Wizard-ului . De asemenea, se poate aduce subraportul pe suprafaa de lucru, ntr-una dintre seciunile raportului principal, din fereastra Database, utiliznd tehnica drag-and-drop. n cazul n care operaiunea de creare de subraport se desfoar fr Wizard, utilizatorul trebuie s verifice dac proprietile subraportului: Link Child Fields i Link Master Fields au primit numele aceluiai cmp, cel care realizeaz legtura dintre raportul principal i subraport.

5.5. Proprieti ale obiectelor de tip raport i ale seciunilor lor


Proprieti ale rapoartelor

Se pot deosebi patru categorii de proprieti ale rapoartelor:


1. Format: n cadrul acesteia: Caption este utilizat pentru stabilirea unui titlu afiat pe bara albastr de titlu, n modul Print Preview de vizualizare a raportului; Page Header i Page Footer sunt utilizate pentru specificarea paginilor pe care se vor afia antetul, respectiv subsolul de pagin (variante: toate paginile; toate, mai puin prima; toate, mai puin ultima; toate, mai puin prima i ultima); Picture permite specificarea fiierului afiat pe fundalul raportului; Picture Pages precizeaz paginile pe care se va afia fundalul ales.

Nchil Ctlin laborator Access

141

5. Rapoarte

2. Data: Record Source precizeaz o tabel, o interogare, ori o fraz SQL care va fi sursa de date a raportului; Filter se folosete pentru stabilirea unei condiii-filtru pe care trebuie s-o ndeplineasc datele ce vor fi afiate n raport; Filter on permite selectarea a dou valori: Yes, ceea ce presupune c criteriul specificat n Filter devine activ (se aplic datelor) i No, care anuleaz aciunea filtrului; Order By, care precizeaz criterii de sortare, n ordinea gradului de generalitate, cu virgul ntre ele; Order By On poate cuprinde valorile Yes sau No, activnd sau dezactivnd proprietatea Order By.

De exemplu, ntr-un raport se vor afia numai cei din localitatea indicat de valoarea parametrului oras (figura 5.15.).

Fig. 5.15. 3. Event proprieti de tip eveniment: On Open servete, n principal, la definirea de filtre; On Close poate realiza tergerea fiierelor temporare create n timpul execuiei raportului. n general, acestora le sunt ataate funcii ori proceduri. 4. Other alte proprieti. Record Looks asigur blocarea informaiilor dintr-un raport n timpul afirii acestuia; Date Grouping permite utilizarea tipului implicit de dat sau a tipului setat de utilizator; Fast Laser Printing, cu valoarea Yes, realizeaz o tiprire rapid a unui raport, etc.

Toate categoriile de proprieti se regsesc n rubrica (tab-ul) AU.

Nchil Ctlin laborator Access

142

5. Rapoarte

Proprieti ale seciunilor rapoartelor

Acestea nu sunt foarte numeroase. Categoria Data lipsete. Ele servesc la:
atribuirea unui nume fiecrei seciuni (Name), la efectuarea saltului la pagin nou (Force New Page), la ascunderea/afiarea anumitor date (Visible - Yes/No), la pregtirea seciunilor pentru afiare (On Format ori On Print), la reformatarea seciunilor (On Retreat), etc.

Nchil Ctlin laborator Access

143