FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI [603357]
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA „IOAN SLAVICI ” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI
PROIECT DE DIPLOMĂ
COORDONATOR ȘTIINȚIFIC
Prof. univ. dr. ing. Vlăduțiu Mircea
ABSOLVENT: [anonimizat]
2019
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA „IOAN SLAVICI ” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI
EVALUAREA PERFORMANTELOR
ANGAJATILOR – APLICATIE VBA
COORDONATOR ȘTIINȚIFIC
Prof. univ. dr. ing. Vlăduțiu Mircea
ABSOLVENT: [anonimizat]
2018
Cuprins
Capitolul 1. Introducere …………………………………………………………………………………… . pag. 2
Capitolul 2. Aplicația în MS Excel cu Visual Basic pentru Aplicații (VBA) ………… . pag. 4
2.1. Prezentare generală a Visual Basic pentru Aplicații ……………………………….. pag.
2.2. Declararea variabilelor în Visual Basic pentru Aplicații ………………………….. pag.
2.3. Declararea proprietăților ob iectelor ……………………………………………………… pag.
2.4. Controalele de tip Form ………………………………………………………………………. pag.
2.5. Controalele ActiveX ……………………………… …………………………………………… pag.
2.6. Descrierea controalelor standard …………………………………………………………… pag.
Capitolul 3. Baza de date MS Access …………………………………………………………………… pag.
3.1. Ce este o bază de date? …………………………………………………………………………. pag.
3.2. Tabelele ………………………………. …………………………………………………………….. pag.
3.3. Queries (interogări) ………………………………………………………………………………. pag.
3.4. Rapoarte …………………………………… ………………………………………………………… pag.
3.5. Formulare ……………………………………………………………………………………………. pag.
3.6. Macrouri (sau macrocomenzi) ……………………………………………………………….. pag.
3.7. Module ………………………………………………………………………………………………… pag.
Capitolul 4. Conexiunea aplicației cu baza de date …………………………………………………. pag.
Capitolul 5. Concluzii ……………………………………………………………………………………………. pag.
Bibliografie ……………………………… ………………………………………………………………………….. pag. 24
Capitolul 1.
Introducere
În companiile care au mai mulți angajați sau mai mulți angajați în mai multe departamente /
compartimente / proiecte apare problema evaluării angajaților în funcție de performanțele acestora.
Fiecare manager de companie dorește s ă știe dac ă angaja ții pe care îi are în diversele departamente
ale companiei (dezvoltare, testare, produc ție, calitate ș.a.m.d. ) au p erformațe bune sau nu .
Performanțele angajaților trebuie evaluate corect, obiectiv, pe o perioadă de timp mai lungă ( 6 luni /
1 an) . Astfel apare necesitatea unui tool de evaluare, a unei aplicații de evaluare a performanțelor
angajaților. O evaluare cât mai corectă și profundă a performanțelor angajaților trebuie făcută pe două
planuri: competențele individuale ale angajatului și evaluarea obiectivelor stabilite anterior.
Competen țele individuale ale angajatului se evaluează în funcție de o performan ță standard,
care poate să fie atins ă sau nu ori chiar depășită de unii angajați. În aceast ă prim ă parte a evaluării se
vor evalua competen țe generale ale angajaților. Competen țele individuale sunt aceleași pentru toți
angajații care trebuie evaluați. Iată câteva exemple de competen țe individuale:
– Identific ă si prioritizeaz ă corespunzator activita țile care trebuie desf ășurate ;
– Angajatul este deschis la nou și nu manifest ă rezisten ță la schimbare ;
– Angajatul ia decizii atunci c ând este necesar și își asum ă răspunderea pentru ele .
Comp etențele individuale ale angajatului se vor evalua cu note de la 1 la 5, conform grilei de
mai jos:
1= Performan ța nu este eviden țiată;
2= Performan ța trebuie îmbun ătățită;
3= Performan ță standard ;
4= Performan ța este dezvoltat ă peste medie ;
5= Performan ța este foarte bine dezvoltat ă.
Evaluarea obiectivelor stabilite anterior este a doua parte a evaluării performanțelor
angajaților unei companii. Aceasta evaluare este orientată pe specificul fiecărui j ob in parte și pe
specificul fiecărui angajat in parte. Vom avea astfel 4 obiective principale de stabilit . Fiecare obiectiv
în parte va avea un procent de pondere în evaluarea obiectivelor, suma procentelor fiind de 100%.
Pentru fiecare obiectiv stabilit anterior vom avea stabilite si criteriile de masurare si modul de
evaluare in 5 trepte: 100%, 75%, 50%, 25% și 0%. Evaluatorul va stabili procentul care a fost atins
de angajat pentru obiectivul evaluat. Un exemplu de obiectiv pentru un angajat din departa mentul de
resurse umane poate sa fie: „întocmirea r apoarte lor de personal ”.
Pentru a veni în ajutorul evaluatorului performanțelor angajaților am luat hotărârea sa creez o
aplica ție de evaluare a performanțelor angajaților. Aceasta aplicație trebuie sa aibă o interfață user –
friendly si totodată trebuie sa fie legată la o bază de date.
Având in vedere ca majoritatea companiilor folosesc deja suita Microsoft Office, am hotarât
ca aplicația de evaluare a performanțelor angajaților să se fie real izată cu ajutorul a două programe
din suita, și anume Microsoft Excel și Microsoft Access în care sa folosesc atât funcțiile de bază cât
si macro -comenzi în Visual Basic for Applications si MySQL.
Capitolul 2.
Aplicația în MS Excel cu Visual Basic pentru Aplicații (VBA)
2.1. Prezentare generală a Visual Basic pentru Aplicații
Visual Basic pentru Aplicații , sau pe scurt VBA, este un limbaj de programare proiectat să
funcționeze cu aplicațiile din suita Microsoft Office (Word, Excel, Access și PowerPoint).
Componentele fiecarei aplicații, de exemplu foile din Excel, sunt prezentate programatorului ca
obiecte pentru ca acesta să le poată folosi și să le manipuleze in vederea obținerii rezultatului dorit.
Orice se poate face in mod clasic in Excel, se va putea automatiza cu ajutorul VBA.
2.2. Declararea v ariabile lor în Visual Basic pentru Aplicații
Deseori în programe este necesară memorarea diverselor valori folosite în efectuarea
calculelor. Limbajul VBA folosește variabile și constante pentru stocarea temporară a valorilor
folosite în timpul execuției programelor. Variabila este un loc în memoria RAM (Random Accessed
Memory) rezervat pentru memorarea unei valori. Orice variabilă are un nume (prin care se face
referire la valoarea pe care o conține variabila) și un tip de dată (care determină felul datei pe care
variabila o poate stoca). Valoarea me morată într -o variabilă poate fi modificată pe parcursul execuției
programului. Reguli (în folosirea variabilelor) :
– să înceapă cu o literă;
– să nu conțină caracterul punct(.) sau caractere speciale;
– să fie unice;
– să nu se folosească cuvinte rezervate
Decl ararea unei variabile se poate face explicit prin folosirea instrucțiunii „Dim”, sintaxa este:
Dim nume_variabila as TipDată
Exemple:
Dim dobanda As Double
Dim FinalProiect as Boolean
Dim Data Nastere As Date
Dim cantitate as Integer
Dim numprod As String
Dim nume As String * 30
Dim VariabilaRandom As Variant
Variabila nume e declarată ca un șir de 30 de caractere (lungime fixă), iar variabila numprod
e declarată ca un șir de caractere variabil. Varibila VariabilaRandom este declarata ca Variant, tipul
acestei variabile va fi definit la prima asignare a valorii acestei variabile. Declararea unei variabile se
poate face și implicit prin utilizarea variabilei în program , totuși, acest mod nu e reco mandat, deoarece
poate conduce ușor la erori sau confuzii în progra m.
Instrucțiunea de atribuire a variabilelor se folosește pentru a atribui unei variabile valoarea
unei expresii. VBA utilizează semnul egal (=) pentru atribuire. Ca exemplu pentru variabi lele
declarate mai sus, voi folosi următoarele instrucțiuni de atribuire :
dobanda = 0. 04
FinalProiect = True
Data Nastere = #09/12/1984 #
cantitate = 10
numprod = " Computer "
nume = "Popescu Ion"
Atribuirea variabilelor se poate face și direct cu informația care există într -unul dintre
spreadsheeturile fisierului Excel. Pentru ca atribuirea făcută in acest fel să fie corectă și să nu genereze
eroare, tipul declarat al variabilei si tipul de informa ție din celula din work sheet sa fie aceeași. De
exemplu, pentru a -i atribui varibilei DataNastere valoarea 09/12/1984 din celula „A1” a foii „Sheet1”
vom folosi urmatoarea sintaxa:
DataNastere = WorkSheets( "Sheet1 ").Range( "A1").Value
O alt ă modalitate de a atribui variabilelor o valoare este de a cere utilizatorului printr -o
fereastra, denumită fereastră de input, introducerea de la tastatură a valorii variabilei. Exact ca in
cazul atribuirii variabilelor a valorilor dintr -un worksheet, valo area trebuie sa fie de tipul declarat al
variabilei în cauză , în formatul corect. Iată mai jos un exemplu clasic de introducere a valorii
variabilei de la tastatură:
DataNastere = InputBox(" Va rog introduceti data nasterii in formatul ZZ/LL/AAAA ")
Fig. 2. 2.1 – Atribuire valoare prin InputBox
În Figura 2. 2.1 vă prezint un inputbox creat cu codul de mai sus. Răspunsul de la tastaură va
fi stocat in variabila DataNastere .
Variabilele create anterior le vom putea folosi in programul nostru, așa cum avem nevoie de
ele, vom putea face calcule matematice cu ele sau le vom putea adauga in tabele excel sau adauga in
baze de date Access, pentru acest ultim tip de manipularea a dat elor voi reveni cu un exemplu mai
târziu. Calculele matematice pe care le putea face cu variabilele noastre sunt toate operațiile pe care
le putem face și cu ajutorul unui worksheet clasic, ordinea operațiilor fiind cea din matematică, fără
a fi nevoiți să folosim paranteze adiționale.
Figura 2.2. 3 – Tipuri de variabile în VBA pentru Excel [1]
Figura 2.2. 2 – Operatori folosiți în VBA [1]
Utilizarea funcțiilor din foile de calcul Excel . În VBA avem posibilitatea de a apela la funcțiile
disponibile în foile de lucru Excel cu ajutorul proprietății WorksheetFunction a obiectului
Application. Sintaxa:
Application.WorksheetFunction.nume_functieExcel
Exempl u:
Range( "A100") = Application.WorksheetFunction.Sum(Range(" A2:A99 "))
În exemplul de mai sus celula A100 va lua valoarea sumei celulelor de la A2 până la A99.
Valoarea sumei va fi preluată în celula A100 ca valoare după executarea codului și nu ca formulă de
calcul.
2.3. Declararea proprietăților obiectelor
Pentru setarea mai multor proprietăți care se referă la același obiect, pentru a ușura accesul
la proprietățile acestuia, am utilizat instrucțiunea WITH cu sintax a de mai jos, pentru stabilirea
dimensiunii form -ului egala cu dimensiunea monitorului folosit, pentru stabilirea culorilor de
background și a textului și pentru stab ilirea unor proprietăți ale multipage -ului:
With Me
.Height = Application.Height
.Width = Application.Width
.Left = Application.Left
.Top = Application.Top
.BackColor = vbBlack
.BackColor = &HFFC0C0
.MultiPage1.BackColor = &HFFC0C0
''.MultiPage1.ForeColor = &HFFC0C0
.MultiPage1.Visible = True
.MultiPage1.TabIndex = 1
End With
Utilizarea controalelor tip formular în foile de calcul . Un formular este un document cu o
structură și un format standard ce face mai ușoară introducerea, organizarea și editarea informațiilor.
Formularele create în Excel conțin controale. Acestea sunt obiecte care afișează informații, cu ajutorul
cărora se pot introduce informații, efectua acț iuni sau selecții. Controalele cele mai des utilizate sunt
casetele de text, listele, butoanele de opțiune sau de acțiune. Controalele pot rula macro -comenzi sau
pot răspunde la evenimente cum ar fi clic k-ul de mouse. În Excel tipuri de formulare care se pot crea
cu Microsoft Excel: formulare de date, foi de calcul nce conțin controale de tip formular sau ActiveX,
formulare de tip VBA UserForms.
Formularele de date sunt de de multe ori o cale comodă de a introduce date într -un tabel Excel.
Programul Excel poate crea automat un formular pe un tabel, formular ce conține toate etichetele de
coloane și câte o căsuță de text pentru introducerea informațiilor. Dacă în tabel există formule, acestea
vor fi calculate automat pe formular. Pentru operațiile de introdu cere, ștergere, căutare sau editare,
formularul pune la dispoziție butoane de acțiune. Pentru afișarea formularului, se folosește butonul
Form. Acesta nu este inclus în interfața standard, dar poate fi adăugat barei de instrumente Quick
Acces .
2.4. Contro alele de tip Form
Controalele de tip Form sunt controale originale, compatibile
cu versiunile mai vechi de Excel, începând cu Excel 5. Aceste
controale sunt utile pentru interacțiunea ușoară cu celulele foilor de
calcul, fără folosirea codului VBA. Aces te controale nu pot fi folosite
pe formulare de tip Userform și din aceasta cauză nu mai sunt folosite
in prezent cu precădere. Puteți vedea în figura 2.4.1. procedura de
inserare a controalelor de tip Form.
2.5. Controalele ActiveX
Controalele ActiveX pot fi folosite în foile de calcul sau
formulare UserForms (nu și pe foi de grafic), cu sau fără cod VBA
si de aceea ele sunt folosite în prezent cu precădere . În figura 2.5.1.
este prezentată procedura de inserare a controalelor de ActiveX.
Aceste controale se folosesc atunci când aveți nevoie de maximă
flexibilitate în lucrul cu acestea. Controalele Active X au mai multe
proprietăți astfel încât să puteți customiza modul de afișare, fontul
sau alte caracteristici. De asemenea, puteți controla evenimentele ce
apar în lucrul cu aceste controale (selectarea unui element din listă,
click pe un buton, ș.a.m.d. ) și scrie macro uri ce răspund
evenimentelor apărute. Computerul pe care lucrați conține controale
ActiveX instalate de Excel sau alte programe, cum ar fi Calendar
Control, Microsoft Date and Time Picker sau Windows Media
Player. Dar nu toate controalele ActiveX pot fi utilizate direct pe foile de lucru , unele dintre acestea
pot fi folosite doar pe formulare VBA UserForms. Dacă încercați să utilizați un astfel de control
ActiveX pe o foaie, va apare mesajul de eroare "Cannot insert object." . Controalele ActiveX au
proprietăți similare controalelor Form, acestea stabilindu -se cu ajutorul casetei Properties. Pentru o
maximă flexibilitate, puteți crea formulare UserForm pe care să includeți controale ActiveX. Aceste
formulare sunt disponibile din editorul Visual Basic și se crează astfel:
– Pentru fișierul în care doriți să introduceți formulare, comutați în editorul Visual Basic și
din meniul Insert alegeți opțiunea UserForm ;
– Scrieți o procedură de afișare a formularului ;
– Introduceți controalele A ctiveX pe formular folosind bara de instrumente Toolbox ;
– Stabiliți proprietățile controalelor ActiveX ;
– Scrieți proceduri ce tratează evenimentele asociate controalelor .
Figura 2.4.1. – Form Controls
Figura 2.5.1. – ActiveX Controls
2.6. Descrierea controalelor standard
2.6.1 Caseta de text (Textbox) este folosit ă pentru a afișa informațiile introduse de utilizator
în momentul execuției sau al proiectării.
Proprietatea Name a controlului stabilește numele controlului.
Proprietatea Text stabilește sau returnează textul conținut în caseta de text.
Proprietatea BackColor stabilește culoarea de fundal a controlului, în timp ce proprietatea
ForeColor stabilește culoarea textului afișat.
Proprietatea Font într-o casetă de text, textul afișat nu poate folosi decât o singură familie de
litere, adică poate avea un singur stil tipografic. Caracteristicile acestea sunt gestionate de proprietatea
font.
Proprietatea Wordrap se folosește atunci când textul depășește limitele controlului , proprietata
Wordrap se setează ca True și astfel textul poate trece pe linia următoare. Dacă este setată pe False,
textul va fi scris pe un singur rând .
Proprietatea MaxLength (de tip întreg) stabilește numărul maxim de caractere care poate fi
introdus într -o casetă de text. Valoarea implicită a aceste i proprietăți este 0, ceea ce înseamnă că
numărul caracterelor care poate fi introdus este nelimitat, pentru orice altă valoare introdusă
determină numărul maxim de caractere. Dacă se depășește această valoare nu se semnalează eroare,
dar textul apare trun chiat.
Proprietatea ScrollBars controlează aspectul casetei de text în întregime . Această proprietate
este de tip întreg și stabilește dacă cutia de text formată cu mai multe linii este prevăzută cu bară de
defilare. Se folosesc constante sau valori numer ice pentru a stabili valoarea proprietății
Proprietatea Locked . Casetele de text permit modificări ale conținutului. Există posibilitatea
blocării unei casete de text în sensul interzicerii modificărilor de la tastatură. Această proprietate este
Locked de tip boolean și implicit valoarea False permițând modificarea. Dacă este True nu este
permisă așadar interacțiunea cu utilizatorul în momentul execuției (în cazul unui control aflat direct
pe foaia de calcul, proprietatea Locked este similară proprietății Locked a celulelor).
Proprietatea PasswordChar ne ajută la rea lizarea casetelor text cu parolă. O casetă text cu
parolă care permite utilizatorului să introducă în ea o anumită parolă ce va fi însă afișată pe ecran sub
formă de caractere de înlocuire cum ar fi asteriscurile (*). Valoarea implicită a acestei proprietă ți este
șirul vid, iar în această situație caracterele se vor afișa așa cum sunt introduse. Modificând această
proprietate, caracterele tastate (proprietatea Text) sunt ascunse. În general, în aplicațiile Windows
pentru astfel de situații se folosește *.
Proprietatea AutoSize specifică dacă controlul se redimensionează automat pe orizontală sau
nu. Dacă se alege varianta True, atunci controlul se redimensionează automat în așa fel, încât va fi
afișat întregul text specificat în proprietatea Caption. Dacă se alege varianta False (valoare implicită),
atunci dimensiunea controlului rămâne constantă, astfel încât textul din proprietatea Caption poate fi
trunchiat.
In figura 2.6.1.1 se poate vedea o serie de texbox -uri, pentru care am folosit proprietățile
MaxLengthe si MultiLine , așa cum se vede in exemplul de mai jos pentru TextBox31, cel mai din
stânga al figurii 2.6.1.1. :
Me.TextBox31.MaxLength = 140
Me.TextBox31.MultiLine = True
2.6.2 Controalele etiche tă LABEL sunt utilizate pentru a afișa text și nu pot fi modificate de
utilizator. Sunt folosite de obicei pentru a eticheta controalele care nu au propriile proprietăți Caption
sau pentru a afișa informații ca răspuns la diverse acțiuni . Textul afișat de etichete poate fi specificat
atât în perioada de elaborare a proiectului, dar și în execuție prin proprietatea Caption. Proprietățile
unei etichete sunt asemănătoare cu proprietățile unei casete de text.
Figura 2.6.2.1 – Label -uri în userform
În figura 2.6.2.1. se pot vedea o serie de label -uri, pentru care am atribuit proprietățile Caption,
Height, MousePointer, TextAlign si SpecialEffect Raised, așa cum se poate vedea în codul de mai
jos, exemplificat pentru textbox -ul din stânga din figura:
Me.Label2.Caption ="NUME: " & vbCrLf & Worksheets("Evaluare").Range("Nume").Value
Me.Label2.Height = 32
Me.Label2.MousePointer = fmMousePointerDefault
Me.Label2.TextAlign = fmTextAlignCenter
Me.Label2.SpecialEffect = fmSpecialEffectRaised
2.6.3 Butoanele de comandă sunt controalele cele mai des folosite în proiectele Visual Basic.
Scopul folosirii lor este lansarea în execuție a diferitelor acțiuni (pornirea, oprirea sau terminarea unui
proces). Utilizarea este posibilă în momentul selectării butonului. Dacă se execută un clic de mouse
deasupra butonului, se declanșează evenimentul Click corespunzător și se execută operațiile
corespunzătoare acestui eveniment. Butonul poate fi selectat fo losind tastatura, dar și caracterul
Figura 2.6.1.1. – TexBox -uri in userform
subliniat din numele butonului (litera cheie) și tasta Alt. Butonul este selectat și se declanșează
evenimentul Click (controlul poate deveni control curent apăsînd tasta TAB). O altă metodă este
focalizarea prin program folosind metoda SetFocus.
Proprietatea Caption stabilește textul afișat de buton.
Proprietatea Accelerato r stabilește litera care poate fi folosită în combinație cu tasta Alt pentru
a apăsa butonul. Dacă litera există în textul afișat de buton, aceasta va fi subliniată .
Proprietatea BackColor stabilește culoarea de fundal a controlului, în timp ce proprietatea
ForeColor stabilește culoarea textului afișat.
Proprietatea Default , de tip boolean stabilește dacă butonul de comandă este buton implicit al
formularului, adică este activat prin apăsarea tastei ENTER chiar dacă alt buton are focusul. Pe un
formular numai un singur buton poate fi buton implicit. Valoarea implicită a acestei proprietăți este
FALSE, adică butonul respectiv nu este cel implicit.
Proprietatea Cancel este de fapt o pusul proprietății Default e proprietatea Cancel. Aceasta
stabilește dacă butonul de comandă este butonul de anulare al formei. Dacă are valoarea TRUE,
procedura eveniment asociată butonului poate fi apelată do ar apăsând tasta Esc (indiferent de locația
actuală a focusului). Valoarea implicită a acestei proprietăți este FALSE, iar pe un formular un singur
buton poate să joace rolul butonului de anulare.
Proprietatea Picture permite afișarea unei imagini butonul ui de comandă .
Procedurile eveniment specifice butoanelor de comandă sunt: BeforeDragOver,
BeforeDropOrPaste, Click, DblClick, Enter, Error, Exit, KeyDown, KeyUp, MouseDown,
MouseMove.
2.6.4. Butoane le de opțiune
Buto anele OptionButton desemnează un control care poate avea două stări: selectat sau
neselectat ori mai multe setari, așa cum vă voi prezenta in figura 2.6.4 de mai jos:
Aceste controale se folosesc pentru opțiuni care se exclud reciproc; se utilizează de obicei
grupuri de butoane din care utilizatorul poate alege unul. Gruparea se realizează desenând butoanele
de opțiune în interiorul unui control de tip container (Frame sau GroupBox) sau sunt desenate direct
Figura 2.6.4.1 – Butoane de opțiune in userform
pe formular (care joacă rolul unui container implicit). Din fiecare grup de butoane de opțiune
utilizatorul poate selecta numai un singur buton, restul din grup devin automat deselectate. Un buton
de opțiune poate fi selectat la momentul execuției în mai multe feluri: pri n click pe el, folosind tasta
TAB pentru selectarea unui buton din grup sau cu ajutorul unei taste de comandă rapidă.
În figura 2.6.4.2. se poate vedea rezultatul grupării butoanelor de opțiune, pe fi ecare indicator
sau competență în parte , pentru grupul 6 am ales opțiunea 4, iar pentru grupul 7 am ales opțiunea 3.
Codul folosit pentru a crea aceste grupuri îl regăsiți mai jos, fiecărui buton din grup i -am asignat câte
un GroupName, astfel butoanele Op tionButton061 până la OptionButton065 au numele grupului 6,
iar butoanele OptionButton0 71 până la OptionButton0 75 au numele grupului 7:
Me.OptionButton061.GroupName = 6
Me.OptionButton062.GroupName = 6
Me.OptionButton063.GroupName = 6
Me.OptionButton064.GroupName = 6
Me.OptionButton065.GroupName = 6
Me.OptionButton071.GroupName = 7
Me.OptionButton072.GroupName = 7
Me.OptionButton073.GroupName = 7
Me.OptionButton074.GroupName = 7
Me.OptionButton075.GroupName = 7
Figura 2.6.4.2 – Gruparea butoanelor de opțiune
Am folosit acest tip de buton în prima parte a evaluării performanțelor angajaților, și anume
la evaluarea indicatorilor și compentențelor, unde fiecare evaluator va alege o nota de 1 la 5 pentru
fiecare indicator sau competență evaluata.
Proprietățile Caption, Accelerator si BackColor stabilesc aceleași proprietăți ca și în cazul
butoanelor de comandă.
Penru proprietatea Caption a butoanelor din grupul 6, din figura 2.6. 4.2, am folosit codul prin
care am afișat textul de lângă fiecare buton in parte:
Me.OptionButton061.Caption = "1 = Performanta nu este evidentiata"
Me.OptionButton062.Caption = "2 = Performanta trebuie imbunatatita"
Me.OptionButton063.Caption = "3 = Performanta standard"
Me.OptionButton064.Caption = "4 = Performanta este dezvoltata peste medie"
Me.OptionButton065.Caption = "5 = Performanta este foarte bine dezvoltata"
Proprietatea Value este de tip boolean determină dacă opțiunea reprezentată de buton este
selectată sau nu. Dacă se alege valoarea TRUE butonul respectiv este selectat, iar celelalte butoane
din același container sunt deselectate. Dacă se alege valoarea FALSE butonul nu este sel ectat (valoare
implicită) .
Capitolul 3.
Baza de date MS Access
3.1. Ce este o bază de date?
O bază de date este un instrument pentru colectarea și organizarea informațiilor. Bazele de
date pot stoca informații despre orice informații de care avem nevoie . Multe baze de date încep ca o
listă într -un program de procesare a textului sau o foaie de ca lcul. Pe măsură ce lista se mărește, datele
încep să conțină redundanțe și inconsistențe. Ele devin greu de înțeles sub formă de listă și există
modalități limitate de a căuta sau a extrage subseturi de date pentru revizuire. După ce încep să apară
aceste probleme, este o idee bună să transferați datele într -o bază de date creată de un sistem de
gestionare a bazelor de date, cum ar fi Access.
O bază de date computerizată este un container de obiecte. O bază de date poate conține mai
multe tabele. De exemplu, un sistem de urmărire a inventarului care utilizează trei tabele nu reprezintă
trei baze de date, ci una singură care conține trei tabele. Dacă nu a fost proiectată special pentru a
utiliza date sau cod din altă sursă, o bază de date Access își st ochează tabelele într -un singur fișier,
împreună cu alte obiecte, precum formulare, rapoarte, macrocomenzi și module. Bazele de date create
în formatul Access 2007 (care este utilizat și de Access 2016, Access 2013 și Access 2010) au extensia
de fișier .ac cdb, iar bazele de date create în formatele de Access mai vechi au extensia de fișier .mdb.
Puteți utiliza Access 2016, Access 2013, Access 2010 sau Access 2007 pentru a crea fișiere în formate
mai vechi (de exemplu, Access 2000 și Access 2002 -2003).
Utilizând Access, aveți următoarele posibilități:
– Adăugați date noi la o bază de date, cum ar fi un element nou într -un inventar
– Editați datele existente în baza de date, cum ar fi modificarea locației curente a unui element
– Ștergeți informațiile, de exemplu, dacă un element este vândut sau eliminat
– Organizați și vizualizați datele în moduri diferite
– Partajați datele cu alte persoane prin intermediul rapoartelor, al mesajelor de e -mail, al unui
intranet sau al internetului .
Părțile unei baze de date Access sunt u rmătoarele :
– Tabele
– Queries
– Rapoarte
– Formulare
– Macrocomenzi
– Module
3.2. Tabelele
Un tabel bază de date seamănă ca aspect cu o foaie de calcul, deoarece datele sunt stocate în
rânduri și coloane. În consecință, este de obicei destul de ușor să importați o foaie de calcul într -un
tabel bază de date. Diferența principală dintre stocarea d atelor într -o foaie de calcul și stocarea lor
într-o bază de date este modul în care sunt organizate datele.
Pentru o bază de date cât mai flexibilă, datele trebuie să fie organizate în tabele, astfel încât
să nu apară redundanțe. De exemplu, dacă stocați informații despre angajați, fiecare angajat ar trebui
să fie introdus o singură dată într -un tabel configurat doar pentru a reține datele angajaților. Datele
despre produse vor fi stocate în alt tabel, iar cele despre filiale vor fi stocate în altul. Aces t proces se
numește normalizare.
Fiecare rând dintr -un tabel se numește înregistrare. Înregistrările sunt locul unde sunt stocate
părți individuale de informații. Fiecare înregistrare constă într -unul sau mai multe câmpuri.
Câmpurile corespund coloanelor din tabel. De exemplu, puteți avea un tabel numit „Angajați”, unde
fiecare înregistrare (rând) conține informații despre un alt angajat, iar fiecare câmp (coloană) conține
un alt tip de informație, cum ar fi prenumele, numele, adresa și așa mai departe. Câmpurile trebuie
desemnate ca un anumit tip de date, fie că este vorba de text, dată sau oră, număr sau un alt tip.
Figura 3.2. 2. – Vizualizare design a tabelului princip al de angajați
Altă modalitate de a descrie înregistrări și câmpuri este de a vă gândi la vechile fișe din
biblioteci. Fiecare fișă din dulap îi corespunde unei înregistrări din baza de date. Fiecare informație
de pe o fișă individuală (autor, titlu și așa mai departe) îi corespunde unui câmp din baza de date.
Figura 3.2.1 – Tipuri de variabile în VBA pentru Access [2]
3.3. Queries (interogări)
I nterogările pot efectua mai multe funcții diferite într -o bază de date. Cea mai comună funcție
a lor este să regăsească anumite date din tabele. Datele pe care doriți să le vedeți sunt împărțite, de
obicei, între mai multe tabele, iar interogările vă permit să le vizualizați într -o singură foaie de date.
De asemenea, deoarece în general nu doriți să vedeți toate înregistrările deodată, interogările vă
permit să a dăugați criterii pentru a „filtra” datele la înregistrările dorite.
Anumite interogări sunt „actualizabile”, ceea ce înseamnă că puteți edita datele din tabelele
subiacente prin intermediul foii de interogare. Dacă lucrați într -o interogare actualizabilă, rețineți că
modificările dvs. sunt efectuate de fapt în tabele, nu doar în foaia de date de interogare.
Interogările sunt de două feluri: de selectare și de acțiune. O interogare de selectare preia
datele și le face disponibile pentru utilizare. Puteți să vizualizați rezultatele interogării pe ecran, să le
imprimați sau să le copiați în clipboard. Alternativ, puteți utiliza rezultatul interogării ca sursă de
înregistrări pentru un formular sau un raport.
O interogare de acțiune, după cum sugerează și numele, efectuează o activitate cu datele.
Interogările de acțiune pot fi utilizate pentru a crea tabele noi, a adăuga date la tabele existente, a
actualiza datele sau a le șterge.
Rezultatele obținute in urma unui query de tip select arată de forma unui tabel:
Query4
Marca Pondere31 Pondere32 Pondere33 Pondere34 Nota1 Performante
1 50 25 15 10 292 Performante bune
Tabel 3.3.1. – Rezultat query
Figura 3.3.1. – Query de up date pentru evaluarea obiectivelor angajaților
Crearea acestui query se poate face în două
variante. Cea mai frecvent folosita este cea folosind
interfața MS Access pentru adaugarea tabelelor in query ,
după care se va deschide o fereastră în care vom putea
adăuga cu click drepate atatea tabele din baza de date câte
avem nevoie. Pentru ca să existe query -ul, trebuie sa avem
cel putin o tabelă în cazul query -urilor de tip select.
După ce am adăugat tabelele, in cazul nostru 4 tabele din baza noastră de date, este necesar să
adaugăm cele 7 câmpuri pe care le -am afișat în tabelul 3.3.1. de mai sus. De reținut este ca daca nu
adaug niciun câmp in query, nu -l vom putea rula pentru că nu are ce să ne afișeze. În figura 3.3.3. vă
prezint interfața query -ului n ostru, Query4.
Figura 3.3.3. – Query cu legături între mai multe tabele
Cea de -a doua posibilitate de a crea acest query este prin a scrie codul MySQL corespunzător
figurei 3.3.3. Codul MySQL trebuie sa respecte ordinea comenzilor, în cazul de fața aceastea sunt
SELECT – FROM – WHERE, așa cum se poate vedea în codul sursă de mai jos:
SELECT AngajatiEvaluati.Marca, EvaluarePrezent.Pondere31,
EvaluarePrezent.Pondere32, EvaluarePrezent.Pondere33, EvaluarePrezent.Pondere34,
IndicatoriCompetente1.No ta1, PlanDezvoltare.Performante
FROM ((AngajatiEvaluati INNER JOIN EvaluarePrezent ON AngajatiEvaluati.Marca =
EvaluarePrezent.Marca) INNER JOIN IndicatoriCompetente1 ON EvaluarePrezent.Marca =
IndicatoriCompetente1.Marca) INNER JOIN PlanDezvoltare ON Indi catoriCompetente1.Marca =
PlanDezvoltare.Marca
WHERE ((AngajatiEvaluati.Marca)=1);
Figura 3.3.2. – Query design
3.4. Rapoarte
Rapoartele sunt elementele utilizate pentru a formata, a rezuma și a prezenta date. De obicei,
un raport răspunde la o anumită întrebare, cum ar fi „Câți bani am primit de la fiecare client anul
acesta?” sau „În ce orașe se află clienții noștri?” Fiecare raport poate fi formatat pentru a prezenta
informațiile în cel mai lizibil mod cu putință.
Un raport poate fi rulat în orice moment și va reflecta î ntotdeauna datele curente din baza de
date. Rapoartele sunt formatate, în general, pentru a fi tipărite, dar pot, de asemenea, să fie vizualizate
pe ecran, să fie exportate în alt program (de exemplu pentru o editare ulterioara se pot exporta în MS
Word) sau să fie trimise ca atașări la un mesaj de e -mail.
3.5. Formulare
Formularele vă permit să creați o interfață de utilizator în care puteți să introduceți și să editați
date. Acestea conțin adesea butoane de comandă și alte controale care efectuează dive rse activități.
Puteți crea o bază de date fără a utiliza formulare dacă editați pur și simplu datele din foile de date
ale tabelelor. Cu toate acestea, majoritatea utilizatorilor de baze de date preferă să utilizeze formulare
pentru a vizualiza, a introdu ce și a edita datele din tabele.
Puteți programa butoanele de comandă să determine ce date apar pe formular, să deschidă alte
formulare sau rapoarte sau să efectueze diverse alte activități. De exemplu, puteți avea un formular
numit „Formular clienți”, în care lucrați cu datele clienților. Acesta poate avea un buton care deschide
un formular de comandă, unde puteți introduce o nouă comandă pentru acel client.
Formularele vă permit și să controlați modul în care alți utilizatori interacționează cu datele
din baza de date. De exemplu, puteți crea un formular care afișează numai anumite câmpuri și permite
doar efectuarea anumitor operațiuni. Acest lucru contribuie la protejarea datelor și vă asigură că datele
sunt introduse corect.
3.6. Macrouri (sau macrocomenzi)
Macrocomenzile din Access pot fi considerate un limbaj de programare simplificat, pe care îl
puteți utiliza pentru a adăuga funcționalitate la baza de date. De exemplu, puteți atașa o
macrocomandă la un buton de comandă dintr -un formula r, astfel încât macrocomanda să ruleze ori
de câte ori se face clic pe buton. Macrocomenzile conțin acțiuni care efectuează activități, cum ar fi
deschiderea unui raport, rularea unei interogări sau închiderea bazei de date. Majoritatea operațiunilor
cu ba ze de date pe care le faceți manual pot fi automatizate utilizând macrocomenzi, astfel că acestea
vă ajută să economisiți mult timp.
3.7. Module
Modulele, la fel ca macrocomenzile, sunt obiecte pe care le puteți utiliza pentru a adăuga
funcționalități în baza de date. În vreme ce macrocomenzile se creează în Access, alegând dintr -o
listă de acțiuni de macrocomandă, modulele sunt scrise în limbajul de programare Visual Basic for
Applications (VBA). Un modul este o colecție de declarații, instrucțiuni și pr oceduri stocate împreună
ca o unitate. Un modul poate fi un modul de clasă sau unul standard. Modulele de clasă sunt atașate
la formulare sau rapoarte și conțin, de obicei, proceduri specifice formularului sau raportului la care
sunt atașate. Modulele stan dard conțin proceduri generale care nu sunt asociate cu alt obiect.
Modulele standard sunt listate sub Module în Panoul de navigare, în timp modulele de clasă nu sunt.
Capitolul 4
Conexiunea aplicației cu baza de date
În acest capitol vă voi prezenta cum am făcut conexiunea între aplicația realizat ă in MS Excel
cu Visual Basic pentru Aplicații si baza de date creată in MS Access.
Întreaga interacțiune între utilizator si aplicația de evaluare a performanțelor angajaților se
face în progr amul Microsoft Excel , prin intermediul form -urilor create în VBA.
Utilizatorul aplicației, adică evaluatorul angajaților va introduce informațiile necesare
evaluării în form -urile create atât pentru evaluarea competențelor cât si pentru evaluarea obiectivelor
angajaților. Atunci când utilizatorul va salva informațiile ad augate în formul activ si va trece la
urmatarea etapa de evaluare a performanțelor angajaților, informațiile se vor salva în foaia de lucru a
MS Excel .
Pentru salvarea informației din form in foaia de lucru, am folosit în MS Excel funcția de
definire a numelor. Astfel am definit pentru fiecare variabilă din formul creat in VBA câte un nume
explicit in foaia de lucru MS Excel. În figura 4.2. prezint din Name Manager o parte din numele
definite în foaia de lucru.
Desigur că salvarea informației o puteam face și direct în foaia de lucru, dar am ales definirea
numelor (cu nume explicite) pentru a putea avea o trasabilitate a informației și a putea urmării mai
ușor decât prin celule unde se stochează informația adăugată de evaluator.
Salvarea informației în locația unde este definit un nume în foaia de MS Excel am facut -o prin
codul de atribuire din următorul exemplu:
BNota101 = Range("Nota101").Value
unde variabila de tip numeric Bnota101 va lua valoarea numelui predefinit Nota101.
Figura 4.1. – Interfața userform
Dacă nu aș fi folosit definirea de nume, codul de atribuire a valorii din exemplul de mai sus
ar fi arătat astfel:
BNota101 = Range(" L24").Value
și în cazul în care am fi vrut să modificăm ceva în codul sursă trebuia mai întâi sa căutăm in foaia de
lucru locația la care voiam sa facem referire.
Figura 4. 2. – Manager de nume definite in MS Excel
Dupa ce se vor evalua toate cele 15 competente cu note de la 1 la 5 va rezulta o nota finala
calculată ca medie aritmetică a celor 15 note. Aceasta nota finala a competențelor reprezintă
indicatorul de competențe a angajatului, la care voi reveni mai târziu in acest capitol.
După ce se vor evalua toate cele 4 obiective st abilite anterior cu procente de îndeplinire de la
0% la 100% va rezulta o nota finala, calculata ca medie ponderata a celor 4 note, astfel un angajat
care și -a îndeplinit toate obiectivele in procent de 100% va avea nota maxima 1.
La sfârsitul evaluării vom avea două note, una în intervalul 1..5 și
alta în intervalul 0..1, și astfel automat va fi generat un grafic de
performanțe ca cel din Figura 4.3, unde pe verticala este nota evaluarii
competențelor iar pe orizontală este nota ob iectivelor individuale sabilite
anterior.
Figura 4.3
Legătura dintre cele doua fisiere create, unul in Microsoft Excel si celalalt in Microsoft
Access este realizată prin cod VBA, cod adaugat în fișierul M S Excel. Atunci c ând avem deschis
fisierul Excel și apel ăm codul VBA de conectare la fisierul MS Access, acesta din urma este deschis
și se pot face modific ări în tabelele sale. Aceste modificări se fac conform codului VBA scris in
Excel.
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & ThisWorkbook.Path &
"\EPADB.accdb" ''; Jet OLEDB:Database Password=;"
Set cmd = New ADODB.Command
cmd.CommandType = adCmdText
q1 = "UPDATE [IndicatoriCompetente1] SET [IndicatoriCompetente1].[Not a101] = " &
BNota101 & ", [IndicatoriCompetente1].[Nota102] = " & BNota102 & ",
[IndicatoriCompetente1].[Nota103] = " & BNota103 & ", [IndicatoriCompetente1].[Nota104] = "
& BNota104 & ", [IndicatoriCompetente1].[Nota105] = " & BNota105 & ",
[IndicatoriCom petente1].[Nota106] = " & BNota106 & ", [IndicatoriCompetente1].[Nota107] = "
& BNota107 & ", [IndicatoriCompetente1].[Nota108] = " & BNota108 & ",
[IndicatoriCompetente1].[Nota109] = " & BNota109 & ", [IndicatoriCompetente1].[Nota110] = "
& BNota110 & ", [IndicatoriCompetente1].[Nota111] = " & BNota111
q2 = ", [IndicatoriCompetente1].[Nota112] = " & BNota112 & ",
[IndicatoriCompetente1].[Nota113] = " & BNota113 & ", [IndicatoriCompetente1].[Nota114] = "
& BNota114 & ", [IndicatoriCompetente1].[Nota115] = " & BNota115 & ",
[IndicatoriCompetente1].[Nota1] = " & bNota1 & ", [IndicatoriCompetente1].[Nota1istoric] = "
& BNota1istoric & ", [IndicatoriCompetente1].[Calificativ1] = '" & BCalificativ1 & "',
[IndicatoriCompetente1].[Calificativ1istoric] = '" & BCalif icativ1istoric & "' WHERE
([IndicatoriCompetente1].[Marca]=" & BMarca & ");"
cmd.CommandText = q1 & q2
cmd.ActiveConnection = cn.ConnectionString
cmd.Execute
cn.Close
Deschiderea fișierului MS Access se face prin crearea unei conexiuni ADODB cu ajutorul
comenzii „Set cn = New ADODB.Connection” , deschiderea propri -zisă a bazei de date prin comanda
„cn Open…”, deschiderea unei comenzi noi în baza de date prin comanda „Set cmd = New
ADODB.Command” și execuția codului salvat în cele doua variab ile q1 si q2 cu comenzile
„cmd.CommandText = q1 & q2 ” și „cmd.Execute ”. După ce am executat codul MySQL salvat în
variabilele q1 si q2 am închis baza de date prin comanda „cn.Close”.
Capitolul 5
Concluzii
Bibliografie
[1] Duane Birnbaum , Microsoft® Excel VBA Programming for the Absolute Beginner Second
Edition , Cengage Learning PTR , Iunie 2007
[2] Michael Vine , Microsoft® Access VBA Programming for the Absolute Beginner Second Edition ,
Cengage Learning PTR , Aprilie 2007
[3] https://powerspreadsheets.com/excel -vba-inputbox/
[4] https://www.academia.edu/29120162/Excel_VBA
[5] https://en.wikipedia.org/wiki/Visual_Basic_for_Applications
[6] https://support.office.com/ro -ro/
[7] http://www.umfcv.ro/files/0/3/03_Baze%20de%20date.pdf
[8] https://www.youtube.com/watch?v=PU8ACyYxJBk
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI [603357] (ID: 603357)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
