Documente Academic
Documente Profesional
Documente Cultură
Cursul I-RPB-IT-071-01
Obiective:
Noiunigenerale
Prezentareaaplicaiei
Lansareainchidereaprogramului
Proiectareastructuriibazeidedate
Operaiicutabele
Operaiicudateletabelelor
Crearearelaiilorntretabele
Sortarea,filtrareaiindexareadatelor
Formatarea tabelelor
Definirea relaiilor
Operaii cu cereri
Operaii cu formulare
Operaii cu rapoarte
Operaii cu etichete
RAPOARTE
Lecia 1
Obiectivele leciei
Noiunigenerale
Prezentareaaplicaiei
Lansareainchidereaprogramului
Proiectareastructuriibazeidedate
Operaiicutabele
Operaiicudateletabelelor
Crearearelaiilorntretabele
Sortarea,filtrareaiindexareadatelor
La sfritul acestei lecii va trebui s tii urmtoarele:
Formatarea tabelelor
Definirea relatiilor
Cmpul (field) coloana din cadrul tabelului, care reprezint cea mai mic unitate de
date din cadrul bazei de date.
nregistrarea (record) linia din cadrul tabelului. Linia este compus din cmpuri i
conine toate datele referitoare la un anumit element (dimensiuni, culori, greuti i alte
caracteristici).
Formular (form) un obiect Access care afieaz informaiile dintr-un tabel ntr-un
format diferit de cel al tabelului (altfel dect pe linii sau coloane).
Raport (report) Un obiect Access care stocheaz detalii pentru afiarea sau tiprirea
datelor n mod organizat.
Fr a-i propune s schieze o metodologie sau s stabileasc reguli, acest capitol ncearc s
puncteze etapele principale ale dezvoltrii de aplicaii de baze de date i s exemplifice utilizarea unor
instrumente specifice i va aborda proiectarea modelului conceptual.
Dezvoltarea de aplicaii de baze de date de mari dimensiuni este n acelai timp un fapt banal, dar i un
fapt extraordinar. Banalitatea const n faptul c un procent semnificativ din efortul de dezvoltare de
aplicaii se ndreapt spre acest domeniu. Extraordinarul se leag de complexitatea deosebit a acestor
aplicaii, care implic echipe mari de proiectani, necesit att experien n domeniu ct i adaptarea
la condiii mereu noi. i nu n ultimul rnd, reprezint o mare responsabilitate. Cu toate c industria de
software cunoate o adevrat explozie, cu toate c suntem literalmente bombardai cu sute i sute de
aplicaii din ce n ce mai complexe i mai specializate, nc nu a fost inventat un pachet software
care s satisfac necesitile generale ale unei ntreprinderi. Chiar dac ne restrngem preteniile la
partea numit de obicei de gestiune economic, un astfel de software nu se ntrezrete la orizont, cu
toate c n linii mari, toate ntreprinderile funcioneaz pe aceleai principii. Exist pachete de gata
care satisfac anumite nevoi specifice dar, la noi ca i n alte pri, elemente specifice primeaz i n
consecin marea majoritate a ntreprinderilor prefer s-i construiasc la comand sistemul
informatic.
Aceast abordare implic ns un efort substanial i nu lipsit de riscuri. n rile cu o economie
normal procesul se desfoar cam n felul urmtor. n primul rnd, compania i evalueaz la
modul general nevoile informatice i posibilitile organizatorice i financiare. Apoi se angajeaz o
firm specializat de consultan care, pe baza unei expertize, stabilete cu mai mare precizie cerinele
i posibilitile, dup care sugereaz un numr de propuneri. Acestea se refer att la principiile
tehnologice de baz ct i la costurile evaluate i ealonarea lor n timp. Acum ncepe o nou iteraie.
Compania analizeaz propunerile i alege una dintre ele (sau o combinaie din mai multe) i se trece la
treab. Treaba const de obicei i n acest caz n contactarea unei tere firme (de consultan i
integrare) care va prelua contractual sarcini, ncepnd cu proiectarea de ansamblu a sistemului,
achiziionarea echipamentelor i a soft-ului de baz, i terminnd cu training, asisten tehnic,
mentenan hard i soft. etc. Sunt foarte rare situaiile cnd o companie poate s-i permit s realizeze
toate acestea prin fore proprii. Explicaia este extrem de simpl, n perspectiv occidental: banii. A
plti la modul permanent oameni cu o foarte nalt calificare i experien n domeniu este un lux pe
care foarte puini i-l pot permite, mai ales cnd nu informatica este obiectul afacerii. Ideea este de a
pstra doar o echip restrns care s asigure exploatarea i ntreinerea curent a sistemului
informatic, pentru activitile speciale apelnd la competene externe, orientate pe problem. Revenind
la realitatea economic romneasc, constatm c lucrurile stau cu totul altfel. Scenariile clasice
corespund situaiilor tipice: ntreprinderea (organizaia) are sau nu are bani. Dac nu are, se pornete
de la o evaluare de genul urmtor: Cam de cte calculatoare am avea nevoie ca s.... Rspunsul e
ceva de genul De vreo.... Se cumpr de regul cele mai ieftine calculatoare, se face rost de un om i
se trece la treab. Se constat c s-a investit aiurea, se ncearc o crpeal (pardon, patch), etc, i n
RAPOARTE
cele din urm se pierd doi ani i o groaz de bani. Dac organizaia are bani, singura diferen este c
se face o licitaie, se ncaseaz un mic avans i se trece la treab, ca i n cazul precedent.
Capitolul acesta nu i propune s te fac un expert n domeniu. Ceea ce se ncearc este doar s
sugereze care este n mare problematica dezvoltrii de aplicaii de baze de date de dimensiuni mari,
medii sau mici (la nivel de ntreprindere sau la nivel departamental) i care sunt principalele categorii
de instrumentele care se pot utiliza. Este de fapt o ncercare de sintez bazat att pe experiena
proprie n domeniu (ntr-o mare ntreprindere) ct i pe ansa de a cunoate i de a testa un numr
relativ mare de produse software moderne destinate acestui scop.
GENERALITI
Un sistem de gestiune a bazelor de date (SGBD) este un mecanism al crui principiu fundamental
const, la modul cel mai general, n aa-zisa abstractizare a datelor stocate pe suport. Exist trei nivele
de abstractizare, corespunznd celor trei modele ale datelor: fizic, conceptual i logic.
Modelul fizic (sau intern) privete datele aa cum sunt ele stocate pe suport i reprezint
nivelul zero al abstractizrii;
Modelul logic (sau extern) privete datele prin prisma utilizatorului final.
Pentru o baz de date pot exista mai multe modele logice, n funcie de diversele categorii posibile de
utilizatori finali. Mecanismele de proiecie ntre aceste nivele asigur ceea ce se cheam de obicei
independena de date, adic stabilitatea aplicaiilor la modificri n modul fizic de stocare a datelor.
Proiectarea aplicaiilor de baze de date implic din aceast perspectiv dou etape iniiale extrem de
importante: proiectarea logic i respectiv implementarea fizic a modelului de date. Modelul de date
formeaz fundaia ntregului sistem de aplicaii ce va exploata baza de date. Proiectarea logic (logical
design) se refer la stabilirea modelului conceptual al bazei de date care este n mare msur
independent de SGBD-ul particular care va fi utilizat. Rezultatul acestei etape a proiectrii este un
document care va cuprinde definiia detaliat a structurilor de date ce vor fi implementate mpreun cu
toate elementele de semantic asociate acestor structuri. Implementarea fizic (physical
implementation) const n transpunerea pe SGBD-ul specific a modelului conceptual realizat n etapa
anterioar. Concretizarea acestei etape const ntr-un script (o list de comenzi) realizat n limbajul de
descriere a datelor (DDL - Data Description Language) utilizat de SGBD-ul ales. Rolul acestuia este
s creeze i s iniializeze baza de date cu structurile corespunztoare celor descrise n etapa
anterioar. Acest script se mai numete schema bazei de date i va fi utilizat ca referin n proiectarea
aplicaiilor propriu-zise.
Aceast etap este extrem de complex i de important, deoarece ea stabilete o serie de elemente
care vor influena funcionalitatea, extensibilitatea i, ntr-o destul de mare msur, performana
ansamblului de aplicaii care va fi dezvoltat.
Metoda cea mai utilizat n aceast etap este cea a diagramelor Entitate - Relaie ( ER EntityRelationship). Principalii pai ai proiectrii sunt prezentai pe scurt n continuare.
CULEGEREA INFORMAIILOR
Primul pas n crearea unei baze de date este nelegerea perfect a activitii care urmeaz s fie
modelat. Analiza se face desigur la faa locului i implic stabilirea exact a obiectivelor activitii
modelate, a obiectivelor specifice care se urmresc prin implementarea sistemului, a regulilor care
guverneaz afacerea i care se cer impuse sistemului informatic. Se urmrete n acest scop
date?
Care sunt entitile (lucruri, persoane, concepte, etc.) care vor fi descrise n baza de
Care sunt regulile comerciale care trebuie respectate n mod obligatoriu de viitorul
sistem ?
RAPOARTE
7. COMENZILE sunt preluate de ANGAJAI de la DEPARTAMENTUL Desfacere. Pentru o
COMAND preluat se pltete un comision. Valoarea acestuia este un procent din valoarea
comenzii i este specific angajatului.
8. CLIENII pot comanda doar PRODUSE din catalogul de produse.
9. Un PRODUS poate fi comandat doar ntr-un numr ntreg (>1) de uniti. Pot exista desigur mult
mai multe reguli. De exemplu: ce informaii particulare trebuie memorate pentru clieni, angajai,
comenzi, produse, etc.
IDENTIFICAREA ENTITILOR
Entitile reprezint abstractizri ale lucrurilor reale, fie ele concrete sau imateriale. Ele pot
corespunde unor persoane, obiecte, locuri, documente, concepte, etc. Ceea ce intereseaz n
proiectarea unei baze de date sunt doar tipurile de entiti implicate n activitatea modelat.
Identificarea acestora i corecta lor evideniere este o problem care ine n mare msur de experiena
i chiar de flerul proiectantului. Cu toate acestea, cteva reguli pot fi folositoare. Simplitatea este cea
mai important. Este preferabil s lucrm cu mai puine entiti dect cu prea multe, deoarece pe
parcursul dezvoltrii proiectului cele omise i vor cere cu siguran drepturile, n schimb cele inutile
nu vor cere explicit s fie excluse, complicnd i mai mult o activitate care numai de complexitate nu
duce lips. O alt regul de bun sim este denumirea lor ct mai clar i sugestiv, deoarece aceste
nume tind s se perpetueze pn n detaliile aplicaiilor. n exemplul privind lista (parial) a regulilor
activitii firmei Fictiv Comp am notat cu majuscule posibilele entiti: CLIENT, ANGAJAT,
DEPARTAMENT, COMAND, PRODUS. S-ar fi putut considera o entitate PERSOAN care s
grupeze att angajaii firmei ct i clienii care sunt persoane fizice, s-ar fi putut considera entiti
separate pentru efi, sau diverse alte entiti, dar regula simplitii ne spune c gruparea selectat este
pertinent. Excesul de detalii este duntor la acest nivel, deoarece explozia complexitii care
urmeaz n urmtoarele etape poate face proiectul imposibil de stpnit.
DETERMINAREA RELAIILOR
Este evident c entitile nu pot cuprinde singure ntreaga informaie ce trebuie administrat i nici nu
pot fi concepute ca insule informaionale. O bun parte din informaia semnificativ legat de
activitatea modelat se afl tocmai n relaiile care exist ntre entiti. De pild faptul c anumii
angajai lucreaz la un anumit departament este o informaie util i de fapt se refer la o astfel de
relaie ntre entitile ANGAJAT i DEPARTAMENT. (Atenie la terminologie: se folosete adesea
sinonimul asociere pentru a evita suprancrcarea cu semnificaii a termenului relaie, care n
teoria modelului relaional este sinonim cu tabel.)
Dou observaii:
1. Pot exista relaii definite pe o entitate;
2. Relaiile ntre entiti nu sunt de regul simetrice. n cadrul exemplului privind Fictiv Comp
relaiile sugerate apar scrise legat. Lista lor ar putea fi urmtoarea:
a. CLIENT lanseaz COMANDA;
b. COMANDA este_pentru PRODUS;
c. ANGAJAT preia COMANDA;
d. ANGAJAT lucreaz_la DEPARTAMENT;
e. ANGAJAT conduce DEPARTAMENT.
Subliniez nc o dat c relaiile ntre entiti poart informaie util n egal msur ca i entitile.
Denumirile sugestive sunt chiar mai importante dect la entiti, avnd n vedere c ntre aceleai dou
La modul teoretic, se poate vorbi despre relaii ntre oricte entiti, dar n mod practic nu se lucreaz
dect cu relaii binare (numai ntre dou entiti) i m voi referi n continuare doar la acest tip de
relaii. Este important de subliniat faptul c relaiile ntre entiti leag ntre ele ocurene ale entitilor,
adic realizri, concretizri, cazuri particulare ale acestora. O chestiune extrem de important este
clasificarea lor n funcie de cardinalitatea lor. Sau, altfel spus, de numrul ocurenelor entitilor ce
pot fi legate prin relaia respectiv. Exist trei clase principale de relaii:
relaii one-to-one (1 la 1) relaiile de acest tip leag o ocuren a unei entiti cu cel
mult o ocuren a celeilalte entiti. Exemplul cel mai elocvent este cel al relaiei ANGAJAT
conduce DEPARTAMENT. Poate exista un singur angajat care s conduc un departament. De
notat i faptul c relaiile one-to-one nu implic bijectivitatea (nu orice angajat trebuie s fie
neaprat ef).
Relaii one-to-many (1 la mai multe) este cazul cel mai comun. O ocuren a primei
entiti poate fi legat cu zero, una sau mai multe ocurene ale celei de-a doua entiti. Privite
invers, aceste relaii se cheam many-to-one. Exemple de astfel de relaii ar fi CLIENT plaseaz
COMANDA: un client poate s lanseze mai multe comenzi (dar poate s nu lanseze nici una).
Relaia ANGAJAT lucreaz_la DEPARTAMENT este de asemenea o relaie de acest tip (manyto-one). O alt denumire larg rspndit pentru astfel de relaii este Master-Detail. Uneori se
consider ns c este vorba despre un caz particular al relaiilor one-to-many: orice ocuren a
entitii many (sau detail) se cere a fi legat cu exact o ocuren a entitii one (sau master).
Relaii many-to-many (mai multe la mai multe) n acest caz, orice ocuren a unei
entiti poate fi legat cu mai multe ocurene ale celeilalte entiti i reciproc. Exemplul din
cazul firmei Fictiv Comp este relaia COMANDA pentru PRODUS: o comanda poate s se
refere la mai multe produse iar un produs poate s apar n mai multe comenzi. Astfel de relaii
nu pot fi manipulate direct n cadrul modelului relaional i este indicat s fie descompuse n
relaii 1 la mai multe i/sau 1 la 1. De obicei aceast descompunere se face prin introducerea
unei entiti noi (n cazul de fa se poate introduce entitatea LINIE, care s conin date
referitoare la fiecare poziie a comenzii). Este de notat i un aspect semantic: fiecare latur a
relaiei poate fi obligatorie sau opional. De pild: orice comand trebuie s corespund unui
client. ns nu este obligatoriu ca un client s aib comenzi. De cele mai multe ori partea one
este obligatorie, dar exist excepii (Exemplu: relaia preia).
DETERMINAREA TABELELOR
Modelul relaional se bazeaz pe o modalitate unic de stocare att pentru entiti ct i pentru relaii
ntre acestea: totul se stocheaz n tabele. Primul pas n determinarea tabelelor este deci foarte clar:
fiecrei entiti i va corespunde o tabel. Dac numele entitilor a fost judicios stabilit, este de dorit
ca tabele s pstreze numele entitilor. Totui, numele prea lungi nu sunt de dorit: tabela
corespunztoare entitii DEPARTAMENT o voi numi DEPT. Problemele apar la stabilirea tabelelor
care s stocheze relaiile. Teoretic, orice relaie poate fi stocat ntr-o tabel separat (care s conin
cheile prin care se face legarea liniilor), dar la modul practic se recurge adesea la combinarea n
aceeai tabel a informaiilor referitoare la o entitate cu informaii corespunztoare unei relaii. Este
din nou un pas n care experiena i flerul proiectantului are un cuvnt greu de spus. Cteva repere pot
fi stabilite pe baza unei analize a cardinalitii relaiilor:
RAPOARTE
relaii one-to-one de obicei n aceste situaii relaia este stocat ca un atribut al uneia
dintre entiti. De pild n cazul relaiei conduce, soluia optim este ca tabela DEPT s stocheze
i informaia legat de eful ei. Este posibil i ca informaia de legtur s fie stocat n tabela
ANGAJAT (dar este nerentabil, pentru cei mai muli angajai aceast informaie lipsete).
relaii many-to-many de data aceasta soluia este definirea unei tabele separate care s
preia informaiile de legtur. Procesul de normalizare va tinde (aa cum se va vedea) s mute i
alte atribute ale tabelelor n tabela relaiei aa c se va ajunge pn la urm tot la descompunerea
relaiei prin introducerea unei noi entiti.
DEFINIREA COLOANELOR
Dac s-a stabilit modul de stocare a relaiilor ntre entiti, acest pas nu pune probleme speciale.
Raportul privind specificarea cerinelor ofer informaii suficiente pentru acest pas. Din nou se cere
mult atenie la stabilirea unor denumiri sugestive pentru coloane i la stabilirea unei modaliti
consistente i uniforme de notare (nu datorit unor constrngeri formale, ci pentru a asigura proiectului
un plus de claritate). De pild se pot folosi nume unice pentru aceeai informaie, sau se pot utiliza
prefixe stabilite pe baza numelor tabelelor.
ALEGEREA CHEILOR PRIMARE
Unul dintre principiile fundamentale ale modelului relaional este unicitatea liniilor unei tabele. O
coloan sau o combinaie de coloane care identific n mod unic o linie este numit cheie primar a
tabelei. Exist situaii n care exist mai multe astfel de coloane sau combinaii de coloane. n aceste
cazuri cheia primar este aleas n funcie de relevana lor n cazul specific al activitii modelate.
Celelalte chei posibile se cheam chei candidate. Atributul unei tabele care ia valori din domeniul unei
chei primare a altei tabele se numete cheie strin (stocarea relaiilor ntre entiti se face prin perechi
formate dintr-o chei primar i o cheie strin). n practic se evit n cele mai multe situaii cheile
primare formate din mai multe coloane n cazul tabelelor corespunztoare unor entiti (aa-numitele
nomenclatoare), prin introducerea unui cod anume creat care s joace rolul de cheie primar (de
pild marca pentru angajai, codul pentru produse, etc). Este important n acest caz s se stabileasc
o metodologie unitar i coerent de codificare, deoarece o codificare defectuas poate crea probleme
enorme n exploatarea bazei de date. Exist mai multe metode rspndite, de cele mai multe ori bazate
pe o combinaie de informaii, cum ar fi de pild o liter corespunztoare unei anumite clasificri cu
un cod numeric care s foreze unicitatea. O tehnic util este stabilirea unei aa-numite cifre de
control, generat pe baza unui algoritm, astfel nct riscurile de a introduce un cod greit (care s
cad peste unul existent) s fie ct mai mici.
NORMALIZAREA
Chiar dac toate etapele de pn aici au fost parcurse cu maxim atenie, exist un numr de probleme
care pot s apar n cazul unor operaii de actualizare n baza de date, probleme care risc s
compromit integritatea datelor. Este vorba despre aa-zisele anomalii de actualizare, datorate
dependenelor funcionale nedorite. Evitarea acestor anomalii se face printr-un proces numit
normalizare, avnd o fundamentare formal riguroas.
PREZENTAREA APLICAIEI
MICROSOFT ACCESS este un program de gestionare a bazelor de date folosit pe scar larg de
milioane de utilizatori.
Rolul principal al acestui program este de a accesa i de a stoca datele.
Una din cele mai apreciate caliti ale acestui program este interfaa grafic uor de neles care
permite crearea interogrilor, formularelor i a rapoartelor, facilitate care lipsete din multe alte
programe de acest gen.
NCHIDEREA PROGRAMULUI
Din meniul FILE vei alege opiunea EXIT.
RAPOARTE
Se deschide caseta de dialog File New Database n care introduci numele bazei de date.
Apas butonul CREATE i n acest moment baza de date va fi creat iar pe ecran apare
fereastra corespunztoare acestei baze de date.
10
n caseta de dialog FILE NEW DATABASE alege unitatea de disc i folder-ul n care
vrei s creezi baza de date i specific numele bazei de date.
Not:
Dac fiierul nu este n folder-ul curent caut folder-ul n care a fost salvat anterior
baza de date.
11
RAPOARTE
Execut dublu clic pe fiier sau selecteaz-l i apas butonul OPEN pentru a-l deschide.
n Microsoft Access 2000, butonul OPEN din caseta de dialog OPEN are o list derulant:
OPERAII CU TABELE
CREAREA TABELELOR
Pentru a crea un tabel, urmeaz urmtorii pai:
12
n
fereastra
DATABASE,
execut
dublu-clic
pe
Create Table in Design View. Se deschide modul de vizualizare Table Design.
opiunea
Tasteaz un nume de cmp n primul rnd din coloana Field Name, apoi apas tasta
TAB pentru a trece n coloana Data Type.
Cnd treci la coloana Data Type, apare o list derulant. Deschide lista derulant i
selecteaz un tip de cmp (vezi seciunea Tipuri de date i formate).
Not:
1. Numele cmpurilor din Access pot avea o lungime de cel mult 64 de caractere i
pot conine spaii precum i alte caractere, cu excepia punctului (.), a semnului de exclamaie (!), a
accentului grav (`) sau a parantezelor drepte.
Not:
2. Evit simbolurile $, % sau # n numele de cmpuri, pentru c unele dintre
acestea au anumite semnificaii n programul Access.
13
RAPOARTE
n jumtatea inferioar a casetei de dialog, vezi panoul Field Properties pentru tipul de
cmp pe care l-ai selectat. Poi face orice modificri doreti (vezi seciunea Tipuri de date i
formate).
Cnd eti ntrebat dac vrei s salvezi modificrile operate n tabel, execut clic pe Yes.
Apare caseta de dialog Save As.
Tasteaz un nume pentru tabel n caseta Table Name i apoi execut clic pe OK.
Vei introduce datele n coloanele corespunztoare conform tipului ales pentru cmpul
respectiv.
14
Vei alege din meniul FILE opiunea SAVE sau vei apsa pe butonul SAVE
bara de instrumente standard.
de pe
Pe ecran va aprea caseta SAVE AS n care vei specifica numele tabelei i n final vei
apas OK.
Not:
Vizualizarea ulterioar i modificarea structurii unui tabel se va face prin selectarea
acestuia i apsarea pe butonul DESIGN.
Creeaz baza de date PERSONAL.DBF care s conin tabela SALARIATI cu urmtoarea structur:
15
RAPOARTE
TIPURI DE DATE
Fiecare cmp trebuie s fie de un anumit tip, pentru ca Access s tie cum s-i trateze coninutul.
Tipurile sunt urmtoarele:
TEXT secven simpl de caractere care poate include cifre, litere i simboluri. Un
cmp text poate conine pn la 255 de caractere.
YES/NO poate primi valori logice de tipul YES/NO, TRUE/FALSE sau ON/OFF.
OLE OBJECT cmp capabil a primi ca valoare un obiect (ex. imagine); obiectul
poate fi legat sau inserat.
LOOKUP WIZARD i permite s creezi o list selectnd o valoare din alt tabel sau
lista de valori ntr-o caset combinat, pentru fiecare nregistrare. Este o caracteristic avansat.
TIPURI DE FORMATE
n afar de tipul su, fiecare cmp are opiuni de formatare pe care le poi configura. Acestea apar n
jumtatea inferioar a casetei de dialog, n zona Field Properties.
Opiunile de formatare se modific n funcie de tipul cmpului.
Cele mai importante tipuri de formate:
DEFAULT VALUE Dac, n mod obinuit, un cmp conine o anumit valoare, poi
introduce acea valoare aici pentru a economisi timp. Va aprea n fiecare nou nregistrare i vei
putea s o nlocuieti n rarele ocazii cnd nu este valabil.
Fiecare tabel ar trebui s aib cel puin un cmp a crui valoare este unic pentru fiecare nregistrare
(cmp cheie principal).
16
EDITAREA TABELELOR
Dup crearea tabelelor, acestea pot fi modificate ulterior efectund operaiile de mai jos.
ADUGAREA CMPURILOR
Selecteaz din meniul INSERT opiunea ROW sau apas tasta INSERT. Apare un
rnd gol n lista FIELD NAME.
17
RAPOARTE
TERGEREA CMPURILOR
Etape:
Selecteaz un cmp.
Din meniul EDIT selecteaz opiunea DELETE ROWS sau apas tasta DELETE.
ASCUNDEREA CMPURILOR
Dac nu vrei s utilizezi un cmp la un moment dat, dar vei avea nevoie de el mai trziu, este mai bine
sa l ascunzi dect s-l tergi.
Ascunderea unui cmp are dou avantaje:
Dac ai introdus nregistrri, poi pstra toate datele pe care le-ai introdus n acel cmp.
Proprietile cmpului, pe care le-ai configurat atunci cnd ai creat cmpul, rmn
neschimbate, aa c nu trebuie s le introduci din nou.
Ascunderea unui cmp se face astfel:
Selecteaz din meniul FORMAT opiunea HIDE COLUMNS, sau execut clic-dreapta
pe coloanele respective i selecteaz HIDE COLUMNS. Coloanele dispar.
18
Execut clic pe caseta de validare a fiecrui cmp pe care vrei s-l reafiezi.
TERGEREA TABELELOR
Etape:
n fereastra DATABASE, execut clic pe tipul de obiect TABLES.
Selecteaz din meniul EDIT opiunea DELETE sau apas tasta DELETE.
Apare un mesaj care te ntreab dac eti sigur c vrei acest lucru. Execut clic pe YES.
19
RAPOARTE
Etape:
Apas tasta TAB pentru a trece la cmpul urmtor i tasteaz noua valoare.
Continu s apei tasta TAB pn cnd ajungi la ultimul cmp. Cnd apei tasta TAB n
ultimul cmp, punctul de inserare se mut n primul cmp din urmtorul rnd, unde poi ncepe
o nou nregistrare.
Principalele scurtturi de la tastatur care se utilizeaz pentru deplasarea n interiorul unui tabel sunt:
Explicaie
Cmpul urmtor
Cmpul anterior
Ultimul cmp din nregistrare
Primul cmp din nregistrare
Acelai cmp din urmtoarea nregistrare
Acelai cmp din nregistrarea anterioar
Acelai cmp din ultima nregistrare
Acelai cmp din prima nregistrare
Ultimul cmp din ultima nregistrare
Primul cmp din prima nregistrare
Scurttura
TAB
SHIFT+TAB
END
HOME
CTRL+
CTRL+
CTRL+END
CTRL+HOME
Prima variant:
Deschide tabelul.
20
Etape:
Selecteaz celula executnd clic pe aceasta. (dac vrei s fie selectat ntregul coninut,
poziioneaz indicatorul mouse-ului pe marginea din stnga a celulei astfel nct indicatorul s
devin un semn +, apoi execut clic).
SELECTAREA NREGISTRRILOR
n afar de selectarea anumitor celule dintr-o nregistrare, dac vrei s lucrezi cu o ntreag
nregistrare trebuie s efectuezi operaiunea de selecie. Pentru a realiza acest lucru, executa clic pe
ptratul gri de la stnga nregistrrii. ntreaga nregistrare apare evideniat (litere albe pe fond negru).
21
RAPOARTE
INSERAREA DE NOI NREGISTRRI
Noile nregistrri sunt inserate automat. Cnd ncepi s tastezi o nregistrare, apare un nou rnd
sub ea, ateptnd o alt nregistrare, aa cum se vede n figura de mai sus. Nu poi s inserezi noi
nregistrri ntre cele existente. Acestea trebuie s fie introduse la sfritul tabelului.
TERGEREA NREGISTRRILOR
Etape:
Etape:
Selecteaz cmpurile, nregistrrile, celulele sau zonele de text pe care vrei s le mui
sau copiezi.
Deschide meniul EDIT i selecteaz CUT (pentru mutare) sau COPY (pentru a
copiere).
22
Poziioneaz punctul de inserare acolo unde vrei s inserezi materialul copiat sau tiat.
FORMATAREA TABELELOR
Una dintre cele mai uzuale metode de ajustare a limii coloanelor sau a rndurilor se efectueaz
astfel:
Execut clic i ine apsat butonul mouse-ului i apoi trage marginea coloanei sau a
rndului.
23
RAPOARTE
MODIFICAREA FONTULUI I A DIMENSIUNII TEXTULUI
Daca vrei s modifici aspectul coninutului tabelului trebuie s parcurgi urmtorii pai:
Din meniul FORMAT, alegi opiunea FONT. Apare caseta de dialog FONT.
Apei OK.
Not:
Relaia One-To-Many Este cea mai frecvent n proiectarea bazelor de date ACCESS i are
urmtoarele caracteristici:
Dac T1 (Tabela CLIENTI) i T2 (Tabela Operatii) sunt dou tabele n care exist o
relaie One-To-Many atunci:
Cheia de legtur din tabela primar trebuie s fie declarat cheie primar.
Tabela legtur poate avea cheie primar dar diferit de cea de legtur.
Fiecrei nregistrri din tabela One i corespunde 0, 1 sau mai multe nregistrri
din tabela Many;
Fiecrei nregistrri din tabela Many i corespunde cel mult o nregistrare din
tabela One.
24
Cheile de legtur din ambele tabele sunt chei primare; fiecrei nregistrri din una din
tabele i corespunde cel mult o nregistrare din cealalt.
Relaia Many-To-Many - Este nerecomandat n baze de date ACCESS dar existent n realitate.
Doua tabele se afl n relaia Many-to-Many dac fiecrei nregistrri din prima tabel i corespunde
0,1 sau mai multe nregistrri din a doua i invers.
n ACCESS astfel de relaii pot fi introduse prin crearea unei a treia tabele, numit de legtura (de
jonciune) cu existena a dou relaii de tip One-to-Many.
Pentru a putea explica modul n care funcioneaz relaiile am creat o baz de date BANCA.
Aceast baz de date conine urmtoarele tabele:
Tabela CLIENTI:
Tabela SOLD:
25
RAPOARTE
Tabela DENMONEDA:
26
Tabela DENOPERATII:
Tabela OPERATII:
27
RAPOARTE
Pe ecran apare fereastra RELATIONSHIPS care are urmtoarea form:
Not:
Dac caseta de dialog SHOW TABLE nu apare, apas butonul SHOW TABLE
de pe bare de instrumente.
Selecteaz tabelele ntre care vrei s creezi relaii i apas butonul ADD. Aceste tabele
vor fi introduse n fereastra RELATIONSHIPS.
Exemplu:
28
Obs:
n imaginea de mai sus observi c lng tabelul CLIENTI (cmpul CODCLIENT) apare cifra 1 iar lng
tabelul OPERATII (cmpul CODCLIENT) apare simbolul . Aceste simboluri apar n relaiile n care
caracteristica integritate referenial (ENFORCE REFERENTIAL INTEGRITY) este activat.
Simbolul nseamn muli indicnd faptul c mai multe nregistrri din acest tabel pot s corespund
unei singure nregistrri (simbolul 1) din tabelul legat.
Ex:
S se creeze urmtoarele relaii n baza de date BANCA:
29
RAPOARTE
sau
Sort Descending
nainte de sortare:
Not:
Pentru a aranja nregistrrile n ordinea n care se aflau n momentul iniial,
selecteaz din meniul RECORDS opiunea REMOVE FILTER/SORT.
FILTRAREA DATELOR
Un filtru este o restricie care se pune nregistrrilor unei tabele, unei forme sau unui raport pentru a
afia doar anumite nregistrri specificate.
n aceast lecie vom analiza doar filtrele la nivel de tabel.
Filtrarea este util n acele cazuri n care vrei s nlturi multe nregistrri, astfel nct s poi vedea
doar pe cele care te intereseaz. Filtrarea micoreaz temporar numrul de nregistrri afiate, conform
criteriilor de selecie.
FILTRAREA DATELOR PRIN SELECIE
Filtrarea prin selecie este cea mai simpl metod de filtrare, dar nainte de a o utiliza, trebuie s
localizezi o apariie a valorii pe care doreti s o conin nregistrrile filtrate.
Pentru a filtra prin selecie vei parcurge urmtorii pai:
ntr-un cmp vei gsi o apariie a valorii pe care vrei s o conin toate nregistrrile
filtrate.
Selecteaz valoarea.
30
Dup filtrare:
Not:
REMOVE FILTER
Este o metod de filtrare mult mai puternic dect filtrarea prin selecie.
Cu Filter by Form poi aplica mai multe criterii de filtrare simultan.
De asemenea, poi configura filtre sau, care gsesc nregistrri ce ndeplinesc oricare din criteriile
stabilite. Poi chiar s introduci expresii logice (mai mare dect o anumit valoare).
Etape:
31
RAPOARTE
Execut clic pe cmpul pentru care vrei s stabileti un criteriu. Apare o sgeat
orientat n jos pentru o list derulant. Execut clic pe sgeat i selecteaz din list o valoare
sau poi tasta valoarea direct n cmp.
Dac vrei s stabileti o condiie sau, execut clic pe eticheta OR de la baza ferestrei
i vei introduce criteriul alternativ.
Not:
102.
n exemplul de mai sus am aplicat un filtru pentru clienii care au codul 101 sau
Not:
Eliminarea filtrului o vei face prin apsarea pe butonul REMOVE FILTER
situat pe bara de instrumente.
INDEXAREA DATELOR
Indexurile accelereaz cutrile, catalognd coninutul unui anumit cmp. Cmpul cheie principal
este indexat n mod automat. Dac ns caui, sortezi sau filtrezi n mod frecvent utiliznd un alt cmp,
poi s creezi un index i pentru acel cmp.
32
Nu poi indexa un cmp ale crui date sunt de tip Memo, Hyperlink sau obiect
Etapele indexrii:
Din lista derulant a cmpului INDEXED, selecteaz fie YES (Duplicates OK) fie
YES (No Duplicates), n funcie de coninutul cmpului care poate fi sau nu unic pentru fiecare
nregistrare.
Not:
Nu poi face nimic deosebit cu un index. Indexul nu este un obiect, aa cum sunt
tabelele, bazele de date sau interogrile. Rolul indexului este de a accelera cutrile dar nu are
funciile sale independente.
33
RAPOARTE
Lecia 2
Obiectivele leciei
Cereri.Operatiiprincipale.
Cererideselectie.
CereriCrossTab
Cererideactiune
CereriDelete
Creareaformularelor.Adaugareacontroalelor.
Rapoarte.Operatiiprincipale
CERERI (QUERIES)
Access i ofer mai multe metode prin care te ajut s restrngi domeniul informaiilor pe care le
caui, inclusiv prin sortare i filtrare.
Cel mai flexibil mod de a sorta i filtra date este cererea iar cel mai important fapt este c le poi salva
i utiliza pentru a crea tabele, pentru a terge nregistrri sau pentru a copia nregistrri ntr-un alt
tabel.
Cererile i permit s specifici:
CERERI DE SELECIE
Cererile de selecie sunt obiecte Access care solicit baza de date s rspund anumitor ntrebri
formulate de utilizator.
34
35
RAPOARTE
nchide caseta de dialog SHOW TABLE; apare o machet prin intermediul creia se
poate proiecta cererea.
Not:
n zona SORT vei specifica cmpul (cmpurile) dup care va fi sortat cererea.
Ex:
n cererea de mai sus am introdus cmpurile NUME, PRENUME (Tabela CLIENTI), CANT (Tabela
OPERATII), DENMON (Tabela DenMoneda) i DENOP (Tabela DenOperatii).
Rezultatul interogrii este urmtorul:
36
de pe bara de instrumente.
Etape:
Etape:
Selecteaz coloana;
37
RAPOARTE
MUTAREA UNEI COLOANE
Etape:
Selecteaz coloana;
dorit.
Etape:
38
Selecteaz coloana;
Etape:
Selecteaz coloana;
EXEPMLE
Not:
1. Primul cmp al cererii este un cmp calculat avnd numele NUME SI
PRENUME; valoarea unui astfel de cmp este dat de o expresie (concatenarea prenumelui cu
numele).
Not:
2. Cmpurile calculate sunt neactualizabile, adic nu se pot face modificri n
interiorul acestora, modificri care s se reflecte i n tabelele ce compun cererea respectiv.
Not:
3. Cmpul SEF este trecut n cerere numai pentru a fi pus condiia de filtrare
(FALSE) asupra lui; nefiind bifat n linia SHOW, nu este prezent n rezultatul cererii.
39
RAPOARTE
Rezultatul cererii este:
Not:
S-a utilizat cmpul nume de dou ori, a doua oar acesta nefiind afiat.
40
41
RAPOARTE
n tabela SALARIATI se va introduce un cmp AVANS (Numeric Long Integer) dup cmpul
SALARIUL i se va completa cu valori.
Vom ncerca s calculm prin intermediul unei cereri lichidarea care i se cuvine salariatului dup
formula: LICHIDARE=SALARIUL-AVANS. Sortarea se va face dup cmpul MARCA ascendent.
Proiectarea cererii arata astfel:
42
n exemplul urmtor vom ncerca s obinem anumite date statistice referitoare la nregistrri grupate
dup cmpul FUNCTIA care nu sunt efi.
43
RAPOARTE
Proiectarea cererii arat astfel:
Obs:
Dup cum observi s-a folosit funcia GROUP BY pentru gruparea valorilor n cmpul FUNCTIA.
Poi s specifici i grupurile pe care vrei s le afiezi astfel:
Cererile de selecie parametrice sunt cereri n care condiia se poate schimba de la o execuie la alta. n
condiie pot fi introduse cmpuri inexistente pentru care sistemul cere valori.
44
n momentul rulrii cererii, pe ecran apare o fereastr prin intermediul creia i se cere s introduci
parametrul dorit (n cazul nostru FUNCTIA).
CERERI CROSSTAB
Sunt cereri care realizeaz suma, media, numrarea sau alte tipuri de totaluri i apoi grupeaz
rezultatul pe dou tipuri de informaie (row headings i column headings).
Ex:
Creeaz baza de date VANZARI.
S se creeze n aceast baz de date, tabela AgentiVanzari cu urmtoarea structur:
45
RAPOARTE
Coninutul tabelei s fie cu urmtorul:
Creeaz o cerere de tip CrossTab avnd sursa format din tabelele Vanzari i AgentiVanzari.
46
Not:
Introducerea rubricii CrossTab se face alegnd din meniul QUERY opiunea
CROSSTAB QUERY.
n cererea de mai sus am grupat valorile cmpurilor NUME i CATPROD i am utilizat funcia SUM
pentru cmpul VANZARI.
n rezultatul final cmpul NUME va reprezenta liniile tabelului rezultat, cmpul CATPROD coloanele
tabelului rezultat iar cmpul VANZARI va reprezenta valorile acestui tabel.
Rezultatul interogrii este urmtorul:
CERERI DE ACIUNE
O cerere de aciune este o cerere care face schimbri la una sau mai multe nregistrri printr-o singur
operaie.
Exist patru tipuri de cereri de aciune:
CERERI UPDATE
Acest tip de cerere face schimbri globale la un grup de nregistrri n una sau mai multe tabele.
n exemplul de mai jos vei ncerca indexarea salariului tuturor medicilor din baza de date PERSONAL
(tabela SALARIATI) cu 20%.
47
RAPOARTE
Proiectarea cererii arat astfel:
Introducerea rubricii CrossTab se face alegnd din meniul QUERY opiunea UPDATE QUERY.
Dup proiectarea cererii trebuie parcurse urmtoarele etape:
Daca apei YES, modificrile respective se vor produce n tabela (tabelele) respectiv.
Dac vrei s vezi modificrile pe care le-ai efectuat apas pe butonul DATASHEET
.
48
n caseta de dialog Make Table tasteaz numele noului tabel (SalNou) i apas OK.
CERERI APPEND
Acest tip de cerere adaug un grup de nregistrri din una sau mai multe tabele la sfritul uneia sau a
mai multor tabele.
Pentru a construi o cerere de tip APPEND creeaz mai nti o tabel SAL cu aceeai structur ca i
SALARIATI.
49
RAPOARTE
COPIEREA STRUCTURILOR TABELELOR
Etape:
Execut secvenele EDIT => COPY i EDIT => PASTE. Apare caseta de dialog
PASTE TABLE AS, bifeaz opiunea STRUCTURE ONLY i apas OK.
date:
Not:
Aceste date vor fi introduse la sfritul tabelei SALARIATI prin intermediul unei
cereri APPEND.
CREAREA CERERILOR APPEND
Etape:
Alege din meniul QUERY optiunea APPEND QUERY. Pe ecran apare caseta de
dialog APPEND.
50
n caseta TABLE NAME alegi numele tabelei n care vor fi copiate noile nregistrri i
apei OK.
CERERI DELETE
terge una sau mai multe nregistrri din una sau mai multe tabele.
n exemplul urmtor tergi nregistrrile inserate n exemplul anterior (MARCA>=200) prin
intermediul unei astfel de cereri.
51
RAPOARTE
Etape:
Creeaz o cerere care are ca surs tabela SALARIATI i selectezi cmpul MARCA cel
pe care vei pune criteriul de tergere.
52
Lecia 3
Obiectivele leciei
?
FORMULARE
O metod foarte bun pentru introducerea datelor n tabele este crearea de formulare. Cu ajutorul unui
formular, poi aloca exact att spaiu ct este necesar pentru fiecare cmp i poi introduce informaii
n mai multe tabele simultan.
n general, fiecare formular afieaz o singur nregistrare la un moment dat.
Poi crea un formular n trei moduri:
Autoforms ofer foarte rapid formulare care conin toate cmpurile ntr-un singur tabel.
53
RAPOARTE
Deschizi lista derulant de la baza casetei de dialog i alegi tabelul sau interogarea pe
care o utilizezi ca surs a datelor din formular.
Not:
Formularul pe care-l obii cu AutoForm s-ar putea s nu fie prea artos. Etichetele
de cmp pot fi trunchiate i cmpurile pot fi apropiate. n acest caz nchide formularul fr s-l
salvezi i ncearc din nou cu Form Wizard.
Din lista derulant TABLES/QUERIES, alegi un tabel sau o interogare din care s
selectezi cmpuri (n mod prestabilit este selectat primul tabel n ordine alfabetic)
Execut clic pe un cmp din lista AVAILABLE FIELDS pe care vrei s l introduci n
formular i apoi execut clic pe butonul Next > pentru a muta cmpul n lista SELECTED
FIELDS.
Repet pasul anterior pn cnd selectezi din acel tabel toate cmpurile pe care vrei s
le incluzi.
Not:
Dac vrei s incluzi cmpuri din alte tabele sau cereri, selecteaz-le din lista
TABLES\QUERIES.
54
i se cere s alegi un stil. Execut clic pe fiecare stil din list pentru a-l previzualiza;
execut clic pe NEXT dup ce ai ales un stil.
Introdu un titlu pentru formular n caseta de text din partea de sus a casetei de dialog.
55
RAPOARTE
56
Selecteaz un tabel sau o interogare din lista derulant de la baza casetei de dialog.
Etape:
LIST
Afieaz lista FIELDS dac aceasta nu este vizibil prin apsarea pe butonul FIELD
sau alege din meniul VIEW opiunea FIELD LIST.
Trage cu mouse-ul un cmp din lista de cmpuri n zona DETAIL a raportului.
Etape:
Dac nu eti deja n modul de vizualizare FORM DESIGN, treci n acest mod.
Execut clic pe numele unui control pentru a-l selecta. Apar mnere de selecie n jurul
lui. Poi selecta mai multe controale, innd apsat tasta SHIFT n timp ce execui clic pe
fiecare.
Execut clic i ine apsat butonul stng al mouse-ului ct timp vei trage controlul ntr-o
alt poziie.
57
RAPOARTE
DEPLASAREA CONTROALELOR I A ETICHETELOR N MOD INDEPENDENT
Etape:
Ex:
S se creeze urmtoarea form:
Not:
Executarea formei se face prin apsarea pe butonul VIEW
instrumente sau din meniul VIEW opiunea FORM VIEW.
Forma va arta astfel:
58
de pe bara de
Pe lng zona DETAIL pe care ai utilizat-o pn acum mai exist i alte zone:
FORM HEADER i FORM FOOTER sunt zone care se repet n partea de sus sau
de jos a formularului, cum ar fi titlul formularului n partea de sus sau o noti de copyright n
partea de jos.
Not:
Adugarea antetelor i a subsolurilor de pagin se face, selectnd din meniul
VIEW opiunea FORM HEADER/FOOTER.
PAGE HEADER i PAGE FOOTER sunt zone care se repet n partea de sus sau de
jos a fiecrei pagini a formularului atunci cnd l tipreti.
Not:
Pentru a afia aceste dou zone trebuie s selectezi din meniul VIEW opiunea
PAGE HEADER/ FOOTER.
59
RAPOARTE
Formularul va arta astfel:
ADUGAREA ETICHETELOR
Pentru a putea aduga formularului titluri, subtitluri, text explicativ i altele trebuie s adaugi n
formular un obiect care se numete etichet.
Not:
din meniul VIEW sau execut clic pe butonul TOOLBOX de pe bara de instrumente.
Etape:
Execut clic oriunde n afara controlului pentru a termina operaia sau apas ENTER.
FORMATAREA ETICHETELOR
Dup ce ai plasat toate informaiile ntr-un formular (controalele pe care vrei s le incluzi i etichetele
pentru afiarea oricrui titlu sau text explicativ), urmtorul pas este s faci formularul mai atrgtor.
Toate instrumentele de formatare de care ai nevoie sunt pe bara de instrumente Formatting.
60
Cnd introduci date ntr-un formular, apas tasta Tab pentru a te deplasa de la un control la altul, n
ordinea n care sunt afiate n formular.
Dac mui i rearanjezi controalele, ordinea de deplasare cu tasta Tab nu se modific automat.
Pentru a ajusta ordinea de deplasare cu tasta Tab trebuie s parcurgi urmtorii pai:
Alege din meniul VIEW opiunea TAB ORDER. Apare caseta de dialog
TAB ORDER.
RAPOARTE
Rapoartele sunt obiecte prin intermediul crora generezi rezultate profesionale care pot fi afiate pe
ecran, tiprite pe hrtie sau afiate pe Internet.
Deschide baza de date care conine tabelul sau interogarea pe baza creia vrei s creezi
raportul.
61
RAPOARTE
Selecteaz din lista derulant tabelul sau interogarea pe baza creia vrei s construieti
raportul.
Deschizi baza de date care conine tabelul sau interogarea pentru care vrei s creezi un
raport.
62
Execut clic pe eticheta Reports din fereastra Database. Pe ecran apare caseta de
dialog Report Wizard.
Din lista derulant Tables/Queries, selecteaz un tabel sau o interogare din care vrei s
incluzi cmpuri.
Dac vrei, selecteaz un alt tabel sau o alt interogare din lista Tables/Queries i repet
pasul anterior. Tabelele pe care le alegi trebuie s aib relaii ntre ele, astfel nct datele s
coincid n raport.
63
RAPOARTE
Cnd ai terminat de selectat cmpurile, execut clic pe NEXT. Apare prima caset de
dialog Report Wizard.
Dac vrei gruparea nregistrrilor dup oricare din cmpurile pe care le-ai selectat,
Aplicaia Wizard te ntreab ce ordine de sortare vrei s utilizezi. Dac vrei nregistrri
sortate, deschide lista derulant de sus i selecteaz un cmp dup care vrei ca sortarea s se
efectueze. Selecteaz cel mult patru sortri din listele derulante.
n mod prestabilit, sortarea este n ordine cresctoare (de la A la Z). Execut clic pe
butonul de lng caset pentru a schimba ordinea de sortare n descresctoare (de la Z la A),
daca vrei.
64
Apas NEXT.
n urmtoarea caset de dialog a aplicaiei Wizard, alege un stil de raport. Sunt afiate
mai multe; execut clic pe unul pentru a vedea o mostr.
65
RAPOARTE
i se cere un titlu de raport. Vei introduce un titlu n caseta de text Report i execut
clic pe FINISH pentru a vedea raportul n modul PRINT PREVIEW.
Daca vrei s obii rapid o copie tiprit, execut clic pe butonul PRINT
instrumente.
66
de pe bara de
67
RAPOARTE
Redimensionarea obiectelor selecteaz obiectul, apoi poziioneaz indicatorul mouse-ului deasupra
unui mner de selecie i trage-l pentru a redimensiona obiectul.
Formarea obiectelor de text utilizeaz listele derulante Font i Font Size de pe bara cu instrumente
pentru a alege fonturi, apoi utilizeaz butoanele Bold, Italic sau Underline de pe bara cu instrumente
pentru a aplica anumite atribute. Poi aduga, de asemenea, linii i imagini n rapoarte, la fel ca n
formulare.
Dac nu vezi lista Field, vei alege din meniul View opiunea Filed List sau execut clic
Trage orice cmp din lista de cmpuri n raport, unde devine un control n mod
prestabilit, o caseta de text. Plaseaz-l oriunde vrei n zona Detail.
Not:
fi ters.
68
Not:
n cazul n care bara de instrumente Toolbox nu este afiat, poi apsa pe butonul
Toolbox
de pe bara de instrumente standard sau poi alege din meniul VIEW, opiunea
TOOLBARS i apoi TOOLBOX.
alpopey@rdslink.ro
69