Introducere … 2 [608452]

CUPRINS
Introducere …………………………………………………………………………………………………………………. 2
Capitolul I : Analiza gestiunii stocurilor …………………………………………………………………………. 3
I. 1 Stocurile ………………………………………………………………………………………………………………… 3
I.1.1 Definirea stocurilor ……………………………………………………………………………………….. 3
I.1.2 Tipuri de stocuri ……………………………………………………………………………………………. 3
I.1.3 Rolul stocurilor …………………………………………………………………………………………….. 3
I. 2 Gestiunea stocurilor ………………………………………………………………………………………………… 4
I.2.1 Sfera gestiunii stocurilor ……………………………………………………………………………….. 4
I.2.2 Obiective și rezultate ale gestiunii științifice a stocurilor …………………………………… 4
I.2.3 Funcțiile gestiunii stocurilor …………………………………………………………………………… 5
I.2.4 Elementele principale ale unui proces de stocare ………………………………………………. 5
I.2.5 Factorii de influență a gestiunii stocurilor ………………………………………………………… 5
I.2.6 Situații periculoase în gestiunea stocurilor ……………………………………………………….. 6
I.2.7 Modalități practice de gestiune a stocurilor ………………………………………………………. 6
I.2.8 Indicatori ai eficienței gestiunii stocurilor ………………………………………………………… 10
Capitolul II : Proiectarea programului de gestiune a stocurilor unei farmacii ……………………….11
II.1 Noțiuni de proiectare a bazelor de date ………………………………………………………………………. 11
II.2 Analiza principalilor indicatori și operatori relaționali …………………………………………………. 12
II.2.1 Caracteristici ale bazelor de date relaționale ……………………………………………………. 12
II.2.2 Operatorii relaționali ai bazelor de date relaționale……………………………………………. 13
II.2.3 Noțiunile și conceptele bazelor de date relaționale, modelul entitate-relație ………..14
II.2.4 Modelarea grafică a bazelor de date relaționale ……………………………………………….. 15
II.3 Analiza detaliată a proiectării bazei de date relaționale care va gestiona
stocurile unei farmacii …………………………………………………………………………………………….. 16
Capitolul III : Realizarea programului de gestiune a stocurilor unei farmacii realizat în
Microsoft Access 2000 …………………………………………………………………………… 18
III.1 Prezentare Access ………………………………………………………………………………………………….. 18
III.2 Crearea bazei de date de gestiune a stocurilor unei farmacii ……………………………………….. 19
III.3. Crearea de filtre, interogări și rapoarte ……………………………………………………………………. 24
III.4. Crearea unei interogări de tip crosstab …………………………………………………………………….. 31
III.5.Utilizarea programului de gestiune a stocurilor unei farmacii realizat în
Microsoft Access 2000 ………………………………………………………………………………………….. 38
Concluzii ……………………………………………………………………………………………………………………. 42
BIBLIOGRAFIE ………………………………………………………………………………………………………… 43

Introducere
Tema proiectului ”Proiecatarea unui sistem informatic pentru gestiunea stocurilor” este în
strânsă legătură atât cu disciplina „Sisteme informatice de asistare a deciziilor” la care se prezintă acest
proiect, cât și cu cu specialitatea Facultății de Științe Economice, Contabilitate și Informatică de
Gestiune, din a cărei programă face parte disciplina menționată.
După cum reiese și din titlul temei, proiectul cuprinde două componente: o componentă
informatică și o componentă economică. Acestea sunt tratate separat din punct de vedere al bazelor
teoretice, după care acestea devin un tot unitar, la realizarea practică a sistemului informatic,
materializat prin obținerea unui program de gestiune a stocurilor, în mod arbitar ales al unei farmaci,
deoarece este un model simplu de gestiune a stocurilor, folosind platforma de programare a Microsoft
Access 2000.
Pentru realizarea unei unități în expunerea proiectului, s-a făcut în primul rând prezentarea
noțiunilor teoretice ale componentei economice, urmată de prezentarea noțiunilor teoretice ale
componentei informatice, iar în final se arată pas cu pas modul de programare al softului de gestiune al
farmaciei. În momentul utilizării bibliografie a unor relații, noțiuni sau paragrafe, acestea sunt indicate
corespunzător în proiect, prin folosirea notelor de subsol.
La tratare noțiunilor teoretice ale componentei economice s-a făcut o prezentare amănunțit
stocurile și gestiunea stocurilor. Sunt arătate modalitățile de definire a stocurilor, tipurile și rolul
acestora. La gestiunea stocurilor se dezbat ariile de cuprindere ale gestiunii stocurilor, obiectivele și
rezultatele unei gestiuni informatice a stocurilor, funcțiile gestiunii stocurilor, elementele procesului de
stocare, factorii de influență și situațiile periculoase întâlnite în cazul unei gestiuni informatizate a
stocurilor, modalitățile practice de gestiune și indicatorii eficieței gestiunii stocurilor.
La tratarea noțiunilor teoretice ale componentei informatice s-au prezentat criteriile unei
proiectări de baze de date, analiza principalilor indicatori și operatori ai unei baze de date relaționale,
noțiunile, conceptele, caracteristicile și modelarea grafică a bazelor de date relaționale bazate pe
modelul entitate-relație, precum și analiza detaliată a proiectării în cazul particular ales al unei baze de
date relaționale care va gestiona stocurile unei farmacii.
Prezentarea teoretică a platformei de programare a programului Microsoft Acces 2000 este
urmată de expunerea pas cu pas a proiectării bazei de date, a creării acesteia precum și a creării
filtrelor, interogărilor și rapoartelor.
În ultima parte a proiectului este dezbătută utilizarea sistemului informatic de gestiune a
stocurilor unei farmacii, din punct de vedere al unui utilizator de program, care în cazul analizat poate
fi reprezentat de persoana care vinde medicamentele aflate în stocul și respectiv în gestiunea farmaciei.
2

Capitolul I : Analiza gestiunii stocurilor
I.1 Stocurile
I.1.1 Definirea stocurilor
Stocurile reprezintă cantități de resurse materiale sau produse finite sau într-un stadiu oarecare
de fabricație, acumulate în depozitele de aprovizionare ale unităților economice într-un anumit volum
și o anumită structură, pe o perioadă de timp determinată, în vederea unei utilizări ulterioare.
Stocul este o rezervă de material destinat să satisfacă cererea beneficiarilor, aceștia
identificându-se, dupa caz, fie unei clientele (stoc de produse finite), fie unui serviciu de fabricație
(stocuri de materii prime sau de semifabricate), fie unui serviciu de întreținere (articole de consum
curent sau piese de schimb), fie unui serviciu de după vânzare (piese detașate).
Stocul reprezintă ansamblul de bunuri care se formează în ciclul de exploatare al intreprinderii
pentru a fi vândut în starea în care se gasește în urma unui proces de producție în curs sau viitor, sau
pentru a fi consumat la prima necesitate1.
Stocul reprezintă un ansamblu de bunuri sau de articole acumulate în așteptarea unei utilizări
ulterioare, mai repede sau mai târziu și care permite alimentarea utilizatorului pe măsura nevoilor sale,
fără a fi perturbat de întârzieri în livrări sau de incapacitatea furnizorului de a fabrica temporar
respectivele bunuri.
Noțiunea de stoc grupează:
•aprovizionarea: materiile prime, furnizorii;
•produsele: intermediare și finite;
•intermediarii: cumpărătorii care revând marfa.
Orice stoc se caracterizeaz ă printr-un flux de intrare pe care intreprinderea îl poate previziona
într-un anumit grad, precum și printr-un flux de ieșire, pe care rareori intreprinderea îl poate stapâni,
fiind impus de clienți, dar și de un nivel de bunuri în așteptare.
I.1.2 Tipuri de stocuri
Din punct de vedere al producției, stocurile pot fi de producție (stoc în amonte), de desfacere
(stoc în aval) și stoc interoperațional.
Din punct de vedere al rolului jucat pe plan economic, stocurile pot fi cu rol de regulator, cu
rol strategic și stocuri speculative.
Din punct de vedere al modului de depozitare , care ține seama și de unele proprietăți fizico-
chimice ale elementelor, avem: produse periculoase, voluminoase, fragile etc.
Din punct de vedere al modului de gestionare există stocuri cu gestiune normală, stocuri cu
“afectare directă” (comandate special pentru o anume comandă), stocuri “fără gestiune” (din magaziile
intermediare, cu o supraveghere globală) și stocuri de produse consumabile.
Din punct de vedere al caracteristicilor formării și destinației lor, există stoc curent, stoc de
siguranță, stoc de pregătire sau de condiționare, stoc pentru transport intern și stoc de iarnă.
I.1.3 Rolul stocurilor
Rolul determinant al stocurilor este evidențiat de faptul că acestea asigură certitudine, siguranță
și garanție în alimentarea continuă a producției și ritmicitatea desfacerii rezultatelor acesteia2. Altfel
spus, procesul de stocare apare ca un regulator al ritmului aprovizionărilor cu cel al producției, iar
stocul reprezintă acel “tampon inevitabil” care asigură sincronizarea cererilor pentru consum cu
1 Pleșea Doru – Bazele contabilității, vol. II, Ed. Omnia Uni SAST, Brașov, 20052 Gheorghe Basanu, Mihai Pricop – Managementul aprovizionării și desfaceri, Ed. Economica, 1996
3

momentele de furnizare a resurselor materiale. Rolul stocului este multiplu și are numeroase rațiuni
economice, financiare, tehnice, comerciale.
Justificarea existenței stocurilor de materii prime, componente sau produse finite rezultă din:
a) Rațiuni financiare : stocarea produselor scumpe pentru un scop speculativ specific
perioadelor de criză sau inflație, menținerea valorii anumitor materii prime sau produse, eliminându-se
astfel riscul creșterii exagerate a cheltuielilor de fabricație datorită penuriei;
b) Rațiuni economice : reducerea cheltuielilor de transport prin achiziționarea unor cantități mai
mari decât stocul curent necesar, acceptarea ofertei propuse de furnizor cu cantități fixe de livrare la
prețuri foarte avantajoase pentru produsele care nu implică costuri mari de stocare, stocarea producției
excedentare în raport cu cererea în cazul în care oprirea și repornirea activităților productive costă,
fiind preferată realizarea unei producții constante cu stocuri care să raspundă cererilor suplimentare
ocazionale;
c) Rațiuni tehnice: ameliorarea calității produselor (uscarea lemnului, șampanizarea vinului);
d) Rațiuni comerciale : reducerea termenelor de livrare mai ales cand clienții doresc produsele
într-un timp scurt, achiziții în perioada reducerilor oferite de furnizori, pentru a promova un produs,
politica de marketing prevăzând și acțiuni punctuale când se realizează reduceri de prețuri, perioadă în
care cererile cresc și se justifică crearea stocului, pentru a realiza un răspuns prompt la cererile
aleatoare.
I.2 Gestiunea stocurilor
Intreprinderile sunt supuse unei duble constrângeri: cadența de aprovizionare foarte scazută
generează stocuri mari și costuri importante de stocare în timp ce ritmul de aprovizionare ridicat
multiplică costurile de lansare a comenzilor. Față de aceste considerații, gestiunea materialelor
cuprinde o serie de activități prin care:
•se efectuează normarea stocurilor;
•se optimizează sistemul logistic de aprovizionare, depozitare, manipulare, conservare;
•se reduc cheltuielile de stocare;
•se realizează evidența strictă a materialelor.
I.2.1 Sfera gestiunii stocurilor
Ca proces economic complex, gestiunea stocurilor are o sferă largă de cuprindere, aceasta
incluzând atat probleme de conducere, dimensionare, de optimizare a amplasării stocurilor în teritoriu,
de repartizare a lor pe deținători, de formare și evidență a acestora, cât și probleme de recepție, de
depozitare și păstrare, de urmărire și control, de redistribuire și mod de utilizare.3
I.2.2 Obiective și rezultate ale gestiunii științifice a stocurilor
Obiectivele principale ale conducerii proceselor de stocare pot fi sintetizate astfel:
•prevenirea formării de stocuri supranormative, cu mișcare lentă sau fără mișcare și
valorificarea operativă a celor existente (devenite disponibile);
•asigurarea unor stocuri minim necesare, asortate, care să asigure desfașurarea normală a
activității economico-productive a agenților economici prin alimentarea continuă a punctelor de
consum și în condițiile unor cheltuieli cât mai mici;
•asigurarea unor condiții de depozitare-păstrare corespunzatoare în vederea prevenirii
degradării materialelor existente în stocuri;
•folosirea unui sistem informațional simplu, operativ, eficient, util și cuprinzător care să
evidențieze în orice moment starea procesului de stocare;
•aplicarea unor metode eficiente de urmărire și control care să permită menținerea
stocului în anumite limite, să prevină imobilizările neraționale.
Soluționarea oricărei probleme de stoc trebuie să conducă la obținerea răspunsului pentru
următoarele două chestiuni, care constituie de fapt obiectivele principale ale gestiunii:
1) determinarea mărimii optime a comenzii de aprovizionare;
3 http://www.biblioteca.ase.ro/eresurse/reviste/ contabilitate
4

2) determinarea momentului (sau frecvenței) optime de aprovizionare.
I.2.3 Funcțiile gestiunii stocurilor
Principalele funcții ale gestiunii stocurilor se pot nominaliza prin:
•crearea siguranței și certitudinii cu privire la asigurarea alimentării continue a
procesului de producție;
•imobilizarea unor cantități cat mai reduse în materiale stocate;
•diminuarea continuă a cheltuielilor de stocare;
•formarea de stocuri pentru situații neprevăzute.
I.2.4 Elementele principale ale unui proces de stocare
Stabilirea politicii de gestiune a stocurilor este nemijlocit legată de cunoașterea elementelor
prin care se caracterizează procesele de stocare și care determină nivelul de formare al stocurilor:
A. Cerere ce consum, element de bază în funcție de care se determină nivelul și ritmul ieșirilor,
volumul și ritmul necesar pentru intrări și nivelul stocului. Cererea de consum reprezintă numărul de
produse solicitate în unitatea de timp. Acest număr nu coincide întotdeauna cu cantitatea vândută
deoarece unele cereri pot ramâne nesatisfăcute datorită deficitului în stoc sau întârzierilor în livrare.
Evident, dacă cererea poate fi satisfacută în întregime, ea reprezintă cantitatea vândută.
B. Costurile reprezintă cheltuielile ce trebuie efectuate pentru derularea procesului de
aprovizionare-stocare (respectiv cele cu comandarea, contractarea, transportul, depozitarea, stocarea
materialelor etc.). În calculul stocurilor se au în vedere:
•costurile de stocare – cuprind suma cheltuielilor ce trebuie efectuate pe timpul
staționarii resurselor materiale în stoc;
•costul de penurie sau costul ruperii stocului – definit atunci când volumul cererii
depășește stocul existent;
•cheltuieli datorate variațiilor ritmului de producție – cheltuielile fixe legate de creșterea
ritmului de producție, de la nivelul zero, la un anumit nivel dat;
•prețul de achiziție sau cheltuielile directe de producție .
C. Cantitatea de reaprovizionat reprezintă necesarul de aprovizionat care se stabilește în funcție
de necesarul pentru consum pentru întreaga perioada de gestiune.
D. Lotul reprezintă cantitatea cu care se face aprovizionarea la anumite intervale, în cadrul
perioadei de gestiune stabilită (trimestru, semestru, an) și care este funcție de caracterul cererii.
E. Parametri temporali sunt specifici dinamicii proceselor de stocare: perioada de gestiune ,
intervalul de timp între două aprovizionări consecutive, durata de reaprovizionare , momentul
calendaristic la care se emit comenzile de reaprovizionare, coeficientul de actualizare.
F. Gradul de prelucrare a produselor : cu cât bunurile păstrate în stoc sunt într-un stadiu mai
avansat de finisare, cu atât mai repede pot fi satisfăcute comenzile, dar cu atât mai mari vor fi
cheltuielile de stocare. Cu cât produsele sunt mai puțin finisate, cu atât mai mici sunt cheltuielile de
stocare, dar timpul necesar pentru livrarea unei comenzi este mai mare. În plus, erorile de previziune
tind să crească pe masură ce gradul de prelucrare a produselor este mai avansat. Rezultă că pentru a
reduce influența factorilor nefavorabili este necesar să crească și stocul tampon.
I.2.5 Factorii de influență a gestiunii stocurilor4
Factorii cei mai relevanți care influențează gestiunea stocurilor sunt:
•cererea, care poate fi constantă sau aleatoare cu o probabilitate cunoscută sau
necunoscută;
•cantitatea de aprovizionat (Q) rezultată din analiza cererii;
•durata de aprovizionare (d) – timpul consumat de la emiterea comenzii până la recepția
materialului în depozitul întreprinderii;
•intervalul dintre două reaprovizionări (t);
•perioada de timp pentru care este planificată gestiunea (T);
•stocul curent optim (S c);
•date despre furnizor: capacități, termene de livrare, loturi de livrare;
4 http://www.market-mentor.ro
5

•capacitățile de depozitare ale întreprinderii;
•cheltuielile ocazionate de desfășurarea procesului de aprovizionare, dintre care cele mai
importante sunt:
Cl – cheltuieli pentru lansarea comenzii, independente de mărimea stocului
curent sau de cantitatea comandată;
Cs – cheltuieli cu stocarea, manipularea, transportul și conservarea materialelor,
dependente de mărimea stocului depozitat;
Cp – cheltuieli de penalizare, care apar atunci când cererea este mai mare decât
stocul existent și ea se datorează lipsei de materii prime pentru prelucrare.
I.2.6 Situații periculoase în gestiunea stocurilor
Responsabilii cu gestiunea stocurilor trebuie să evite două situații periculoase : un nivel de stoc
prea mare sau un nivel de stoc prea scăzut, ambele cu consecințe economice dezavantajoase5.
Dacă nivelul de stoc este prea mare:
•se înregistrează numeroase cheltuieli suplimentare (construcția de depozite, asigurări,
personal salarizat, întreținere, pază etc.);
•imobilizările de capitaluri scad competitivitatea firmei;
•poate crea dificultăți de lichidități;
•crește riscul de degradare și deteriorare a produselor stocate;
•conduce la situații în care firma vinde cu rabat (scăderea profitului) producția stocată.
Dacă nivelul de stoc este prea scăzut:
•multiplică riscul de a întrerupe și chiar de a opri fluxul productiv;
•dezorganizează întreprinderea;
•generează întârzieri în livrări, diminuarea vânzărilor și în final pierderea clientelei.
Astfel, intreprinderea va construi și va exploata un sistem de gestiune economică a stocurilor,
printr-un efort financiar care merită a fi luat în considerare, sistem care va avea ca obiective:
•reducerea la maxim a nivelului mediu al stocurilor;
•minimizarea riscurilor de întrerupere a producției.
I.2.7 Modalități practice de gestiune a stocurilor
Modelul S-s. Gestiunea de tip S-s sau cu două depozite se caracterizează prin faptul că
reaprovizionarea se face în momentul în care nivelul curent al stocului a atins o anumită valoare notată
generic cu “s”. Acest lucru este echivalent unei gestiuni cu două depozite, în cadrul căreia
reaprovizionarea se face în momentul în care primul depozit s-a golit. În perioada de reaprovizionare
(de avans) consumul se va realiza din cel de-al doilea depozit, care joacă rolul stocului de siguranță.
În acest model considerăm:
•cererea totală pentru perioada T este R, aleatorie;
•costul stocării este cS;
•costul lansării unei comenzi de reaprovizionare este cL;
•termenul de livrare £ poate fi:
a) neglijabil și obținem costul total pentru intervalul T ca fiind:

unde: q – reprezintă cantitatea de reaprovizionat.
b) cvasiconstant este nivelul minim de reaprovizionare Ns; când stocul atinge acest
nivel se lansează o comandă de q piese. Mărimile date sunt: T, £, R, cS, cL și ne propunem să
determinăm pe Ns și pe q astfel încât costul stocului pentru perioada T să fie minim. O metodă
aproximativă constă în a admite că ritmul mediu al cererii este constant; în acest caz optimul
cantității q0 este independent de Ns:

5 Radu Emilian, Gabriela Tigu – Managementul operațiunilor în intreprinderile de servicii
6

Dacă £ este durata medie a termenului de reaprovizionare (cu o abatere medie pătratică
mică) se va evalua legea de probabilitate a cererii pentru acest interval de timp.
Fie F£ (r) probabilitatea cererii de r produse în intervalul £: F£ (r) = P(R£r) =
probabilitatea cumulată. Se impune condiția ca probabilitatea epuizării stocului să fie mai mică
sau egală cu valoarea dată £ , unde £ reprezintă probabilitatea de penurie.
Trebuie să avem: 1 – F£ (r) = £. Fie Q soluția ecuației: 1 – F£ (r) = £, de unde rezultă Q = Ns.
Această metodă este aproximativă, deoarece implică ipoteze de lucru distincte pentru
stocurile fiecărui depozit.
Metoda A.B.C. este un procedeu rapid pentru analiza aprovizionării și gestiunii economice a
materialelor. Această analiză clasifică mărfurile achiziționate în funcție de valorile de aprovizionare
ale acestora și de ponderea achizițiilor. Prin aceasta pot fi văzute punctele de plecare pentru realizarea
unei politici raționale a achizițiilor, pe care se pot baza mai multe măsuri, începând cu simplificarea
procedeelor de comandă, până la numărul de salariați folosiți în depozite.
Factorul esențial în folosirea metodei A.B.C. constă în alegerea unui criteriu corespunzător pe
baza căruia se efectuează împărțirea materialelor în cele trei grupe A, B, C. Un asemenea criteriu poate
fi valoarea de consum a materialului dat, în timpul stabilit, valoarea specială a materialului cu privire
la folosirea lui în producție, proveniența din import etc.
O dată criteriul ales și împărțirea în grupe efectuată, metoda A.B.C. poate fi utilizată în diferite
domenii ale gestiunii stocurilor.
Controlul selectiv al stocurilor permite o gestiune selectivă a stocurilor. Stocurile tampon ale
articolelor de valoare mare sunt menținute la un nivel destul de mic. Aceste articole trebuie să fie
supuse unui control de gestiune foarte strâns din partea personalului aprovizionării (articolele de mare
valoare sunt adesea gospodărite cu ajutorul unui sistem de reaprovizionare periodică și dacă intervalele
sunt suficient de frecvente, un stoc tampon este mai puțin necesar).
Această metodă dă o atenție mai mică articolelor de valoare mică, a căror epuizare se evită prin
asigurarea unor stocuri tampon și se pot reduce investițiile în stocuri, micșorând în același timp
riscurile de epuizare.
Din analiza structurii materiale a unităților economice rezultă că valoarea mare în stoc este
deținută de un număr relativ mic de materiale, care nu numai că influențează direct volumul de
mijloace circulante atras, dar joacă și rolul principal în desfășurarea procesului de fabricație.
Stocurile sunt împărțite în trei clase:
– clasa A, în care intră articolele cu valoare mare reprezentând cantitativ 10 % din stoc și
70 % valoric;
– clasa B, în care intră articole reprezentând 20 % atât cantitativ cât și valoric;
– clasa C, în care intră articole ce reprezintă cantitativ 70 % din stoc și 10 % valoric.

CLA
SAPONDEREA NUMERICĂ PONDEREA VALORICĂ
A 10 70
B 20 20
C 70 10
Gruparea materialelor în funcție de ponderea lor valorică în stocul total, pe baza datelor din
tabelul de mai sus, se prezintă într-o formă expresivă în Fig. 1.

7

Fig. 1. Graficul de evoluție al curbei valorilor cumulate

Metoda A.B.C., pe lângă faptul că oferă o politică diferită pentru articolele din categoria mai
scumpă, permite și utilizarea unor metode de gospodărire diferită.
Întrucât în categoria A sunt puține articole, se poate controla zilnic nivelul stocurilor, pentru a
observa variația cererii și a supraveghea de aproape respectarea termenelor de către furnizori.
Se pot folosi modele economico-matematice exigente, care au în vedere elemente (factori)
concrete ce condiționează nivelul stocurilor și care asigură constituirea lor la dimensiuni cât mai mici,
determinând creșterea vitezei de rotație a mijloacelor circulante la maxim.
Cu articolele din categoria B se poate adopta o politică intermediară, exercitând un oarecare
control, dar baza rămâne tot stocul tampon, spre deosebire de politica dusă pentru categoria A. La
articolele mai ieftine este mai eficient să se suporte sarcina stocurilor, decât să se plătească salariile
personalului care ar fi indispensabil pentru mărirea controlului. Pentru grupa B se pot aplica două
soluții:
a)stabilirea de modele distincte pentru dimensionarea stocurilor de materiale din această
grupă cu un grad de exigență mediu;
b)folosirea pentru materialele care, ca pondere valorică, tind către grupa A de importanță,
a modelelor precizate pentru această din urmă grupă, iar pentru materialele ce tind ca valoare către
grupa C a modelelor specifice acestora.
Pentru materialele din categoria C se pot folosi procedee mai puțin exigente (chiar cu caracter
statistic) și care vor avea în vedere factorii cu acțiune hotărâtoare în optimizarea proceselor de stocare
(cheltuielile de transport, sursa de proveniență etc.).
Viabilitatea unui sistem de gestiune a stocurilor este determinată, în general, de felul în care
acesta răspunde unor cerințe de bază6, cum ar fi:
•gradul ridicat de utilitate practică;
•adaptabilitatea la utilizarea mijloacelor electronice de calcul;
•suplețea și operaționalitatea în derularea și adaptarea proceselor de stocare;
•aria de cuprindere mare;
•concordanța cu fenomenele reale ale procesului de formare și consum a stocurilor;
•reducerea la minim a imobilizărilor de resurse materiale și creșterea vitezei de rotație a
mijloacelor circulante ale agenților economici;
•cheltuielile de conducere, organizare și desfășurare a proceselor de stocare cât mai mici.
Analizat din aceste puncte de vedere, sistemul A.B.C. răspunde în mare măsură cerințelor.
Acest sistem aplicat la gestiunea stocurilor are în vedere, în primul rând reducerea imobilizărilor la
materialele de bază și care se consumă în cantități mari, aspect asigurat prin exigența metodologică de
dimensionare a stocurilor și de urmărire a derulării proceselor de stocare.

Strategia IMPACT (Inventory Management Program and Control Techniques) este considerat
ca un model eficient de stabilire a stocurilor de siguranță. Este o metodă de depozitare economică,
adaptată cerințelor calculatoarelor electronice. Acest model a fost dezvoltat de IBM.
Estimarea necesarului se face prin extrapolarea valorilor din trecut. Influențele conjuncturale și
sezoniere sunt luate în calcul prin metoda de nivelare exponențială. Stocul de siguranță se determină cu
ajutorul calculului probabilităților.
Conform metodei IMPACT, sortimentelor din depozit se împart în trei grupe:
1. produse cu desfacere mare (vitale);
2. produse cu desfacere mijlocie (importante);
3. produse cu desfacere redusă ( obișnuite).
Mărimea stocului de siguranță depinde de precizia estimării necesităților (cererii). Cu cât va fi
apreciată mai precis în prealabil cererea, cu atât va fi mai mic stocul de siguranță.
6 Eugen Țigănescu, Dorin Mitruț – Bazele cercetării operaționale
8

Pentru a putea aplica metoda IMPACT sunt necesare: cunoașterea cererilor ri (i = 1, 2,…, T), pe
T intervale de timp și calculul abaterii medii pătratice σ.
Pentru determinarea stocului de siguranță, metoda IMPACT folosește următorii indicatori:
a) cererea medie (necesarul mediu)

unde: T – este numărul de intervale de timp cercetate;
ri – este cererea în intervalul i, i = 1, 2,…, T;
b) MAD (Mean Absolut Deviation) reprezintă abaterea absolută de la medie a cererilor, ca
unitate de măsură a “împrăștierii” valorilor efective în jurul valorii medii.

MAD se determină ca valoare medie a valorilor absolute ale abaterilor de la cererea medie.
c) coeficientul de siguranță exprimă potențialul de livrare al furnizorilor. Coeficientul de
siguranță (K) se stabilește pe bază de tabele ale funcției normale, în cadrul căreia sunt date valorile lui
K, corespunzător diferitelor niveluri ale potențialului de livrare al furnizorilor.
Potențialul de livrare (Z) exprimă gradul de satisfacere de către furnizor a unei comenzi. Acest
potențial de livrare se mai numește grad de deservire sau nivel de serviciu.
Potențialul de livrare ( Z) se determină după relația:

unde: CLE – este cantitatea livrată efectiv;
CLC – este cantitatea ce trebuie livrată conform comenzii.
Dacă 0 < Z < 1 sau Z = 0, atunci se înregistrează lipsa materialelor în stoc, fără o posibilitate
eficientă de acoperire; iar dacă Z = 1, avem de-a face cu un serviciu perfect de servire din partea
furnizorilor.
Relația de determinare a potențialului de livrare se poate exprima și sub alte forme, și anume:

unde: NUC – reprezintă numărul de unități (bucăți) comandate; NUL reprezintă numărul de unități
(bucăți) lipsă.
sau

unde: NZT – reprezintă numărul total de zile lucrătoare din perioada de gestiune; NZL reprezintă
numărul de zile cu lipsă de stoc.
Când un produs se fabrică din mai multe materii prime, care intră simultan în consum,
potențialul de livrare se calculează în funcție de necesitatea prezenței în același moment în depozit a
tuturor materiilor prime care concură la obținerea lui. Stocul de siguranță se calculează după formula:
NS = K MAD 

Între potențialul de livrare și costul stocării necesitat de constituirea și deținerea stocului de
siguranță există o corelație strânsă. Creșterea potențialului de livrare determină creșterea costului total
de stocare, dar într-o proporție mai mică, ceea ce înseamnă că eficiența este cu atât mai mare cu cât
potențialul de livrare se apropie de unu.
Trebuie excluse influențele întâmplătore, însă luate în considerare influențele conjuncturale și
sezoniere. IMPACT folosește în acest scop metoda nivelării exponențiale . Această metodă a fost
dezvoltată de Robert Brown și este cunoscută sub numele de exponential smoothing.
9

Valoarea medie a cererii se corectează cu eroarea de previziune și se stabilește introducând o
anumită parte a erorii în noua valoare a estimației.
Fie V1 estimarea cererii pentru prima perioadă și r1 cererea reală a primei perioade. Estimarea
cererii pentru următoarele perioade se obține din relațiile:
Vi = Vi-1 + C (ri-1 – Vi-1),
unde: C – reprezintă constanta de nivelare și determină măsura în care valorile din trecut sunt
cuprinse în estimarea cererii. Constanta de nivelare trebuie astfel aleasă încât să țină seama suficient de
influențele conjuncturale și sezoniere, eliminând totuși influența întregului.
0 < C < 1
C= 0 înseamnă că erorile de prevedere care apar nu sunt luate în considerare
C = 1 înseamnă că estimarea corespunde exact cererii din perioada anterioară; toate influențele
întâmplătoare sunt introduse în estimare.
Abaterea absolută de la medie ( MAD) poate fi folosită după aceleași principii: abaterea medie a
perioadei i va fi dată de relația :
MADi = MADi-1 + C(C ri-1 – Vi-1 C – MADi-1).

În acest caz C ri-1 – Vi-1 C este valoarea abaterii precedente față de valoarea reală.
Cererea medie (necesarul mediu) și abaterea absolută de la medie ( MAD) vor fi apreciate în
prealabil prin metoda nivelării exponențială, urmând ca abia după aceea să se determine nivelul
stocului de siguranță ( NS).
I.2.8 Indicatori ai eficienței gestiunii stocurilor7
În lucrările de specialitate se regăsesc numereși indicatori prin care se poate determina eficiența
politicii organizației relativă la stocuri și aprovizionare.
A. Nivelul serviciilor oferite de furnizor
1. Disponibilitatea comenzilor DC(%)

2. Disponibilitatea cantităților DQ(%)

B. Mărimea stocurilor
1. Valoarea stocului mediu V Sm

2. Valoarea stocului de siguranță V Ss
VSs = Valoarea stocului – Valoarea stocului curent
3. Valoarea bunurilor în stocuri

C. Performanțele gestiunii stocurilor
1. Eficiența stocurilor

2. Acuratețea înregistrărilor A î

7 Petre Brezeanu – Gestiunea financiară a intreprinderii, Ed. Cavallioti, 2002
10

3. Rata de utilizare a stocurilor

D. Costurile de gestiune a stocurilor
1. Costul anual cu emiterea comenzilor C aec

sau (Costul fiecărei comenzi) · (Numărul de comenzi)
După cum se observă indicatorii A. măsoară nivelul de satisfacere a comenzilor de către
furnizori, indicatorii B. relevă mărimea stocului și costul anual aferent emiterii comenzilor și
indicatorii C. evaluează managementul stocurilor .
Capitolul II : Proiectarea programului de gestiune a stocurilor unei
farmacii
II.1 Noțiuni de proiectare a bazelor de date
Bazele de date reprezintă colecții de date organizate într-un mod riguros, bine stabilit. Ele nu
conțin date care nu sunt necesare în vederea prelucrării sistemelor de gestiune( informații
nesemnificative cum ar fi în cazul cărții de telefon, tipul sau culoarea acestuia).
De regulă, bazele de date sunt organizate pe patru niveluri, și anume:
•nivelul conceptual
•nivelul extern
•nivelul logic
•nivelul intern(fizic)
Nivelul conceptual se referă la programatorii care cunosc datele referitoare la problema care
este studiată, sau care obțin aceste date de la specialiștii implicați în domeniul respectiv.
Nivelul extern reprezintă designul pe care îl are baza de date, modul în care datele vor fi
organizate în vederea utilizării și prelucrării. Tot nivelul extern realizează și operațiile de acces
secvențial la informațiile conținute de baza de date. Astfel, un utilizator va avea acces numai la
anumite date, existând situații când accesul îi este interzis, sau permis numai pe bază de parolă. De
asemenea, la acest nivel informația poate fi prezentată sub diferite forme, pentru a se face o distincție,
sau o individualizare.
Nivelul logic reprezintă modul în care vor fi organizate datele din punct de vedere logic. Există
mai multe tipuri de modele:
•modelul ierarhic : este de tip arbore, în care nivelul cel mai de sus se numește rădăcină,
care poate avea oricât de mulți descendenți. Relațiile dintre date sunt de tip părinte-copil. Este modelul
cel mai puțin folosit în realizarea nivelului logic
•modelul rețea : este asemănător modelului ierarhic, cu diferența că un copil poate avea
mai mulți părinți. Este un model care poate prelucra date complexe, dar care are o structură destul de
complicată. Este puțin folosit în gestionarea bazelor de date.
•modelul relațional : este modelul cu cea mai largă răspândire, fiind ușor de utilizat și
având o flexibilitate deosebită, care face ca manipularea datelor să se facă ușor, fără a altera
integritatea datelor existente. Datele sunt stocate în tabele, tabelele fiind formate din înregistrări,
acestea fiind la rândul lor formate din câmpuri. Între tabele se pot realiza legături, care ușurează cu
mult operațiile de prelucrare a informațiilor. Sistemele de gestiune a bazelor de date care folosesc
modelul relațional sunt Oracle, Access, Iformix etc.
11

•modelul orientat pe obiect : cel mai nou tip folosit de sistemele de gestiune al bazelor de
date. A apărut ca urmare a diversificării tipului de informații care trebuie gestionate de către bazele de
date(este vorba de hărți, programe orientate pe obiect, programe dinamice, simulatoare, animație etc.).
Nivelul intern(fizic) în cadrul căruia se vor utiliza și prelucra informațiile din schema
conceptuală, în funcție de sistemul de gestiune al bazei de date. Ca sistem de gestiune al bazei de date
putem folosi: Oracle, Access, DB2, Ifromix, Fox. Sistemul de gestiune al bazei de date este
răspunzător de stocarea datelor, prelucrarea lor, asigurarea securității informațiilor, asigurarea
accesului concurențial (astfel încât baza de date să fie utilizată în rețea de mai multe persoane în
același timp).
II.2 Analiza principalilor indicatori și operatori relaționali
II.2.1 Caracteristici ale bazelor de date relaționale
Modelul de stocare a datelor sub forma bazelor de date relaționale s-a dezvoltat pornind de la
articololul "A relational Model of Data for Large Shared Data Banks" (Un model relațional al datelor
pentru bănci mari de date folosite în comun), scris de Dr. E. F. Codd în 1970. Dr. Codd a definit 12
reguli, referite ca cele 12 reguli ale lui Codd, reguli de definesc modelul relațional și care sunt
următoarele:
[1] Regula capacității sistemului: un sistem relațional de administrare a bazelor de date trebuie
să poată administra bazele de date în întregime prin funcțiile sale relaționale;
[2] Regula informației: toate informațiile dintr-o bază de date relațională, inclusiv numele de
tabel și de coloană, trebuie reprezentate explicit ca valori în tabele;
[3] Regula suportului sistematic al valorii nule: SGBD trebuie să asigure un suport sistematic
pentru tratamentul valorii nule, date necunoscute sau neaplicabile, diferit de valorile prestabilite și
independent de orice domeniu;
[4] Regula catalogului relațional activ on-line: descrierea bazei de date și a componentelor sale
trebuie reprezentată la nivel logic sub formă de tabele, iar ca urmare poate fi interogată folosind
limbajul bazei de date;
[5] Regula sub-limbajului multilateral al datelor: trebuie să existe cel puțin un limbaj acceptat
care să aibă o sintaxă bine definită și să fie multilateral, care să suporte definirea și manipularea
datelor, reguli de integritate, autorizare și tranzacții;
[6] Regula actualizării vederilor: toate vederile care pot fi actualizate trebuie să fie actualizate
în cadrul sistemului;
[7] Regula de inserare, actualizare și ștergere la nivel de mulțimi: SGBD trebuie să suporte nu
numai regăsirea datelor la nivel de mulțimi, ci și inserări, actualizări și ștergeri;
[8] Regula de independență fizică a datelor: programele de aplicații și cele create pe moment
nu trebuie să fie afectate din punct de vedere logic la deteriorarea metodelor de acces fizic sau a
structurilor de memorare;
[9] Regula de independență logică a datelor: programele de aplicații și cele create pe moment
nu trebuie să fie afectate din punct de vedere logic când sunt făcute modificări în structura tabelelor;
[10] Regula independenței integrității: limbajul bazei de date trebuie să poată defini regulile de
integritate, care trebuie să fie memorate în catalogul on-line și care nu pot fi încălcate;
[11] Regula independenței distribuției: programele de aplicații și cererile momentane nu trebuie
să fie afectate din punct de vedere logic la prima distribuire a datelor sau la o distribuire ulterioară;
[12] Regula de nesubversiune: nu trebuie să fie posibilă încălcarea regulilor de integritate,
definite prin limbajul bazei de date, prin folosirea limbajelor de nivel inferior.
Matematicianul F.E. Codd a construit un model riguros, cu concepte matematice, pentru baza
de date relațională, însă aceasta este percepută de utilizatorii ca o colecție de tabele (tablouri
bidimensionale de date, numite și relații), noțiune care nu necesită definiții suplimentare, în care sunt
prezente patru concepte:
•tabelele
•coloanele tabelului
•rândurile tabelului
•câmpurile din tabel, de pe o anumită coloană și linie.
12

Bazele de date au, din punct de vedere istoric, un set de relații de tip "părinte-fiu". Aceasta
înseamnă că un nod părinte poate conține pointeri de tip fișier către fiii săi.
Această metodă are câteva avantaje și mai multe dezavantaje. Ca un avantaj, structura fizică a
datelor pe disc nu este importantă. Programatorul memorează doar pointerii către locația următoare,
astfel încât datele pot fi accesate în această manieră. De asemenea, datele pot fi accesate cu ușurință.
Totuși, grupuri diferite de informații nu pot fi joncționate pentru a forma o nouă informație. Formatul
datelor pe disc nu poate fi modificat oricând după crearea bazei de date.
În cadrul modelului relațional, datele sunt separate în mulțimi care seamănă cu structura unui
tabel. Această structură de tabel constă din elemente informaționale individuale numite coloane sau
câmpuri. Un singur set al unui grup de câmpuri este cunoscut ca o înregistrare sau linie.
O relație, în cazul discret, poate fi privită și înțeleasă ca o tabelă. Modificarea datelor se
realizează prin operații relaționale aplicate asupra tabelelor. Spre exemplu, restricția unei relații, a unui
tabel, va fi un nou tabel în care se păstrează doar anumite linii. Iar proiecția unei relații – unui tabel – va
fi un nou tabel în care se păstrează doar anumite coloane.
O bază de date relațională apare ca o colecție de relații (tabele). Există o mulțime de operatori
pentru transformarea și combinarea relațiilor: selecția, proiecția, produsul, join-ul, reuniunea,
intersecția, diferența.
II.2.2 Operatorii relaționali ai bazelor de date relaționale
Operatorii relaționali ai bazelor de date relaționale sunt definiți în tabelul următor:
Operatorul
RelaționalDescrierea
RestricțiaEste o operație care preia și afișează datele din relație.Este posibil să se afișeze toate
rândurile sau doar rândurile care îndeplinesc o anume condiție (sau mai multe
condiții). Aceasta este de multe ori numită "submulțime orizontală"
ProiecțiaEste operația care afișează anumite coloane din relație, fiind numită de aceea și
"submulțime verticală".
ProdusulEste rezultatul obținut când rândurile a două mulțimi de date sunt concatenate
conform condițiilor specificate.
"Join"-ulEste rezultatul obținut când rândurile a două mulțimi de date sunt concatenate
conform condițiilor specificate.
ReuniuneaAfișează toate rândurile care apar în una, în cealaltă, sau în ambele relații.
IntersecțiaAfișează toate rândurile care apar în ambele relații.
DiferențaAfișează rândurile care apar numai în prima relație fără să apară în cea de a doua (în
SQL se utilizează chiar semnul – operatorul minus).
Proprietățile bazelor de date relaționale sunt:
• inexistența pointerilor;
• conexiunile făcute numai pe baza datelor;
• independența totală a datelor.
Proprietățile relațiilor tabelare sunt:
• nu există rânduri duplicate;
• nu există nume de coloane identice (duplicate);
• ordinea rândurilor este neimportantă;
• ordinea coloanelor este neimportantă;
• valorile (câmpurile) sunt atomice (nedecompozabile).
13

II.2.3 Noțiunile și conceptele bazelor de date relaționale, modelul entitate-relație
Data elementară reprezintă cea mai mică unitate de date, identificată prin nume.
Entitatea este un obiect distinct ce trebuie reprezentat în baza de date.
Grupul de date (data agregata ) este un ansamblu de câmpuri, identificate prin nume.
Tipul sau structura grupului , reprezintă ansamblul identificatorilor, al descrierilor grupurilor și
al câmpurilor componente.
Tipul câmpului este ansamblul format din identificator, menținerea valorilor și formatul de
memorare.
Atributul este o proprietate a unui tip de entitate sau relație, ce descrie un anumit aspect al
obiectului ce se înregistrează în baza de date.
Înregistrarea logică reprezintă o colecție de date elementare și/sau grupuri de date, identificata
prin nume.
Setul de date este alcătuit dintr-o mulțime de înregistrări.
Tipul înregistrării constă din ansamblul tipurilor câmpurilor și al grupurilor împreună cu
ordinea și numărul de apariții.
Fișierul reprezintă ansamblul tuturor aparițiilor fizice ale unui tip de înregistrare logică.
Cheia simplă, respectiv compusă, din 1 până la n campuri, ale căror valori identifică în mod
unic fiecare înregistrare.
Cheia candidat este un atribut sau set de atribute ce identifică în mod unic aparițiile individuale
ale unui tip de entitate.
Cheia primară este una din cheile atribut.
Cheia alternativă este una din celelalte chei candidat.
Cheia compusă este o cheie candidat formată din două sau mai multe atribute.
Indexul constă în totalitatea valorilor cheilor și a adreselor de memorare a înregistrărilor
respective.
Zona reprezintă o porțiune a memoriei externe în care se pot memora înregistrări, identificată
prin nume.
Colecția de date reprezintă un ansamblu de date organizat după anumite criterii.
Baza de date reprezintă una sau mai multe colecții de date aflate în interdependență împreună
cu descrierea datelor și a relațiilor dintre ele.
Baza de date fizică sau modelul fizic este ansamblul datelor din baza de date, sub forma
memorărilor de fișiere, indexuri, etc. Este formată din totalitatea exemplarelor înregistrărilor, seturilor
de înregistrări și a zonelor, organizate după o anumită schemă.
Schema sau modelul logic reprezintă descrierea organizării logice a înregistrărilor bazei de
date.
Subschema sau modelul extern este o substructură (perspectivă, view) a schemei bazei de date,
relevantă pentru o aplicație.
Relațiile logice reprezintă asociațiile dintre mai multe entități.
Catalogul de sistem sau dicționarul de date sau meta-date reprezintă descrierea datelor, adică
date despre date, mulțimea descrierilor obiectelor bazei de date, structurată și administrată ca bază de
date.
Sistemul de gestiune a bazelor de date (SGBD) este un sistem de programe care permite
construirea unor baze de date, introducerea informațiilor în bazele de date și dezvoltarea de aplicații
privind bazele de date.
Administratorul bazei de date este o persoană sau un grup de persoane responsabile cu analiza,
proiectarea, implementarea și gestionarea bazei de date8.
Conceptele de bază ale modelului entitate-relație includ:
a) Tipuri de entități
Entitățile sunt obiecte sau concepte identificate ca având o existență independentă. Ele
reprezintă un set de obiecte ce au aceleași proprietăți.
Entitatea, în funcție de dependența față de altă entitate, poate fi:
– slabă, atunci când depinde de existența altei entități (copil, dependentă, subordonată);
8 www.trendix.ro
14

– tare, atunci când nu depinde de existența altei entități (părinte, dominantă).
b) Tipurile de relații
Relațiile sunt seturi de asocieri între două sau mai multe tipuri de entități. Relația este o instanță
a unui tip de relație care e unic identificabilă.
Gradul unei relații reprezintă numărul de entități participante într-o relație.
Clasificarea relațiilor în funcție de grad este următoarea:
1) de gradul întâi sau unară, caz în care relația este recursivă
2) de gradul doi sau binară, relație cel mai des întâlnită
3) de gradul trei sau ternară
4) de gradul patru sau cvadruplă.
Relația recursivă este o entitate care participă de două sau mai multe ori într-o relație; fiecare
participare are un nume de rol.
Raportul de cardinalitate al relațiilor descrie numărul de relații posibile pentru fiecare entitate
participantă. Se disting următoarele tipuri de relații:
• relația unu-la-unu, cu un raport de cardinalitate 1:1, este relația în care o entitate este asociată
unei singure entități;
• relația unu-la-mulți, cu un raport de cardinalitate 1:M, este relația în care o entitate asociată la
una sau mai multe entități;
• relația mulți-la-mulți, cu un raport de cardinalitate M:N, este relația în care mai multor entități
le sunt asociate mai multe entități, situație care implică descompunerea în două entități unu-la-mulți.
c) Atribute
Clasificarea atributelor în funcție de numărul de componente este următoarea:
– simple atunci când au o singură componentă ce are o existență independentă
– compuse atunci când au mai multe componente, fiecare având existență independentă.
Domeniul atributului reprezintă mulțimea de valori pe care le poate lua un atribut.
Clasificare domeniilor atributelor în funcție de numărul de valori este următoarea:
– cu o singură valoare, atunci când au o singură valoare pe care o pot lua;
– cu valori multiple;
– derivate, ale căror valori depind de valoarea altui atribut.
II.2.4 Modelarea grafică a bazelor de date relaționale
O tehnică de modelare verificată pentru reprezentarea grafică a activităților este modelul ERD
(Entity Relationship Diagram – diagrama relației dintre entități). Diagrama ERD documentează
cerințele informaționale ale companiei într-un format clar și precis.
Fiecare entitate e reprezentată sub forma unui dreptunghi. Entitatea slabă se reprezintă sub
forma unui dreptunghi cu laturi duble. Cheia primară se subliniază.Reprezentarea relației se face printr-
un romb. Conexiunea dintre o entitate slabă și una tare se reprezintă printr-un romb cu linii duble.
Fiecare atribut se reprezint ă printr-un oval. Pentru simplificarea diagramei sunt afișate numai
atributele cheie primară, iar uneori nici măcar acestea.
Această abordare grafică a modelării o face ușor de înțeles, iar simplificarea modelului îl face
ușor de utilizat.
II.3 Analiza detaliată a proiectării bazei de date relaționale care va gestiona
stocurile unei farmacii LA CAPITOLUL 2
Proiectarea unei baze de date relațională reprezintă procesul parcurs în vederea pregătirii
creării fizice a unei baze de date. Etapele acestui proces necesită identificarea operațiunilor comerciale
pe care le va gestiona baza de date, precum și crearea proiectului fizic al bazei de date. Proiectarea
15

corespunzătoare a bazei de date este vitală pentru buna funcționare a bazei de date și a oricărei aplicații
care utilizează baza de date.
În lipsa unei proiectări corecte a bazei de date, aceasta poate prezenta următoarele deficiențe:
−integritatea datelor este compromisă deoarece restricțiile de integritate nu pot fi
proiectate sau implementate corect;
−datele devin redundante, iar aplicațiile individuale se aglomerează în încercarea de a se
asigura sincronizarea datelor;
−performanțele sunt afectate deoarece este posibil ca pentru finalizarea unei instrucțiuni
select să fie necesare interogări suplimentare.
Condițiile impuse la proiectarea unei baze de date relaționale sunt următoarele:
•reducerea redundanțelor prin identificarea informațiilor comune și alcătuirea
corespunzătoare a aplicațiilor;
•eliminarea inconsistențelor ce rezultă din reducerea redundanțelor;
•utilizarea simultană a datelor de mai mulți utilizatori;
•standardizarea informațiilor;
•asigurarea securității bazelor de date, în sensul acordării și urmăririi modului de acces al
utilizatorilor la diferite părți componente ale bazelor de date;
•asigurarea integrității bazelor de date, în sensul păstrării corectitudinii informațiilor
conținute în baza de date prin testele aplicate datelor introduse în aceasta;
•asigurarea sincronizării în cazul utilizării bazei de date simultan de mai mulți utilizatori
sau a distribuirii informației pe mai multe sisteme.
La proiectarea unei baze de date se procedează la următoarele9:
-identificarea datelor (entități și atribute);
-identificarea relațiilor dintre date;
-identificarea constrângerilor;
-identificarea regulilor ce descriu principalele caracteristici ale datelor;
-implicarea utilizatorilor în realizarea modelului de date.
Astfel, proiectarea de baze de date relaționale implică transpunerea modelului logic într-un set
de tabele și constrângeri, selectarea structurilor de stocare și a metodelor de acces specifice, asigurarea
securității datelor.
Pentru a crea o bază de date relațională este necesară parcurgerea următoarelor etape:
Etapa I – crearea unui model al activității farmaciei
Această primă etapă presupune strângerea de informații despre mi șcarea medicamentelor care
fac obiectul stocurilor unei farmacii și procesele aferente pe care le va susține baza de date. Scopul este
stabilirea modului curent de derulare a activității farmaciei, iar dacă există deficiențe, stabilirea
posibilităților de îmbunătățire sau de extindere a activității. Pentru a dodândi o bună cunoaștere a
activității farmaciei și a proceselor aferente, se întreprind următoarele:
• Intervievarea următoarelor persoane:
(a) Manageri și supervizori ai activităților farmaciei;
(b) Potențiali utilizatori finali ai programului de gestiune de stocuri ale farmaciei;
(c) Potențiali beneficiari finali ai programului de gestiune de stocuri. Aceștia sunt persoanele
care s-ar putea să nu utilizeze direct baza de date, însă urmează să primească informații și să
beneficieze de existența bazei de date.
• Stabilirea obiectivului declarat al activității. Este utilă cunoașterea gestiunii stocurilor
farmaciei astfel încât baza de date și aplicația să fie concepute în vederea deservirii acesteia.
• Definirea obiectivul aplicației. Este obligatorie stabilirea pretențiilor farmaciei
referitoare la ceea ce urmează să facă baza de date și aplicația.
• Analizarea specificațiilor de sistem curente.
• Identificarea viitoarelor specificații de sistem pentru baza de date.
Programul va avea ca scop înregistrarea întregii activități a unei farmacii, fără a se ocupa însă
și de partea financiară, care este în general gestionată de aplicații dedicate, punând însă la dispoziția
acestora toate datele necesare pentru contabilitate.
9 Eugen Țigănescu Dorin Mitruț – Bazele cercetării operaționale
16

După ce au fost stabilite datele de proiectare, informațiile culese vor determina modul de
prezentarea al formularelor, manualelor, rapoartelor, însemnărilor, precum și a altor informații conexe
activității de proiectare.
Etapa II – crearea unui model al datelor
După ce au fost strânse informațiile precedente, trebuie să construi m un model sau o
reprezentare grafică a necesităților și regulilor farmaciei.
De exemplu, presupunem că s-au aflat următoarele informații despre activitatea farmaciei în
timpul interviurilor anterioare:
−farmacia are nevoie să știe ce furnizor oferă fiecare tip de medicament;
−trebuie cunoscute datele de identificare ale furnizorului;
−vor să aibă posibilitatea găsirii informației despre un anumit furnizor sau medicament.
Diagrama entitate-relație a programului de gestiune a stocurilor este arătată în Fig.2.
Etapa III – crearea unui proiect de baze de date de gestiune a stocurilor
La acest pas se pun bazele tabelelor din programul de gestiune a stocurilor. Baza de date,
pentru a satisface cerințele farmaciei, va avea cinci tabele și anume:
•furnizori: cod_furnizor, denumire, adresa, nr_telefon;
•intrari: cod_furnizor, nr_intrare, data_intrarii,;
•medicamente: nr_intrare, data_intrarii, denumire, cantitate, pret_unitar, valoare,
valoare_TVA, valoare_totala, valabilitate, pret_vanzare, cod_medicament;
•arhiva vanzari: cod_medicament, numar_v, denumire, cantitate, pret_unitar_v,
valoare_v, valoare_TVA_v, valoare_totala_v, valoare_compensare, pret_facturat, factura,
data_facturii;
•vanzari: factura, data_facturii.
Tabelele au fost trecute în ordinea în care sunt și legate, așa cum se vede și din diagrama
entitate-relație arătată în Fig.1, câmpurile scrise cu litere îngroșate reprezentând cheile primare, iar cele
scrise cu litere cursive reprezentând simple atribute. În tabelele intrari și vanzari cheile primare sunt
formate din câte două câmpuri, astfel încât să nu fie obținute înregistrări ne-individualizate, dar și
pentru ca datele completate în formulare să fie completate automat și în sub-formulare, deci și în
tabelele medicamente, respectiv arhiva vanzari, pentru că în felul acesta utilizatorul nu este obligat să
introducă de la tastatură de fiecare dată aceleași informații, cum ar fi data facturii sau numărul acesteia.
După ce toate tabelele au fost create, s-a trecut la construirea interogărilor și a rapoartelor și
abia după aceea a formularelor, avându-se în vedere scopul ca baza de date să poată fi utilizată în
întregime numai prin intermediul acestora.
Etapa IV – crearea definiției tabelelor relaționale și a bazei de date de gestiune de stocuri
Pentru crearea tabelelor fizice, este folosită instrucțiunea create table. Mulțimea acestor tabele,
împreună cu considerațiile privind securitatea reprezintă fundamentul bazei de date relaționale. Pentru
crearea și utilizarea unei baze de date relaționale se folosește un limbaj de programare. Comenzile
pentru implementarea, selecția, modificarea sau ștergerea datelor, cât și acelea pentru realizarea
schimbărilor în baza de date, sunt incluse într-un singur limbaj, standardizat, de exemplu SQL.
SQL este un limbaj standard pentru bazele de date, utilizat pentru a accesa o bază de date
relațională și poate fi folosit, atunci când este necesar, de fiecare instrument de gestiune a bazelor de
date (Access, Oracle, SQL-Server, MySQL, etc.).10
10 http://www.ea.upm.ro/cip/elearning
17

furnizori
cod_furnizor
intraricod_furnizor
adres a nr telefondenum ire
cod_furnizornr_intrare
data_intrarii
m edicam entenr_intraredata_intrarii
nr_intrare
data_intrarii c od_m edicam entdenum ire, cantitate, pret_unitar, v aloare, v aloare_TV A, valoare_totala, valabilitate, pret_v anzare
c od_m edic am ent
arhiva vanzarifactura
data_facturii c od_m edicam entnum ar_v, denum ire, cantitate, pret_unitar_v, valoare_v, valoare_TV A_v, valoare_totala_v, valoare_com pensare, pret_fac turat
facturadata_fac turiii
vanzarifactura
data_facturiii
Fig.2. Diagrama entitate-relație a programului de gestiune a stocurilor unei farmacii
Capitolul III : Realizarea programului de gestiune a stocurilor unei
farmacii în Microsoft Access 2000
III.1 Prezentare Access11
Programul Microsoft Access 2000 face parte din pachetul de programe Microsoft Office 2000
și este destinat proiectării și gestiunii bazelor de date, fiind bazat pe modelul logic relațional.
Sistemul de gestiune al bazelor de date Access permite realizarea mai multor operații
specializate, cum ar fi:
−proiectarea structurii bazei de date;
−încărcarea datelor, regăsirea ulterioară, modificarea datelor, ștergerea datelor;
−generarea de rapoarte în scopul tipăririi la imprimantă a datelor introduse în baza de date;
11 Claudia Cârstea – Proiectarea bazelor de date. Mediul de programare Microsoft Access, Ed. Omnia UNI S.A.S.T.,
Brașov 2007
18

−crearea de formulare, ca modalitate de manevrare a datelor prin intermediul unei interfețe
mai prietenoase pentru operator;
−relaționarea bazelor de date și lucrul cu combinații de baze de date;
−programare pentru crearea de sisteme de gestiune de uz particularizat;
−controlul integrității și securității datelor.
Microsoft Office Access 2000 are următoarele tipuri de obiecte de bază de date:
• tabela este un obiect definit de utilizator în care sunt stocate datele primare;
• formularul este un obiect care permite introducerea datelor, afișarea acestora sau controlul
întregii aplicații;
• cererea de interogare este un obiect care permite formatarea și tipărirea informațiilor obținute
prin prelucrarea datelor din una sau mai multe tabele;
• pagina web de accesare a datelor reprezintă un obiect care include un fișier HTML și alte
fișiere suport în vederea furnizării accesului la date prin intermediul browser-elor internet;
• comanda Macro reprezintă un obiect care conține o definiție structurală a uneia sau mai
multor acțiuni pe care Access le realizează ca răspuns la un anumit evenimet;
• modulul este un obiect care conține proceduri definite de utilizator, scrise în limbajul de
programare Visual Basic.
Tipurile de date specifice programului Microsoft Access sunt următoarele12:
−Text – în celulele unui câmp de acest tip se vor putea introduce texte, deci orice
înșiruire de caractere, numărul maxim admis fiind de 255 de caractere. Lungimea implicită este de 50
de caractere.
−Memo – în celulele unui câmp de acest tip se vor putea introduce orice șir de caractere,
însă cantitatea de text este limitată la 65535 de caractere. Acest tip de date este asemănător cu cel text.
−Number – datele introduse pot fi numai valori numerice, ele fiind utilizabile în calcule
matematice. În cazul în care se dorește introducerea de valori reale care să nu fie rotunjite automat,
trebuie ales de la rubrica Field size, tabul General, varianta Double.
−Autonumber – în câmpul de acest timp se produce o completare automată cu valori
numerice incrementate cu 1. Incrementarea se produce de fiecare dată când o nouă înregistrare este
introdusă în tabel.
−Yes/No – în acest câmp pot fi introduse date care au doar două stări posibile:
adevarat/fals, da/nu, pornit/oprit, etc.
−Ole Object – prin câmpurile de acest tip se permite accesul la obiecte de diverse naturi,
ca de exemplu foi de calcul tabelar Excel, reprezentări grafice, fișiere imagine și documente Word
−Hyperlink – în câmp pot fi introduse șiruri de caractere care reprezintă adrese de pagini
web
−Lookup Wizard – în acest câmp pot fi introduse valori care sunt alese dintr-o listă
aflată în altă tabelă.
−Date/Time – în câmp nu pot fi introduse decât informații care constau în dată
calendaristică sau oră.
III.2 Crearea bazei de date de gestiune a stocurilor unei farmacii
Pentru a crea o nouă bază de date se va deschide aplicația Microsoft Access și se selectează
Balnk Access database din fereastra de start, de unde îi dăm un nume și alegem locul unde va fi stocată
așa cum se vede și în Fig. 3.
12 Claudia Cârstea – Proiectarea bazelor de date. Mediul de programare Microsoft Access, Ed. Omnia UNI S.A.S.T.,
Brașov 2007
19

Fig. 3. Fereastra File New Database – precizarea locului și numelui bazei de date
O dată creată, baza de date este pregătită pentru crearea tabelelor, iar tabul care apare implicit
primul este cel al tabelelor. Există trei posibilități pentru a crea un tabel: prin introducerea datelor,
obținându-se un tabel oarecum asemănător cu cele din Excel, prin intermediul unui Wizard, sau direct
în Design view, unde putem decide pentru fiecare câmp în parte cum se va numi și pentru ce tip de date
este definit (Fig. 4).
După ce sunt completate toate rubricile planificate, unul din câmpuri trebuie să fie marcat drept
cheie primară, care are rolul de individualiza înregistrările. Cheia primară poate fi însă formată și din
mai multe câmpuri, pentru a fi stabilită trebuind selectate toate câmpurile dorite, după care se
efectuează clic dreapta pe unul dintre ele și se selectează opțiunea primary key, sau se apasă pe butonul
de pe bara de comandă care are aceeași funcție (fig. 5).
Pentru a adăuga sau șterge înregistrări este necesară deschiderea tabelului în Design view, fie
prin clic dreapta și selectarea opțiunii, fie normal, după care se selectează Design view prin butonul de
pe bara de comandă. Pentru a adăuga un câmp în tabel, trebuie selectat câmpul care trebuie să-l urmeze
pe cel nou, apoi se selectează Insert Rows de pe bara de comandă, sau din meniul ce apare după un clic
dreapta (fig. 6).
Fig. 4. Crearea unui tabel în modul Design view
20

Fig. 5. Stabilirea cheii primare pentru Fig. 6. Introducerea unui nou rând deasupra
un anumit câmp câmpului valoare_totală
Ștergerea unui anumit câmp al unui tabel se poate face asemănător cu introducerea unui nou
rând, sau se apasă butonul delete de pe tastatură. Prin ștergerea câmpului din tabel sunt șterse și toate
datele care au fost memorate în acest câmp în tabel până în momentul ștergerii. Câmpurile cheie
primară nu pot fi șterse atâta timp cât există relații cu alte tabele prin intermediul lor. Tipul de date
care este stocat într-un anumit câmp poate fi modificat prin selectarea câmpului respectiv și selectarea
din listă a unui alt tip. Pe de altă parte, dacă deja au fot introduse date în tabel, anumite schimbări nu
vor mai putea fi făcute și în majoritatea cazurilor schimbarea tipului de date nu este indicată. De
exemplu, dacă tipul număr va fi transformat în text, atunci numerele memorate în respectivul câmp vor
fi tratate ca simple șiruri de caractere, deci nu vor mai putea fi implicate în calcule matematice.
Tot în modul Design view atributele anumitor câmpuri pot fi stabilite cu rigurozitate pentru a
proteja integritatea datelor sau pentru a face baza de date compatibilă cu scopul pentru care a fost
creată. În fig. 7 este prezentat modul în care valoarea introdusă în câmpul cantitate al tabelului
medicamente este restricționată la valori pozitive, atât pentru a se evita erorile de tastare care ar putea
duce la valori negative, cât și pentru a evita vânzarea mai multor medicamente decât se află în stoc la
un moment dat. Ca regulă de validare pentru acest câmp valorile trebuie să fie mai mari sau egale cu 0.
Fig. 7. Atributele câmpului cantitate
Pentru gestionarea unei farmacii sunt însă necesare mai multe date decât cele strict legate de
medicamentele aflate în stoc la un moment dat. Astfel, în mod asemănător cu tabelul medicamente,
sunt create tabelele furnizori, intrări, vânzări (care înregistrează numai data și numărul facturii, de
intrare, sau ieșire, precum și furnizorul, în cazul tabelului intrări) și tabelul arhivă vanzari, care
înregistrează toate tranzacțiile dintre farmacie și cumpărători (fig 8-10).
Odată ce toate tabelele necesare au fost create, trebuie stabilite relațiile dintre tabele.
Între tabele pot exista relații de unul la mai mulți, relații de unu la unu și relații de mai mulți la mai
mulți, care reprezintă de fapt două relații de unu la mai mulți conjugate, combinate prin intermediul
unul tabel secundar. Aceste relații împreună cu integritatea referențială care este asigurată de Access,
fac din întreținerea bazei de date un lucru mult mai simplu. Este suficientă modificarea datelor într-un
tabel pentru ca datele care se află în legătură cu cele modificate să se schimbe și ele, iar ștergerea unei
21

înregistrări dintr-un tabel va duce la ștergerea datelor direct legate de aceasta din tabelele care se află
în legătură cu acesta.

Fig. 8. Tabelul furnizori (Design view) Fig. 9. Tabelul intrări (Design view)
Fig. 10. Tabelul vânzări (Design view)

Fig. 11. Tabelul arhiva vanzari (Design view) Fig. 12. Relație unu la mai mulți între tabelul
furnizori și tabelul intrari
Fig. 13. Relațiile dintre tabelele bazei de date de gestiune a stocurilor
Între tabelele medicamente și arhiva vanzari integritatea referențială nu este selectată pentru ca
datele stocate cu privire la vânzări să nu fie șterse atunci când medicamentele la care fac referire sunt
scoase din stoc. Relațiile între tabele se fac selectând câmpul dintr-un tabel și executând drag-and-drop
pe câmpul pereche din celălalt tabel. Relațiile pot fi șterse prin selectarea liniilor care leagă tabelele și
apăsare pe delete și pot fi modificate prin selectarea relațiilor cu clic dreapta și intrarea în editare.
După ce au fost stabilite relațiile dintre tabele, trecem la introducerea datelor în baza de date.
Prima metodă pe care o putem folosi este introducerea directă a datelor în tabele, însă această metodă
se poate dovedi ceva mai greoaie, mai ales că în acest caz anumite facilități ale Access nu pot fi
folosite.
O soluție mult mai eficientă o reprezintă formularele. Formularele sunt soluții de introducere și
extragere a datelor pe ecran, înregistrările fiind prezentate sub formă de cartele index, câte una o dată.
22

De asemenea, formularele pot să aibă în componență sub-formulare, care să conțină informații
suplimentare referitoare la înregistrarea din formular, pot căpăta o interfață personalizată în funcție de
dorințele utilizatorului prin adăugarea de imagini și text și pot conține butoane, care să întreprindă
anumite acțiuni prestabilite, sau să ruleze un macro sau un modul de cod Visual Basic.13
Formularele pot fi create tot în două moduri, prin proiectare directă ( Design view), sau prin
intermediul unui Wizard. Formularele prezintă numeroase atribute, ceea ce face din ele cele mai
flexibile obiecte Access și pot avea numeroase destinații.
Pentru a crea un formular cu ajutorul programului Wizard, se selectează tabul Forms în
fereastra principală a bazei de date și se face dublu clic pe opțiunea create form by using wizard . În
fereastra care apare este ales din listă tabelul pe baza căruia dorim să creăm formularul și apoi trecem
din fereastra stângă în cea dreaptă câmpurile care trebuie să facă parte din formular (fig. 14).
Fig. 14. Selectarea câmpurilor care trebuie să apară în formular
În continuare alegem modul în care dorim să fie organizat formularul (după coloane, după linii,
tip foaie de calcul, sau pe rubrici) și apoi alegem stilul de grafică pe care îl preferăm, dintre cele
predefinite. În final, alegem numele formularului (implicit va fi numele tabelului pe care este bazat) și
dacă dorim să îl deschidem pentru a vizualiza și introduce date, sau pentru a-i modifica atributele.

Fig. 15. Alegerea numelui și a modului în care va fi Fig. 16. Formular creat cu ajutorul Wizard
deschis automat formularul
Pentru a crea un formular care să aibă un sub-formular în componență, la primul pas al creării
unui formular, în loc să alegem câmpuri numai dintr-un tabel, alegem câmpuri din două. La următorul
pas suntem întrebați dacă dorim să creăm un formular cu sub-formular, sau două formulare legate între
13 Claudia Cârstea – Sisteme informatice de gestiune, Ed. Omnia UNI S.A.S.T., Brașov 2007
23

ele. În cazul în care alegem prima variantă, trebuie să alegem care dintre cele două tabele va fi bază
pentru formular și care pentru sub-formular.
Următorii pași sunt aceeași cu cei necesari creării unui formular simplu, cu singura diferență că
la ultimul pas este cerut și un nume pentru sub-formularul component. Numele implicit pentru acesta
va fi dat de numele tabelului pe care se bazează urmat de cuvântul „subform”. Sub-formularele sunt
văzute în tabul Forms ca orice formular normal.
Avantajele sub-formularelor pot fi observate și din chiar exemplul formularului intrări , care
are în componență sub-formularul medicamente (fig. 18).
Fig. 17. Pregătirea unui formular pe baza tabelului intrări, care să aibă în componență
un sub-formular bazat pe tabelul medicamente
Fig. 18. Formularul intrări și sub-formularul medicamente, sub aspect de tabel
Folosind aceleași metode este creat și formularul vânzări, numai că legătura dintre acesta și
medicamente este făcută indirect, prin intermediul tabelului arhiva vanzari. Datorită acestui lucru și al
faptului că integritatea referențială nu este activată între tabelul medicamente și tabelul arhiva vanzari,
în acesta din urmă rămân nealterate toate înregistrările care sunt introduse de-a lungul timpului în
facturile de vânzare, ceea ce permite ținerea evidenței vânzărilor pe o perioadă teoretic nelimitată.
Astfel, prin intermediul a numai trei formulare, utilizatorul nu mai trebuie să deschidă direct tabele
niciodată, lucrând tot timpul cu o interfață mult mai prietenoasă și ușor de folosit.
III.3 Crearea de f iltre, interogări și rapoarte
Cea mai simplă operație de întreținere a unei baze de date este aceea de a organiza datele dintr-
un anumit câmp într-o anumită ordine, crescătoare sau descrescătoare, ordine alfabetică, etc.
24

Fig. 19. Sortarea în ordine alfabetică a denumirilor medicamentelor aflate în stoc.
După cum se observă și din fig. 19, pentru a sorta ascendent sau descendent informațiile stocate
în baza de date, unul din câmpurile după care trebuie sortată baza de date trebuie să fie selectat și apoi
în meniul records se selectează sort și tipul de sortare pe care o dorim.
Pe lângă metodele de sortare, tot în meniul records avem filtre, care pot îndeplini mai multe
acțiuni, cum ar fi obținerea unui tabel secundar care să conțină numai înregistrările care au câmpurile
identice cu câmpul selectat ( filter by selection). Putem obține un tabel secundar care să conțină numai
înregistrările care au câmpurile diferite de câmpul selectat ( filter excluding selection) , informațiile pot
fi filtrate într-un mod asemănător cu modul filter by selection, dar alegând dintr-o listă câmpul după
care se dorește făcută filtrarea sau poate fi creată o interogare de selecție ( advanced filter/sort ).
Fig. 20. Meniul filter cu metodele de filtrare predefinite
Pentru o sortare în funcție de mai multe variabile sau condiții și dacă sunt necesare operații
complexe de menținere a bazelor de date, cum ar fi ștergerea automată a unor înregistrări învechite,
sau actualizarea tuturor în funcție de necesități, precum și organizarea lor în moduri care să facă ușoară
vizualizarea lor, vom folosi interogările.
Interogările sunt de mai multe tipuri, în funcție de destinația lor și ca și formularele, sunt bazate
pe tabele, dar și pe alte interogări. Interogarea „de bază”, este interogarea de selecție, care are rolul de
a filtra datele din tabelele pe care le are la bază în funcție de criteriul ales, de a le combina, afișând în
final numai câmpurile care sunt dorite. Interogările de selecție sunt utile atunci când datele trebuie
organizate în funcție de unul sau mai mulți parametri. Parametrii sunt variabile care, trecute în tabul de
criterii țin locul acestora, utilizatorul fiind întrebat înainte de a rula interogarea care este valoarea
parametrului, pentru a selecta din tabel numai înregistrările dorite. Parametrii trebuie scriși între
paranteze pătrate, având ca denumire un alt nume decât numele câmpului pentru care servesc drept
criteriu de sortare (fig. 21).
Alt tip de interogare este interogarea de ștergere, care șterge automat toate înregistrările din
tabelele asociate ei, în cazul în care anumite criterii sunt îndeplinite. Pentru a crea o interogare de
ștergere trebuie creată mai întâi o interogare simplă, după care în meniul Query se selectează opțiunea
delete query. În acest moment anumite câmpuri ale interogării de selecție dispar și apare unul nou și
anume delete unde este specificat modul de ștergere, adică acolo unde este îndeplinită condiția, sau
începând de acolo de unde este îndeplinită condiția. La criterii este trecută condiția care trebuie
25

îndeplinită pentru ca ștergerea să aibă loc, pentru câmpul dorit. În momentul în care interogarea este
rulată, utilizatorul este atenționat că dacă va continua acțiunea, datele vor fi șterse definitiv din baza de
date. De asemenea, în fereastra de atenționare este specificat și numărul de înregistrări care urmează să
fie șterse.
O interogare care are un mecanism de funcționare asemănător cu cel al interogării de ștergere
este interogarea de actualizare sau update query. Această interogare are rolul de a modifica datele din
toate tabelele asociate, în câmpurile specificate, acestea fiind înlocuite cu datele care sunt introduse în
câmpul update to, sau rezultatul unei expresii care este introdusă în același câmp (fig. 24).
Fig. 21. Interogare de selecție care afișează numai înregistrările care au în câmpul denumire
valoarea pe care o introduce utilizatorul de la tastatură
Fig. 22. Căsuța unde este cerut parametrul
după care va fi efectuată sortarea
Fig. 23. Tabelul query, disponibil la deschiderea
unei interogări în Design view
Fig. 24. Interogare de ștergere a înregistră-
rilor din tabelul medicamente, care au
completată în câmpul cantitate valoarea 0,
ceea ce înseamnă că nu mai există
medicamente de tipul respectiv în stoc
26

Pentru a crea o interogare de actualizare se procedează ca în cazul interogării de ștergere, în
meniul Query selectându-se varianta update Query. Ca și în cazul interogării de ștergere utilizatorul
este atenționat înainte să o ruleze că datele din tabel vor fi modificate definitiv și este specificat și
numărul de înregistrări care vor fi afectate. Din valoarea care este stocată în acest câmp este scăzută
valoarea care se referă la medicamentul respectiv, din arhiva vanzari, adică din factura de ieșire.
Legătura cu aceasta este făcută prin intermediul parametrului [nr_factura], care face ca datele care vor
fi modificate să fie cele care se regăsesc și pe factura dorită, numărul acesteia fiind introdus de
utilizator precum valoarea oricărui parametru. Pentru a scrie expresia, numele tabelelor și câmpurilor
sunt trecute în paranteze drepte, ceea ce justifică faptul că un parametru, care este scris după aceeași
sintaxă, trebuie să fie denumit altfel decât numele câmpului la care face referire, în special și altfel
decât numele oricărui câmp din tabelul la care face referire, în general.
Fig. 25. Interogare de actualizare din tabelul medicamente, la nivelul câmpului cantitate
Alte trei tipuri de interogări ce pot fi utilizate sunt interogarea de adăugare ( append query),
interogarea crosstab și interogarea cu ajutorul căreia poate fi construit un nou tabel pe baza unuia sau
mai multor tabele deja existente. Interogarea de adăugare are un rol asemănător cu cea de actualizare,
numai că prin intermediul acesteia pot fi adăugate înregistrări în continuarea tabelului pe care îl
specifică utilizatorul, sau pot fi adăugate date în câmpurile dorite. Interogarea tip crosstab combină
două sau mai multe tabele pentru a obține o foaie tip tabel, unde câmpurile de intersecție dintre liniile
și coloanele specificate conțin informația dorită, sau doar sunt bifate.
Fig. 26. Căsuța care solicită introducerea numelui tabelului la care să fie adăugate date
în cazul unei interogării de adăugare ( append query)
Opțiunea totals poate fi găsită sub meniul View în timp ce interogarea se află în Design view,
ajutorul căreia avem acces la funcții uzuale, cum ar fi cele de însumare a valorilor numerice din toate
câmpurile unei înregistrări și afișarea rezultatului într-un câmp separat, găsirea automată a valorii
minime și maxime dintr-o înregistrare, afișarea primului sau ultimului câmp care îndeplinește condiția
trecută în tabul de criterii, sau numărarea elementelor specificate, care se regăsesc într-o înregistrare.
Opțiunea totals poate crea câmpuri adiționale în interogare, care să conțină valori ce sunt rezultatul
27

unor expresii. Expresiile pot fi utilizate și în cazul celorlalte tipuri de interogări (fig. 27), dar sunt utile
în cazul interogărilor care au selectată opțiunea totals.
Fig. 27. Exemplu de interogare care utilizează o expresie
Expresia DateDiff("m",[data_intrarii],Now()) are rolul de a calcula diferența dintre data
calendaristică actuală și data care corespunde intrării în stoc a medicamentului respectiv, rezultatul
fiind afișat în luni. În combinație cu condiția >[valabilitate]-1 interogarea filtrează medicamentele și
le afișează numai pe cele care mai au o lună până când expiră.
În cazul farmaciei, datele care sunt stocate în tabelele de intrări și vânzări trebuie imprimate
pentru a elibera facturi, pentru care vom folosi rapoarte, care reprezintă pagini tipizate. Rapoartele se
bazează pe unul sau mai multe tabele, dar și pe una sau mai multe interogări, astfel încât datele
imprimate să fie rezultatul unei filtrări (de exemplu, în cazul unei facturi, trebuie afișate numai datele
referitoare la acestea, pe când, dacă raportul ar fi construit pe baza tabelului, el ar conține toate datele
de pe toate facturile). De asemenea, rapoartele prezintă un număr de funcții predefinite. De exemplu,
pe un raport utilizatorul poate alege ca valorile memorate să fie însumate, sau ca valoarea maximă
dintre acestea să fie afișată, ca și în cazul funcțiilor totals din cazul interogărilor.
Pentru a crea un raport recurgem la Design view sau la programul Wizard, care va conduce, ca
și în cazul formularelor și interogărilor, prin pași simpli la raportul dorit. Primul pas presupune
alegerea tabelelor sau interogărilor pe care se bazează raportul și selectarea câmpurilor care trebuie să
apară în raport (fig. 28). Următorul pas presupune alegerea modului în care va fi organizat raportul,
funcție foarte importantă în cazul în care acesta se bazează pe mai multe tabele sau interogări. În
cadrul acestei etape se stabilește ce nivel ierarhic ocupă fiecare tabel în parte, fiind posibilă setarea a
maxim patru de nivele (fig. 29).
Fig. 28. Primul pas care
trebuie urmat pentru a
crea un raport
28

Fig. 29. Fereastra unde este stabilită ierarhia
tabelelor în formular
Microsoft Access permite și o ierarhizare mai minuțioasă, care ține de organizarea câmpurilor
în pagină și care poate duce de exemplu la crearea unui parametru, pe baza căruia va fi construit
raportul (fig. 30). Câmpul nr_intrare din tabelul intrări are prioritate și cum același câmp este prezent
și în tabelul medicamente, raportul la deschidere va cere introducerea numărului facturii de intrare pe
care utilizatorul o dorește imprimată.
Fig. 30. Pasul trei al programului
Wizard pentru crearea unui raport
În cadrul pasului următor utilizatorul decide dacă pe raport va fi prezentă de exemplu suma
tuturor prețurilor medicamentelor sau informații de altă natură care pot fi adăugate în mod automat
(fig. 31 și 32). De asemenea, în cadrul aceluiași pas, poate fi stabilit un filtru de sortare al datelor,
numărul maxim de sortări concomitente fiind de patru. Fereastra summary options, permite
utilizatorului să decidă dacă raportul său va conține și valori calculate automat de baza de date. În
cazul exemplificat, raportul va afișa suma valorilor memorate în câmpurile valoare și pret_facturat.
În continuare alegem stilul în care va fi organizat raportul din punct de vedere grafic, dacă
acesta va fi creat pe o pagină tip vedere sau tip portret și apoi numele și modul în care va fi deschis
raportul, adică pentru a previzualiza pagina înainte de imprimare, sau pentru a-i modifica setările și
elementele componente.
29

Fig. 31. Metode de sortare Fig. 32. Fereastra summary options

Fig. 33. Modul de organizare al
elementelor în pagina de tip vedere sau de tip portret

Fig. 34. Numele raportului și modul de afișare Fig. 35. Căsuța care solicită parametrul
30

III.4 Crearea unei interogări crosstab
O interogare crosstab este folosită în cazul în care vrem să reprezentăm o interogare de tip
agregat, cu două coloane de grupare, la rezultat având una dintre coloane reprezentată în stânga, iar cea
de-a doua coloană în partea de sus.
Vrem să obținem cantitățile zilnice ale unor medicamete care se comercializează în farmacie.
Trebuie să apelăm la o interogare agregat, care să calculeze cantitățile de medicamente necesare după
două câmpuri: după cantitatea vândută pentru fiecare tip de mediacament și după zile. Creăm tabela
stocuri, cu cheia primară codul medicamentului, în care sunt contorizate în mod automat la intrarea și
ieșirea din gestiune mișcările de stoc, pe zile, cantitățile intrate și ieșite din fiecare medicament,
prezentată în Fig. 36, care arată în modul Design view ca în Fig. 38.
Fig.36. Înregistrările din tabela stocuri
Cu ajutorul interogării crosstab vom obține un rezultat mai elegant și mai clar asupra mișcării
stocurilor de medicamente, datele putând fi vizualizate ca în Fig. 37.:
Fig. 37. Tabela stocuri după o interogare crosstab
31

Fig. 38. Tabela stocuri văzută în modul Design view
Observăm cum una din coloanele de grupare cantitate medicament conține tipurile de
medicamente, în timp ce cealaltă coloană zile din tabelul inițial este folosită pentru definirea
coloanelor din noua interogare. La convergența dintre cele două coloane de grupare va apare cantitatea
rămasă în stoc obținută prin scăderea cantității vândute din cantitatea aflată în stoc, pentru fiecare
medicament în parte.
Acest tip de interogări pot fi create în modul design view, dar prin intermediul Wizard le putem
crea mult mai ușor.
Pentru a folosi crosstab query wizard trebuie să intrăm în fereastra Database, în obiectul
Queries. Apăsăm click pe butonul New din fereastra Database, după care selectăm opțiunea Crosstab
Query Wizard din căsuța de dialog care va apăre, așa cum se vede și în Fig..39.
Fig.39. Crearea unei interogări crosstab folosind modul Wizard
32

Prima fereastră care va apăre, din acest tip de wizard, este Fig. 40.:
Fig.40. Fereastra Crosstab query
În acest moment, sistemul ne cere să alegem sursa interogării, adică tabelul sau interogarea de
unde vom extrage datele.
În secțiunea View putem selecta obiectele pe care vrem să le vizualizăm, fie ele tabele, fie
interogări, sau ambele tipuri de obiecte.
Dacă interogarea pe care dorim să o definim trebuie să extragă date din toate înregistrările unui
tabel , vom folosi acest tabel ca sursă, iar în cazul în care va trebui să definim o interogare normală,
pentru a combina anumite date din tabele, vom folosi această nouă interogare ca sursă pentru
interoparea crosstab.
Pasul următor ar fi să selectăm sursa dorită și să apăsăm pe butonul Next>, pentru a merge la
următoarea ferestră.
Fig. 41. Alegerea câmpurilor linie
33

În ferestra de mai sus, Fig. 41., wizard-ul ne va cere să alegem cîmpurile linie (adică
denumirile care permite identificarea valorilor pe linie). Una dintre coloanele unui tabel poate fi
folosită ca nume de linie, iar alta ca și cap de tabel. Dacă una dintre aceste două coloane conține mult
mai multe date diferite decât cea de-a doua, vom selecta prima coloană ca nume de linie, iar a doua ca
nume de coloană(cap de tabel).
Pentru a alege un nume de linie, trebuie să acționăm cu un click asupra butonului
. Astfel,
câmpul selectat se va transfera în secțiunea Selected fields. În acelaș timp apare, în partea de jos a
ferestrei, un mic model, care ne va arăta o parte din schema rezultatului interogării.
Dacă am selectat câmpul greșit, cu ajutorul butonului
putem repara această greșeală.
Putem selecta până la trei câmpuri. Dacă selectăm mai mult de un câmp, pentru a fi nume de
linie, valorile pe care le vom avea în liniile rezultat, vor apărea în funcție de combinațiile dintre acele
câmpuri.
Butonul cu două săgeți ne permite transferul tuturor câmpurilor, dintr-un singur click, dintr-o
secțiune în alta.
În cazul în care dorim să continuăm, după ce am introdus toate datele, apăsăm pe butonul
Next>. Următoarea ferestră care va apărea este arătată în Fig.42.
Fig. 42. Selecatarea câmpurilor în Crosstab query
În această nouă fereastră, wizardul ne va cere să introducem capul de tabel. În acest moment
putem alege doar un singur câmp ți pentru fiecare valoare diferită din sursă se va genera câte un cap de
tabel.
În partea de jos a ferestrei se poate vedea rezultatul. În cazul figurii de mai sus se observă că în
urma alegerii unui câmp din tabel, s-a generat automat capul de tabel.
În cazul în care selectăm, pentru cap de tabel, un câmp de tip dată-timp, acest wizard ne
permite să redefinim capurile de tabel în felul următor, după se observă și din Fig.43.
34

Fig.43. Definirea capului de tabel în cazul câmpului de tip dată
În cazul în care tipul de dată pe care îl are câmpul ales la capul de tabel este de tip dată, vrem
de cele mai multe ori să obținem niște rezultate grupate pe zile. Această facilitate ne este oferită de
vrăjitorul crosstab. Se observă apariția unor cinci coloane care descriu datele necesare interogării, așa
cum sunt ilustrate și în Fig.44. După definirile capurilor de linie și coloană trecem la pasul următor cu
ajutorul butonului Next>:
Fig. 44. Definirea afișării cantității rămase în stoc prin Crosstab query wizard
Această nouă fereastră care apare ne cere să stabilim ce rezultat se va afișa la intersecția dintre
linie și coloană.
În lista Functions vom selecta funcția de agregare pe care o vom folosi pentru a calcula valoare
pe care o vom afișa, iar în lista Field vom selecta câmpul asupra căruia vom acționa. De exemplu,
vrem să afișăm cantitătea rămasă în stoc dintr-un anumit medicament, ca în Fig. 44.
După aceasta, printr-un click pe butonul Next>,vom ajunge la ultima fereastră a acestui wizard,
, fereastră în care vom introduce numele interogării, rămasă în cazul nostru implicit Query 3, după cum
se vede și din Fig. 45.
35

Fig.45. Denumirea interogării crosstab

.
Înainte de a da un click pe butonul Finish putem alege, caz în care vom vizualiza rezultatele
interogării, ca în Fig. 46., sau putem alege Modify the design, caz în care va apăre fereastra Query
design, Fig. 47, care ne va oferi posibilitatea de a modifica definiția interogării.
Fig. 46. Vizualizarea rezultatelor interogării crosstab în cazul View the query
Fig. 47. Vizualizarea rezultatelor interogării crosstab în cazul Query design
Modul design view al acestui tip de interogare este similar modului design view aferent
interogărilor crosstab. Astfel, pentru a defini o interogare de acest tip, avem nevoie de o nouă linie
introdusă în grid: linia Crosstab.
Această nouă linie servește la definirea conceptelor pe care le-am întâlnit în cazul wizard-ului.
36

Pentru a interpreta mai ușor rezultatele vom apela la modul de afișare grafic PivotChart View
din meniul View al Microsoft Access 2000., așa cum se vede și din Fig.48.
Fig. 48. Vizualizarea rezultatelor unei interogări crosstab în modul PivotChart View
În funcție de opțiunile de afișare, putem avea o imagine de ansamblu asupra ponderii mișcării
medicamentelor din stoc, după cum se observă și din Fig. 49 și Fig. 50.
Fig. 49. Vizualizarea rezultatelor unei interogări crosstab în modul PivotChart View, folosind
diferite moduri grafice de afișare
37

Fig. 50. Vizualizarea rezultatelor unei interogări crosstab în modul PivotChart View, folosind
diferite moduri grafice de afișare
III.5 Utilizarea programului de gestiune a stocurilor unei farmacii realizat în
Microsoft Access 2000
Un program de gestiune a stocurilor are ca scop înregistrarea întregii activități a intreprinderii,
inclusiv din punct de vedere al contabilității primare de gestiune.14 Programul realizat și prezentat în
proiectul de față nu se ocupa însă și de partea financiară, care este în general gestionată de aplicații
dedicate, dar are posibilitatea de a pune la dispoziția acestora toate datele necesare pentru o bună
contabilitate. S-a avut în vedere nu numai înregistrarea „traficului” de medicamente din farmacie, ci și
fluidizarea acestuia și înregistrarea tuturor pașilor, după facturile de intrare și de ieșire.
Interogărilor utilizate de baza de date, tipul lor și funcția pe care o au sunt următoarele:
−cautare_medicament (select query): afișează toate datele referitoare la medicamentul a
cărui denumire este introdusă de la tastatură, având parametru în câmpul denumire. Se bazează pe
tabelul medicamente;
−factura intrare (select query): afișează toate datele referitoare la medicamentele aflate
pe o anumită factură de intrare, al cărei număr este introdus de la tastatură, cerut de un parametru din
câmpul nr_intrare. Se bazează pe tabelele medicamente și intrari;
−eliminare intrari goale (delete query): șterge din tabelul medicamente înregistrările care
au în câmpul cantitate valoarea zero. Se bazează pe tabelul medicamente;
14 http://www.asecib.ase.ro/Mitrut%20Dorin/Curs/bazeCO
38

−cautare vanzari (select query): afișează toate datele referitoare la medicamentele aflate
pe o anumită factură de ieșire, al cărei număr este introdus de la tastatură, cerut de un parametru din
câmpul factura. Se bazează pe tabelele arhiva vanzari și vanzari;
−intrari goale (select query): afișează toate înregistrările din tabelul medicamente, care
au în câmpul cantitate valoarea zero. Se bazează pe tabelul medicamente;
−pericol expirare (select query): afișează toate înregistrările din tabelul medicamente
care au proprietatea că se referă la medicamente care mai au o lună până când expiră. Se bazează pe
tabelul medicamente;
−pret (select query): afișează prețul de vânzare, codul și cantitatea disponibilă dintr-un
medicament a cărui denumire este introdusă de la tastatură, cerută de un parametru în câmpul
denumire. Se bazează pe tabelul medicamente;
−stergere (delete query): șterge înregistrările din tabelul medicamente care au
proprietatea că se referă la medicamente care deja au expirat. Se bazează pe tabelul medicamente;
−test_valabilitate (select query): afișează înregistrările din tabelul medicamente care au
proprietatea că fac referire la medicamente care deja au expirat. Se bazează pe tabelul medicamente.
−update (update query): scoate din stoc cantitatea de medicamente vândute scăzând din
câmpul cantitate aflat în tabelul medicamente valoarea care se află în câmpul cantitate din tabelul
arhiva vanzari. Se bazează pe tabelele arhiva vanzari și medicamente.
Rapoartele care se regăsesc în program au atât rolul de a pregăti datele pentru imprimare într-
un format adecvat, cât și rolul de a servi drept mijloace de informare pentru a calcula valorile facturilor
de intrare și de ieșire.
Rapoartele utilizate sunt:
•factura intrare: strânge datele de pe factura de intrare cu numărul specificat de la
tastatură înainte de deschidere și calculează valoarea sa totală. Se bazează pe interogarea factura
intrare;
•cautare_vanzari: strânge datele de pe factura de ieșire cu numărul specificat de la
tastatură înainte de deschidere și calculează valoarea sa totală. Se bazează pe interogarea cautare
vanzari;
•medicamente: afișează toate medicamentele care se află la momentul apelării în stoc. Se
bazează pe tabelul medicamente.
Fig. 51. Interogarea test_valabilitate în Design view.
39

Fig. 52. Tabul Reports și rapoartele utilizate de baza de date de gestiune de stocuri
Fig. 53. Capul raportului medicamente, cu rubricile organizate în funcție de data de intrare
în primul rând și de numărul facturii de intrare în al doilea rând
În momentul în care toate interogările și rapoartele au fost create, s-a trecut la creearea
formularelor. În primul rând au fost create formularele principale: furnizori, intrari (împreună cu sub-
formularul medicamente), medicamente și vanzari (împreuna cu sub-formularul arhiva vanzari.
Formularul furnizori
Formularul furnizori are rolul de a facilita înregistrarea furnizorilor cu care are contracte
farmacia și operațiile de întreținere care trebuie făcute la acest nivel.

Formularul intrari
Formularul intrari reprezintă modalitatea de a introduce medicamente în stoc, prin cumpărare.
Prin intermediul sub-formularului medicamente, medicamentelele sunt adăugate automat în stoc, iar
rubricile nr_intrare și data_intrarii nu mai necesită completare.

Formularul medicamente
Formularul medicamente este locul unde pot fi efectuate toate operațiile de întreținere a bazei
de date în ceea ce privește stocul de medicamente. O parte din facilitățile acestui formular presupun
operații de ștergere, ceea ce înseamnă că lucrul cu el necesită un spor de atenție.
Este posibil ca intrările care fac referire la medicamente care nu mai există în stoc să fie
necesare mai târziu, deci intrările goale nu ar trebui șterse imediat ce un medicament a fost epuizat din
40

stoc. Pe de altă parte, după o anumită perioadă de timp (o dată pe zi, o dată pe săptămână, sau chiar
mai rar în funție de spațiul de memorare de pe hard disk) acestea trebuie șterse pentru a nu îngreuna
funcționarea bazei de date în mod inutil.

Formularul vanzari
Formularul vanzari reprezintă modalitatea de a scoate medicamentele din stoc, prin vânzare.
Prin intermediul sub-formularului medicamente, medicamentele vândute sunt adăugate automat în
tabelul arhiva vanzari, iar rubricile nr_intrare și data_intrarii nu mai necesită completare.
Medicamentele nu sunt scoase direct din stoc, ci prin intermediul tabelului arhiva vanzari.
La scoaterea medicamentelor din stoc utilizatorul trebuie să fie foarte atent ca datele din factură
să fie corecte. În cazul în care se încearcă scoaterea din stoc a mai multor medicamente decât există,
atunci procedura de scoatere va fi întreruptă. De asemenea, scoaterea medicamentelor din stoc trebuie
efectuată o singură dată pentru fiecare factură în parte.
Prin intermediul sub-formularului medicamente, medicamentele sunt introduse automat în stoc,
timp în care sunt introduse și în formularul intrari, ceea ce duce la îndeplinirea a două funcții în același
timp: completarea stocului și organizarea medicamentelor în funcție de numărul de intrare și dată la
care acestea sunt cumpărate de la furnizori. De asemenea, numărul de intrare și data sunt completate
automat, utilizatorul nefiind obligat să le introducă de fiecare dată când adaugă un nou medicament pe
factură.
Interogarea crosstab are rolul de a putea urmări mai ușor mișcările de stocuri pentru fiecare
medicament în parte și se va folosi în momentul în care se dorește emiterea unei comenzi către un
furnizor de medicamente. Se lansează din Queries, prin deschiderea interogării Query 3 .
41

Concluzii
Din cele prezentate mai sus rezultă că proiectul a realizat o prezentare teoretică și ilustrează o
modalitatea practică de creare pe fundamente știițifice contabile a unei baze de date simplă, care să beneficieze
de filtre și funcțiile contabile în desfășurarea unei activități curente de gestiune reală a stocurilor unei farmacii.
Prin intermediul unui Macro pot fi executate acțiuni complexe, cum ar fi deschiderea unui formular, deschiderea
unei interogări, salvarea datelor din interogare, închiderea acesteia și închiderea formularului, toate prin
apăsarea unui singur buton sau prin selectarea unui anumit câmp. De asemenea, din cele prezentate mai sus
rezultă că programul de gestiune a stocurilor unei farmacii respectă cerințele de proiectare prezentate în
capitolul dedicat proiectării bazei de date.
Utilizarea programului de gestiune a stocurilor unei farmacii are în concluzie următoarele avantaje față
de gestiunea neținută pe un supor informatic, avantaje care sunt de fapt funcții ale sistemului informatic,
materializate prin următoarele facilități:
•Facilități ale formularului furnizori :
– adăugarea unei noi înregistrări sau unui nou furnizor;
– căutarea unui furnizor pe bază de parametri multipli;
– ștergerea înregistrării care este selectată.
•Facilități ale formularului intrari :
– calcularea automată a valorilor din câmpurile valoare, valoare_TVA și valoare_totală;
– pregătirea facturii de intrare pentru tipărire, atunci când este deschis raportul factura intrare1;
– tipărirea raportului pregătit;
– adăugarea unei noi înregistrări:
– un link către tabelul medicamente pentru a avea acces direct la facilitățile de acolo;
– posibilitatea de a salva factura de intrare în format extern, astfel încât să existe copii de siguranță.
•Facilități ale formularului medicamente :
– afișarea tuturor medicamentelor care se găsesc în stoc, prin utilizarea raportului medicamente;
– afișarea tuturor medicamentelor din stoc care au denumirea introdusă de utilizator de la tastatură, caz în care se
folosește interogarea cautare medicament;
– căutarea unui anumit medicament în funcție de mai mulți parametri
– găsirea medicamentelor care au expirat, prin folosirea interogării test_valabilitate
– găsirea medicamentelor care mai au o lună până când expiră, utilizând interogarea pericol_expirare
– eliminarea din baza de date a intrărilor care fac referire la medicamente care nu mai există în stoc, rulând
interogarea eliminare intrari goale
– eliminarea din baza de date a intrărilor care fac referire la medicamente care nu mai sunt valabile, folosind
interogarea stergere
– afișarea înregistrărilor din baza de date care fac referire la medicamente care nu mai există în stoc, utilizând
interogarea intrari goale
– posibilitatea de a schimba prețul de vânzare al unui medicament în funcție de fluctuațiile pieței.
•Facilități ale formularului vanzari :
– calcularea automată a valorilor din câmpurile valoare_v, valoare_TVA_v, valoare_totala_v, pret_facturat ;
– afișarea datelor necesare în vederea vânzării despre medicamentele solicitate, atunci când se folosește
interogarea pret;
– pregătirea facturii de ieșire pentru tipărire, prin deschiderea raportului cautare_vanzari;
– afișarea tuturor intrărilor care au în câmpul denumire valoarea introdusă de la tastatură, atunci când este
folosită interogarea cautare_medicament ;
– existența unui link către formularul medicamente, pentru a avea acces direct la anumite funcții de întreținere
(de exemplu verificarea stării de valabilitate a unui medicament);
-adăugarea unei noi înregistrări.
Prin utilizarea interogării crosstab și interpretarea rezultatelor furnizate de ea, fie sub exprimare
valorică cât fie sub exprimare grafică, se poate estima necesarul de stoc pentru fiecare medicament în parte,
astfel încât farmacia să-și poată deservi clienții fără riscul unei supradimensionări a stocurilor ,care ar însemna
un efort financiar mai mare dar și creșterea riscului de a depăși termenele de valabilitate a medicamentelor
nevândute.
42

BIBLIOGRAFIE
1.Claudia Cârstea – Sisteme informatice de gestiune, Ed. Omnia UNI S.A.S.T., Brașov 2007
2.Claudia Cârstea – Proiectarea bazelor de date. Mediul de programare Microsoft Access,
Ed. Omnia UNI S.A.S.T., Brașov 2007
3.Pleșea Doru – Bazele contabilității, vol. II, Ed. Omnia Uni SAST, Brașov, 2005
4. Petre Brezeanu – Gestiunea financiară a intreprinderii, Ed. Cavallioti, 2002
5. Gheorghe Basanu – Managementul aprovizionării și desfaceri, Ed. Economica, 1996
Mihai Pricop
6.Radu Emilian – Managementul operațiunilor în intreprinderile de servicii
Gabriela Tigu
7.Eugen Țigănescu – Bazele cercetării operaționale
Dorin Mitruț
8.www.trendix.ro
9.http://www.market-mentor.ro
10.http://www.biblioteca.ase.ro/eresurse/reviste/ contabilitate
11.http://www.asecib.ase.ro/MitruDorin/Curs/bazeCO
12.http://www.ea.upm.ro/cip/elearningi
43

i Există posibilitatea ca site-urile indicate în bibliografie să se regăsească într-o formă diferită de cea existentă la data
când s-a realizat prezentul proiect

Similar Posts