1
Crearea aplicaiilor grafice cu limbajul Visual Basic21Crearea aplicaiilor grafice cu limbajul Visual Basic
21.1Limbajul Visual Basic
21.1.1Tipuri de date standard
51.1.2Instruciuni
71.1.3Funcii i proceduri
91.1.4Tipuri de date definite de utilizator
91.2Mesaje i evenimente
101.2.1Evenimente
131.2.2Crearea unei proceduri asociate unui eveniment
181.2.3Meniurile aplicaiei Visual Basic
191.2.4Casete de mesaj i casete de text
201.2.5Definirea unei proceduri asociate unei casete text
231.2.6Definirea unei proceduri asociate unui buton
271.3Navigarea n tabela rezultat a unui formular
331.4Crearea unei tabele rezultat pentru un formular i navigarea n tabel
401.5Afiarea numelor cmpurilor tabelei rezultat
431.6Utilizarea instruciunilor SQL pentru prelucrarea bazei de date
461.7Probleme propuse
461.8Intrebri de control
1 Crearea aplicaiilor grafice cu limbajul Visual BasicFormularele i rapoartele bazei de date conin obiecte grafice, numite n capitolele anterioare controale, ce permit afiarea datelor din baza de date. In formularele i rapoartele create anterior am utilizat doar casete de text, liste i casete combinate ce afiau valori. Este posibil s adugm i alte obiecte grafice, cum ar fi butoanele care s ne permit s interacionm cu formularele sau rapoartele create: la un clic pe buton s se execute un program ce efectueaz calculele dorite. Asemenea programe se scriu n limbajul Visual Basic.
1.1 Limbajul Visual Basic
1.1.1 Tipuri de date standardVariabilele unui limbaj se clasific dup tipul lor. Tipul unei variabile este mulimea valorilor pe care le poate lua acea variabil i operaiile ce se pot efectua cu acele valori. Tipul unei variabile este fcut explicit cu o declaraie de tip. Tipurile predefinite n limbajul Visual Basic sunt cele din Tabelul 1.TipSemnificaieDimensiune n octeiDomeniul de valori
LongNumere ntregi4(-231 231)
IntegerNumere ntregi2(-215 - 215 )
SingleNumere reale n simpl precizie4(-1038 1038)
DoubleNumere reale n simpl precizie8(-10307 10307)
BooleanValoare boolean-True , False
Stringir de caractere--
CurrencyValori monetare--
DateDat calendaristic --
Tabelul 1. Tipurile de date ale limbajului Visual Basic.
Numele de variabile (identificatorii) ncep cu o liter sau caracterul _ (underscore), i pot conine litere, cifre i caracterul _. Literele mari nu sunt deosebite de cele mici. Variabilele sunt definite cu instruciunea Dim cu forma
Dim NumeVariabila As tip, NumeVariabila As tip, unde tip este tipul variabilei respective.
Exemple.
Dim nume As String
Dim varsta As Integer
Dim salariu As CurrencyInstruciunea Dim poata defini i tablouri cu una sau mai multe dimensiuni. Forma instruciunii pentru definirea unui vector este
Dim NumeTablou (nre) As tip
unde nre este numrul de elemente ale vecorului, iar tip tipul elementelor vectorului. Indicii componentelor ncep de la zero. De exemplu, instruciunea
Dim vec(5) As Single
definete un vector cu cinci componente reale. Indicii componentelor sunt 0, 1, , 4.
Forma instruciunii pentru definirea unei matrice esteDim NumeTablou (nl, nc) As tip
unde nc i nl sunt numrul de linii i de coloane ale matricei. De exemplu, Dim mat (2, 3) As Integer
definete o matrice cu dou linii i trei coloane cu elemente ntregi. Elementele matricei au indicii (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2).Pentru toate tipurile de date exist dou operaii fundamentale: atribuirea i compararea. Operatorul de atribuire este =. Forma unei instruciuni de atribuire este
NumeVariabila = expresie
Operatorii de comparare sunt
=, =,
Expresiile relaionale au forma
expresie aritmetic operator de comparare expresie aritmetic
Rezultatul unei expresii relaionale este True (adevrat) sau False (fals).
1.1.1.1 Tipurile numerice
Operatorii pentru tipurile numerice sunt +, -, *, /, \, Mod i ^. In cazul operatorului de mprire /, operanzii sunt convertii n numere reale dac este necesar, dup care se efectueaz mprirea. In cazul operatorului \ ctul se rotunjete la un numr ntreg. Operatorul Mod d restul mpririi a dou numere cu operatorul \. Operatorul ^ efectueaz ridicarea la putere.
Expresiile aritmetice se evalueaz dup regulile cunoscute: cea mai mare prioritate o are operatorul ^, apoi operatorii *, /, \, Mod i, n final, operatorii + i -. Pentru a modifica ordinea de evaluare a operatorilor se utilizeaz paranteze rotunde, ( i ). Tabelul 2 prezint exemple de expresii aritmetice.ExpresieRezultat
4 / 31.3333333
4 \ 31
5 Mod 32
6 / 3 * 48
6 / (3 * 4)0.5
2.5 ^ 26.25
Tabelul 2. Exemple de expresii aritmetice.Numerele se scriu dup regulile cunoscute. Numerele reale se scriu cu partea ntreg separat de cea subunitar prin punct zecimal. Exist constanta predefinit PI.Funciile matematice standard ale limbajului sunt
sinlogsqr
cosexpabstan
Funcia log calculeaz logaritmul natural, funcia sqr calculeaz rdcina patrat. Toate aceste funcii au un parametru de tip Double. Argumentele funciilor trigonometrice sunt n radiani. Putem defini i constante cu nume cu instruciuneaConst NumeConstant As tip = valoare
De exemplu putem defini numrul e ca
Const E As Single = 2.71
1.1.1.2 Tipul String
Variabilele de tip String conin iruri de caractere. Constantele tip ir de caractere se scriu ntre ghilimele. Operatorul & realizeaz concatenarea irurilor.
Exemple de constante tip String sunt "abcd" sau irul vid "". Concatenarea irurilor "xyz" i "a+b-c" se face cu expresia"xyz" & "a+b-c"
i are ca rezultat irul "xyza+b-c".O funcie util la lucrul cu iruri este funcia Len() care are ca parametru un ir i ca rezultat lungimea irului. O alt funcie este Val() ce convertete un ir de caractere ntr-un numr. Funcia Val() ce are ca parametru irul de caractere i ca rezultat numrul rezultat prin conversie.1.1.1.3 Tipul Boolean
Variabilele de tip Boolean au valoarea adevrat sau fals.Aceste valori sunt reprezentate prin constantele booleene predefinite True i False. Operatorii booleeni sunt And, Or i Not. Aceti operatori se definesc cu tabelele de adevr de mai jos.XNot X
FalseTrue
TrueFalse
Tabelul 3. Definiia operatorului Not.XYX And Y
FalseFalseFalse
FalseTrueFalse
TrueFalseFalse
TrueTrue
Tabelul 4. Definiia operatorului And.XYX Or Y
FalseFalseFalse
FalseTrueTrue
TrueFalseTrue
TrueTrueTrue
Tabelul 5. Definiia operatorului Or.Expresiile booleene conin constante, variabile booleene i expresii relaionale, i operatorii And, Or i Not. Prioritile operatorilor booleeni sunt: Not are cea mai mare prioritate, apoi And i Or. Pentru a modifica ordinea de execuie a operatorilor booleeni, se pot utiliza paranteze rotunde, ( i ). La evaluarea unei expresii booleene, prima dat se evalueaz expresiile relaionale.Tabelul 6 arat exemple de expresii relaionale i booleene.
ExpresieRezultat
8 < 10True
12 > 5 And 5 >= 6False
Tabelul 6. Exemple de expresii relaionale i booleene.1.1.2 Instruciuni
In programe se pot insera linii cu comentarii n dou moduri:
cu instruciunea Rem; dup cuvntul cheie Rem urmeaz comentariul,
un apostrof, dup care urmeaz comentariul.
O instruciune se poate scrie pe mai multe linii. Pentru continuare pe linia urmtoare se utilizeaz un spaiu i caracterul _.1.1.2.1 Instruciunea IfInstruciunea If execut un grup de instruciuni n funcie de valoarea unei expresii booleene. Cea mai simpl form a instruciunii esteIf condiie then
S
End If
Condiia este orice expresie relaional sau boolean, iar S este un grup de instruciuni. Modul de execuie al instruciunii If este urmtorul:1. se evalueaz condiia,
2. cnd condiia are valoarea True se execut grupul de instruciuni S.
O alt form a instruciunii If este
If condiie
S1
Else
S2
End If
Aici S1 i S2 sunt grupuri de instruciuni. Modul de execuie al instruciunii este1. se evalueaz condiia,
2. cnd condiia are valoarea True se execut grupul de instruciuni S1, iar cnd are valoarea False se execut grupul de instruciuni S2.
Instruciunea If are nc o form care permite testarea a mai multor condiiiIf condiie1
S1
Elseif condiie2
S2
Eleseif condiien
Sn
Else
Sp
End If
Aceast instruciune se execut astfel :
1. se evalueaz condiie1,
2. cnd condiie1 are valoarea True se execut S1 i se prsete instruciunea If,
3. cnd condiie1 are valoarea False se evalueaz condiie2,
4. cnd condiie2 are valoarea True se execut S2 i se prsete instruciunea If,
5. ..
6. cnd toate condiiile anterioare au avut valoarea False se evalueaz condiien,
7. cnd condiien este True se execut Sn i se prsete instruciunea If,
8. cnd condiien este False se execut Sp i se prsete instruciunea If.
1.1.2.2 Instruciunea Select Case
Forma instruciunii Select Case este urmtoare
Select Case expresie
Case condiie1
S1
Case condiie2
S2
Case condiien
Sn
End Select
In aceast instruciune S1, S2, , Sn sunt grupuri de instruciuni dintre care se execut unul singur, cel al crui condiie este satisfcut de expresie. Modul de execuie al instruciunii Select Case este urmtorul:1. se evalueaz expresia, 2. dac expresia satisface condiie1 se execut S1 i se prsete instruciunea,
3. dac expresia satisface condiie2 se execut S2 i se prsete instruciunea,
4.
5. cnd toate condiiile anterioare au fost false, dac expresia satisface condiien se execut Sn i se prsete instruciunea.1.1.2.3 Instruciunea For
Instruciunea For execut repetat un grup de instruciuni cu modificarea dup fiecare execuie a unei variabile de control. Forma instruciunii For esteFor counter = valstart To valend Step valpas
S
Next
counter este variabila de control a instruciunii For,
valstart este valoarea iniial a variabilei counter,
valend este valoarea final a variabilei counter,
valpas este valoarea cu care este modificat variabila counter la fiecare pas,
S este u grup de instruciuni.
Instruciunea For se execut astfel:
1. variabila counter primete valoarea valstart,
2. se execut grupul de instruciuni S,
3. se modific valoarea variabilei counter cu valpas,4. dac valoarea variabilei counter este