You are on page 1of 49

Bi 8: Ngn ng Visual Basic

I. Gii thiu
1. Khi nim Visual Basic l ngn ng lp trnh dng lin kt, iu khin ng dng theo nhu cu ring thnh mt h thng chng trnh mch lc, mm do (c u th hn l dng tp lnh Macro). Th tc (Procedure) L cc on lnh c vit thc hin cc thao tc no . C hai loi th tc: Sub Procedures (th tc con) v Function Procedures (th tc hm). Th tc bin c (Event Procedure) L th tc s c thi hnh p li mt bin c no , c dng trong biu mu hoc bo co.

2.

3.

Bi 8: Ngn ng Visual Basic


I. Gii thiu
4. Th tc con (Sub Procedures) Th tc con l on chng trnh dng thc hin theo cc yu cu no nhng khng tr v gi tr. Th tc hm (Function Procedures) Th tc hm l on chng trnh dng thc hin theo cc yu cu no v tr v mt kt qu cho chng trnh. Cch s dng th tc Ta c th s dng th tc trong cc trng hp sau: Trong cc th tc con hoc cc hm khc. Trong biu thc tnh ton ca truy vn, biu mu, bo co, tp lnh. Trong iu kin cho truy vn hoc tp lnh.

5.

6.

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
1. Th tc bin c (Event Procedure) a. C php tng qut ca th tc bin c Th tc con (Sub Procedures):
[Private | Public] Sub <Tn th tc> [<Cc tham s>] [<Cc dng lnh>] [Exit Sub] [<Cc dng lnh>] End Sub

Lu : Th tc con khng tr v gi tr.

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
1. Th tc bin c (Event Procedure) a. C php tng qut ca th tc bin c Th tc hm (Function Procedures):
[Private | Public] Function <Tn hm> [<Cc tham s>] [As <Kiu d liu>] [<Cc dng lnh>] [Exit Function] [<Cc dng lnh>] [<Tn hm> = <Gi tr tr v>] End Function

Lu : Hm lun tr v gi tr. Gi tr tr v c th c hoc khng.

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
1. Th tc bin c (Event Procedure)
a. C php tng qut ca th tc bin c ngha: Private, Public: (Ty chn) khai bo phm vi hot ng ca th tc con hoc hm. <Tn th tc bin c>: Tn ca th tc bin c (kt hp gia tn i tng v tn ca bin c cch nhau bi du gch di), phn tn bt buc phi c. <Cc tham s>: Danh sch nhng tham s c truyn vo t bn ngoi, nu c t hai tham s tr ln, chng s cch nhau bi du phy (,). <Cc dng lnh>: Danh sch nhng cu lnh s c thc hin trong th tc bin c. Exit Sub, Exit Function: Cu lnh dng thot khi th tc con hoc hm, cu lnh ny c th c hoc khng, ty vo cch x l ca th tc con hoc hm.

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
1. Th tc bin c (Event Procedure) b. Quy trnh to th tc bin c to mt th tc bin c, s dng ca s Properties Click chn Tab Event, chn bin c ca iu khin, sau Click nt , xut hin hp thoi Choose Builder, Click chn Code Builder, Click OK.

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
1. Th tc bin c (Event Procedure) b. Quy trnh to th tc bin c Trong ca s Microsoft Visual Basic, nhp lnh cho th tc ti v tr con tr.

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
1. Th tc bin c (Event Procedure) b. Quy trnh to th tc bin c
V d: Vit th tc ng biu mu (gi s nt lnh c tn l cmdClose). S dng bin c On Click, ta g lnh:
Private Sub cmdClose_Click() On Error GoTo Err_cmdClose_Click DoCmd.Close Exit_cmdClose_Click: Exit Sub Err_cmdClose_Click: MsgBox Err.Description Resume cmdClose_Click End Sub

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
2. Th tc con (Sub Procedures), th tc hm (Function Procedures) a. To mi th tc con hoc hm Cch to: Trong ca s son tho ca Microsoft Visual Basic, Click chn Menu Insert Procedure. Hp thoi Add Procedure xut hin

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
2. Th tc con (Sub Procedures), th tc hm (Function Procedures) a. To mi th tc con hoc hm Nhp tn ca th tc con hoc hm trong khung Name. Chn kiu th tc con (Sub) hoc hm (Function) hoc thuc tnh (Property) trong phn Type (Property dng to ra cc thuc tnh). Chn phm vi nh hng cho th tc con hoc hm: Public: Ton b CSDL. Private: Ring cho Module ny (Module l tp hp cc khai bo v cc th tc trong cng mt ni).

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
2. Th tc con (Sub Procedures), th tc hm (Function Procedures) a. To mi th tc con hoc hm V d: To hm ni hai chui nh sau:
Public Function NoiChuoi (v_strChuoi1 As String, _ v_strChuoi2 As String) As String ' Khai bo bin tn 'strTemp' kiu chui Dim strTemp As String ' Gn gi tr cho bin strTemp strTemp = Trim(v_strChuoi1) & Space(1) & Trim(v_strchuoi2) ' Gn kt qu vic tnh ton cho tn hm NoiChuoi NoiChuoi = strTemp End Function

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
2. Th tc con (Sub Procedures), th tc hm (Function Procedures) b. Cch gi th tc con hoc hm C php: [Call] <Tn th tc con | hm> [(<Cc i s>)] ngha: Call: C th c hoc khng <Tn th tc | hm>: Bt buc phi c. <Cc i s>: C th c hoc khng, ty vo s khai bo ca th tc con hoc hm.

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
2. Th tc con (Sub Procedures), th tc hm (Function Procedures) b. Cch gi th tc con hoc hm V d: gi hm NoiChuoi, ta c cc cch sau: Trng hp s dng cu lnh Call: Phi s sng cp du ngoc n. Call NoiChuoi (Info, world)

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
2. Th tc con (Sub Procedures), th tc hm (Function Procedures) a. Cch gi th tc con hoc hm V d: gi hm NoiChuoi, ta c cc cch sau: Trng hp khng s dng cu lnh Call: Khng c s dng cp du ngoc n tr khi hm hoc th tc ch c mt i s. NoiChuoi Info, world

Bi 8: Ngn ng Visual Basic


II. Cch xy dng
2. Th tc con (Sub Procedures), th tc hm (Function Procedures) a. Cch gi th tc con hoc hm V d: gi hm NoiChuoi, ta c cc cch sau: Gi hm v gn kt qu tr v cho bin strNoiChuoi: Phi s dng cp du ngoc n. Trong trng hp ny khng c s dng cu lnh Call.
Dim strNoiChuoi As String strNoiChuoi = NoiChuoi (Info, world)

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
1. Bin (Variable)
Bin l tn ca vng nh tm thi dng lu tr cc gi tr tm trong chng trnh. Cch khai bo bin: Trc khi dng cc bin, ta nn khai bo chng phn u ca th tc hoc u Module.

Dim <Tn bin> [As <Kiu d liu>], [<Tn bin> [As <Kiu d liu>], ]
Tn bin: Di khng qu 255 k t, bt u bng k t ch, khng cha cc khong trng v cc k t c bit (. ! @ & $ #), khng c trng tn vi cc tn bin, th tc, hm khc trong cng mt phm vi hot ng v khng c trng vi cc t kha ca Visual Basic. Tn bin khng phn bit ch hoa ch thng.

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
1. Bin (Variable) Phm vi nh hng: Nu khai bo trong vng Declaration ca Module: C tc dng trong ton Module . Khai bo trong th tc: Ch c nh hng trong th tc m thi.
Khai bo bin trong Declaration

Khai bo bin trong th tc

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
2. Kiu d liu (Data Type) Dng ch r kiu d liu no m bin s lu tr Kiu d liu c bn:
ngha Kch thc lu tr Min gi tr 0 n 255 True hoc False -32,768 n 32,767

Tn Byte Boolean Integer

S nguyn dng 1 Byte Logic S nguyn 2 Bytes 2 Bytes

Single

S thc

4 Bytes

m: -3.402823E38 n -1.401298E-45 Dng: 1.401298E-45 n 3.402823E38

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
2.
Tn Decimal

Kiu d liu (Data Type) Kiu d liu c bn:


ngha S thp phn Kch thc lu tr 14 Bytes Min gi tr +/79.228.162.514.264.337.593.543.950.33 5 khng c phn thp phn. +/-7,9228162514264337593543950335 vi 28 ch s thp phn. S nh nht khc 0: +/-0,0000000000000000000000000001 -922,337,203,685,477.5808 n 922,337,203,685,477.5807 1/1/100 n 31/12/9999

Currency Date

Tin t Ngy

8 Bytes 8 Bytes

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
2.
Tn Double

Kiu d liu (Data Type) Kiu d liu c bn:


ngha S thc Kch thc lu tr 8 Bytes Min gi tr m: -1.79769313486231E308 n - 4.94065645841247E-324 Dng: 4.94065645841247E-324 n 1.79769313486232E308

Object

i tng

4 Bytes

String (Bin)

Chui

10 Bytes + Chiu di chui

Ti a 2 t k t

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
2. Kiu d liu (Data Type) Kiu d liu c bn:
ngha Chui Kch thc lu tr Chiu di chui Min gi tr T 0 n 65,400 k t

Tn String (gi tr c nh) Variant Variant

Chui Kiu chui

Chiu di chui 22 Bytes + Chiu di chui

T 0 n 65,400 k t Ging kiu String (Bin)

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
2. Kiu d liu (Data Type) Kiu d liu c bn: V d:
Dim bytTuoi As Byte, sngTyGia As Single Dim dtNgayBD As Date, dtNgayKT As Date Dim vntDateTmp As Variant, vntStringTmp As Variant bytTuoi = 18 sngTyGia = 15550.50 dtNgayBD = #15/07/2005# dtNgayKT = #15/08/2005# vntDateTmp = #15/08/2005# vntStringTmp = Toi da khoang 2 ty Bytes.

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
2. Kiu d liu (Data Type) Kiu d liu i tng (Object): Dng lu tr cc i tng nh CSDL, bng (Table), truy vn (Query), V d cch khai bo:
' Khai bo bin db lu a ch ca CSDL Dim db As DAO.Database ' Khai bo bin tblSinhVien lu tr bng DS SINH VIEN Dim tblSinhVien As DAO.Recordset ' Gn CSDL hin hnh cho bin db Set db = DBEngine.Workspaces(0).Databases(0) ' M bng DS SINH VIEN Set tblSinhVien = db.OpenRecordset("DS SINH VIEN", _ DB_OPEN_DYNASET)

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
3. Hng s (Const) Dng cha nhng d liu tm thi nhng khng thay i trong sut thi gian chng trnh hot ng. Cch khai bo hng:
[Public | Private] Const <Tn hng> [As <Kiu d liu>] = <Biu thc>

ngha: Biu thc: Khng c dng bin, hm ngi dng t nh ngha hoc cc hm ca VB (nh Chr), c php dng cc hm chuyn i nh CInt, CDate,

Bi 8: Ngn ng Visual Basic


III. Lm vic vi bin, kiu d liu v hng s
3. Hng s (Const) V d cch khai bo:
Const PI = 3.1416 Const MAX_AGE = 60 Const MAX_DATE = #01/01/2006# 1

Bi 8: Ngn ng Visual Basic


IV. Mt s hm chuyn i gia cc kiu d liu thng s dng
Tn Hm chuyn i i sang kiu

1
2 3 4 5 6 7 8

CBool
CByte CCur CDate CDbl CDec CInt CLng

Boolean
Byte Currency Date Double Decimal Integer Long

9
10 11

CSng
CStr CVar

Single
String Variant

Bi 8: Ngn ng Visual Basic


IV. Mt s hm chuyn i gia cc kiu d liu thng s dng
V d:
Dim dblDouble As Double Dim nInt As Integer dblDouble = 2345.5678 ' dblDouble thuc kiu Double nInt = CInt (dblDouble) ' nInt = 2346

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
1. Quy tc t tn bin v hng s a. t tn bin Tn bin c th tun theo cu trc sau: Mt s hm chuyn i gia cc kiu d liu thng s dng
<Prefix><Body><Qualifier>

Prefix: Miu t phm vi hot ng v mc ch hoc kiu d liu ca mt bin hoc th tc.

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
1. Quy tc t tn bin v hng s a. t tn bin

Prefix g

Miu t phm vi hot ng:


Phm vi v mc ch Ton cc (Global), c khai bo Public trong Module chun hoc Module ca biu mu

m
st (no prefix) v r

Cc b (Local to module or form), c khai bo Private trong Module chun hoc Module ca biu mu
Bin kiu Static Khng phi kiu Static; bin cc b trong th tc Bin c truyn theo tham tr (by Value) Bin c truyn theo tham chiu (by Reference).

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
1. Quy tc t tn bin v hng s a. t tn bin
Miu t kiu d liu:
Prefix b d db Kiu d liu Boolean Double Database

dt
i n s vnt a (no prefix)

Date / Time
Long Integer String Variant Array User defined type (Bin ngi dng t nh ngha)

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
1. Quy tc t tn bin v hng s a. t tn bin
Body: Phn thn ca bin nn dng k t in hoa u mi t v k t thng, di miu t c mc ch s dng. Tn ca bin hoc hm nn c bt u vi mt ng t. VD: InitNameArray, CloseDialog. S dng nhng ch vit tt nh: Init (Initialization), Num (Number), Tbl (Table), Cnt (Count), and Grp (Group) i vi nhng ng t qu di. Khi khai bo, bn nn dng thng nht trn ton b ng dng. Khng nn khi dng Cnt, khi khc li dng Count trnh nhm ln. Chiu di tn khng qu 32 k t d c.

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
1. Quy tc t tn bin v hng s a. t tn bin Qualifier: Miu t nhng tnh cht ca bin v th tc. Chng c theo sau phn Body trnh nhm ln. V d: Nn vit strGetRecordFirst thay v vit strGetFirstRecord Cch t tn ny s lm cho cu trc ca chng trnh c tnh Logic v d hiu. Cc Qualifier thng dng: First, Last, Next, Prev (Previous), Cur (Current), Min, Max, Save, Tmp (Temp), Src (Source), Dst (Destination),

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
1. Quy tc t tn bin v hng s b. t tn hng
Tn hng c vit bng ch in hoa xen k vi k t gch di _. Tn hng khng c phn Prefix V d: USER_LIST_MAX NEW_LINE

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
2. Ch thch khi vit chng trnh
Tt c cc th tc nn c on ch thch ngn gn gii thch chc nng ca n. Phn ch thch phi miu t c mc ch s dng, tham s u vo. V d:
************************************************ Purpose: Get Value of tag XML Parameters: Name file xml, name tag xml ************************************************ Private Function GetValue(v_strFileXML As String, _ v_strTagValue As String) As String (your code goes here) End Function

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
3. nh dng chng trnh Nn nh dng chng trnh d qun l, cc khi chng trnh lng vo nhau phi c tht vo mt Tab

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
3. nh dng chng trnh
************************************************************************* ' Purpose: Get string after convert substring to Character, and subtract a value random ' Parameters: String, Random, and Step for For...Next Statement ************************************************************************* Public Function GetStrChr(v_strString As String, v_nRan As Integer, v_nStep As Integer) As String Dim strStrChr As String Dim strSubStr As String Dim i As Integer If (v_strString <> ) Then For i = 0 To Len(v_strString) - 1 Step v_nStep ' Subtract a value random strSubStr = Val(Mid(v_strString, i + 1, v_nStep)) v_nRan ' Convert Ascii to Character strStrChr = strStrChr & ChrW(strSubStr) Next i End if GetStrChr = strStrChr End Function

Bi 8: Ngn ng Visual Basic


V. Mt s quy c t tn v cch nh dng khi vit lnh trong Visual Basic
4. S dng cc ton t

Nn s dng ton t & khi ni chui v s dng ton t + khi lm vic vi d liu s. Nu dng ton t + ni chui c th gy ra li chng trnh khi s dng kiu d liu Variant. V D:
vntVar1 = "10.01 vntVar2 = 11 vntVar3 = x4 vntResult = vntVar1 + vntVar2 vntResult = vntVar1 & vntVar2 vntResult = vntVar2 + vntVar3

'vntResult = 21.01 'vntResult = 10.0111 Error

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 1. Nu ng dng ca Visual Basic trong Microsoft Access? Visual Basic l ngn ng lp trnh dng lin kt, iu khin ng dng theo nhu cu ring thnh mt h thng chng trnh mch lc, mm do (c u th hn l dng tp lnh - Macro).

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 2. Nu khi nim v th tc (Procedure), th tc bin c (Event Procedure), th tc con (Sub), th tc hm (Function) v cch s dng hm? Th tc (Procedure): L cc on lnh c vit thc hin cc thao tc no , c dng trong cc th tc hoc cc hm khc. Th tc bin c (Event Procedure): L th tc s c thi hnh p li mt bin c no , c dng trong biu mu hoc bo co.

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 2. Nu khi nim v th tc (Procedure), th tc bin c (Event Procedure), th tc con (Sub), th tc hm (Function) v cch s dng hm? Th tc con (Sub Procedures): Th tc con l on chng trnh dng thc hin theo cc yu cu no nhng khng tr v gi tr. Th tc hm (Function Procedures): Th tc hm l on chng trnh dng thc hin theo cc yu cu no v tr v mt kt qu cho chng trnh.

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 2. Nu khi nim v th tc (Procedure), th tc bin c (Event Procedure), th tc con (Sub), th tc hm (Function) v cch s dng hm? Cch s dng th tc: Ta c th s dng th tc trong cc trng hp sau: Trong cc th tc con hoc cc hm khc. Trong biu thc tnh ton ca truy vn, biu mu, bo co, tp lnh. Trong iu kin cho truy vn hoc tp lnh.

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 3. Nu c php tng qut ca th tc con v th tc hm? C php tng qut ca th tc con v th tc hm: Th tc con:
[Private | Public] Sub <Tn th tc> [<Cc tham s>] [<Cc dng lnh>] [Exit Sub] [<Cc dng lnh>] End Sub

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 3. Nu c php tng qut ca th tc con v th tc hm? C php tng qut ca th tc con v th tc hm: Th tc hm:
[Private | Public] Function <Tn hm> [<Cc tham s>] [As <Kiu d liu>] [<Cc dng lnh>] [Exit Function] [<Cc dng lnh>] [<Tn hm> = <Gi tr tr v>] End Function

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 4. Nu cch khai bo bin v cch khai bo hng? Cch khai bo bin v hng: Cch khai bo bin:
Dim <Tn bin> [As <Kiu d liu>], [<Tn bin> [As <Kiu d liu>], ]

Cch khai bo hng:


[Public | Private] Const <Tn hng> [As <Kiu d liu>] = <Biu thc>

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 5. Mun vit mt on chng trnh cho mt Button trn Form, ta s dng thao tc no sau y: a. Right Click ln Button chn Build Event, v chn Expression builder b. Double Click ln Button c. Right Click ln Button chn Build Event, v chn Code Builder d. Cc cu trn u ng

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 6. Cc cch khai bo bin trong chng trnh sau, cch khai bo bin no l ng: a. I as Integer b. I : Integer c. Dim I As Integer d. Cc cu trn u sai

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 7. Cc cch khai bo bin trong chng trnh sau, cch khai bo bin no l ng: a. TRIGIA as Currency b. DONGIA : Currency c. Dim TT as Currency d. Cc cu trn u ng

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 8. Mun gi mt th tc v d Sub G (A As Integer) lnh no sau y sai: a. G(7) b. Call G(7) c. Call G 7 d. G 7

Bi 8: Ngn ng Visual Basic


VI. Tm tt
Cu hi 9. Mun gi mt th tc v d Sub TT (A As String, B As Byte) ta dng lnh no sau y: a. TT (A, B) b. TT A , B c. Cc cu a v b u sai d. Cc cu a v b u ng

You might also like