You are on page 1of 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: Private Sub PretV_Click() PretA.SetFocus pret_achizitie = CDbl(PretA.Text) adaos = pret_achizitie * 10 / 100 pret_vanzare = pret_achizitie + adaos PretV.SetFocus PretV.Text = pret_vanzare 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: Private Sub CmdVal_Click() PretA.SetFocus pret_achizitie = CDbl(PretA.Text) adaos = pret_achizitie * 10 / 100 ValAd.SetFocus ValAd.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) din fereastra cu 5. Se adaug controlul de tip Option Button selectnd butonul 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. Private Sub CmdTVA_Click() Pret.SetFocus pret_produs = CDbl(Pret.Text) valoare_tva = pret_produs * OptGrp.Value / 100 ValTVA.SetFocus

ValTVA.Text = valoare_tva 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 din bara de folosind butonul stng al mouse-ului dup care se apas butonul 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 Boxului 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. Private Sub CmdVal_Click() PretC.SetFocus pret_camera = CDbl(PretC.Text) 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

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. Private Sub cmdSejur_Click()

CmdVal_Click nr_zile = NrZile.Caption ValTot.SetFocus valoare_sejur = nr_zile * CDbl(ValTot.Text) ValSejur.SetFocus ValSejur.Text = valoare_sejur End Sub Tot aici va trebui s adugm i codul necesar a se executa atunci cnd utilizatorul va apsa pe controlul de tip SpinButton. Private Sub SpinBtn_Change() NrZile.Caption = SpinBtn.Value 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 Roma Munchen Paris Londra Pre 500 euro 700 euro 1000 euro 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. Private Sub Dest_Change() If Not IsNull(Dest.Column(1)) Then Pret.SetFocus Pret.Text = Dest.Column(1) End If 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 dintro 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. Private Sub Dest_DblClick(Cancel As Integer) Pret.SetFocus Pret.Text = Dest.Column(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.

You might also like