Sunteți pe pagina 1din 99

ACADEMIA DE TRANSPORTURI, INFORMATICĂ ŞI COMUNICAŢII

Seria Teorie Economică, Matematică, Informatică

ILIE

COANDĂ

A

C

C

E

S

S

Ghid de iniţiere (proiectarea şi utilizarea Bazelor de Date)

Chişinău, Evrica 2001

CZU 004.6 (075.3)

С

58

Descrierea CIP a Camerei Naţionale a Cărţii Coandă Ilie Access: Ghid de iniţiere (proiectarea şi utilizarea Bazelor de Date) / Ilie Coandă; Academia de Transporturi, Informatică şi Comunicaţii. - Ch.: Evrica, 2001 (Tipogr. AŞM). - 100 p. - Seria Teorie Economică, Matematică, Informatică

ISBN 9975-941-81-8 1000 ex. 004.6 (075.3)

Lucrarea constituie descrierea unor elemente necesare şi suficiente pentru elaborarea proiectelor Bazelor de Date. într-un mod accesibil, cu explicarea noţiunilor strict necesare, în baza exemplelor de creare a Bazelor de Date, se demonstrează tehnologia proiectării. Includerea noţiunilor noi prin exemple de folosire a acestora, în scopul de a îmbunătăţi în continuare performanţele aceloraşi Baze de Date se presupune a fi destul de utilă atît pentru lărgirea posibilităţilor pe orizontală, care permit gestionarea informaţiei mai diverse şi mai complete, cît şi pe verticală, care permit includerea unor noi obiecte, ce asigură exploatarea Bazei de Date la un nivel mai sigur şi mai comod la utilizare. Cartea este adresată elevilor, liceenilor, studenţilor, cadrelor didactice - tuturor celor care doresc să-şi însuşească într-un timp scurt noţiunile esenţiale şi să deprindă cele mai simple tehnologii de proiectare a Bazelor de Date în mediul Access din Microsoft Office.

Lucrarea a fost realizată în cadrul Institutului de Matematică Aplicată şi Informatică al Academiei de Transporturi, Informatică şi Comunicaţii.

Seria Teorie Economică, Matematică, Informatică

Redactor:

Dumitru Solomon, Academician al Academiei Internaţionale de Informatizare, Doctor habilitat

Autor: Ilie Coandă, conferenţiar, Doctor în ştiinţe fizico-matematice

M-208-96

ISBN 9975-941-81-8

© Editura “Evrica”, 2001 © Ilie Coandă, 2001

Argument

ARGUMENT

aarea Bazelor de Date (BD) la gestionarea informaţiei în diverse domenii ale

  • -- i • istre devine din ce în ce mai insistentă. Apariţia pe piaţă a pachetului Vlkrra>ofî Office, care include şi aplicaţia Access, un soft destul de convenabil şi

aenani oricare, a accelerat simţitor implementarea proceselor automatizate de Trei шстате i datelor. - .; :
aenani oricare, a accelerat simţitor implementarea proceselor automatizate de
Trei шстате i datelor.
-
.;
:
irs.i
âe, решги ca o BD să funcţioneze eficient în favoarea utilizatorului, acesta din
e. în primul rînd, să cunoască bine modul ei de exploatare, precum şi cele
i
:
:
~ -j
:: "_mte principii de funcţionare a ei. De asemenea, utilizatorul trebuie să fie
...
"
ы
-
:<aa ii lucreze
' i
cont
de posibilităţi şi necesităţi, să facă unele modificări
pentru
a
se
şi în alte condiţii, similare celor iniţiale. Pentru un utilizator mai
. x.portant este să cunoască şi cele mai simple elemente şi tehnici de
:
:
c
i
_nei BD.
.: г. : : г
a~ma vedere, condiţiile descrise mai sus pot părea, pentru majoritatea
greu de realizat. Această carte are intenţia de a spulbera astfel de păreri.
:
1s&zi posesia unui calculator este o realitate pentru majoritatea celor care se
a.
i.3-1
i :
:
ucrarea informaţiei oriunde ar activa. Două lubruri simple pot lipsi:
ы
гп
и
ae i-şi organiza mai eficient lucrul cu volume mari de informaţie şi deţinerea
ara-ar asemenea acestuia. Astăzi la dispoziţia noastră sînt puse destul de multe
-
:
-
:
aespre BD, de
la cele
mai
simple pînă
la cele mai complicate tehnici de
i in _ unei BD. însă cu greu veţi putea găsi unul, care, fără a vă familiariza cu un
: liiiiii-
r
e ie noţiuni noi şi complicate, să vă conducă într-un mod clar la proiectarea
.' -
ВD : -Ţie, care, cît de cît, să constituie un exemplu de început şi să vă convingă
..
.
: _ :;i
_~ei BD este un lucru accesibil şi pentru dumneavoastră.
. zarea metodei de cunoaştere de la simplu la compus pentru proiectarea unei
KD
: ir. с venită pentru începători, de aceea pe parcursul expunerii materialului,
ш iu ic i>:i 'sînt explicate în măsura necesităţii şi la momentul utilizării acestora.
:i_' de proiectare a unei BD este prezentat iniţial prin crearea celei mai
g ii|pig
i a
care conţine
doar
o
singură
tabelă.
Apoi
se extrage
şi
se analizează
на:гласа, a n ea. Ulterior se ajunge ia concluzia că mai este nevoie de folosit şi alte
aa:.r
:
: am
să asigure informaţie mai detaliată. Se demonstrează într-un mod accesibil
:: a:e realiza acest lucru. Se explică cum trebuie de procedat la modificarea BD
с antele cresc. Astfel, cititorul va fi îndrumat spre a înţelege din ce în ce
пж: г г : irnnicile de proiectare a unei BD.
a.:a.r.

3

Argument

Volumul lucrării date permite studierea tehnicilor de proiectare a BD utilizînd un număr relativ mic de elemente şi noţiuni din Access. însă “instrumentele” folosite în modul de utilizare practică şi concretă sînt suficiente pentru a învăţa proiectarea unei BD simple. Să fim conştienţi că proiectarea unei BD poate fi privită ca o activitate de creaţie. Două baze de date pot păstra şi furniza aceeaşi informaţie, însă, după structură şi după modul de exploatare, ele pot fi cu totul diferite. Materialul lucrării este repartizat în lucrări de laborator, fiecare avînd un anumit scop. Repartizarea este foarte relativă şi depinde, în mod direct, de capacitatea cititorului de a realiza cele expuse timpul rezervat pentru o lucrare de laborator. Atenţionăm că studierea noţiunilor şi a tehnicilor de proiectare trebuie făcută anume în ordinea în care este expus materialul. La sfîrşitul fiecărei lucrări este prezentată o listă de întrebări, probleme, discuţii, care vor spori eficienţa studierii, cititorului oferindu-i-se posibilitatea de a-şi încerca forţele la proiectarea şi a altor obiecte.

Access. Ghid de iniţiere

Lucrarea de laborator nr. 1

Lucrarea de iaborator nr. 1

  • 1. C ite va etape principiale la începutul proiectării unei Baze de Date

" -

Hi

se

proiecteze

o

bază

de date (BD)

care

ne-ar ajuta

facem

un

:

~ : u al informaţiei despre mărfurile vîndute pe parcursul

unei perioade. Ne

: îsir.

;reăm o BD, care ne-ar da posibilitate să analizăm, în orice moment, î : :i e pentru fiecare tip de marfa vîndută.

^

-

r:

scop, mai întîi, trebuie să stabilim următoarele:

 

.-

:'nd să se ia la evidenţă informaţia despre vînzări? Răspunsul poate

fi

 

la fiecare operaţie de vînzare să se facă înregistrările

cu informaţia

:

: i Astfel s-a ajuns la concluzia ca imediat, după sau poate chiar în

. inzărilor, să se înregistreze informaţia necesară şi suficientă pentru a : ms£ -iîaunde la întrebările formulate.

~ : ~ :

 

— :

” 1 să fie înregistrată informaţia? Una dintre cele mai obişnuite şi comode nregistrare este forma de tabele. Deci informaţia poate fi înregistrată în mbele.

jt

 

:

laicele vor fi necesare?

De

regulă,

într-o

tabelă

se

conţine

informaţie

 

..:

la un grup de particularităţi ale unui obiect, proces etc. în cazul

nostru

 

-

'

: a despre informaţia referitoare la vînzări.

Prin urmare, pentru acest proces

11

: r

- c erca să folosim doar o singură tabelă.

-

:: : e i

obişnuită constă din coloane (în terminologia BD coloanele se numesc şi rînduri (informaţia dintr-un rînd întreg al unei tabele se numeşte

 

'ir

;:

i;e l De regulă, într-o coloană se introduce

informaţie omogenă, de acelaşi

::

rindurile. Cîte coloane va avea tabela şi ce fel de informaţie va fi în i nire ele? Luînd în consideraţie condiţiile problemei, răspunsul poate fi

::г:е

 

JL-Tîiiii:.„

-

tabela

urmează

conţină

5

coloane

pentru

informaţia despre

 

■:

e i mărfii, unitatea

de măsură, data vînzării, cantitatea şi preţul,

 

и: I

:c im stabilit că vom avea doar o singură tabelă şi că ea va conţine coloanele

^ Hi ro ta ţia

respectivă, este util

să se facă o

mică analiză, pentru a stabili dacă

 

~ ~ f ' gură tabelă este suficientă. în cazul dat, problema formulată este simplă,

 

i r.

: г e comod şi suficient să folosim doar o singură tabelă,

compusă din cele 5

  • - : m e. In care vom înregistra informaţia precizată mai sus.

 

în care am determinat răspunsurile, cel puţin la aceste 5 întrebări,

i не

:

I crearea unei Baze de Date noi.

 

i l .....

 

' т. funcţie de versiunea pachetului MicroSoft Office, după activarea \ceess (mediul Access poate fî activat în diferite moduri: se poate face un

: - 1 >: r.;ia cu denumirea respectivă din meniul Programs din Start sau* se^poate

:

7 ...i

::

respectivă de pe Desktop),

pe ecran

pot

să apară diferite

imagini X}®

" t -г":V":

 

* de

lucru.

De fiecare

dată

trebuie

acţionăm

conform

indicaţiilor şi

irealii :* : г>:nse.

în funcţie de scop.

în fig.

1.1 este prezentată imaginea la prima

 

:::

cescr.idere a Access-ului. Observăm în ea mai multe opţiuni, dintre care,

:

t*i

"

doar una este potrivită, şi anume, opţiunea Blank Access Database.

: : ci ;: 5 ie mediul pentru crearea unei Baze de Date noi.

Access. Ghid de iniţiere

Lucrarea de laborator nr. 1

Atragem atenţia că pentru începători ar fi foarte bine să studieze cu atenţie

imaginile şi comentariile ataşate la fig.

1.1-1.7. încercaţi să creaţi Baze de Date,

deocamdată goale, cu aceleaşi (sau alte) denumiri şi în diferite directorii, apoi, folosind

tehnica din Windows,

să modificaţi denumirile, să le copiaţi în alte directorii, să le

lichidaţi definitiv. în aşa mod veţi însuşi bine gestionarea fişierelor de tip mdb. Să trecem la acţiuni concrete pentru proiectarea unei Baze de Date noi. Ţinînd cont de comentariile din fig. 1.1-1.3, în versiunea Access-2000, sau din fig. 1.4-1.7, în versiunea Access-97, acţionăm respectiv ca să obţinem o imagine asemănătoare cu cea din fig. 1.8, desigur, la început, fară informaţia respectivă completată. Citiţi cu atenţie comentariile din fig. 1.8 şi completaţi informaţia în modul respectiv, pentru a obţine întocmai ceea ce este în ea.

ш

ш

т

ш

м

ш

и

г Create a new database using

vizards, pages; and proje

More Files A:\planificare zi\planificare zi A:\planificare\planificare zi F:\planificare zi\planificare zi F:\planificare ff\planificare ff

Imaginea din stînga apare în versiunea Access-2000. Avem posibilitatea de a deschide una dintre bazele de date deja create. în acest scop trebuie de activat opţiunea Open an existing file (aşa cum

este arătat aici), apoi de făcut un click pe

Q dejJWTfire din

:ta ataşată cu denumirile

Tşierelor,j^C de fapt, sînt nişte baze de un click pe butonul OK, BD, fişierul respectiv, va fi deschis. în care doriţi să creaţi o bază de date nouă, treBtrk^ictivată opţiunea respectivă — Blank Access database, apoi - OK. Există şi alte modalităţi de deschidere a unei baze de date, de exemplu, cu dublu

click pe denumirea fişierului.

Fig. 1.1. Opţiunile în prima etapă de lucru în mediul Access.

 

'^My Documents

 

Computer

 

Network Places

м ^Shortcut to 3.5 Floppy (A) Shortcut to DOS (C)

'OOCUfflenfcS

 

Fferjame:

|db2

Saveasjype: jjvBcrosoft Access Databases

După ce am determinat că intenţionăm să creăm o bază ie date nouă, adică, după ce am acţionat în modul deSmşmai sus, pe ecran apare următoarea imagine (în Access-^ЩД, în această etapă trebuie să arătăm locul unde dorim caBa^a de Date nouă să fie salvată. în acest scop acţionăniăici. Apoi atribuim un nume pentru Baza de Date în curs de proiectare, introducem numele^şici, avem grijă ca ajci să fie indicată infoprfaţia respectivă^pcfi acţionăm butonul Create. Jtentru a evita cop&fii, trebuie să fim aj atribuirea тдябкп Bazei de Date^&gTsă nu coincidă cu vreunora creată şi salvşfâ^fîalte directorii.

18 £reate

Zj

Cancel

Fig. 1.2. Locul de păstrare şi denumirea BD.

Access. Ghid de iniţiere

Lucrarea de laborator nr. 1

Imediat după acţionarea butonului Create, apare fereastra

u imaginea din fig. 1.3. în această etapă, cînd Baza de

Date^ste^goală, nici un obiect nu este creat, ni se oferă

trei opţiuniT^ste-^blaesă începeţi cu crearea unei tabele în

yî'egimul de proiect (Desîgîl^k^Observaţi butoanele

Open, Design, New, care pot fi acţî^nate^entru a începe

proiectarea unei tabele noi, trebuie de acţionatNew

entru a deschide proiectul unei tabele deja proiectate,

ale^bfiaDesign, iar pentru a o deschide cu afişarea datelor

din ea —ЪрвцУ Să fim atenţi ca să fie activată pagina cu

obiectele respectîv&^Dacă se lucrează cu tabelele, atunci

trebuie să fie activată abeastă pagină -- lista tipurilor de

te din care poate fi construită o Bază de Date în

Access^ZOOft^omparaţi-o cu lista de obiecte respective

din versiunea Acbesscg? (fig. 1.7). Făcînd cîte un click pe

fiecare denumire din această listă, vom obţine lista cu

obiectele deja create de tipul dat.

Fig.

1.3. Fereastra de bază a bazei de date db2.

Create a New D atabase Using

Q atabase W izard

în fig. 1.4 este arătată imaginea care

apare în Access-97, corespunzătoare cu

cea din fig. 1.1. Aceasta este lista celor

mai recent d#s6mse Baze de Date.

M ore Files, D:\FU RN M E1 D:\calcNMPIANl D:\calc\3 IBLIO D:\3 DStud\ulici9 7

Fig. 1.4. Prima imagine la activarea Access-ului-97.

Save in;

jwJ fffT

^доы: ^jDo22

: ^jFaez222s V]F3ez222

Fife n^me:

)db^

—--- —----

Save as £rpe: jMicrosoft Access Databases

zl м

ш

ш

3

Imaginea în Access-97, corespunzătoare

celei din fig. 1.2. Atenţionăm că

diferenţele sînt minifne. De fiecare dată,

la deschiderea unei Baze de Date, trebuie

să fim atenţi la ceea ce ni se propune şi să

alegem opţiunea potrivită, ţinînd cont de

stogurile concrete. în cazul dat, Baza de

^Dal^âW^va fi salvată, creată în

directoriul nff.

Fig. 1.5. Locul de păstrare şi atribuirea numelui db2.

7

Access. Ghid de iniţiere

Lucrarea de laborator nr. 1

New Table

Create a new tabfe in Design view,

/

Datasheet V

Table'W^ar

Import Tatii*

Link Table

Imaginea în Access-97

corespunzătoare celei din fig. 1.3.

Observăm componentele comune

ă.sens, însă plasate diferit. Lista de

paginheu^obiecte este plasată aici

orizontal, acîrte^-vertical. Atragem

atenţia că caseta New table apare

după acţionarea butonului New, apoi

putem alege o opţiune din listă.

Atenţiei urice obiect deja creat poate

fi deschis în regim de proiect (Design

View) pentru & modifică structura iui.

Fig. 1.6. Alegerea opţiunii Design View la proiectarea unei tabele noi.

I Reports ]

3

Macros j

^

1 Tablei : Table

PagirnleTculista de obiecte de tipurile Tjjt

Queries care pot fi create în Accgs&^L La începutul

creării BD toate paginilej^ft^goale. Dacă vom alege

opţiunea DataSheeHfiew, atunci vom obţine

imaginea asemănătoare cu aceasta, iar opţiune

Design View asigură imaginea-proiec

icord;

и

h

i

Г

ab le l

:

Table

I

Field Name

I Data Type

I

■■

Description

тыт

M

î

Field Properties

însral I Lookup )

Fig. 1.7. Alegerea opţiunii respective la crearea unei tabele noi.

1.1. Crearea tabelelor - fundament al Bazelor de Date

După ce aţi pregătit totul, aşa cum este arătat în fig. 1.8, încercaţi să închideţi

tabela prin acţionarea semnului X din colţul dreapta-sus; ca rezultat veţi fi

preîntîmpinaţi că trebuie atribuit un nume tabelei date. Răspundeţi cu Vinzari, iar la

întrebarea, dacă doriţi să aveţi o cheie primară, alegeţi varianta No, şi, în aşa mod,

tabela va fi salvată cu numele atribuit. Aşadar, proiectul tabelei este gata. în fereastra

Bazei de Date, pe pagina Tables, trebuie să observaţi acest obiect, Vînzări. Faceţi un

click, apoi Open, sau un dublu click, şi tabela se va deschide în forma ei de tabelă

obişnuită — coloanele cu denumirile respective, introduse în coloana Fied Name din

imaginea-proiect a acestei tabele. La început tabela este absolut goală. Informaţia

urmează să fie introdusă pe parcursul operaţiilor de vînzare în modul stabilit mai sus.

Este important să faceţi deosebire dintre imaginea proiect a unei tabele şi cea

propriu-zisă, cu informaţia respectivă. Atragem atenţia că în fig. 1.8 se arată imaginea

în care apare aceeaşi tabelă în ambele moduri (imagini): de proiect, cea din stînga, şi

tabelă obişnuită _ cea din dreapta.

O

Access. Ghid de iniţiere

Lucrarea de laborator nr. 1

dată creat aşa-zisul fundament al bazei de date, se poate trece la o etapă nouă:

organizarea introducerii continue a informaţiei. La prima vedere, totul pare destul de

simplu, clar şi evident, însă modul în care vom organiza procesul de introducere a

informaţiei va determina volumul de erori, date introduse greşit etc. la înregistrarea

informaţiei. Iată de ce, în etapa de proiectare a tabelei, este util să folosim, cel puţin,

unele dintre cele mai simple, mai accesibile procedee de verificare a informaţiei. în

cazul nostru, putem pune sub control cantităţile şi preţurile controlînd ca valorile să fie

pozitive, iar data vînzării să fie introdusă în mod automat şi să coincidă cu data zilei

curente. Acest lucru poate fi asigurat dacă determinăm proprietăţile în modul indicat

(fig. 1.8). în acest caz concret, pentru coloana Cant se pune o restricţie: valorile

trebuie să fie pozitive, fapt arătat prin Validation rule >=0, iar mesajul Cantitatea

trebuie fie >=0 va apărea imediat pe ecran în cazul cînd va fi vreo încercare de a

introduce valori negative. Cifra 0 (zero) în rîndul Default value arată că valoarea 0

(zero) în coloana Cant se va înregistra în mod automat. Pentru a asigura înregistrarea

automată a datei curente, e necesar de selectat rîndul DataVinz şi de scris funcţia care

calculează data zilei curente — Date() în rîndul

Default Value.

Vînzări: Table

Den

UnMas*

DataVif

Cant

Pret

Field Name

Data Type

General I

Field Size

Format

ookup

Decimal Places

Input Mask

Caption

Default Value

Validation Ruli

Validation Texo

Single

Auto

0

>0

Date/Time

Currency

AutoNumber

Yes/No

OLE Object

Hyperlink

Lookup Wizard.,

Cantitatea trebuie sa fie >-Q!

Tabela Vinzari Ia etapa de proiect.

înainte de aavea posibilitatea de a

introduce informaţia în tabelă, este

necesar de a determina coloanele şi

tipurile de date în ele. în cazul nostru,

se planifică 5 coloane, cu denumirile

indicate în coloana Field Name şi cu

tipurile de date respective indicate în

coloana Data Type.

w

ш

Description

ш

ш

I

Ж Vomzaîfi :

ИаЫе

Vv

К

I

Desi

1 UnMas I Dat&ViiiJ

Came

Lapte

Apa

Came

Apa

Apa

''Kapte

Kg

L

But.2L

Kg

But.3L

But.2L

L

^ R e c o r

4

d ;

I

{

05/05/01

06/05/01

06/05/01

06/05/01

05/06/01

06/05/01

06/05/01

6

щ

Сам* 1

т

з

т

\

100

30

20.7

30

5

2

50.25

25

100

3

30

2

50.5

5

0

1 M \ >*\ of

0

7

z J

л

TabelaWmzari inl^mă de tabelă, care

conţine om careva inwmMie. Atragem

atenţia: în coloanele Deibşi UsiMas se

conţine inforhaaţie de tip Text, m'sqloanele

Cant şi Pret -Nnformaţie de tip Number

(număr), iar în сЫоапа DataVinz —

informaţie de tip Date/Time conform

tipurilor de date arătate în coloana Data Type

din figura din stînga,

Fig. L8. Proiectarea unei tabele.

Atenţie. Atunci cînd selectăm un alt rînd în coloana Field Name (vezi imaginea

din stînga fig. 1.8), lista de proprietăţi, afişate puţin mai jos în aceeaşi imagine-proiecL

poate fi alta şi, pentru fiecare cîmp, trebuie de ales proprietăţile cuvenite. Aceasta

Access. Ghid de iniţiere

Lucrarea de laborator nr. 1

înseamnă că fiecare coloană din tabela care o proiectăm poate avea setul său stabilit de

proprietăţi.

Introducerea datelor poate fi organizată în diverse moduri. Ne vom opri la cel mai

simplu mod, care întru totul ne convine. Deschidem tabela (selectăm tabela în fereastra

bazei de date, acţionăm butonul Open (deschide)) şi pe ecran apare tabela gata pentru

a “primi” informaţia.

Introducerea informaţiei în cazul dat este un proces simplu, trebuie doar să fim

atenţi la ceea ce introducem. Se presupune că informaţia introdusă este cea indicată în

fig.1.8, partea din dreapta. Această tabelă poate fii completată în momentul vînzării în

fiecare zi. In aşa mod vom reuşi să înregistrăm informaţia necesară la timpul potrivit.

Deci, pentru asigurarea păstrării informaţiei primare despre vînzări, persoana

competentă trebuie să introducă toată informaţia care se cere conform coloanelor din

tabela proiectată.

In scopul de a vă însuşi la nivelul cuvenit proiectarea tabelelor:

1)

proiectaţi aceeaşi tabelă atribuindu-i un alt nume;

2)

faceţi o copie a unei tabele create, ca şi în sistemul Windows;

3)

deschideţi în imagine de proiect o tabelă deja creată şi încercaţi să schimbaţi

locul unor coloane (se procedează asemenea ca la copierea informaţiei în

Word);

4)

faceţi modificări în tipurile de date pentru unele coloane şi analizaţi rezultatul;

5)

modificaţi formatul datelor, în special, al datei calendaristice;

6) exersaţi cu introducerea datelor, lichidarea informaţiei din cîteva rînduri,

 

lichidarea totală a informaţiei din tabelă;

7)

introduceţi informaţie care contravine condiţiilor puse la proiectare şi analizaţi

modul de afişare a mesajelor;

8)

introduceţi cîmpuri noi;

9)

copiaţi cîteva înregistrări dintr-o tabelă în alta (se face ca în Word);

10) modificaţi dimensiunile coloanelor în tabele (se face ca şi în Excel);

11) deschideţi în fereastra de bază paginile Quieries, Forms, Reports, Macros,

Modules ca să vă convingeţi că sînt goale.

întrebări şi probleme

  • 1. Care obiect poate fi considerat element al fundamentului unei BD?

Care ar putea fi cîmpurile, dacă am

dori să creăm o tabelă cu informaţia

  • 2. Cum se atribuie denumirile unei coloane?

 

despre:

 
  • 3. Ce este un tip de date al unui cîmp?

1)

vînzări la un magazin de încălţămin­

  • 4. Cum putem modifica tipurile de date la un

te;

cîmp?

2)

împrumutări de cărţi la o bibliotecă;

  • 5. Ce este şi cum poate fi folosit For mat-ui?

3)

persoane pentru o călătorie turistică;

  • 6. Ce este o restricţie şi cum poate fi atribuită?

4) transmiterea

unor mărfuri

dintr-un

  • 7. Cum putem modifica ordinea coloanelor?

 

depozit în altul;

  • 8. putem

Cum

modifica

denumirea

unei

5) achiziţionarea unor produse de la

tabele?

populaţie.

  • 9. în cîte forme de imagini putem deschide o

 

tabelă?

Access. Ghid de iniţiere

Lucrarea de laborator nr. 2

Lucrarea de laborator nr. 2

  • 1.2. С rea г ea obiectelor de tip Select Query

(cerere, interpelare)

  • 51 .c’clm să creăm o cerere, care ne-ar afişa răspunsul la problema formulată

i«ierirs& ie Laborator precedentă. Atenţionăm că9 după cum vom

vedea mai tîrziu,

 

:r

; i;: : - ::lemă poate fî rezolvată doar prin crearea unei singure

cereri.

î : : Irr. pagina Queries din fereastra BD curentă, acţionam butonul New şi pe

icrm

ti. :cdne o imagine asemănătoare cu cea din fig. 1.9 ~ fereastra cu imaginea-

i~

 

jr : cereri. Selectăm tabela Vinzari, apoi acţionăm butonul Add (sau facem

: ,:

l

: :.:k

pe

denumirea tabelei),

după care închidem cutia Show

table.

In

 

.

: ■ uii-t, :1c :nd cîte un dublu click pe denumirile coloanelor din lista Vinzari, vom

i шпк

iimacrjea din fig. 1.3.

Confirmă că acţionăm în BD Labor.

. •—** QLiCJi куь

|

Macros

Modules

И

Suntem pe pagină Queries din Labor.

Show Table

Lista din care a fost trecută lista cîmpurilor.

Tables

ИИ

|

Queries j

Both

|

f....ш:

flose

jf

Fereastra-proiect a unei Select Query, numele Queryl.

ista cu denumirile coloanelor (cîmpurilor) din tabela

adăugată Vinzari. De aici vor fi copiate în gridul cererii,

rîndul Field.

4'

Fig. 1.9. Imaginea-proiect a unei cereri (Select Query).

:!

La început imaginea apărută nu va conţine rîndul Total din Gridul

r,rc а-i adăuga, facem un click pe 2 (totals) din bara cu butoane respectivă

" grid

se va insera rîndul Total cu Group By în fiecare coloană (cîmp).

ir ce făcut cîte un click în fiecare coloană, în zona din dreaptă a celulelor,

r : : :es:a Group By şi, din lista apărută de fiecare dată, de selectat cuvîntul

i i apară aşa cum

e

arătat în

fig. J .10.

,

: : din fig-1-10 este o cerere de tip Select, care are un cîmp calculat, cîmpul

СМ№к П Z

»r: se obţine rezultatul înmulţirii numerelor din coloana (cîmpul) Cant cu

■acife йи « raoana (cîmpul) Pret în fiecare rînd (înregistrare, record) din tabela

V1

Î : eres:a Group by din celula (Den, Total), coloana Den, rîndul Total din

: :ă roată informaţia din tabelă se divizează în atîtea grupe cîte denumiri

11

Access. Ghid de iniţiere

Lucrarea de laborator nr. 2

diferite avem în coloana Den. în cazul dat vom obţine trei grupe: Lapte, Apa ş

Carne, deoarece în coloana Den sînt doar aceste trei denumiri diferite. Funcţia Sum

din (Cost, Total) semnifică că se va calcula suma costurilor în fiecare grup, deci vor

avea trei sume rezultante. Funcţia Avg din coloana Pret va calcula media aritmetică г

preţurilor în fiecare grup. Funcţia First din DataVinz va determina data din prima

înregistrare din fiecare grup, iar funcţia Last din UnMas - unitatea de măsură din

ultima înregistrare făcută în fiecare grup. Funcţia Ascending (creştere) va sorti

informaţia în ordinea alfabetică a denumirilor din coloana Den.

Щ

'vdit

АШ

.

ery

Tools

Window

It

G&

.

.

-

Help

I

ю

j да

I L * b c *

:

D a t a b a s e

W

'

ЁШ Forms

j

Ш Reports

j

3

Macros

]

Mocjies

CSickam acest buton pentru a

afişa rezultatul cererii create.

Ljsta din care se aleg

netiile oentru Total.

Un cîmp de calcul cu

numele Cost: valoarea

din Cant sfe înmulţeşte

Fig. 1.10. Imaginea-proiect a unei Select Query cu calcularea sumelor totale pe grup.

în această etapă putem spune că am creat deja obiectul numit TotalGr - o cerere

de tip Select, care în orice moment ne asigură afişarea pe ecran a rezultatului -

răspunsul la problema formulată la început. Adică ni se arată (vezi fig. 1.11) Apa a

fost vîndută în sumă de 420, Carne - 4256.25, Lapte ~ 356 de unităţi băneşti.

Modul

de

funcţionare

a acestei

BD:

pe parcursul

vînzări lor să

se

facă

înregistrările respective în tabela Vinzari; cînd dorim să aflăm cît s-a încasat pentru

fiecare tip de marfa vîndută, trebuie doar sa selectăm cererea TotalGr, apoi să

acţionam Open şi rezultatul va fi afişat imediat pe ecran.

12

Access. Ghid de iniţiere

Lucrarea de laborator nr. 2

Р

2 l

||

;

м

?1

! ^

^

: АЬ

Clickaţi acest buton pentru a trece la imaginea-proiect,

1 ^

Ж

Э&кшфт£ ¥few

rfP Quepgg_

j__

(^1 „роггпя_ !__(И-ftepniis-}

TI Marm*

1

Modules

--------—

r< si>GR

^

1 Denumirea cererii create şi salvată cu acest nume

Y

_____

'

^

Ц -—-l^per

Cererea a fost salvată, i s-я

: ickat Open şi s-a obţinut rezultatul.

я fost select^tăfs^a

|

juc* ToMaBR - S e le c t Query

 

Шеи.

LastOfUîtMas

 

S B

But.2L

1 Zmmm

Kg

 

L

 

le o r s;

H1 L d l

i

 

"

ii: I

:

 

1.1

 

; ~1

T

^

i:: doar într-un

 

'in s i i a u D e n .

 

liierii:

: ; i:

într-un rînd

Bfet

 

ЖЪгв^ШжжЩш

SiisnOfCai

c o st.

1

06/05/01

160

2.333333333

420

05/05/01

150.25

27.5

4256.25

06/05/01

71.200001 î

5

356

 

•VfM lBM Şbf 3 V .

г :g. 1.11. Rezultatul cererii create (proiectul din fig. 1.10).

-aţi convins că cererea afişează rezultate corecte, faceţi următoarele (de

  • - ~:" ideţi şi deschideţi cererea din nou şi încercaţi să daţi explicaţii):

rînd o literă mare în aceeaşi literă mică în tabela Vinzari

  • 1 un spaţiu gol în interiorul sau în faţa unei denumiri din

.

  • i _are să analizăm succint ce posibilităţi

ni

se

oferă

prin

utilizarea

riteria şi Or din Gridul cererii. Realizaţi următoarele:

'

î

: :r:e a cererii TotalGr (selectaţi-o, agăţaţi-o şi, ţinînd CTRL apăsată,

~^ : cu mouse-ul într-un loc liber (observaţi că de imaginea mouse-ului

*-x aamt :eva cu semnul +), relaxaţi mouse-ul şi veţi avea o copie a cererii). Apoi

.: > aenumirea, asemenea ca şi la modificarea denumirii fişierelor,

“enumirea, de exemplu, TotalCarne.

-

- ас

::

: ere rea TotalCarne în imagine de proiect (selectaţi această cerere, apoi

rio a it Deagn).

п.: r •‘.'•.iul Criteria, coloana Den, cuvîntul Carne, aşa cum este arătat în

 

I

ipci acţionaţi butonul respectiv pentru a afişa rezultatul. Explicaţi

 

ismtjffini,.

:

-1 : copie, numiţi-o TotalCarneLapte, apoi deschideţi-o în forma

proiect

- Carne Or Lapte în rîndul Criteria, coloana Den sau Carne în rîndul

1

>:

.a

Lapte în

rîndul Or, apoi clickaţi butonul pentru a vedea ce se obţine.

ibc:iTr :.a:a cînd închideţi cererea, răspundeţi cu “Yes” pentru a salva cererea

WMS3L

13

OO

ON

Access. Ghid de iniţiere

Lucrarea de laborator nr. 2

Field:

T able:

Total:

Sort:

Show:

Criteria

Den

Vinzari

Group By

Ascending

0

Carne

UnMas

Vinzari

Last

0

DataVinz

Vinzari

First

0

Cant

Vinzari

Sum

Preţ_____

cost: Sum([cant]x[pret])

Vinzari

Дуд

_и_

ТГ

Informaţia din rîndurile Criteria şi Or este baza construirii expresiilor logice, care determină care informaţie să fie afişată şi care nu.

Н

И

^e^Lista funcţiilor opţionale ataşată la rîndul Total.

Expression

Wherş/

însriind condiţiile logice în rîndurile Total, Criteria şi Or şi selectînd corect funcţiile opţionale respective din lista ataşată celulelor din rîndul Total în gridul

cererii, avem posibilitate de a găsi

răspunsuri la un număr destul de mare şi variat de

întrebări despre vînzări (doar în cazul că răspunsul poate fi găsit în baza acestei

unice tabele).

Fig. 1.12. Utilizarea expresiilor logice la selectarea informaţiei,

întrebări şi probleme

  • 1. în care scopuri se proiectează cererile?

  • 2. Cum se ataşează o tabela la o cerere?

  • 3. Ce este grid-ul cererii şi cum se completează cîmpurile?

  • 4. Cum poate fi modificată denumirea unui cîmp?

  • 5. La ce se foloseşte rîndul Criteria şi Or din grid?

  • 6. Cum să facem ca să apară sau să dispară rîndul Total din grid?

  • 7. Pentru ce şi cum se aleg funcţiile în rîndul Total din grid? Explicaţi folosirea informaţiei din rîndurile Sort, Show? Explicaţi cînd şi pentru ce se folosesc funcţiile din lista ataşată la rîndul Total

 

din gridul cererii.

 

' 10. Creaţi cereri pentru a afişa informaţia despre (un rînd din tabelă corespunde

/

unei vînzări):

^

a)

costul produselor la fiecare vînzare;

b)

costul cărnii la fiecare vînzare;

c)

produse care au fost vândute la kg;

d)

produsele care au fost vîndute într-o anumită zi;

^’ e)^ costul total

al produselor vîndute într-o anumită zi;

 

f)

costul total al produselor vîndute la un preţ anumit;

g)

costul total al produselor din carne vîndute într-o anumită perioadă;

h)

costul total

al produselor din lapte şi din came (luate împreună) în două

zile anumite (zilele nu sînt una după alta).

0

Access. Ghid de iniţiere

Lucrarea de laborator nr. 3

Lucrarea de laborator nr. 3

\ Exemple de Select Q uery la rezolvarea problem elor

-

cabelei

Vinzari create

în

modul

descris

în

lucrările

de

laborator

: w: ~ crea cîteva cereri. Astfel vom însuşi mai profund tehnologia utilizării

 

x

:

exemple de cereri pentru a determina următoarele:

 

i

; asării la fiecare operaţie de vînzare.

:

ire: Proiectăm următoarea cerere:

ii?1 "

' TolalGR : Select Query

nilMuC:

r WEtm:

Bac

.

Zmr

* « a r

ZJkmsm.

UnMas

Vinzari

*TL

DataVinz

Vinzari

0

Cant

Vinzari

0

Pret

Vinzari

0

cost: fcantîipret]

В

ilit! !S«Snt1 ~ e ^rmătoarea tabelă cu rezultatele extrase de cerere:

I « b C R

:

ЖГгг

®-

S e le c t

~]

Q uery D a t& V Im Щ

05/05/01

_

06/05/01

06/05/01

06/01/01

05/06/01

06/05/01

06/05/Ш

V ^ î »

V

cost

1

3000

103.5

60

1256.25

...—

300

60

252.5

...,

Z

Observăm că la

informaţia din tabela Vinzari s-a mai adăugat încă

0 coloană, Cost - un cîmp calculat din cerere.

i

'

'

'

de apă în

S t '" в я и i liLjMpae 1 Л в » ВОшпмв I jlJiiifflptti ■
S
t
'" в
я
и
i liLjMpae
1 Л
в
»
ВОшпмв
I
jlJiiifflptti
■ 1 i
IHII.il
1
!

UnM as

шШ ШЛ

30

5

2

25

3

2

5

100

20.7

30

50.25:

100

30

50.5

BolZL

ILe

5i'sl3 L

5i3b..21,

Hi ■ Б HH

111 ...

Г « u f

~ casărilor în umia vînzărilor cărnii în iuna mai şi vînzărilor

ЙШЖ .iirlî.

Boi i i urs Proiectăm cererea

ниши: Select Query

*---------------

Ilar

ftmmm

s£!

Jn ria t

'•'rz&i

a

DataVinz

Vinzari

0

Cant

Vinzari

0

Preţ

Vinza

cost [cantllpret]

E l

0

>=801 /06/018

<=#30/06/01 $1

o

: btine rezultatul (vezi tabela de mai jos).

|e?£jepf

Of Cost Aman : Select Query

__

D «

UnMas

DataYInz

Cant

ir"' "*"

г

Pret

I

B

ТГ

Kg

But.3L

05/05ЛИ

05Д36Л31

10ДГ7/01

100

100

0

30

3

G

ПКОГС

и \ LlJI---------

1

1 и

!►*! of

2

15

U

M

c&st

*11

3000

30d!

:

1

Access. Ghid de iniţiere

Lucrarea de laborator nr. 3

3,.

încasările totale.

 

Rezolvare.

Proiectăm

cererea

(imaginea

din

stînga).

Vom

obţine

rezultatul

(imaginea din dreapta):

J Ţotallncas : Select Query

> Ţotallncas: Select Queiy

HE3E3

 

^

Field:

cost: fcantîx[pret|

Ж-

 

..

 

Total:

Sort:

1

Show

Avg

 

[

 

Record:

l< I

4

 
 

\

Criteria

Min

A

   
 

or:

Max

 

Count

4.

încasările totale în fiecare zi.

 

Rezolvare. Proiectăm cererea. Obţinem rezultatul (vezi tabela de mai jos).

 

TotalPezile : S elect Query

 

I H

H

i S

l s i 0 TotalPezile: S elect Query

Field:

 

cost: fcantl"fpretl

Table:

Vinzari

Total:

Group By

Sort:

Ascending

Show:

 

Avg

Criteria:

Min

■•V-

or:

Max

 

Count

 

m m .

StDev

 

Var

First

_c

U S

 

DaiaVbtz

 

cost

 

06/01/01

1236.251

05/03/01

3000 l i

06/05/01

.4761

05/06/01

300|1

Record:

N. 1ч

11

4

Ш:Ш 'к

Concluzie: Introducerea continuă a informaţiei curente despre vînzări în tabela

respectivă şi

crearea doar o singură dată a unui

număr suficient de cereri, conform

necesităţilor, asigură într-un mod destul de convenabil şi rapid obţinerea informaţiei

nesesare

 

-inixi

Ш Tables

Ш Queries

J

[Ц Forms

j

11 Reports j

 

3

Macros j

 

^

Modules j

Copy Of CUpt Aman

Cost Aman

TotalCarne

Wrn

r

TotalGR

Totallncas

Lista (în stînga) de cereri (Queries) create pentru fiecare problema formulată, pe ecran răspunsul la o probl©m£'concretăî necesar de selecţai-ecferea respectiv£<^56i de acţionat OpenTButoanele DesigfTsau Newpoffi acţionate în cazul dacă dorim să modificăm proiectul unei cereri deja create sau să creăm o cerere nouă.

Open

Fig. 1.6. Pagina Queries din Baza de Date Labor cu lista de cereri create.

16

Access. Ghid de iniţiere

în nrtbări şi probleme

Lucrarea de laborator nr. 3

  • I. I fa: r; : _ e şi cînd nu trebuie inclus în gridul cererii rîndul Total?

— rsocie folosit Where şi cînd Group By? ; zl: : ferite proiecte şi determinaţi care
rsocie folosit Where şi cînd Group By?
;
zl:
: ferite proiecte şi determinaţi care este deosebirea dintre folosirea
'
»u p E
5 Where cu aceeaşi
condiţie logică în rîndul Criteria.
-
I
: rrc-.ie să folosim Last, First, Max? Daţi exemple.
5.
I
.
de folosire concomitentă a rîndului Criteria şi a rîndului Or, dar
iîci
: ii с< rea rîndului Total din grid.
*
мп
: = i
rect: să se folosească funcţia Group By în cîmpul Cod sau în
cîmpul
С «t a
i . - _ produs şi de ce? Argumentaţi prin exemple.
Г
я
:
r
r
necesar de folosit opţiunea Expression în rîndul Total din
gridul
i
1 iwr .
: cerere care poate rezolva o problemă prin utilizarea doar a unui rînd
i~- - тс
agice, rîndul Criteria,
apoi o altă cerere, care rezolvă exact aceeaşi
i
n i~i_ cir care conţine condiţii şi în rîndul Criteria, şi în rîndul Or.
!
;
.;mple de cereri
cu Where, cu Group By şi cu condiţii logice, atît
"ir
Ггкепа. cit şi în Or.
i
i
:
:
: _m se
ş
ă
ţ
ş
«Or
* L.
I
.
:
: - :ie de utilizare a funcţiei Count.
ir:
-portantă ordinea coloanelor în cererile cu opţiunea Group By? Daţi
fcia: :;are este deosebirea dintre folosirea unei condiţii logice în cîmpul cu
Group By în Total şi folosirea aceleiaşi condiţii logice cu opţiunea
ЬЪгге
,.:c de Group By.
:.m. cereri
care conţin
şi
Where,
şi
Group By (în
aceeaşi
cerere) şi
j
mi
~
: iu l
de selectare.
■*
: i
с
: resiile logice conform condiţiilor din rîndurile Criteria şi
Or din
piiHxatefe cererilor,
lit
«
: ± r : 1 e de utilizare a opţiunii Average.
L
necesitatea utilizării opţiunilor respective în rîndul Total.
IU.
a
:
:
:
e de utilizare
a opţiu
ă
ш
' i.
E : iicaţi necesitatea utilizării Group By în mai multe cîmpuri.

17

Access. Ghid de iniţiere

Lucrarea de laborator nr. 4

Lucrarea de laborator nr. 4

2. O Bază de Date cu două tabeîe

Problema formulată în paragraful 1 poate fi rezolvată în mai multe moduri. Am

creat o BD simplă, însă utilizarea ei nu este destul de comodă şi eficientă. De aceea ne

propunem s-o perfecţionăm.

Să încercăm să repartizăm informaţia din tabela Vinzari în două tabele: DetVinz

(Detalii despre vînzări) şi Product (Lista de produse) (vezi fig. 2.1). La prima vedere,

se pare că lucrurile se complică, însă aceasta se referă doar la procesul de proiectare a

BD. Persoanele care vor înregistra informaţia despre vînzări vor completa doar

coloanele Cod şi Cant din tabela DetVinz (coloana DataVinz va fi completată

automat), desigur, avînd la îndemînă şi tabela Product, care trebuie să fie reînnoită pe

parcursul achiziţionării şi stabilirii preţurilor mărfurilor noi. De regulă, acest lucru se

face de o altă persoană şi în alt timp. în acest caz, introducerea informaţiei în baza de

date se împarte în două procese: reînnoirea în permanenţă (o dată cu apariţia unor

mărfuri noi) a informaţiei din tabela Product şi introducerea continuă a informaţiei

despre vînzări în tabela DetVinz în momentul efectuării acestora. Este evident că

tabela DetVinz va “creşte” cu mult mai repede decît tabela Product. Iată de ce

introducerea şi păstrarea informaţiei în două tabele, DetVinz şi Product, în loc de una

Vinzari, este mult mai eficientă şi mai convenabilă pentru cei care utilizează o atare

Bază de Date. Desigur, în acest caz utilizatorii sînt în cîştig, iar proiectanţii - în

pierdere, însă proiectarea se face o dată, iar utilizarea - în permanenţă.

Den

UuMas

^

DataVuiz

С mi

IT g ţx | Pret

“CodjDuit

DataTm

:

. came

_ Lapte

. Apâ

; Came

. ^Pâ

. A?*

Lapte

[

came

came

j Lapte

Kg

1

But.2L

Kg

But.3L

05/05/01

06/05/01

06/05/01

06/05/01

05/06/01

But.2L

06/05/01

L Pachet 1 kg Pachet 0.5 kg;

Pachet0.5L

06/05/01

11/05/01

11/06/01

11/05/01

11/07/01

100

20.7

30

50.25

100

30

50.5

30

20

10

0

acord;

нТ <1Г

1.0

Н

и

M

of

10

30

5

2

1

25

3

2

5

30

_

_

1

3

15

.

___

2.5

1

_

|T|

1

4

100^

20.7

6

30

1

50.25

7

100

6

4

2

3

5

0

30

50.5

30

20

10

0

05/05/011

06/05/01

06/05/01

*

06/05/011 4

05/06/01

06/05/01

*

06/05/01

11/05/01

11/06/01

11/05/01

ll/07/01|

inSord? и! Vii

и

л

cod

den

lîîiMas

Pret

__

1 Came

Kg

30

__

2

Came

Pachet lKg

30

3

Came

Pachet 0.5K{

15

4 Lapte

L

5

5 Lapte

Pachet0.5L

2.5

6 Apa

But.2L

2

7 Apa

But.3L

3

>]

o'

!

0

Record:

l<| < j|

8 Hnj

Fig. 2.1. Tabelele Product şi DetVinz în care a fost repartizată informaţia din Vinzari.

Să proiectăm o altă BD pentru rezolvarea problemei formulate în paragraful 1.

în modul descris mai sus proiectăm tabela DetVinz cu coloanele (cîmpurile): Cod

(cu informaţie de tip Integer number sau Long Integer); Cant (număr de tip Single

18

Access. Ghid de iniţiere

Lucrarea de laborator nr. 4

D-ataVinz (cu tip de Date/Time). Să nu uităm să fixăm DefaultValue=Date() pentru

: : îoana DataVinz şi

Validation rule=>0 pentru coloana Cant.

Proiectăm şi tabela Product cu cîmpurile respective (fig. 2.1). Să se ţină cont de

rele arătate şi explicate în fig. 2.2.

După ce tabelele DetVinz şi Product au fost proiectate, deschideţi-le şi

'traduceţi informaţia indicată în fig. 2.1

Proiectarea cererii pentru a răspunde Ia întrebarea formulată în problema

din paragraful 1:

In funcţie de versiunea pachetului Access, acţionaţi

ij unge în fereastra de proiect a unei cereri noi.

în modul respectiv pentru a

m

m

Genera!

Field Size Format Decimal Places Input Mask - Caption Default Value Validation Rule Validation Text Required Indexed

 

Text

Text

Number

Long înt

Facem

Auto

No Yes (No Duplicates)

leld Propertie

un clicîTâtci /pentru a

selecta rîndul, apoi fclickăm

butonul Primary Key pentru a

atribui, pentru a anula

atribuirea, mai repetăm o dată.

La proiectarea tabelei Product

cîmpul ui Cod i se atribuie

rolul de Cîmp Cheie primară

(Primary Key). Aceasta

înseamnă cel puţin că codurile

în această coloană nu se pot

repeta, ceea ce se confirmă şi

prin valoarea proprietăţii

Indexed: Yes (No

Duplicates). Atribuirea rolului

de Cheie se face prin

selectarea mai întîi a cîmpului,

astfel ca acest rînd sa fie

evidenţiat aşa cum este arătat

în figura din stînga, apoi

clickăm butonul Primary

Key.

Fig. 2.2. Proiectul tabelei Product.

Show Table

beţVinz:-

*

;

Ш

Cod

Cant

DataVinz

JLL

у

Icod

jden

UnMas

Pret

Linia de legătură între aceste tabele

Tafcte'

Soft

Show:

Diana:

ж

-О.

Ш

Tables

{IP

Queries

Both

Copy Of Cost Aman Cost Arv

TotalCar

otalGR

otallnc

otalPes

Vinzari

Au fost selectatg^fc€fele DetVinz şi T Producţ^ataşafe la cerere prin acţionarea AddTCa rezultat apar listele cîmpurilor chre jtomat prin linia de legătură, (ficaţi dacă fiecare legătura a fost făcut^ko^ct. Deoarece este activă pagina Both, Înîista de obiecte disponibile pentru ataşare la cererea care se proiectează sînt şi tabelele, şi cererile. Acţionăm Close pentru a termina procesul de ataşare a

obiectelor la cerere.

Fig. 2.3. Proiectarea unei cereri bazate pe mai multe tabele.

19

Access. Ghid de iniţiere

Lucrarea de laborator nr. 4

Pentru ca două sau mai multe tabele

să fie ataşate corect la cerere, ele trebuie să

fie legate între ele. Fiecare tabelă trebuie să fie legată cel puţin cu o altă tabelă dintre

cele ataşate. Legătura dintre două tabele poate fi făcută în diferite moduri ~ în mod

automat sau manual, în mod permanent sau temporar ş.a.m.d. Pentru un începător este

bine ca de fiecare dată cînd se proiectează o cerere nouă legăturile să se facă în mod

manual şi temporar.

Cîmpurile prin

intermediul cărora se face

legătura trebuie

conţină

aceeaşi

informaţie după sens. Nu denumirile cîmpurilor sînt importante, ci sensul datelor, care se conţin în aceste două cîmpuri prin intermediul cărora se leagă tabelele.

♦ Pentru a lichida o legătură, se face un click pe linia de legătură; legătura devine

mai pronunţată — semn că ea este selectată, apoi se apasă tasta Delete.

♦ Pentru a “lega” doua tabele, agăţaţi cîmpul respectiv dintr-o tabelă şi trasaţi-1 pe

cîmpul respectiv din cealaltă tabelă. La relaxarea mouse-ului apare linia de

legătură.

După ce am ataşat toate obiectele la proiectul cererii, închidem Fereastra Show

table, verificăm şi corectăm (dacă este necesar) legăturile, apoi completăm rîndul

Field din gridul cererii cu cîmpurile din listele ataşate. Trebuie să obţinem imaginea

din fig. 2.4.

în fig. 2.4 este redată imaginea cererii, care calculează răspunsurile la aceeaşi

problemă, rezolvată deja mai sus în alt mod. în acest caz, BD constă din două tabele.

Dacă analizăm cu atenţie proiectul cererii TotalGr şi proiectul cererii TotalGrM,

putem constata că ultimul este mai complicat. Da, este mai complicat pentru procesul

de proiectare, deoarece a fost necesar de a folosi ca izvor de informaţie două tabele,

ceea ce a condus la complicarea proiectării. însă, acest mod de proiectare are o

proprietate destul de eficientă şi mai comodă pentru utilizatori - va fi cu mult mai uşor

şi mai sigur de introdus informaţia iniţială.

и

TotalGiM : Select Query

Dacă dorim, putem modifica

denumirile/CÎmpurilor în

 

a nu provoca

 

confuzi/ se qbcomandă ca

 
 

să nu coincidă

lumire a vreunui

i tabele.

Pretl: Pret

co$f[cant]x[pret

DataVinzI: DataVr

Product

DetVinz

Max

Sum

Last

0

0

1

E3

 

1

Cererea a fost deja

!od

salvată cu numele

 

TotalGrM.

 

rteiu,

cod

Den1: den

Tabie:

Product

Product

;• -Total

*teup By

Last

Soit

Show:

0

Criteria:

or:

Ш

Ц-------------

UnMasI: UnMc

Cantî:Canl

Product

DetVinz

Last

Sum

0

în rîndul Table^trîfdenumirile tabelelor din care se ia informaţia în cîmpul

dat Semnui^acesta arată că acest cîmp este marcat şi va fi afişat pe ecran.

Fig. 2.4. Proiectul cererii pentru rezolvarea problemei din paragraful 1.

20

Access. Ghid de iniţiere

Lucrarea de laborator nr. 4

 

гпЕитг.има

 

-

[

|

X

сш d

De ni

UnMas 1

 

Cantl

Protl

cost

BataYmzl

Atrageţi atenţia

la denumirile

1 Came

Kg:

150.25

30

4507.5

06/05/01

coloanelor: sînt

2

Came

Pachet

1 Kg

30

30

900

И/05/01 cele noi, care au

3

Came

Pachet 0.5Kg

20

15

300

11/06/01

fost introduse în

4

Lapte

L

71.20000076

5

356

06/05/01

proiectul cererii,

5

Lapte

Pachet 0.5L

 

10

2.5

25

11/05/01

despărţite de

6

Apa

But. 2L

60

2

120

06/05/01

numele respectiv

j

7 Apa

But. 3L

J 0 0

3

300

05/06/01

prin semnul

«acord;

î< j * 11

i

|

m \r■*| of 7

 

Fig. 2.5. Rezultatul cererii cu proiectul din fig. 2.3.

 
 

den

Pentru a asigura ca numerele să apară cu un număr dat de semne zecimale

dreapta înpmpul

UnMas

după virgulă,

 

facem un click

respectiv, apare o

listă în care

 

Field:

selectăm

 

Table:

Product

Product

 

Properties, apare

 

Total:

Group By

:>?ŞHă4istă.

Sort

 

Show:

Criteria:

or.

 

Xlickăm^ici apoi

alegem Ftxşd,

apoi clickărnîrici şi alegem 2 (două semne zecimale).

Fig. 2.6. Stabilirea numărului de semne zecimale.

în calitate de exerciţii creaţi alte cereri pentru a răspunde la întrebările formulate

r lucrările de laborator precedente. întrebările sînt aceleaşi, dar proiectele vor fî

diferite. Argumentaţi avantajele acestei variantă de BD bazată pe două tabele în

comparaţie cu BD bazată doar pe o singură tabelă.

21

Access. Ghid de iniţiere

Lucrarea de laborator nr. 5

Lucrarea de laborator nr, 5

3. BD bazată pe 3 tabele - posibilităţi şi avantaje noi

în lucrările de laborator precedente au fost demonstrate cîteva exerciţii de utilizare

a BD. în scopul familiarizării cititorului cu principalele noţiuni şi tehnici aplicate la

crearea unei BD simple, a fost descris procesul de creare a unei BD cu un volum

limitat de informaţie despre caracteristicile operaţiunilor care apar la vînzări. A fost

formulată o problemă destul de simplă, care poate fi rezolvată proiectînd o BD tot atît

de simplă. Probabil, v-aţi convins: crearea unei Baze de Date este un proces destul de

accesibil ca realizare, dar totodată destul de complicat. Totul depinde de scopul,

gusturile şi, nu în ultimul rînd, de posibilităţile fiecăruia. Cu cît mai voluminoasă şi

mai diversificată este informaţia pe care doriţi s-o păstraţi şi s-o prelucraţi şi cu cît este

mai mare confortul pe care doriţi să-l creaţi pentru utilizarea ei, cu atît mai complicată

şi sofisticată va fi BD. Orice BD, în funcţie de scop, poate fi modificată în diverse

direcţii: atît pe verticală, cît şi pe orizontală. Perfecţionarea unei BD poate fi continuată

pînă la infinit, nimic nu poate fi absolut perfect.

în continuare vom modifica BD deja creată, pentru a arăta posibilităţile acestei

BD lărgite. Nu în toate cazurile trebuie de început de pe poziţii noi. Desigur, cînd

sţructura BD deja create nu permite îmbunătăţirea ei, mai indicat este de creat o BD

nouă.

în cazul nostru, vom lărgi baza de date deja proiectată, atît pe verticală, cît şi pe

orizontală. Presupunem că este necesar de a face calcule nu numai pentru fiecare

produs, dar şi pentru anumite grupuri de produse, grupuri formate conform anumitor

criterii. Fie că se vinde nu numai lapte, ci alte feluri de produse: lactate (brînză,

caşcaval, smîntînă, lapte acru e tc .); carne (de porc, de vită, de pasăre); băuturi (apă

minerală, apă dulce, bere etc). Evident că toate aceste produse pot fi deocamdată

împărţite în trei grupuri (categorii): Lactate, Carne, Băuturi. Este firesc să apară

necesitatea de a face diverse calcule pentru fiecare dintre aceste categorii, cel puţin din

cauza că vînzări le se fac în diferite secţii ale uneia şi aceleiaşi unităţi comerciale. Se

propune următorul mod de rezolvare a problemei de perfecţionare a BD deja

 

proiectate:

1.

Se proiectează o tabelă nouă, Categorii, cu cîmpurile CodCat, DenCat,

Descriere, tabelă, care va conţine informaţia, respectiv, despre codul categoriei,

denumirea categoriei şi descrierea categoriei. Se completează tabela cu informaţia

respectivă (fig. 3.1, 3.2).

  • 2. Se modifică structura tabelei Product - se mai adaugă un cîmp nou - CodCat

care va conţine codul categoriei din care face parte produsul dat (fig. 3.3, 3.4).

  • 3. Se deschide tabela Product şi se completează coloana CodCat nou apărută cu

informaţia corespunzătoare (codurile categoriilor se iau din Categorii pentru

fiecare produs).

  • 4. Se modifică structura tabelei Product prin adăugarea unui cîmp nou - CodCat.

Atenţie! La crearea cererilor nu este necesar de ataşat toate tabelele. Le ataşam

doar pe acele

de care avem nevoie

şi

pe acele

fără

de care

nu

putem

face careva

22

Access. Ghid de iniţiere

Lucrarea de laborator nr. 5

legaturi între tabele. Nu oricare două tabele pot fi legate între ele. Uneori este nevoie

ie ataşat încă una sau mai multe tabele doar pentru a face legătura necesară dintre

careva tabele date.

C a te g o rii

:

T a b le

Data Type

Description

Number

Codul categorii

un numar intreg

Text

Denumurea cate goriei, pina la 255 caractere

Text

Descrierea, pe

;curt, despre ceea ce se conţine in ас

Generai j Lookup Field Size Format Input Mask Caption Default Value Validation Rule Validation Text Required Allow Zero Length Indexed

FieldProperti ss

No

No

No

Cîmpului CoăCat i s-a atribui

Cheia. Cîmpurile

DenCat şi Descriere pot conţi ne maximum \2 5 5 de caractere. în coloana Description se conţine informaţia care apare în partea de jos a

ecranului Status Bar.

t tor the fteli

I iter a custc

help on Porn

Fig. 3.1. Proiectul tabelei Categorii.

% Microsoft Access

File

Edit

View

Insert

Fgmat

Records

Iools

Window Help

H

i

a

a

i

Categorii: Table

CodCat.

DenCat

}

1 Lactate

  • 2 Came

, 3'Băuturi

0

m

j

^

i

i

i

:

Descriere Lapte, caşcaval, smintma ...

Came de porc, bovine, .. Apatmnerala, apack^FaSa, ...

{Descrierea, pe scurt, despre ceea ce se conţine in acesstr categorie,

Aceasta este StatusBar în fereastra (injterfaţa) Access4rftii. Deoarece în moipdntul dat ne aflam în )escriere (se vec^bara verticală), în

status Bar apare exact ceea ce a fost scris in coloana Description în etapa de proiectare a tabelei ( fig. 3.1).

Fig. 3.2. Utilizarea informaţiei din States Bar.

Fig. 3.3. Obţinerea proiectului tabelei Product

23

Access. Ghid de iniţiere

Lucrarea de laborator nr. 5

F

P ro d u c i

;' T a b le Field Name

.

.

"л

...

.

D ata Type

2 _

cod

Number

den

Text

UnMas

Text

Pret

Number

O

codcat

Number

General

Lookup

Field Size

Long Intege r

î n ^

Form at Decimal Places

Auto

 

Inp u t Mask Caption D efault Value

0

Validation Rule

>0

Validation T ext

Codul categoriei

 

Required

No

Indexed

No

“ T "

----------- --

Description

i Codul categ oriei al produsului dat | Field Proper

gol, lasfirşitul lTS^k^fost

adăugat numele CodCat, apoi în coloana Data Type a fost ales tipul (un număr), iar în

Description a fost înscris CoduS categoriei

produsului dat — informaţie pentru Status Bar.

■ un număr pozitiv!

Fig. 3.4. Adăugarea unui cîmp nou în tabela Product.

După ce aţi adăugat coloana CodCat, închideţi tabela cu alegerea Yes, apoi

deschideţi-o şi introduceţi informaţia respectivă în coloana nou apărută CodCat, aşa

cum este arătat în fig. 3.5.

Atenţie! La închiderea tabelei, după ce aţi făcut modificări în structură (adăugarea

unui cîmp este o modificare a structurii tabelei), aţi mai adăugat o coloană, puteţi fi

preîntîmpinat cum că careva date se pot pierde. Trebuie de selectat Yes, fiindcă în

cazul adăugării unui cîmp nou informaţia nu poate fi pierdută.

Atragem atenţia că, dacă apare vreun produs nou dintr-o categorie nouă, atunci,

mai întîi, se înregistrează Categoria în tabela Categorii, apoi Produsul - în tabela

Product.

wm ПТПГШЩ|1’ -- '

cod

den

 

1 Came

 

2

Came

3

Came

4

Lapte

5

Lapte

6

Apa

7

Apa

 

O

Record:

I

4

j

f

  • - sjSIJSJ

 

I

Categorii

 

f CodCat

2%

|

2

2

3

li®- Jж L

UnMas

Pret

codcat

Kg

30

Pachet

lKg

30

Pachet

OJKg

15

L

3

Pachet 0.5L

2.5

But. 2L

2

But. 3L

3

O

 

\ h |> * 1

of

7

BenCat

Descriere

Lactate

Lapte, caşcaval, st

Came

Came de porc, bo^

]

В auturi

Ap a minerala, ap a

J

----------------------------------1

Informaţia din coloanele CodCat

(tabelele Categorii şi Product) este

aceeaşi după sens; prin intermediul cîmpurilor Codcat se poate face legătura dintre aceste două tabele. Mai întîi se

completează tabela Categorii, apoi

Product.

Fig. 3.5. Tabela cu coloana CodCat completată conform tabelei Categorii.

24

Access. Ghid de iniţiere

Lucrarea de laborator nr. 5

După ce aţi completat

coloana CodCat în tabela Product, închideţi-o şi, astfel,

:oate tabelele vor fi gata pentru a proiecta noi cereri.

Remarcă. în acest caz, BD este proiectată în baza a trei tabele, fiecare dintre ele

-onţinînd informaţia corespunzătoare. în ansamblu, toate tabelele păstrează informaţia

in detaliu.

Cod

Cant

v-lnfx

Product: Table

t-'t

.лж

iiflArtiiler

1

DataVxnz

mi

den

UitMas

Pret

Я

И

codcat

05/05/01

06/05/01

06/05/01

06/05/01

05/06/01

06/05/01 î

1

Came

2

Came

3

Came

4

Lapte

5

Lapte

6

Apa

Kg

Pachet 1 Kg

Pachet 0.5Kg

L

Pachet 0.5L

But. 2L

30

30

15

5

2.5

2

06/05/01}

1Ш5/оГ

J_ăEL_

But. 3L

3

3

La introducerea informaţiei în DetVinz este

util ca tabela Product să fie afişată pe

ecran (este o modalitate de a introduce

corect codul produsului). Există şi alte căi,

mult mai eficiente, pentru a evita greşelile

(despre ele se va vorbi mai tîrziu).

Cod* ВеиСа!

Descriere

1

Lactate

2

Came

3

Băuturi

0

Lapte, caşcaval, st

Came deporc,bo,i

Apa minerala, apa

Tabela Categorii se

modifică doar cînd apare

o categorie nouă de

mărfuri (se modifică cei

mai rar), tabela Product

- cînd apare un produs

nou (se modifică mai des

decît Categorii), iar

DetVinz se modifică cel

mai des.

Fig. 3.6. Tabelele care constituie fundamentul BD.

Dacă analizăm cu atenţie informaţia din aceste 3 tabele, observăm că ea este

divizată după anumite criterii: în Categorii avem informaţia doar despre categoriile

mărfurilor, în Product avem toată informaţia doar despre fiecare tip de marfa aparte şi

" DetVinz avem doar informaţia care se “naşte” în procesul operaţiunii de vînzare.

Care produs, în ce cantitate şi cînd se vinde, se ştie imediat după ce s-a terminat

: reraţiunea concretă de vînzare. Adică informaţia în această tabelă poate fi introdusă

:: ar după ce a avut loc vînzarea.

O

bază

de

date

nu

poate

fi

eficientă fară asigurarea unor eforturi

minime la

::: cucerea informaţiei. în tabelele Product şi Categorii informaţia poate fi introdusă

- _ mai devreme decît apare un produs nou sau o categorie nouă.

O dată ce informaţia este introdusă, aceste 3 tabele vor funcţiona ca un tot întreg.

Apare întrebarea: cum ar arăta o singură tabelă, dacă am

dori să creăm o BD ce ar

 

.

za zoată informaţia aceasta? Răspunsul poate fi găsit destul de greu.

 

Concluzie: Să uităm de*faptul că putem utiliza eficient o bază de date simplă

: