Documente Academic
Documente Profesional
Documente Cultură
Capitolul 2 PDF
Capitolul 2 PDF
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
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.
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 ( ).
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.
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 ( ).
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.
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 ( ).
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.
Rezolvare
Check Box-ul reprezint o caset de validare care comut ntre strile on i off.
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.
pret_micdejun = 0
If MicD.Value Then
pret_micdejun = 100000
End If
pret_pranz = 0
If Pranz.Value Then
pret_pranz = 300000
End If
pret_cina = 0
If Cina.Value Then
pret_cina = 200000
End If
pret_total = pret_camera + _
pret_micdejun + _
pret_pranz + _
pret_cina
ValTot.SetFocus
ValTot.Text = pret_total
End Sub
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.
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.
Tot aici va trebui s adugm i codul necesar a se executa atunci cnd utilizatorul va
apsa pe controlul de tip SpinButton.
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
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.
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.
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( ).
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.
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.
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.
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.
Varianta 2
Alegem varianta numit Form Wizard, ca n figura urmtoare.
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.
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.