Professional Documents
Culture Documents
GII THIU
Trang 2
Trang 3
B I M U
Trang 4
Trang 5
2. Khi ng
Sau khi gi t VB, c th khi ng t thanh tc v ca Windows nh sau:
Start | Programs | Microsoft Visual Studio 6.0 | Microsoft Visual Basic
6.0
Trang 6
3
2
5
Trang 7
3. Lu tr
Lm vic trn VB l lm vic trn cc d n (Project). Ti mt thi im c
th ch lm vic vi mt d n no , cng c khi lm vic trn mt tp hp cc
d n (Project Group). Tuy nhin khun kh gio trnh ny ch ni v lm vic
trn mt d n n l.
D n l cng c qun l tt c nhng g cn phi to ra cho mt d n phn
mm vit trn VB. Hnh di m t cc ni dung c th c qun l bi mt d
n mang tn quan_ly_canbo
trn thanh
Ch :
Do mi d n VB s bao gm rt nhiu tp tin, chng lun phi c i cng nhau. Do
vy ng vi mi d n mi hy to mt th mc v ghi li ton b nhng g lm c
v lin quan ln th mc ny. iu ny rt thun li khi phi di chuyn d n n
nhiu my, nhiu v tr khc nhau lm vic.
4. M d n c
m mt d n ra lm vic trn VB thao tc nh sau:
Nhn nt Open
Trang 9
Trang 10
CHNG
LP TRNH VB CN BN
Chng ny tp trung gii thiu chi tit cc thnh phn lin quan n lp trnh
cn bn trn VB. l nhng iu kin ti thiu, cn thit nht hc bt k
mt ngn ng lp trnh no. C th hc vin s nm c:
-
Trang 11
Trang 12
Trang 13
1.2 Bin
a. Bin khai bo bin
Bin (Variable) l thnh phn ca mt ngn ng lp trnh, gip x l d liu
mt cch linh hot v mm do.
Thng thng trong cc ngn ng lp trnh, mi bin khi tn ti phi c
nh kiu, tc l phi nhn mt kiu d liu xc nh. Tuy nhin trong VB th
khng, mi bin c th nh kiu (c khai bo trc khi s dng) hoc khng
nh kiu (khng khai bo vn s dng c). Trong trng hp ny bin s
t nhn kiu gi tr Variant.
Bin c th c khai bo bt k u trong phn vit lnh ca VB. Tt
nhin, bin c hiu lc nh khai bo ch bt u t sau li khai bo v m bo
phm vi hot ng nh qui nh. V bin trong VB hot ng rt mm do,
nn c nhiu cch khai bo bin nh:
V d 1: Khai bo bin i kiu Integer
Dim i As Integer
4 To 9,
3 To 5) As Double
b. Phm vi bin
Nh chng ta bit, mi bin sau khi c khai bo n s nhn mt kiu d
liu v c mt phm vi hot ng, tc l li khai bo bin ch c tc dng trong
nhng vng c ch nh; ngoi vng ch nh bin s khng c tc dng,
nu c tc dng s theo ngha khc (bin cc b kiu Variant chng hn).
Bin cc b:
Trang 15
1.3 Hng
a. Khai bo hng
Hng (Constan) l i lng c gi tr xc nh v khng b thay i trong bt
k hon cnh no. Tng ng vi tng kiu d liu, s c nhng hng tng
ng.
Trang 16
b. Phm vi hng
Tng t nh bin, hng cng c nhng phm vi hot ng ca n. Hng
c khai bo trong th tc no, hoc cc b trong form, report hoc module no
s ch c tc dng trong phm vi .
Mun hng c phm vi ton cc, phi c khai bo sau t kho Public
Const, ti vng Decralations ca mt module no nh sau:
Public Const a = 12
Trang 17
2. Cc cu trc lnh VB
Cc cu trc lnh l thnh phn c bn ca mi ngn ng lp trnh. Thng
thng cc ngn ng lp trnh u c cc cu trc lnh nh nhau: lnh x l iu
kin, lnh lp bit trc s vng lp, lnh lp khng bit trc s vng lp,.. Tuy
nhin cch th hin (c php) mi cu trc lnh c th khc nhau tu thuc vo
mi ngn ng lp trnh. Hn na, mi ngn ng cng c th c mt s im
khc bit, c trng trong mi cu trc lnh.
Cng ging nh nhiu ngn ng lp trnh hin i khc, cc cu trc lnh
trong VB u tun th cc nguyn tc:
- C cu trc: mi cu trc lnh u c t kho bt u v mt t kha bo
hiu kt thc;
- Thc hin tun t (loi tr trng hp c bit th tc Goto <Label>);
- C kh nng lng nhau;
ngha lnh trn l: nu <iu kin> = True th thc hin cc lnh trong
<th tc1>, tri li thc hin cc lnh trong <th tc 2>.
Phn trong cp du ngoc vung [..] c th c hoc khng c trong cu lnh,
tu thuc vo mc ch x l.
V d 1: Kim tra v tr li mt s l chn hay l?
If so Mod 2 = 0 Then
Msgbox L s chn !
Else
Msgbox L s l !
Trang 18
End If
- Janualy
- February
12
- December
>12 - Khng xc nh
Nu dng lnh If hon ton c th p ng c bi ton ny, thay vo s
l mt tp hp 12 lnh If .. Else .. End If nh sau:
If so = 1 Then
thang = "Janualy"
Else
If so = 2 Then
thang = "February"
Else
If so = 3 Then
thang = "March"
Else
If so = 4 Then
thang = "April"
Else
If so = 5 Then
thang = "May"
Trang 20
Else
If so = 6 Then
thang = "June"
Else
If so = 7 Then
thang = "July"
Else
If so = 8 Then
thang = "August"
Else
If so = 9 Then
thang = "September"
Else
If so = 10 Then
thang = "October"
Else
If so = 11 Then
thang = "November"
Else
If so = 12 Then
thang = "December"
Else
thang = "Khng xc nh"
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Tuy nhin khi s dng Select Case .. End Select, cu trc s gn gng v
sng sa hn nhiu. C th nh sau:
Select Case so
Case 1
thang =
Case 2
thang =
Case 3
thang =
Case 4
thang =
Case 5
thang =
Case 6
thang =
"Janualy"
"February"
"March"
"April"
"May"
"June"
Trang 21
Case 7
thang
Case 8
thang
Case 9
thang
Case 10
thang
Case 11
thang
Case 12
thang
Case Else
thang
End Select
= "July"
= "August"
= "September"
= "October"
= "November"
= "December"
= "Khng xc nh"
Trong :
- <bin chy> l bin kiu v hng m c, hay dng nht l bin kiu
nguyn;
- <gi tr 1>, <gi tr 2> l cc gi tr m bin chy s nhn v thc hin
dch chuyn sau mi ln lp. C th dch chuyn i 1 n v, c th dch
chuyn i nhiu n v mt ln, c th dch chuyn tin, cng c th dch
chuyn li- tt c iu ny tu thuc vo vic c hay khng c tu chn
[Step <n>];
Trang 22
Dim so As Integer
Dim uoc As Integer
Dim nguyento As Boolean
nguyento = True
For uoc = 2 To Int(so / 2)
If so Mod uoc = 0 Then
nguyento = False
Exit For
End If
Next
If nguyento Then
Msgbox "l nguyn t"
Else
Msgbox "khng l nguyn t !"
End If
Trong :
- While, Wend l cc t kho ca lnh lp;
- Nu <iu kin> = True, cc lnh trong <th tc> s c thc hin. Thc
hin xong li quay ln dng lnh While kim tra tip <iu kin>;
Trang 24
- Nu <iu kin> = False, s thot khi vng lp v thc hin lnh tip
theo t kho Wend.
Ch : Lun phi chng minh c rng, sau mt s hu hn ln thc hin
<th tc>, gi tr ca <biu thc> phi l False thot khi vng lp. Trong
trng hp khng th thot khi vng lp, c ngha ngi lp trnh mc phi
li lp v hn. C th dn n chng trnh b treo.
Cc v d:
V d 1: Tnh tng cc s chia ht cho 3 trong khong t 1 n 50
Dim i As Byte
Dim tong As Integer
tong = 0
i = 3
While i <= 50
tong = tong +i
i = i + 3
Wend
Msgbox tong
Trang 25
Trong :
Trang 26
End If
Next
End If
End Function
V d trn c s dng n:
- hm Int(number) hm ly phn nguyn ca mt s;
- hm Sqr(number) hm ly cn bc hai mt s
Tn
Quang
Trang 28
on
Bng
Bang
An
Tn
on
An
Bng
Bang
Quang
Tn
An
Bang
Trang 29
Bng
on
Quang
Cgoc1 =
"aeiou
y"
Cma1 = "abadafaparazblbnbpcbcdcl1b1c1d1e1f1a"
Cgoc2 =
"AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxY
yZz"
Cma2 =
"aaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbeb
fbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcccbcccdcecfcgchcicjckc
lcmcn"
kq = ""
xd = ""
For i = 1 To Len(Ckt)
kti = Mid(Ckt, i, 1)
vt1 = InStr(Cgoc1, kti)
If vt1 <> 0 Then
kq = kq & Mid(Cma1, 1 + ((vt1 - 1) \ 6) * 2, 2)
xd = xd & Mid(Cma1, 25 + ((4 + vt1) Mod 6) * 2, 2)
Else
vt2 = InStr(Cgoc2, kti)
If vt2 <> 0 Then
kq = kq & Mid(Cma2, (vt2) * 2 - 1, 2)
Else
kq = kq + kti
End If
End If
Next i
MahoaTCVN3 = kq & xd
Trang 30
End Function
Function Mahoa(Ckt As String) As String
Dim vt1 As Integer
Dim kq, Ctam As String
Ckt = Ckt & " "
kq = ""
vt1 = InStr(Ckt, " ")
Do While vt1 <> 0
Ctam = Trim(Left(Ckt, vt1 - 1))
Ckt = Right(Ckt, Len(Ckt) - vt1)
kq = MahoaTCVN3(Ctam) & " " & kq
vt1 = InStr(Ckt, " ")
Loop
Mahoa = kq
End Function
Trong :
- Sub, End Sub l cc t kho bt buc khai bo cu trc mt CTC dng th
tc;
- <tn CTC> l tn gi th tc nh khai bo. Tn khng c cha du cch
(space) v cc k t c bit;
- <danh sch cc tham s> - danh sch cc tham s cn thit cho th tc. C
hay khng c danh sch ny tu thuc vo th tc cn to
- <th tc> - thn CTC.
Nu khng c t kho Public trc Sub, th tc ch c tc dng cc b:
trong mt module, trong mt report hoc trong mt form. Khi c t kho Public
Trang 31
Trong :
- Call l t kho - lnh gi v thi hnh mt CTC ;
- <Tn CTC> l tn ca CTC cn gi ra thi hnh;
- <Danh sch cc tham tr> - l danh sch cc gi tr (nu cn) truyn vo
cc tham s tng ng ca CTC. Ch : kiu d liu ca cc tham tr v cc
tham s phi tng ng nhau. Nu tham tr c truyn gin tip qua tn mt
bin th bin phi c khai bo trc v c nh kiu ht nh kiu ca
tham s cn truyn vo.
V d 1: Gi CTC gii phng trnh bc 2 (vi 3 tham s l A, B, C kiu thc)
lp trnh t trc.
Call GPTB2(3, 4, 1)
Dim
a =
b =
c =
a, b, c As Double
3
4
1
Call GPTB2(a, b, c)
tong2so(7, 8)
b. S dng hm
Sau khi to c cc hm, vic s dng chng nh s dng cc hm c sn
ca VB. Ch : khc vi CTC dng th tc, tn CTC hm phi c gi thng
qua mt biu thc (v hm lun tr v mt gi tr c xc nh kiu cho trc).
V d 1: gn kt qu tng ca 2 s vo mt Textbox c tn Text1, s
dng hm tong2so trn. Khi m lnh s vit nh sau:
Trang 34
Text1.Text = tong2so(5, 7)
Trang 35
Label
DriveListBox
DirListBox
FileListbox
Combobox
Cch lm nh sau:
Bc 1: Xc nh ng cc iu khin cn s dng cho cc i tng cn
thit k trn giao din (xem minh ha cc loi i tng hnh trn);
Bc 2: Dng chut a cc iu khin t thanh cng c ToolBox ln Form
cn thit k. Vic ny thc hin n gin nh v mt khi hnh.
Nu khng thy xut hin thanh cng c, c th gi chng ra bng lnh View |
Toolbox
Bc 3: Thit lp cc thuc tnh ph hp cho cc i tng trn giao din
thng qua ca s Properties:
Trang 36
Ca s Properties ni c th thit lp
trc tip cc thuc tnh cho iu khin.
Ct bn tri l tn cc thuc tnh; ct
bn phi l gi tr cc thuc tnh tng
ng m c th thay i c.
Vn lnh , c th vit trn nhiu dng, phi s dng k t ghp dng lnh
nh sau:
Msgbox Cho cc bn, ti tn l Nam, _
& mong c lm quen!
thi hnh mt d n VB, nhn phm F5 hoc nhn nt Start trn thanh
ToolBar.
Trang 37
4.2 Li v x l li
Li l hin tng rt bnh thng trong lp trnh. Khi lp trnh vin a ra
nhng cu lnh khng hp l v c php, v x l d liu rt c th gy ra li.
C rt nhiu nguyn nhn gy ra li; cc nguyn nhn ny c th c lng
trc hoc khng c lng trc. Tuy nhin, khi chng trnh c ng gi
v chuyn giao ti khch hng s dng th khng c php tn ti li phn
mm. K thut x l li bao gm cc k nng pht hin v x l cc tnh hung
khi chng trnh gy li lm sao m bo chng trnh gim ti a li.
a. X l li
L vic x l khi ang lp trnh gp phi li. Thng thng khi chy th
chng trnh trong lc ang xy dng phn mm nu gp phi li, s xut hin
hp thoi thng bo li c dng:
+ Nt
Trang 39
Hnh trn khi di chut ln bin b, gi tr bin b xut hin di dng Tool tip
(gi tr b = 0).
Sau khi chn nt Debug, lp trnh vin hon ton c th thc hin sa m lnh
trong chng trnh. Tuy nhin, trong mt s trng hp khi sa m lnh VB s
hi:
Trang 40
chuyn v ch Design.
Ca s Immediate
L cng c hu hiu h tr vic d li bi: hp thoi ny cho php thc thi
tng cu lnh trn ch hi thoi.
Hoc nu g:
? a / b
V b = 0.
b. By li
Mc 4.2.1 trnh by nhng k nng x l li khi ang son tho chng
trnh. Cc thao tc ch c thc hin trong lc ang xy dng phn mm
(VB IDE), do ngi lp trnh x l. Khi phn mm c ng gi chuyn
n ngi dng nu gp li, n s hin th mt hp tthoi thng bo li (Error
Dialog) cho bit l do vn tt v li. Sau khi nhn OK, chng trnh s ngng
hot ng, b thot.
x l li trong tnh hung ny, c 2 phng php by li m chng ti a
ra di y tham kho; hy vng lp trnh vin s chn la c tnh hung
ph hp s dng mt trong cc phng php ny m bo chng trnh vit
ra chy c ng theo mc ch.
S dng lnh On Error Resume Next
Khi t ch tr i, nu chng trnh gp li, n s b qua (ignore) hon
ton. im ny tin ch gip chng trnh EXE ca ta trnh gp li thot khi
t ngt nh phn tch trn. Nhng n cng bt li l khi khch hng cho hay
h gp nhng trng hp l, khng gii thch c (v li b b qua m khng
ai ), th ta cng b lun, c th khng bit bt u t u g li. Do ,
trong lc g li ta khng nn dng n, nhng trc khi giao cho khch hng nn
cn nhc k c nn s dng trong cc on m lnh hay khng.
Trang 42
Kt qu
Err.Description
M t tn li
Err.Number
a ra m li
Err.Clear
Xo b cc gi tr ca i tng Err
Trang 44
Bi tp chng 1
Bi tp 1:
Xy dng th tc tm c s chung ln nht ca 2 s nguyn a v b.
Bi tp 2:
Xy dng th tc tm bi s chung nh nht nht ca ca 2 s nguyn a v b.
Bi tp 3:
Xy dng th tc thng k tng s tng loi k t c trong mt xu. V d c
xu ban u cong hoa xa hoi chu nghia viet nam. Kt qu th tc ny cho bit:
Tng s k t
a:
c:
e:
g:
h:
i:
m:
n:
o:
v:
3
1
1
2
4
1
1
3
3
1
Bi tp 4:
Xy dng hm tm s cc i trong bn s nguyn a, b, c v d.
Bi tp 5:
Xy dng hm o v tr k t ca mt xu. V d: xu u vo c dng
abcd, kt qu hm ny s tr v xu ngc li l dcba.
Bi tp 6:
Xy dng th tc gii phng trnh Ax2 + Bx + C = 0. Trong A, B, C l cc
tham s u vo, x l nghim cn tm.
Bi tp 7:
Xy dng hm tnh tng cc s nguyn trong mt khong s nguyn [a, b] cho
trc.
Trang 45
Bi tp 8:
Xy dng hm tch t u tin ca mt xu k t. V d c mt xu nh sau:
Vit Nam, hm ny s tch ra c xu Vit l t u tin trong xu .
Trang 46
CHNG
S DNG IU KHIN
Trang 47
1. S lc v iu khin
Controls l nhng i tng c dng thit k giao din trong nhng
ngn ng lp trnh trc quan. Trong VB, cc i tng Controls c t trn
thanh cng c ToolBox m lp trnh vin c th ly t y ra thit k ln cc
mu giao din (Forms) hoc bo co (Report).
Mi Control c xem nh l mt i tng (Object), c 3 thnh phn c bn
sau:
Gi tr
Intel
3 Gh
512 Mb
40 Gb
15
Black
..
Trang 48
T vit tt
Loi i tng
T vit tt
Textbox
txt
Listbox
lst
Label
lbl
Combobox
cbo
Command
cmd
Line
ln
Check box
chk
Treeview
tv
Form
frm
Listview
lv
Picture
pct
Optional
opt
Frame
fme
Tn thuc tnh
Thuc lp Control
H tn
txtHoten
Textbox
Trang 50
txtNgaysinh
Textbox
Gii tnh
chkGioitinh
Checkbox
a ch
txtDiachi
Textbox
nh
pctChandung
Picture
Tc dng
0 Left Justify
Canh l tri
1 Right Justify
Canh l phi
2 Center
Canh l vo gia
Tc dng
0 Flat
1 3D
Kiu 3 chiu, c g ni
Tc dng
Combo1.AddItems S t
1.3. Tp s kin
S kin (Events) l tp hp cc tc ng c th xy ra i vi mt i
tng. V d: mt mt nt lnh Command c mt tp s kin sau:
Tn s kin
Xy ra khi
Trang 55
Trang 56
Cc i tng thit k
trn form
Form
Mt s s kin ca form
Form c rt nhiu s kin, y s gii thiu 4 s kin m hay c s dng
nht mi khi lp trnh trn form:
S kin Form_Load
Xy ra khi form bt u kch hot. L mt trong nhng s kin xut hin u
tin (ch sau s kin Form_Initialize) mi khi kch hot mt form. S kin ny
thng dng thit lp mi trng lm vic cho form. Tuy nhin khi thc hin
th tc p ng s kin ny, mt s i tng thit k trn form cha c np
y , nn cng c th gp phi li nh sau:
S kin Form_Activate
Xy ra sau s kin Form_Load. Cng tng t nh form_load, s kin ny
thng dng thit lp mi trng lm vic cho form. iu khc bit l n xy
ra sau s kin Form_Load v cc i tng trn form c np v nhn dng
y ;
Trang 58
S kin Form_Resize
Xy ra khi ngi dng lm thay i kch c form. S kin ny hay c dng
canh li v tr cc i tng trn form mi khi kch c ca form c thay i;
S kin Form_Unload
Xy ra khi ngng kch hot form, gii phng form ra khi b nh. N tng
ng vi vic thc hin lnh Unload Me hoc khi dng chut nht nt Close
trn form. i km vi th tc p ng s kin Form_load c tham s Cancel
kiu Boolean (ngm nh l False). Khi Cancel = True, lnh Unload form s
khng c thc hin, khi form s vn trng thi hot ng. S kin ny
thng s dng kim tra cc iu kin cn thit trc khi quyt nh ng
mt form li, gii phng b nh. Trong trng hp cha iu kin ng
form, hy thit lp tham s Cancel = True.
Trang 59
Cc i tng Label
Trang 60
Cc i tng TextBox
Trang 61
Khuyn co:
Chng ti khuyn co khng nn vit tt nh vy, s to thnh mt thi quen khng tt
khi s dng nhng cng c lp trnh chuyn nghip sau ny.
End If
End Sub
S kin LostFocus
S kin ny thng dng khi dch im Tab qua i tng va lm vic.
Trong v d v Textbox, s trnh by v d v tch ly Tn ngay sau khi Nhp
xong d liu cho H tn (c Name l txtHoten). V d ny s dng n hm
GetTen, ton b m lnh nh sau:
Private Sub txtHoten_LostFocus()
Msgbox "Tn va nhp l : " + GetTen(txtHoten)
End Sub
Function GetTen(st As String) As String
Dim pos As Integer
pos = 1
If InStr(pos, Trim(st), " ") = 0 Then
GetTen = st
Exit Function
End If
While InStr(pos + 1, Trim(st), " ") > 0
pos = InStr(pos + 1, Trim(st), " ")
Wend
GetTen = Trim(Mid(st, pos))
End Function
Trang 64
Trang 65
iu khin Combobox l dng iu khin trnh by giao din, gip vic chn
la mt gi tr trn mt danh sch tr nn d dng. Khi s dng, iu khin ny
c dng nh sau:
Lm th no nh v, di chuyn, cc mc chn?
Trong :
-
"Th
"Th
"Th
"Th
"Th
"Th
"Ch
2"
3"
4"
5"
6"
7"
nht"
Trong :
-
Trang 68
iu khin Listbox l dng iu khin trnh by giao din, gip vic chn la
mt gi tr trn mt danh sch tr nn d dng. Khi s dng, iu khin ny c
dng nh sau:
2 Grayed - trng thi lng. Trng thi ny thng xut hin lc u tin,
khi iu khin Checkbox cha c khi to l Checked hay Unchecked.
Sau khi xc nh Checked hay Unchecked, s khng tn ti gi tr
Grayed na.
Trang 70
Trang 71
ketqua = 0
'----------------------------------'nu chn opt12, tr li ng 1 cu
'
If opt12.Value = True Then ketqua = ketqua + 1
'----------------------------------'nu chn opt21, tr li ng thm 1 cu na
'
If opt21.Value = True Then ketqua = ketqua + 1
'----------------------------------'in kt qu
'
MsgBox "Bn tr li ng " + Str(ketqua) + "/ 2 cu !"
End Sub
DriveListBox
DirListBox
FileListBox
Trang 73
iu khin DriveListBox
iu khin DirListBox
iu khin DirListBox
4.4 V d tng hp
Thit k mt giao din nh sau:
Trang 75
Drive1
lbThongke
Dir1
File1
Combo1
Trang 77
5. Mt s iu khin chung
5.1 iu khin MS Common Dialog
MS Common Dialog l iu khin gip gi ra cc hp thoi: m tp tin
(Open file), ghi tp tin (Save file), m hp thoi phng ch (Font), m hp
thoi chn mu h thng.
Thng thng, iu khin ny cha c sn trn thanh cng c ToolBox,
mun c lm nh sau:
M thc n Project | Components, hoc nhn t hp phm nng Ctrl +
T, mt hp thoi xut hin. Hy tm n mc Microsoft Common Control 6.0
v chn nh sau:
Trang 78
iu khin CommonDialog
Trang 80
V d:
Thit k form nh sau:
Trang 81
CommonDialog1
Command1
Text1
Trang 82
Thm mt nt gc
Nt gc (Root) l nt khng c nt cha ca n.
Set nd = <tn treeview>.Nodes.Add()
Thm mt nt con
Nt con (Sub-Node) l nt m lun tn ti mt nt cha ca n. Nt cha ny c
th l mt nt dng nt gc, nhng cng c th l mt nt dng nt con.
Set nd = <tn treeview>.Nodes.Add(<key nt cha>, 4)
Trang 87
Bi tp chng 2
Bi tp 1:
To form tm c s chung ln nht, bi s chung nh nht ca 2 s nguyn A
v B nh sau:
Bi tp 2:
To form lit k cc s nguyn t trong khong t 1 n n, n l s c nhp
trn form Nhp s:
Trang 88
Bi tp 4:
Xy dng form gm 2 List box (hnh di), cc nt >, >>, <, << c tc dng
chuyn mt hoc tt c cc mc (Items) t danh sch 1 sang danh sch 2 v
ngc li.
Trang 89
Trang 90
CHNG
LP TRNH C S D LIU
Trang 91
Trong :
Bng NXB lu tr danh sch cc nh xut bn;
Bng TACGIA lu tr danh sch cc tc gi vit sch
Bng SACH lu tr cc thng tin v sch trong th vin. Mi sch s c
nhng thng tin sau: sachID m sch, tn sch, nxbID - xut bn u? Nm
xut bn, tacgiaID - ca tc gi no? vn tt - nhng thng tin gii thiu vn tt
v cun sch ny.
C s d liu Qun l lng cn b:
Trong :
Bng CHUCVU lu tr danh mc cc chc v trong c quan, ph cp chc
v (phucapcv) cng c xc nh cho mi loi chc v tng ng trong bng
ny;
Bng PHONGBAN lu tr danh mc cc phng ban c trong n v qun
l;
Bng CANBO lu tr ton b thng tin v cn b trong c quan. Bng ny
kt ni sang bng PHONGBAN v CHUCVU bit c cc thng tin v chc
v v phng ban ca cn b.
Trang 92
1. K thut DAO
DAO (Data Access Objects Cc i tng truy xut d liu) l tp hp bao
gm lp cc i tng c th dng lp trnh truy cp v x l d liu trong
cc h CSDL. y l CSDL Access, ngn ng lp trnh VB.
DAO c pht trin kh sm, gn y nht l phin bn DAO 3.5 v 3.51n c th thc hin tt c trn cc phin bn Access t 97 tr v trc. Vi
Access 2000, XP phi dng phin bn DAO 3.6. Vi phin bn mi ny, DAO
3.6 s dng nn Microsoft Jet 4.0. V vy, c th lm vic c trn nn Unicode
d dng.
Cch thc lp trnh trn mt h CSDL c m t tng qut nh sau:
ng dng
Cc kt ni d liu
C s d liu
Trong :
-
Workspaces
Databases
RecordSets
QueryDefs
TableDefs
Relations
Trong :
Workspaces nh ngha tp hp cc vng lm vic. y c th coi l
lp lm vic cao nht. V l thuyt c th khai bo mt vi vng lm vic
(Workspace), nhng trn thc t ch cn khai bo mt vng lm vic v
Trang 94
Trang 95
Khai bo
Dim db As DAO.Database
' Gn db cho mt CSDL c th
Set db = OpenDatabase(C:\Baitap\qlbh.mdb)
Trang 96
Khai bo
Set rs=db.OpenRecordset(<Name>)
Trong :
-
Set rs = db.OpenRecordset
V d 1:
Gn tp hp cc bn ghi t mt bng vo bin Recordset ( y l bng
canbo).
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("canbo")
Trang 97
V d 2:
Gn tp hp cc bn ghi t mt cu lnh chn d liu SQL vo bin Recordset
( y l cc thng tin hoten, ngaysinh ca tt c cc cn b n t bng canbo).
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("SELECT hoten, ngaysinh FROM canbo
WHERE gioitinh = False")
Set rs = db.OpenRecordset("canbo")
If rs.RecordCount > 0 Then
rs.MoveFirst
While rs.EOF = False
MsgBox rs.Fields("hoten").Value
rs.MoveNext
Wend
End If
Trang 100
to v kch hot mt query trn VB bng cch thc thi cu lnh SQL, lm
theo hng dn sau:
'-----------------'Khai bo mt bin kiu Database v mt bin kiu QueryDef
Dim qr As DAO.QueryDef
'--------------------------'Ra lnh to mt Query mi, c tn rng (ch trong b
nh)
Set qr = db.CreateQueryDef(<tn query>)
'------------------------------'Gn chui lnh SQL vo thuc tnh SQL ca query
'
qr.SQL = "G lnh SQL cn thi hnh vo y"
Trang 102
Trong :
- Bt buc phi khai bo mt bin kiu QueryDef lm vic (bin qr);
- Phi c mt bin Database c khai bo sn (bin db);
- Lnh
to mt query mi ln
CSDL. <tn query> s c hin th trn danh sch trong th Queries trn
ca s Database. Nu <tn query>="", query ny s ch tn ti trong b
nh. Tu thuc vo mc ch cng vic m c t tn query hay khng,
nu ch n thun to mt query x l cng vic no ri gii phng,
nn t <tn query>="";
- Lnh qr.SQL=<cu lnh SQL> gn lnh SQL cn thc thi vo Query.
Tu thuc vo cu lnh SQL ny m query s thc hin nhng g. V d:
qr.SQL = "DELETE * FROM canbo"
bng cn b;
- Lnh qr.Excute thi hnh cu lnh SQL c thit lp. Lnh ny tng
ng nhn nt Run i vi mt query trn ch thit k;
- Lnh
qr.Close
lm vic n na.
Sau y l mt s v dng v s dng bin QueryDef to ra mt s loi
query x l d liu.
V d 1: To DELETE query xo danh sch nhng cn b c tui ln hn
60 ra khi bng canbo (cn b ngh hu)
Dim qr As DAO.QueryDef
Trang 103
Set qr = db.CreateQueryDef("")
qr.SQL="DELETE * FROM canbo WHERE Year(Date())- " _
& " Year(Ngaysinh)>=60"
qr.Execute
qr.Close
V d 1:
Sub LietKeTenTruong(tenbang As String)
Dim tbl As DAO.TableDef
Set tbl = db.TableDefs(tenbang)
For i = 0 To tbl.Fields.Count - 1
MsgBox tbl.Fields(i).Name
Next
End Sub
Trang 105
Trong :
-
Trong :
-
dbNumeric Numeric
dbSingle Single
dbText Text
dbTime Time
tbl.CreateField("ID", dbInteger)
tbl.CreateField("Name", dbText)
tbl.CreateField("Age", dbByte)
tbl.CreateField("DateBirth", dbDate)
tbl.CreateField("Comment", dbMemo)
db.TableDefs.Append tbl
Exit Sub
Loi:
If Err.Number = 3010 Then
MsgBox " tn ti bng c tn " + tbl.Name
End If
End Sub
Trang 107
Trang 108
n y, khi quay sang Project trn VB s thy xut hin mt form nhp d
liu cho bng CHUCVU c t ng to vo c th s dng.
Khi thi hnh project, form ny c giao din nh sau:
Thanh nh v bn ghi
i tng Data Control
thm mt bn ghi:
Trang 109
Nhn nt Add;
sa d liu mt bn ghi:
-
xa mt bn ghi:
-
Trang 110
DataSource
DataField
Text1
Data1
chucvuID
Text2
Data1
Tenchucvu
Text3
Data1
Phucapcv
V d 2: S dng DbGrid
Vi DbGrid, vic thit k mt giao din nhp d liu n gin hn v d s
dng hn. Di y gii thiu cch s dng iu khin ny.
Bc 1: thit k giao din form nh sau:
iu khin DbGrid
Trong trng hp khng thy iu khin DbGrid trn thanh ToolBar, hy kch
hot n bi ca s Components nh sau:
Trang 112
Cch lm:
Bc 1: Thit k giao din form nh sau:
Trang 116
Ch
Vic vit ra cu lnh SQL ng l rt kh, i hi lp trnh vin phi c nhiu kinh
nghim. lm tt c vic ny, nn thit k mt query ch design view; ri s
dng tnh nng Copy, Paste dn cu lnh SQL m query to ln ni son tho lnh
VB v chnh sa cho ph hp. Thng thng sa mnh WHERE ca cu lnh.
2. K thut ADO
Phn 1 ca chng ny gii thiu cng ngh lp trnh CSDL DAO trn VB,
l cng ngh kh d hc, ph bin. ADO (ActiveX Data Objects) l cng
ngh mi hn, khc phc c mt s cc nhc im ca DAO v thch nghi
trn nhiu h CSDL. Hin nay, ADO.NET l cng c cc mnh v ang c
pht trin rt ph bin. Tuy nhin ADO.NET ch c th chy trn nn .NET.
tr thnh nh pht trin chuyn nghip, chn ADO l mt hng i ng.
ADO
OLE DB
CSDL
Trang 117
cnn.Close
cmd.Execute
Trang 120
Trang 121
3. Data Report
Data Report l cng c thit k in bo co trong VB. y l cng c khng
thc s chuyn nghip, nhng n rt quan trng tip cn ti cc cng c thit
k in bo co chuyn nghip khc.
Qui trnh thit k v s dng mt Data Report thng phi qua 3 bc sau:
Xy dng ngun d liu
S dng Report
Trang 122
Trang 123
Tip theo nhn nt lnh SQL Builder xy dng truy vn cho Command
ny, mt mn hnh thit k query (gn ging trong Access) xut hin cho php
thit k mt truy vn d liu n CSDL:
RptLine - k ng thng
RptImage - chn cc hnh nh ln report
RptFunction - a cc hm tng hp ln report
RptShape - v cc khi hnh ln report.
RptLabel
RptTextbox
RptFunction
Trang 128
Trang 129
Bi tp chng 3
1. Thit k CSDL Qun l th vin trn Access nh sau:
3. Thit k form cp nht d liu cho bng TACGIA vi giao din s dng nh
sau:
Trang 130
4. Thit k giao din nhp d liu cho bng SACH vi giao din s dng nh
sau:
Trang 131
Sau khi chn mt Nh xut bn, thng tin v cc cun sch ca nh xut bn
s c hin th ln mt DbGrid;
Trang 132
Sau khi nhp mt tn cn tm, nhn nt Tm. Danh sch cc cun sch m tn
sch c cha cm t va g vo s c hin th ln DbGrid;
Nht nt In kt qu, thng tin ny s c in ra mt Data Report.
8. Thit k form tm kim sch theo chng loi (thng tin chng loi ca mi
cun sch c lu vo trng VANTAT) nh sau:
Trang 133
Trang 134
CHNG
HON THIN D N
Chng ny trang b nhng kin thc cng nh k thut thit k giao din
chnh cho mt ng dng v dch, ng gi d n thnh b gi t ng dng mang
tnh thng mi. Ni dung ca chng tp trung vo cc vn :
-
Trang 135
2. Thit k Menu
Menu l loi iu khin ph bin dng gi cc th tc, cc giao din hoc
chc nng ca mt ng dng ra lm vic. Thng thng, menu c thit k
ngay trn MDI form ca mi ng dng.
Trong VB, mun to ra menu cho ng dng, cn s dng trnh Menu Editor.
Tip theo y, s hng dn cch s dng Menu Editor thit k h thng
menu trn mt MDI form.
Bc 1: To mt MDI Form l giao din chnh ca ng dng, ni s cha
menu cn to (hnh trn);
Bc 2: Gi trnh Menu Editor bng cch: nhn phi chut ln MDI Form,
tip theo chn Menu Editor (hnh di):
Trang 138
Menu ny ang
c thit lp
H thng menu
c thit k
to ng phn cch (
ngang);
-
H thng cc nt
ca cc mc menu;
-
3. Thit k ToolBar
Cng vi Menu, ToolBar l mt iu khin quan trng thit k giao din
chnh cho cc ng dng. Thng thng, mi ng dng u s dng c Menu ln
ToolBar. Menu l cng c chnh gi cc chc nng ca ng dng, cn
Trang 140
ToolBar c dng gi nhng tnh nng hay s dng nht cho mi ng dng.
Bi v, dng ToolBar thao tc nhanh hn Menu.
Di y l mt giao din chnh ca ng dng s dng c Menu v ToolBar:
Trang 141
Trang 142
Trang 143
4. ng gi d n
ng gi d n l qui trnh cui cng dch d n vit trn VB thnh b gi
t phn mm - mt sn phm c th chuyn giao n khch hng. Bc ny s
bao gm cc cng vic dch v ng gi ton b cc ti nguyn cn thit d
n c th chy c lp trn bt k mt my tnh no, kt qu s l mt b gi t
phn mm (Setup). Cc bc thc hin to mt b gi t nh sau:
Bc 1: Dch Project ra tp c th thc thi c (tp .exe) bng cch ra lnh
File \ Make <project>.exe Nu khng c li g, ton b d n VB s c
dch ra mt tp c tn <tn project>.exe.
Bc 2: Kch hot trnh Package and Deployment Wizard cu VB - mt cng
c dng ng gi d n i km VB6 bng cch:
-
Tip theo kch hot trnh Package and Deployment Wizard bng cch
nhn p chut ln mc Package and Deployment Wizard:
Trang 145
. Trnh
hp thoi trn, nhn nt Package tip tc. Hp thoi sau xut hin
hi li mt ln na c mun dch li d n hay khng?
Trang 146
Trang 148
Trang 149
Trang 150
Trang 151
Trang 152
Bi tp chng 4
1. Vi Project Qun l sch th vin, hy to MDI form v h thng Menu,
Toolbar nh sau:
Trang 153
Trang 154
Trang 155
Control
Data
Data
Environment
Data Report
Data source
Data type
Database
Datasheet
Design View
Detete
EOF
Field
Trng d liu
Field size
ln ca trng d liu
Trang 156
Form
i tng dng thit k giao din trong pht trin phn mm. Kt
qu ca form khi s dng s l cc ca s, hp thoi- ni m ngi
dng c th s dng thao tc trn phn mm.
Function
Group By
Object
Package &
Deployment
Project
Query
Record
Bn ghi
Recordset
Tp hp cc bn ghi
Relationship
SQL
Sub
Wizard
Trang 157
MC LC
GII THIU .............................................................................................................2
BI M U ............................................................................................................4
1. Gii thiu Visual Basic 6.0.......................................................................................4
2. Khi ng .................................................................................................................6
3. Lu tr ......................................................................................................................8
4. M d n c .........................................................................................................9
CHNG 1: LP TRNH VB CN BN ...............................................................11
1. Kiu d liu - bin v hng ....................................................................................12
1.1 Kiu d liu......................................................................................................12
1.2 Bin ..................................................................................................................14
a. Bin khai bo bin.................................................................................................. 14
b. Phm vi bin ............................................................................................................. 15
Bi tp chng 1.........................................................................................................45
CHNG 2: S DNG IU KHIN ...................................................................47
1. S lc v iu khin .............................................................................................48
1.1. Tp thuc tnh..................................................................................................48
1.2. Tp phng thc .............................................................................................54
1.3. Tp s kin ......................................................................................................55
2. Mt s iu khin c bn .......................................................................................57
2.1 iu khin Form...............................................................................................57
2.2 iu khin Label ..............................................................................................59
2.3 iu khin Textbox..........................................................................................60
2.4 iu khin CommandButton............................................................................63
2.5 iu khin Picture............................................................................................65
3. Nhm iu khin trnh by giao din .....................................................................66
3.1 iu khin ComboBox.....................................................................................66
Trang 158
Trang 159