Sunteți pe pagina 1din 50

2.

Formulare
2.1. Controale uzuale folosite n construirea formularelor
n acest capitol vom exemplifica modalitile n care controalele uzuale pot fi
utilizate pentru crearea formularelor Microsoft Access:
1. Label i Text Box
2. Command Button
3. Option Group
4. Check Box
5. Spin Button
6. Combo Box
7. List Box

2.1.1. Label i Text Box
Formularea problemei
S se proiecteze un formular care calculeaz preul de vnzare al unui produs prin
aplicarea unui adaos comercial de 10% la preul acestuia de achiziie. Valoarea de
achiziie se introduce n cadrul formularului. Atunci cnd se face click n cmpul destinat
preului de vnzare, valoarea acestuia se calculeaz n mod automat, ca n imaginea de
mai jos.



Rezolvare
Prin Label nelegem o caset ce afieaz date de tip text folosite n general pentru
descrieri. Spre deosebire de Label, Text Box-ul permite pe lng afiarea datelor i
introducerea, editarea acestora.

Paii ce trebuie urmai pentru rezolvarea problemei sunt urmtorii:
1. Se creeaz un nou formular folosind opiunea Create Form in Design View din
Database Window. n mod echivalent se poate folosi opiunea Form a meniului Insert
dup care se selecteaz Design View.




2. Pentru a modifica caracteristicile ferestrei n care va fi afiat formularul, va trebui s
accesm proprietile acesteia executnd click dreapta n zona n care se intersecteaz
ruler-ul vertical cu cel orizontal i alegnd din meniul contextual opiunea Properties.
La acelai efect se ajunge i dac se realizeaz dublu click direct n zona respectiv.



3. Proprietile pe care va trebui s le modificm pentru ca fereastra s arate ca cea
prezentat n enunul problemei sunt:
a. Caption semnific textul ce se va afia n bara ferestrei. Se va introduce
Calcul Pret Vanzare
b. Record Selectors se va seta pe No pentru a inhiba afiarea n partea stng a
ferestrei a unei zone ce permite selectarea nregistrrii curente
c. Navigation Buttons se va pune pe No pentru a preveni afiarea numrului
nregistrrii curente alturi de butoanele de navigare (salt la prima nregistrare,
la precedenta, la urmtoarea sau la ultima)
d. Dividing Lines se va seta pe No pentru a nu se trasa linia orizontal ce
desparte cele dou zone prezentate anterior



4. Daca fereastra ce conine controalele pe care le putem include n cadrul formularului
nu este activ, atunci va trebui s acionm butonul Toolbox (

) din bara de
instrumente sau s accesm opiunea respectiv din meniul View. Controalele pe care
le vom utiliza vor fi Text Box i Label, simbolizate n fereastra cu instrumente prin
i .
5. Se adaug primul Text Box destinat introducerii preului de achiziie prin apsarea
butonului corespunztor din bara cu instrumente ( ) urmat de executarea unui
click n interiorul formularului. O alt variant pe care o avem la dispoziie o
reprezint glisarea mouse-ului n interior formularului dup apsarea butonului Text
Box. Dimensiunea obiectului i poziia acestuia n cadrul ferestrei pot fi schimbate cu
ajutorul mouse-ului. Pentru descrierea coninutului Text Box-ului, n partea stng a
acestuia este adugat n mod automat i un obiect de tip Label. Cele dou controale
pot fi mutate concomitent sau se poate opta pentru deplasarea individual a acestora
prin folosirea elementului aflat n dreptul colului stnga sus.



Textul explicativ Pre achizitie se va introduce n cadrul Label-ului aflat n stnga
Text Box-ului prin selectarea obiectului, apsarea butonului stng al mouse-ului i
adugarea textului dorit. .



O alt modalitate ar fi accesarea proprietii Caption i modificarea valorii din dreptul
acesteia.
De asemenea, n partea dreapt se va aduga un nou Label ce va conine textul lei
semnificnd moneda n care este exprimat preul de achiziie. Mai nti se va apsa
butonul corespunztor din fereastra cu instrumente ( ) dup care se va executa click
n interiorul formularului, se va introduce textul dorit i se va poziiona corect
obiectul la dreapta Text Box-ului ce conine preul de achiziie.



Pentru a accesa proprietile Text Box-ului va trebui s executm click dreapta pe
controlul respectiv i s alegem din meniul contextual opiunea Properties. Obiectul
va fi denumit PretA (proprietatea Name).




n plus, coninutul Text Box-ului va fi aliniat la dreapta (proprietatea Text Align).



Valorile valide pentru controlul nostru sunt doar cele numerice. Putem specifica acest
lucru prin setarea proprietii Format la valoarea Standard. Valorile acceptate vor fi
doar cele numerice i n plus acestea vor fi automat formatate cu dou zecimale i
simbol despritor pentru mii.



6. Urmtorul pas l reprezint adugarea celor trei Label-uri destinate adaosului
comercial n care vom avea textele Adaos, 10 i %. Modalitatea de adugare este
asemntoare cu cea descris la pasul anterior.



Valoarea adaosului comercial va trebui s fie aliniat la dreapta. Pentru aceasta este
nevoie s accesm proprietile obiectului executnd click dreapta pe controlul n
cauz i s alegem din meniul contextual opiunea Properties. Proprietatea Text Align
va fi setat pe Right, ca n figura urmtoare.



7. n continuare se vor aduga obiectele corespunztoare preului de vnzare prin
repetarea operaiunilor descrise la punctul 5. Numele noului control de tip Text Box
va fi PretV.




8. Pentru a vedea cum arat formularul proiectat, este nevoie s comutm n modul de
vizualizare Form View. Aceast comutare se poate face apsnd butonul din bara
de instrumente sau accesnd opiunea Form View din meniul View sau din cel
contextual (click dreapta).



9. n continuare va trebui s adugm codul prin care se va calcula preul de vnzare al
produsului atunci cnd utilizatorul execut click n caseta corespunztoare. Preul de
vnzare se obine prin adugarea unui adaos comercial de 10% la preul de achiziie.
Pentru nceput va trebui s revenim n modul Design View prin apsarea butonului
din bara de instrumente sau prin selectarea opiunii respective din meniul View
sau din meniul contextual. Apoi vom accesa proprietile Text Box-ului care va
conine preul de vnzare executnd click dreapta pe acesta i alegnd opiunea
Properties din meniul contextual. Ne deplasm n seciunea Event i ne poziionm pe
evenimentul On Click care se declaneaz atunci cnd utilizatorul efectueaz un click
de mouse n caseta respectiv. Alegem din lista elementul numit [Event Procedure] i
apsm pe butonul din dreapta ( ).



n fereastra care apare va trebui s introducem codul urmtor:
Pr i vat e Sub Pr et V_Cl i ck( )
Pr et A. Set Focus
pr et _achi zi t i e = CDbl ( Pr et A. Text )
adaos = pr et _achi zi t i e * 10 / 100
pr et _vanzar e = pr et _achi zi t i e + adaos
Pr et V. Set Focus
Pr et V. Text = pr et _vanzar e
End Sub
Codul anterior preia din formular preul de vnzare introdus de ctre utilizator, l
convertete din text n valoare numeric i calculeaz adaosul comercial ce trebuie
aplicat dup care formeaz preul final de vnzare prin nsumarea preului de achiziie
i a valorii adaosului.
nchidem fereastra n care am introdus codul, comutm n modul Form View,
introducem 3 000 000 n caseta corespunztoare preului de achiziie dup care
efectum un click de mouse n dreptul preului de vnzare. n acest moment valoarea
acestuia se va calcula n mod automat i va fi afiat n cadrul formularului, ca n
figura urmtoare.



10. Pentru a putea utiliza ulterior formularul astfel creat este nevoie s efectum salvarea
acestuia prin accesarea opiunii Save/Save As a meniului File sau prin apsarea
butonului din bara de instrumente. Dup ce am salvat formularul acesta va aprea
n fereastra bazei de date la categoria Forms.



2.1.2. Command Button
Formularea problemei
S se modifice formularul proiectat la exemplu anterior astfel nct valoarea
adaosului comercial perceput s se calculeze i s se afieze prin apsarea unui buton.



Rezolvare
Prin Command Button nelegem un buton prin a crui apsare vom genera un
eveniment la care putem asocia o serie de prelucrri.

Paii ce trebuie urmai pentru rezolvarea problemei sunt urmtorii:
1. n fereastra bazei de date se execut click dreapta pe formularul creat anterior i se
alege opiunea Save As. n fereastra care se deschide introducem un nume pentru
formular, Valoare Adaos, dup care apsm butonul OK.



Noul formular va aprea n fereastra bazei de date la categoria Forms, alturi de
formularul original din care a fost obinut.



2. Se intr n modul Design View i se deplaseaz mai jos Text Box-ul corespunztor
preului de vnzare mpreuna cu Label-ul ce conine moneda n care este exprimat
valoarea din caset.



3. Imediat dup linia ce conine procentul adaosului comercial vom aduga un buton
(Command Button) prin selectarea opiunii respective din fereastra cu instrumente
( ) i efectuarea unui click sau glisarea mouse-ului n interiorul formularului. Va
aprea o fereastr numit Command Button Wizard. Aceast fereastr ne permite s
asiciem o serie de aciuni standard evenimentului generat la apsarea butonului
respectiv, cum ar fi navigarea ctre o alt nregistrare, actualizarea nregistrrii
curente, operaii la nivel de formular i raport, etc. Pentru a atinge funcionalitatea
cerut de ctre enunul problemei vom apsa butonul Cancel i vom dechide fereastra
ce conine proprietile butonului executnd click dreapta pe acesta i alegnd
opiunea Properties din meniul contextual. O alt variant ar fi selectarea butonului
urmat de apsarea elementului din bara de instrumente sau de alegerea opiunii
Properties a meniului View. Proprietile pe care le vom modifica sunt:
Caption reprezint textul ce apare afiat pe buton i vom introduce cuvntul
Valoare adaos.
Name semnific numele controlului, CmdVal. Acest nume l vom folosi
atunci cnd vom asocia cod evenimentului ce se declaneaz la apsarea
butonului.



4. n dreapta butonului vom aduga un Text Box n care se va afia valoarea adaosului
comercial calculat n funcie de preul de achiziie al produsului. Label-ul din faa
Text Box-ului va fi ters iar n dreapta vom aduga un nou Label n care vom trece
moneda n care este exprimat valoarea adaosului.



5. Proprietile Text Box-ului vor fi modificate astfel nct numele acestuia s fie ValAd
(proprietatea Name), coninutul s fie de tip numeric (proprietatea Format avnd
valoarea Standard) i aliniat la dreapta (proprietatea Text Align).
6. Revenim la butonul adugat i n fereastra ce conine proprietile acestuia ne
deplasm n seciunea Event i ne poziionm pe evenimentul On Click care se
declaneaz atunci cnd utilizatorul efectueaz un click de mouse. Alegem din lista
elementul numit [Event Procedure] i apsm pe butonul din dreapta ( ).



n fereastra care apare vom introduce codul urmtor:
Pr i vat e Sub CmdVal _Cl i ck( )
Pr et A. Set Focus
pr et _achi zi t i e = CDbl ( Pr et A. Text )
adaos = pr et _achi zi t i e * 10 / 100
Val Ad. Set Focus
Val Ad. Text = adaos
End Sub

Codul prezentat se execut la apsarea butonului i calculeaz valoarea adaosului
comercial pe care o afieaz n Text Box-ul corespunztor.
nchidem fereastra n care am introdus codul anterior, moment la care vom reveni la
Design View.
7. Comutm n modul Form View, introducem 4 000 000 n cmpul corespunztor
preului de achiziie, dm click n caseta n care se va afia preul de vnzare iar apoi
vom apsa butonul nou adugat care va calcula i afia valoarea adaosului comercial.



8. Pentru a putea utiliza i ulterior formularul astfel creat este nevoie s efectum
salvarea acestuia prin accesarea opiunii Save/Save As din meniul File sau prin
apsarea butonului din bara de instrumente.


2.1.3. Option Group
Formularea problemei
S se proiecteze un formular care calculeaz valoarea TVA-ului pentru un produs
pe baza preului acestuia i a cotei procentuale de TVA ce se aplic.
Cotele de TVA n vigoare sunt:
Cota de 0% pentru produsele ce sunt scutite de TVA
Cota de 9% - reprezint cota redus de TVA
Cota de 19% - este cota standard ce se aplic la marea majoritate a produselor

Rezolvare
Un Option Group creeaz o caset n care se pot plasa butoane de opiune (option
buttons), butoane comutatoare (toggle buttons) sau casete de validare (check boxes).
Dintre toate elementele coninute doar unul singur poate fi activ la un moment dat.

Etapele ce trebuie urmate pentru rezolvarea problemei sunt urmtoarele:
1. Se creeaz un nou formular folosind opiunea Create Form in Design View din
Database Window. n mod echivalent se poate folosi opiunea Form a meniului Insert
dup care se selecteaz Design View.
2. Se modific urmtoarele proprieti ale formularului:
1. Caption semnific textul ce se va afia n bara ferestrei. Se va
introduce textul Calcul Pret Vanzare
2. Record Selectors se va seta pe No pentru a inhiba afiarea n partea
stng a ferestrei a zonei ce permite selectarea nregistrrii curente
3. Navigation Buttons se va pune pe No pentru a preveni afiarea
numrului nregistrrii curente alturi de butoanele de navigare (salt la
prima nregistrare, la precedenta, la urmtoarea sau la ultima)
4. Dividing Lines se va seta pe No pentru a nu se trasa linia orizontal ce
desparte cele dou zone prezentate anterior

3. Daca fereastra ce conine controalele pe care le putem include n cadrul formularului
nu este activ, atunci va trebui s acionm butonul Toolbox (

) din bara de
instrumente sau s accesm opiunea respectiv din meniul View. Controlul Option
Group este simbolizat n fereastra cu instrumente prin .
4. n cadrul formularului se adaug Text Box-ul corespunztor preului produsului iar n
dreapta acestuia se va insera un Label care va conine descrierea monedei n care este
exprimat valoarea.



Proprietile Text Box-ului vor fi modificate dup cum urmeaz:
Name numele obiectului va fi Pret
Format se va seta pe Standard iar caseta va accepta numai valori numerice
Text Align textul va fi aliniat la dreapta (Right)
5. Se adaug controlul de tip Option Button selectnd butonul din fereastra cu
instrumente dup care se execut click sau se gliseaz mouse-ul n cadrul
formularului. Se va deschide o nou fereastr numit Option Group Wizard care ne va
ajuta, ntr-un numr de pai, s definim coninutul grupului de tip opiune. Fereastra
are n partea inferioar un numr de patru butoane cu urmtoarea semnificaie:
Cancel - se renun la includerea obiectului n formular
Back revenirea la pasul anterior
Next trecerea la pasul urmtor
Finish ncheierea wizard-ului i includerea n formular a noului grup de
opiuni

Paii pe care va trebui s-i parcurgem sunt descrii n continuare:
a) Definim cele trei opiuni care n cazul nostru reprezint cotele de TVA ce pot
fi aplicate unui produs: 0%, 9%, 19% dup care vom aciona butonul Next.



b) La pasul urmtor vom decide dac dorim ca una dintre opiuni s fie iniial
activ iar n caz afirmativ avem posibilitatea de a alege opiunea dorit.
Datorit faptului c la majoritatea produselor se aplic o cot de 19%, vom
opta ca aceast variant s fie cea activ iniial.



c) Dup apsarea butonului Next vom avea posibilitatea de a seta valoarea ce va
fi asociat fiecrei opiuni n parte.



d) n continuare urmeaz s specificm tipul controlului ce va fi folosit pentru
opiunile definite: Option Button, Toggle Button sau Check Box. Vom alege
varianta Option Buttons iar din partea inferioar a ferestrei ne vom alege stilul
dorit dintre cele care ne sunt puse la dispoziie.



e) La ultimul pas suntem invitai s specificm descrierea sub care sunt reunite
opiunile noastre.



f) Prin apsarea butonului Finish obiectul de tip Option Group va fi inclus n
cadrul formularului. Prin intermediul ferestrei de proprieti vom numi acest
obiect OptGrp. Dup poziionarea corect i redimensionarea acestuia,
formularul ar trebui s arate ca cel din figura urmtoare.



6. Adugm butonul cu ajutorul cruia vom calcula valoarea TVA-ului pentru produsul
introdus. Acest lucru se realizeaz prin selectarea opiunii respective din fereastra cu
instrumente ( ) i efectuarea unui click sau glisarea mouse-ului n interiorul
formularului. Va aprea o fereastr numit Command Button Wizard n care vom
apsa butonul Cancel. Deschidem fereastra ce conine proprietile butonului
executnd click dreapta pe acesta i alegnd opiunea Properties din meniul
contextual. O alt variant ar fi selectarea butonului urmat de apsarea elementului
aflat n bara de instrumente. n mod echivalent putem opta pentru alegerea
opiunii Properties a meniului View. Proprietile pe care le vom modifica sunt
descrise n continuare:
Caption reprezint textul ce apare afiat pe buton i vom introduce Valoare
TVA.
Name semnific numele controlului, CmdTVA. Acest nume l vom folosi
atunci cnd vom asocia cod evenimentului ce se declaneaz la apsarea
butonului.



7. n dreptul butonului vom aduga un Text Box n care se va afia valoarea TVA-ului.
Aceast valoare se va calcula n funcie de preul produsului i de cota selectat.
Label-ul din faa Text Box-ului va fi ters iar n dreapta vom aduga un nou Label n
care vom trece moneda n care este exprimat TVA-ul.
Proprietile Text Box-ului vor fi modificate astfel nct numele acestuia s fie
ValTVA (proprietatea Name), coninutul s fie de tip numeric (proprietatea Format
avnd valoarea Standard) i aliniat la dreapta (proprietatea Text Align).




8. Deschidem fereastra cu proprietile butonului adugat i ne poziionm pe
evenimentul On Click din seciunea Event. Evenimentul se declaneaz ori de cte ori
utilizatorul apas pe buton. Alegem din list elementul numit [Event Procedure] i
apsm pe butonul din dreapta ( ).



Formularul va trebui s calculeze valoarea TVA-ului i s o afieze n cadrul Text
Box-ului corespunztor. Acest lucru va fi realizat de ctre codul ce urmeaz i care va
trebui introdus n fereastra ce se deschide.

Pr i vat e Sub CmdTVA_Cl i ck( )
Pr et . Set Focus
pr et _pr odus = CDbl ( Pr et . Text )
val oar e_t va = pr et _pr odus * Opt Gr p. Val ue / 100
Val TVA. Set Focus
Val TVA. Text = val oar e_t va
End Sub

nchidem fereastra n care am introdus codul anterior, moment la care vom reveni la
Design View.
9. Comutm n modul Form View, introducem 9 000 000 n cmpul corespunztor
preului, alegem cota de 9% ca fiind cea care se aplic pentru produsul nostru i
apsm pe butonul Valoare TVA, moment la care valoarea TVA-ului se va calcula i
afia n cmpul din dreapta butonului.



10. Pentru a putea utiliza i ulterior formularul astfel creat este nevoie s efectum
salvarea acestuia prin utilizarea opiunii Save/Save As din meniul File sau prin
apsarea butonului din bara de instrumente.

Observaii
a. Dac la etapa 5, pasul d), am fi ales Check Boxes n loc de Option Buttons, atunci
formularul ar fi artat ca n figura urmtoare.



b. Dac la etapa 5, pasul d), am fi ales Toggle Buttons, formularul pe care l-am fi
obinut ar fi fost asemntor celui din figura urmtoare.

.

2.1.4. Check Box
Formularea problemei
S se realizeze un formular electronic care calculeaz suma ce trebuie pltit de
ctre un turist pentru o zi de cazare la hotel. Aceast suma se va obine pe baza preului
camerei i a numrului de mese solicitate, tiind c micul dejun cost 100 000 lei, prnzul
300 000 lei iar cina 200 000 lei.



Rezolvare
Check Box-ul reprezint o caset de validare care comut ntre strile on i off.

Paii ce trebuie urmai pentru rezolvarea problemei sunt urmtorii:
1. Se creeaz un nou formular folosind opiunea Create Form in Design View din
Database Window. n mod echivalent se poate folosi opiunea Form a meniului Insert
dup care se selecteaz Design View.
2. Se modific proprietile formularului astfel:
a. Caption semnific textul ce se va afia n bara ferestrei. Se va introduce
valoarea Calcul Pret Cazare
b. Record Selectors se va seta pe No pentru a inhiba afiarea n partea stng a
ferestrei a unei zone ce permite selectarea nregistrrii curente
c. Navigation Buttons se va pune pe No pentru a preveni afiarea numrului
nregistrrii curente alturi de butoanele de navigare (salt la prima nregistrare,
la precedenta, la urmtoarea sau la ultima)
d. Dividing Lines se va seta pe No pentru a nu se trasa linia orizontal ce
desparte cele dou zone prezentate anterior
3. Daca fereastra ce conine controalele pe care le putem include n cadrul formularului
nu este activ, atunci va trebui s acionm butonul Toolbox (

) din bara de
instrumente sau s accesm opiunea respectiv din meniul View. Controlul Check
Box este simbolizat n fereastra cu instrumente prin .
4. Se adaug Text Box-ul corespunztor preului camerei iar n dreapta acestuia se va
insera un Label care va descrie moneda n care este exprimat valoarea.
Proprietile Text Box-ului vor fi modificate dup cum urmeaz:
Name numele obiectului va fi PretC
Format se va seta pe Standard (caseta va accepta numai valori numerice)
Text Align textul va fi aliniat la dreapta (Right)



5. Adugm un Label n care vom trece descrierea serviciului (Mas), dup care vom
insera trei Check Box-uri, cte unul pentru fiecare variant pe care o avem la
dispoziie. n Label-ul din dreptul fiecrei casete de validare vom trece numele
variantei respective. n plus, vom schimba, folosind fereastra de proprieti, numele
celor trei Check Box-uri dup cum urmeaz: MicD, Pranz, Cina. Pentru a avea acces
la proprietile unuia dintre cele trei casete de validare va trebui s efectum click
dreapta pe obiectul respectiv i s alegem din meniul contextual opiunea Properties.
O alt variant pe care o avem la dispoziie ar fi reprezentat de selectarea butonului
folosind butonul stng al mouse-ului dup care se apas butonul din bara de
instrumente sau se acceseaz opiunea corespunztoare din meniul View.



6. Urmtorul element pe care l vom aduga va fi butonul cu ajutorul cruia vom calcula
suma final ce trebuie pltit pentru o zi de cazare. Inserarea butonului se realizeaz
prin selectarea opiunii respective din fereastra cu instrumente ( ) i efectuarea unui
click sau glisarea mouse-ului n interiorul formularului. Va aprea o fereastr numit
Command Button Wizard n care vom apsa butonul Cancel. Modificm proprietile
butonului dup cum urmeaz:
Caption reprezint textul ce apare afiat pe buton; introducem Valoare.
Name semnific numele controlului, CmdVal. Acest nume l vom folosi
atunci cnd vom asocia cod evenimentului ce se declaneaz la apsarea
butonului.



7. La dreapta butonului vom aduga un nou Text Box pe care l vom folosi pentru
afiarea valorii totale a unei zile de cazare. De asemenea vom aduga i un Label care
conine descrierea monedei n care este exprimat valoarea. Proprietile Text Box-
ului vor fi modificate astfel nct numele acestuia s fie ValTot (proprietatea Name),
coninutul s fie de tip numeric (proprietatea Format setat pe valoarea Standard) i
aliniat la dreapta (proprietatea Text Align).



8. Pentru a aduga codul Visual Basic necesar pentru a calcula valoarea total a unei zile
de cazare este necesar s deschidem fereastra cu proprietile butonului. Ne
poziionm pe evenimentul On Click din seciunea Events, alegem din list elementul
numit [Event Procedure] i apsm pe butonul din dreapta ( ).



9. n fereastra ce se va deschide introducem codul urmtor care va avea ca efect
obinerea sumei totale de plat pentru ziua de cazare prin nsumarea preului camerei
i a tarifului perceput pentru mesele solicitate.

Pr i vat e Sub CmdVal _Cl i ck( )
Pr et C. Set Focus
pr et _camer a = CDbl ( Pr et C. Text )

pr et _mi cdej un = 0
I f Mi cD. Val ue Then
pr et _mi cdej un = 100000
End I f

pr et _pr anz = 0
I f Pr anz. Val ue Then
pr et _pr anz = 300000
End I f

pr et _ci na = 0
I f Ci na. Val ue Then
pr et _ci na = 200000
End I f

pr et _t ot al = pr et _camer a + _
pr et _mi cdej un + _
pr et _pr anz + _
pr et _ci na
Val Tot . Set Focus
Val Tot . Text = pr et _t ot al
End Sub

nchidem fereastra n care am introdus codul i revenim la Design View.
10. Comutm n modul Form View, introducem 2 000 000 n cmpul corespunztor
preului de cazare, alegem s servim masa de prnz i cina dup care apsm pe
butonul Valoare, moment la care suma total de plat pentru o zi de cazare se va
calcula i afia n cmpul din dreapta butonului.



11. Pentru a putea utiliza formularul i ulterior, este nevoie s realizm salvarea acestuia
prin utilizarea opiunii Save/Save As din meniul File sau prin apsarea butonului
din bara de instrumente.


2.1.5. Spin Button
Formularea problemei
S se modifice formularul anterior astfel nct s calculeze i valoarea unui sejur
pe baza numrului zilelor de cazare.



Rezolvare
Pentru a specifica numrul de zile din care este compus sejurul vom utiliza un
control numit SpinButton format din dou sgei dispuse una deasupra celeilalte cu
ajutorul crora vom incrementa respectiv decrementa cu o unitate durata dorit a
sejurului.

Pentru rezolvarea acestei probleme vor trebui parcuri paii de la exemplul anterior dup
care:
1. Se adaug un Label n care se introduce textul Numar de zile. n dreapta acestui
obiect se va insera un nou control de tip Label pe care l vom numi NrZile i care va
avea ca text asociat valoarea 0. Proprietatea Special Effect va fi setat pe valoarea
Sunken pentru a obine efectul din figura urmtoare.



2. n dreapta acestui ultim control de tip Label vom aduga un obiect de tip SpinButton
prin apsarea butonului More Controls din fereastra cu instrumente ( ) iar din lista
care apare vom selecta opiunea numit Microsoft Forms SpinButton. Acest nou
control va fi denumit SpinBtn (proprietatea Name).



Cu ajutorul proprietilor Min, Max, Value i Small Change putem specifica plaja de
valori pe care s o acopere controlul nostru, valoarea curent de la care s plece i
pasul cu care s se modifice valoarea curent la apsarea uneia dintre cele dou
sgei.




3. Pasul urmtor l reprezint adugarea unui nou buton pe care l vom folosi pentru a
obine valoarea total a sejurului pe baza preului unei zile de cazare i a numrului
de zile. Inserarea butonului se realizeaz prin selectarea opiunii respective din
fereastra cu instrumente ( ) i efectuarea unui click sau glisarea mouse-ului n
interiorul formularului. Va aprea o fereastr numit Command Button Wizard n care
vom apsa butonul Cancel. Modificm proprietile butonului dup cum urmeaz:
Caption reprezint textul ce apare afiat pe buton; vom introduce Valoare
sejur.
Name semnific numele controlului, CmdSejur. Acest nume l vom folosi
atunci cnd vom asocia cod evenimentului ce se declaneaz la apsarea
butonului.



4. Un nou Text Box ce va conine valoarea total a sejurului va fi inserat la dreapta
butonului iar lng acesta se va aduga un Label pentru descrierea monedei n care
este exprimat valoarea respectiv. Proprietile Text Box-ului vor fi modificate astfel
nct numele acestuia s fie ValSejur (proprietatea Name), coninutul s fie de tip
numeric (proprietatea Format setat pe valoarea Standard) i aliniat la dreapta
(proprietatea Text Align).



5. Urmeaz s adugm codul Visual Basic care se va executa atunci cnd utilizatorul
apas pe butonul Valoare sejur. Deschidem fereastra cu proprietile butonului, ne
deplasm n seciunea Events, evenimentul On Click i selectm opiunea [Event
Procedure] dup care apsm pe butonul din dreapta ( ).



n fereastra ce se deschide se vor introduce liniile urmtoare de cod care vor calcula
valoarea total a pachetului turistic plecnd de la valoarea unei zile de cazare care se
va nmuli cu durata sejurului.

Pr i vat e Sub cmdSej ur _Cl i ck( )
CmdVal _Cl i ck
nr _zi l e = Nr Zi l e. Capt i on
Val Tot . Set Focus
val oar e_sej ur = nr _zi l e * CDbl ( Val Tot . Text )
Val Sej ur . Set Focus
Val Sej ur . Text = val oar e_sej ur
End Sub

Tot aici va trebui s adugm i codul necesar a se executa atunci cnd utilizatorul va
apsa pe controlul de tip SpinButton.

Pr i vat e Sub Spi nBt n_Change( )
Nr Zi l e. Capt i on = Spi nBt n. Val ue
End Sub

nchidem fereastra n care am introdus codul i revenim la Design View.
6. Comutm n modul Form View, introducem 3 000 000 n cmpul corespunztor
preului de cazare, alegem s servim masa de prnz i cina, optm pentru o durat a
sejurului de 7 zile dup care apsm pe butonul Valoare sejur, moment la care suma
total de plat ce trebuie pltit pentru ntregul sejur se va calcula i afia n cmpul
din dreapta butonului.



7. Pentru a putea utiliza formularul i ulterior, este nevoie s realizm salvarea acestuia
prin utilizarea opiunii Save/Save As din meniul File sau prin apsarea butonului
din bara de instrumente.
2.1.6. Combo Box
Formularea problemei
S se realizeze un formular electronic care s afieze preul unui bilet de avion n
funcie de destinaia aleas, conform tabelului:

Destinaie Pre
Roma 500 euro
Munchen 700 euro
Paris 1000 euro
Londra 2000 euro

Utilizatorul va alege destinaia iar formularul va afia n mod automat preul
biletului exprimat n euro.



Rezolvare
Prin Combo Box nelegem un obiect combinat format dintr-o caset de text i o
list. Utilizatorul poate introduce o nou valoare sau poate alege una din list. n
exemplul nostru nu se vor putea afia preurile biletelor ctre destinaii care nu se
regsesc n list.

Pentru realizarea formularului electronic vom parcurge urmtoarea succesiune de pai:
1. Se creeaz un nou formular folosind opiunea Create Form in Design View din
Database Window. n mod echivalent se poate folosi opiunea Form a meniului Insert
dup care se selecteaz Design View. Accesm proprietile noului formular i vom
modifica urmtoarele caracteristici:
a. Caption semnific textul ce se va afia n bara ferestrei. Vom introduce Calcul
Pret Bilet Avion
b. Record Selectors se va seta pe No pentru a inhiba afiarea n partea stng a
ferestrei a unei zone ce permite selectarea nregistrrii curente
c. Navigation Buttons se va pune pe No pentru a preveni afiarea numrului
nregistrrii curente alturi de butoanele de navigare (salt la prima nregistrare,
la precedenta, la urmtoarea sau la ultima)
d. Dividing Lines se va seta pe No pentru a nu se trasa linia orizontal ce
desparte cele dou zone prezentate anterior
2. Daca fereastra ce conine controalele pe care le putem include n cadrul formularului
nu este activ, atunci va trebui s acionm butonul Toolbox (

) din bara de
instrumente sau s accesm opiunea respectiv din meniul View. n acest exemplu
vom folosi controlul Combo Box care este simbolizat n fereastra cu instrumente prin
semnul .
3. Apsm butonul respectiv dup care adugarea controlului se face prin efectuarea unui
click de mouse n interiorul formularului sau prin glisarea acestuia. Se va deschide o
nou fereastr numit Combo Box Wizard care ne va ajuta s proiectm controlul
respectiv prin parcurgerea unei succesiuni de pai:
a. Vom opta pentru varianta ca valorile controlului s fie introduse de ctre noi,
dup care apsm butonul Next



b. Urmeaz s alegem numrul de valori care vor fi afiate n list. Vom opta
pentru un numr de dou coloane dup care vom introduce valorile din tabelul
prezentat n enunul problemei.



c. Dintre toate coloanele pe care le poate conine controlul, doar una singur va
putea fi afiat atunci cnd se selecteaz o anumit valoare din list. Din acest
motiv vom opta ca aceast coloan s fie cea care conine numele destinaiei,
dup care apsm butonul Next.



d. Introducem descrierea ce urmeaz s apar n faa obiectului de tip Combo
Box dup care apsm butonul Finish.



Prin intermediul ferestrei de proprieti vom numi acest obiect Dest. Dup
poziionarea corect i redimensionarea acestuia, formularul obinut ar trebui s fie
asemntor cu cel din imaginea urmtoare.



4. Adugm Text Box-ul n care se va afia valoarea biletului pentru ruta selectat.
Proprietile Text Box-ului vor fi modificate astfel nct numele controlului s fie Pret
(proprietatea Name). n dreapta acestuia se va insera un Label n care vom trece
moneda n care este exprimat valoarea respectiv.



5. Ori de cte ori se schimb destinaia selectat, formularul va trebui s afieze valoare
biletului n cmpul Pre. Pentru aceasta va fi nevoie s adugm cod Visual Basic
pentru evenimentul On Change asociat controlului de tip Combo Box. Deschidem
fereastra cu proprietile obiectului, ne deplasm n seciunea Event iar de acolo
alegem evenimentul On Change. Selectm elementul numit [Event Procedure] i
apsm pe butonul din dreapta acestuia( ).



6. n fereastra ce apare va trebui s introducem codul urmtor care va prelua preul
biletului din controlul de tip Combo Box i l va afia n cmpul corespunztor.

Pr i vat e Sub Dest _Change( )
I f Not I sNul l ( Dest . Col umn( 1) ) Then
Pr et . Set Focus
Pr et . Text = Dest . Col umn( 1)
End I f
End Sub

Datorit faptului ca nu cunoatem preurile dect pentru biletele pe rutele definite n
tabelul de la formularea problemei, codul Visual Basic introdus mai nti verific
dac selecia curent este una valid i n caz afirmativ va afia valoarea biletului.
nchidem fereastra n care am adugat codul i revenim la Design View.
7. Pentru a vedea felul n care se comport formularul nostru va trebui s comutm pe
Form View dup care vom alege o destinaie din list. Preul biletului va fi afiat n
cmpul Pret de pe rndul urmtor.



Dac ns se ncearc introducerea unei destinaii inexistente, Microsoft Access va
genera un mesaj de eroare.

8. Pentru a putea utiliza i ulterior formularul astfel creat este nevoie s efectum salvarea
acestuia prin utilizarea opiunii Save/Save As din meniul File sau prin apsarea
butonului din bara de instrumente.

Observaie:
Dac am dori ca datele s nu fie introduse de ctre noi ci s fie luate din baza de date
folosind un tabel/interogare atunci la pasul 3a va trebui s alegem prima opiune care
ne este pus la dispoziie, dup care vom selecta elementul dorit (numele tabelului sau
interogrii), cmpurile care s apar n list, dimensiunea fiecrei coloane i
descrierea ce va nsoi controlul.

2.1.7. List Box
Formularea problemei
S se modifice formularul anterior astfel nct selecia destinaiei s se fac dintr-
o list de opiuni prin folosirea click-ului dublu.



Rezolvare
Vom nlocui Combo Box-ul din exemplu anterior cu un control de tip List Box
care ne va pune la dispoziie o list derulant de opiuni.

n continuare vor fi descrii paii ce vor fi urmai pentru rezolvarea problemei:
1. Se salveaz formularul anterior sub o nou denumire. n fereastra bazei de date se
execut click dreapta pe formularul creat anterior i se alege opiunea Save As.
Introducem un nou nume pentru formular dup care apsm butonul OK. Aceast
copie va fi modificat pentru a se ajunge la forma propus n enunul problemei.
2. Se terge controlul de tip Combo Box prin selectarea acestuia cu mouse-ul urmat de
apsarea tastei Del.
3. Se adaug controlul de tip List Box prin apsarea butonului corespunztor din
fereastra cu instrumente ( ) urmat de glisarea mouse-ului sau de executarea unui
click n interiorul formularului. Se va deschide o fereastra numit List Box Wizard n
cadrul creia va trebui s parcurgem aceiai pai ca la exemplul anterior: alegerea
modului de completare a listei, specificarea numrului dorit de coloane, indicarea
coloanei returnate i a descrierii ce va nsoi lista. Dup parcurgerea acestor pai,
controlul de tip List Box se va regsi n cadrul formularului. Folosind fereastra de
proprieti vom da obiectului numele Dest dup care vom repoziiona i redimensiona
Text Box-ul destinat afirii valorii biletului de avion selectat.


.
4. De fiecare dat cnd utilizatorul execut click dublu de mouse pe o destinaie din list,
preul biletului pentru ruta respectiv va trebui s fie afiat pe rndul urmtor. Pentru
aceasta vom aduga cteva linii de cod Visual Basic pe evenimentul On Dbl Click al
listei. Deschidem fereastra cu proprietile obiectului, ne deplasm n seciunea Event
iar de acolo alegem evenimentul On Dbl Click. Selectm elementul numit [Event
Procedure] i apsm pe butonul din dreapta acestuia( ).




5. n fereastra ce apare vom introduce urmtoarele linii de cod care vor avea ca efect
afiarea preului biletului pentru destinaia selectat din list.

Pr i vat e Sub Dest _Dbl Cl i ck( Cancel As I nt eger )
Pr et . Set Focus
Pr et . Text = Dest . Col umn( 1)
End Sub

Dup introducerea codului vom nchide fereastra respectiv i vom comuta n modul
Form View pentru a vedea cum funcioneaz formularul electronic proiectat.



6. Pentru a putea utiliza i ulterior formularul astfel creat este nevoie s efectum salvarea
acestuia prin utilizarea opiunii Save/Save As din meniul File sau prin apsarea
butonului din bara de instrumente.

Observaie:
Dac am dori ca datele din list sa nu fie introduse de ctre noi ci s fie luate din baza
de date folosind un tabel/interogare atunci la pasul 3 va trebui s alegem prima
opiune care ne este pus la dispoziie de ctre List Box Wizard, dup care vom
selecta elementul dorit (numele tabelului sau interogrii), cmpurile care s apar n
list, dimensiunea fiecrei coloane i descrierea ce va nsoi controlul.
2.2 Formulare asociate tabelelor Access
Formularea problemei
S se proiecteze un formular care s permit consultarea tabelei Angajati i
actualizarea coninutului acesteia adugare, modificare i tergere nregistrri. Se
presupune c tabela are urmtoarea structur: MARCA, NUME, PRENUME, VARSTA,
VECHIME, SALARIU i c este deja populat cu nregistrri.

Rezolvare
Formularele sunt ferestre folosite n scopul interogrii i actualizrii datelor din
tabelele bazei de date. nregistrarea a crei date sunt afiate n cadrul formularului la un
moment dat se numete nregistrare curent. Valorile afiate pot fi modificate de ctre
utilizator iar aceste schimbri se vor reflecta direct n cadrul tabelei pe baza creia a fost
realizat formularul. Folosind butoanele de navigare putem trece la prima nregistrare a
tabelului, la cea anterioar/urmtoare sau la ultima nregistrare. Ultimul buton din lista ne
d posibilitatea adugrii unei noi nregsitrri. tergerea se poate face direct din formular
folosind tasta Del dup ce n prealabil am selectat nregistrarea dorit.

n rezolvarea problemei propuse vom pleca de la presupunerea c tabela Angajati
exist deja i c aceasta este populat cu nregistrri. Fereastra care se deschide atunci
cnd accesm opiunea Form a meniului Insert ne pune la dispoziie mai multe variante
cu ajutorul crora putem realiza formularul cerut.

Varianta 1
Selectm opiunea numit Design View i alegem tabela Angajati ca surs de date
pentru viitorul formular.



Dup apsarea butonului OK, noul formular va fi deschis n Design View i alturi
de acesta se va afia i o fereastr ce conine cmpurile tabelei Angajati. Selectm toate
cmpurile acesteia dup care tragem cu mouse-ul aceste cmpuri n cadrul formularului.
Dac nu dorim ca formularul s afieze toate cmpurile tabelei atunci putem
selecta doar cmpurile dorite din lista care ne este pus la dispoziie.



Comutm n modul Form View iar formularul ce va fi afiat ar trebui s fie
asemntor cu cel prezentat n figura urmtoare.



Formularul va afia valorile ce se afl n cmpurile tabelei pentru nregistrarea
curent. Numrul acesteia ne este indicat n partea inferioar a ferestrei, alturi de
butoanele ce pot fi folosite pentru trecerea la o nou nregistrare. Butonul aflat n extrema
dreapt poate fi utilizat pentru adugarea unei noi nregistrri.
Valorile afiate n cadrul formularului pot fi modificate de ctre utilizator iar
aceste schimbri se vor salva automat n baza de date.
Zona din partea stng a formularului este folosit pentru selectarea nregistrrii
curente. Apsarea tastei Del va avea ca efect tergerea respectivei nregistrri. Tot pentru
tergerea nregistrrii curente se mai pot folosi opiunile Delete i Delete Record ale
meniului Edit.
Utilizatorul poate reveni n Design View pentru a schimba proprietile
formularului i ale obiectelor afiate n cadrul acestuia. Text Box-urile pot fi
redimensionate i repoziionate, textul ce apare n bara ferestrei poate fi schimbat, etc.
Dup efectuarea tuturor modificrilor i validarea rezultatelor folosind modul de
vizualizare Form View, formularul ar trebui salvat astfel nct s fie posibil utilizarea lui
ulterioar.

Varianta 2
Alegem varianta numit Form Wizard, ca n figura urmtoare.



Urmeaz s parcurgem o succesiune de pai, la fiecare dintre acetia vom fi
invitai s specificm o serie de informaii iar pe baza acestora Microsoft Access va
genera n mod automat formularul dorit. Trecerea la pasul urmtor se realizeaz cu
ajutorul butonului Next, revenirea la cel anterior se face prin folosirea butonului Back.
Utiliznd butonul Finish, utilizatorul poate opta pentru finalizarea procesului de creare
automat a formularului chiar dac nu au fost parcuri toii paii respectivi. Apsarea
butonului Cancel atrage dup sine nchiderea ferestrei fr generarea formularului.
La primul pas suntem invitai s indicm cmpurile tabelei Angajai pe care dorim
s le includem n formular. Cmpurile alese vor fi mutate n partea dreapt. Folosind
butoanele <, <<, >, >> putem selecta/deselecta cmpul curent sau toate cmpurile afiate.



Urmeaz s specificm modul de dispunere a cmpurilor selectate n cadrul
formularului. Putem alege una dintre opiunile urmtoare:
- Columnar fiecare cmp apare pe o linie separat avnd n partea
stng numele acestuia iar formularul va afia la un moment dat doar
valorile aferente nregistrrii curente
- Tabular numele cmpurilor apare o singur dat n captul de sus al
formularului iar valorile asociate pentru fiecare nregistrare sunt afiate
pe linii
- Datasheet datele sunt afiate sub forma unei foi de calcul tabelar iar
utilizatorul va vizualiza mai multe nregistrri n acelai timp
- Justified valorile corespunztoare nregistrrii curente sunt afiate
unele dup altele pe linii succesive



n continuare vom opta pentru unul din stilurile de afiare care ne sunt puse la
dispoziie.



La ultimul pas vom alege un nume pentru formularul nou creat sau l vom accepta
pe cel propus n mod implicit. Apsarea butonului Finish atrage dup sine crearea,
salvarea i afiarea n modul Form View a formularului respectiv.



n partea inferioar a ferestrei sunt afiate numrul nregistrrii curente i numrul
total de nregistrri coninute de ctre tabela Angajati. Tot acolo se gsesc i butoanele de
navigare care ne ajut s ne deplasm ctre o alt nregistrare sau s adugm noi valori.
Utilizatorul poate reveni n Design View pentru a schimba proprietile
formularului i ale obiectelor coninute de ctre acesta.


Varianta 3
Prin alegerea uneia dintre opiunile AutoForm: Columnar, AutoForm: Tabular
sau AutoForm: Datasheet, formularul va fi creat n mod direct, fr a mai fi necesar
parcurgerea unor pai suplimentari.
Astfel, dac optm pentru varianta AutoForm: Tabular, formularul pe care l vom
obine va fi asemntor cu cel din figura urmtoare.



n partea inferioar a ferestrei avem zona de navigare care ne d informaii despre
numrul nregistrrii curente i despre numrul total de nregistrri ce sunt coninute de
ctre tabela Angajati. Putem folosi butoanele din aceast zona pentru a ne deplasa pe o
nou nregistrare. nregistrarea curent este marcat cu un semn special n zona din
stnga (semnul ). Pe ultima linie se gsete o nregistrare goal care poate fi folosit
pentru adugarea de noi valori. Aceast nregistrare este marcat n partea stng prin
semnul .
Utilizatorul poate comuta n modul Design View pentru a schimba proprietile
formularului i ale obiectelor afiate n cadrul acestuia. Salvarea formularului face
posibil utilizarea ulterioar a acestuia.

Varianta 4
Opiunea Chart Wizard ne d posibilitatea obinerii unui formular care s conin
un grafic realizat pe baza datelor coninute de ctre tabela selectat.



Graficul doar afieaz valorile cmpurilor tabelei n forma dorit de noi,
modificarea acestora nefiind posibil. Pentru obinerea graficului, utilizatorul va trebui s
parcurg integral sau parial paii wizard-ului.



Proprietile formularului i ale obiectelor coninute vor putea fi ulterior
modificate prin comutarea n modul Design View.
2.3 Probleme propuse
1) S se proiecteze un formular cu ajutorul cruia s se calculeze valoarea stocului final
de produse finite pe baza stocului iniial, a intrrilor i a ieirilor realizate n cursul
unei anumite perioade calendaristice.
2) S se realizeze un formular care calculeaz valoarea lunar de amortizat pentru un
mijloc fix. Utilizatorul va introduce valoarea mijlocului fix i durata normal de
utilizare iar formularul va afia valoarea ce trebuie pltit lunar folosind metoda de
amortizare liniar.
3) S se proiecteze un formular pentru realizarea unei comenzi. Utilizatorul va introduce
preul unitar al produsului, cantitatea solicitat, va alege cota de TVA aferent iar
formularul va calcula n mod automat valoarea comenzii.
4) S se calculeze, folosind un formular, preul de vnzare al unui autovehicul plecnd
de la preul pentru versiunea de baz la care se adaug valoarea elementelor opionale
achiziionate. Acestea vor aprea sub form de csue de validare iar utilizatorul va
putea s le bifeze/debifeze pentru a desemna varianta pe care dorete s o cumpere.
5) S se construiasc un formular destinat activitii de nchiriere materiale video.
Utilizatorul va introduce numrul de casete video solicitate de ctre client, numrul
de DVD-uri i perioada pe care se realizeaz nchirierea, exprimat n numr de zile.
Formularul va calcula n mod automat suma pe care clientul o are de pltit tiind ca
tariful perceput pentru nchirierea unei casete video este de 50 000 lei pe zi, iar pentru
DVD-uri de 100 000 lei pe zi. Dup finalizarea operaiunii utilizatorul va trebui s
aib la dispoziie un buton cu ajutorul cruia s tearg datele introduse pentru
clientul anterior.
6) S se proiecteze un formular destinat pentru a fi utilizat ntr-o staie de benzin.
Acesta va fi utilizat pentru a calcula i afia suma pe care clientul o are de pltit
innd cont de tipul de combustibil folosit i de cantitatea achiziionat.
7) S se realizeze un formular care s conin lista departamentelor unui magazin
universal. Atunci cnd utilizatorul selecteaz un departament, formularul va trebui s
afieze codul asociat acestuia.
8) S se construiasc un formular n care s se calculeze venitul net al unui angajat
plecnd de la salariul brut din care se scad contribuiile la asigurrile sociale, sntate
i omaj, toate acestea fiind exprimate procentual.
9) S se calculeze valoarea lunar ce se recupereaz prin amortizarea accelerat a unui
mijloc fix. Valoarea acestuia i durata de utilizare se introduc de ctre utilizator iar
formularul va afia suma ce se recupereaz lunar n primul an i cea aferent anilor
care urmeaz.
10) S se proiecteze un formular care s afieze prima de asigurare CASCO ce trebuie
pltit de ctre posesorul unui autovehicul. Pentru mainile indigene se aplic un
procent de 4% din valoarea mainii, iar pentru cele strine procentul crete la 6%. De
asemenea clientul mai poate primi i o reducere de pn la 10% n funcie de valoarea
daunelor pe care le-a nregistrat n anul precedent.