Professional Documents
Culture Documents
Hoc VB6 PDF
Hoc VB6 PDF
Mc tiu:
Chng ny gii thiu v mi trng pht trin tch hp (IDE) Microsoft
Visual Basic 6.0; cng nh gip sinh vin c ci nhn tng quan v Visual
Basic.
Hc xong chng ny, sinh vin phi nm bt c cc vn sau:
- S dng mi trng pht trin tch hp VB 6.0 pht trin ng dng.
- Cch to d n mi (New Project) trong VB 6.0.
Kin thc c lin quan:
- S dng h iu hnh Windows.
Ti liu tham kho:
- Visual Basic 6 Certification Exam Guide - Chapter 1, Page 1 - Dan
Mezick & Scot Hillier - McGraw-Hill - 1998.
Trang 1
Visual Basic
Trang 2
Visual Basic
Trang 3
Visual Basic
Thanh menu cho php bn tc ng cng nh qun l trc tip trn ton b
ng dng. Bn cnh thanh cng c cho php truy cp cc chc nng ca thanh
menu thng qua cc nt trn thanh cng c.
Cc biu mu (Form) - khi xy dng chng trnh chnh ca VB - xut
hin trong ca s Form. Hp cng c thm cc iu khin vo cc biu mu ca
n. Ca s Project Explorer hin th cc n khc nhau m ngi dng ang lm
cng nh cc phn ca n. Ngi dng duyt v ci t cc thuc tnh ca iu
khin, biu mu v module trong ca s Properties. Sau cng, ngi dng s xem xt
v b tr mt hoc nhiu biu mu trn mn hnh thng qua ca s Form Layout.
Visual Basic
Trang 5
Visual Basic
Trong qu trnh thit k biu mu, i khi chng ta phi s dng thuc
tnh ZOrder cho php mt iu khin c th thay th mt iu khin khc hay
khng hoc l xut hin bn trn mt iu khin khc hay khng.
S dng hp cng c (Toolbox)
Hp cng c l ni cha cc iu khin c dng trong qu trnh thit
k biu mu. Cc iu khin c chia lm hai loi: iu khin c sn trong VB v
cc iu khin c cha trong tp tin vi phn m rng l .OCX.
i vi cc iu khin c sn trong VB th ta khng th g b khi hp
cng c, trong khi i vi iu khin nm ngoi ta c thm hoc xa b khi hp
cng c.
Mt iu khin c th c a vo biu mu bng cch chn iu khin
v a vo biu mu. Chng ta s tr li phn ny trong chng tip theo khi thit
k cc biu mu.
Hnh I.9 Hp cng c ca Visual Basic
III.5 Ca s Properties
Mi mt thnh phn, iu khin iu c
nhiu thuc tnh. Mi mt thuc tnh li c mt
hoc nhiu gi tr.
Ca s Properties cho php ngi dng xem,
sa i gi tr cc thuc tnh ca iu khin nhm
gip iu khin hot ng theo ng ca ngi
s dng.
Trang 6
Visual Basic
Trang 7
Visual Basic
CHNG 2 BIU MU V MT S IU
KHIN THNG DNG
Mc tiu:
Chng ny gii thiu v mt s iu khin c bn to nn giao din
cho cc ng dng cng nh mt s khi nim trong lp trnh vi VB; nhng
yu cu ti thiu cn c trong vic lp trnh s kin vi VB.
Hc xong chng ny, sinh vin phi nm bt c cc vn sau:
- Khi nim v iu khin, thuc tnh, phng thc, s kin.
- Quy tc t tn danh biu trong VB.
- S dng biu mu trong thit k giao din.
- S dng iu khin nhp liu, nt nhn, nhn, khung.
Kin thc c lin quan:
- Cch thc s dng mi trng pht trin VB.
Ti liu tham kho:
- Microsoft Visual Basic 6.0 v Lp trnh C s d liu - Chng 2, trang
26; Chng 3, trang 29 - Nguyn Th Ngc Mai (ch bin), Nh xut bn Gio dc
- 2000.
Trang 8
Visual Basic
I. Cc khi nim
9 iu khin: Cc thnh phn c sn ngi lp trnh to giao din tng tc
vi ngi dng.
Mi iu khin thc cht l mt i tng, do vy n s c mt s im
c trng cho i tng, chng hn nh cc thuc tnh, cc phng thc & cc s
kin.
9 Thuc tnh: Cc c trng ca mt iu khin to nn dng v ca iu khin
.
9 Phng thc: Cc iu khin c th thc thi mt s tc v no , cc tc v
ny c nh ngha sn bn trong cc phng thc (cn gi l chng trnh con: hm
& th tc), ngi lp trnh c th gi thc thi cc phng thc ny nu cn.
9 S kin: l hnh ng ca ngi dng tc ng ln ng dng ang thc thi.
Th d:
Visual Basic
o Icon: hnh icon c dng trong thanh tiu ca biu mu, nht l khi
biu mu thu nh li.
Trang 10
Visual Basic
II.4. S kin
o Form_Initialize: S kin ny xy ra trc nht v ch mt ln thi khi ta
Trang 11
Visual Basic
III.4. S kin:
o Change: Xy ra mi khi nhn thay i gi tr.
o Click: Mi khi nhn c chut nhp ln, s kin ny xy ra.
o DblClick: Xy ra khi ngi s dng nhp p chut ln iu khin nhn.
Trang 12
Visual Basic
IV.4. S kin:
o Click, DblClick: xy ra khi khung nhn c mt thao tc nhp (nhp
p) chut.
Visual Basic
Click here
Hnh II.3 S dng nt lnh
Visual Basic
Hnh II.3 V d v iu
khin nhp liu
o Locked: Thuc tnh cho php ngi dng thay i ni dung ca nhp
liu c hay khng? Thuc tnh ny c th nhn 2 gi tr True hoc False. Nu False
th ngi dng c th thay i ni dung ca nhp liu & mc nh th thuc tnh ny
c gi tr l False.
o PasswordChar: Thuc tnh ny quy nh cch hin th thng tin do
ngi dng nhp vo. Chng hn, nu ta nhp vo gi tr thuc tnh ny l * th cc k
t nhp vo iu hin th bi du * . Thuc tnh ny thng c dng trong trng
hp thng tin nhp vo cn c che giu (V d mt khu ng nhp mt chng
trnh ng dng no m trong cc ngi dng khc nhau th c cc quyn khc
nhau).
o Multiline: Thuc tnh quy nh nhp liu c c hin th thng tin
di dng nhiu hng hay khng, nu l TRUE th nhp liu cho php nhiu hng.
o Font, Fore Color: Quy nh kiu ch, kch thc, mu hin th.
o SelLength:Cho php tr v hoc t trc s lng k t c chn
trong nhp liu.
o SelStart: Tr v hoc xc nh im bt u ca chui c chn. y
l v tr bt u chn mt chui mi trong trng hp khng c nh du chn chui.
o SelText: Tr v hoc xc nh chui k t c nh du chn, chi tr
v s l rng nu nh khng nh du chn chui no.
Ba thuc tnh SelLength, SelStart, SelText ch c tc dng ti thi im
chy ng dng.
Trang 15
Visual Basic
VI.4. S kin:
o KeyPress: xy ra khi ngi s dng chng trnh nhn mt phm. i
vi iu khin TextBox, ta thng dng n lc (filter out) cc phm khng chp
nhn. S kin KeyPress cho ta mt m Ascii, mt s c gi tr t 0 n 255, ca phm
va nhn. Trong v d di y, TextBox Text1 s ch nhn bit cc phm l s (0 - 9),
khng nhn bit cc phm khc:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then M Ascii ca 0 l 48, ca 9 l 57
KeyAscii = 0
End If
End Sub
Visual Basic
Trang 17
Visual Basic
I. Mi trng lp trnh
I.1. Son tho chng trnh:
Trong Visual Basic IDE, ca s m lnh (Code) cho php son tho chng
trnh. Ca s ny c mt s chc nng ni bt:
o nh du (Bookmarks): Chc nng ny cho php nh du cc dng lnh
ca chng trnh trong ca s m lnh d dng xem li v sau ny. bt tt kh
nng ny, chn Bookmarks t menu Edit, hoc chn t thanh cng c Edit.
o Cc phm tt trong ca s m lnh:
Chc nang
Xem ca s Code
Xem ca s Object Browser
Tm kim
Thay th
Tm tip
Tm ngc
Chuyn n th tc k tip
Chuyn n th tc trc
Xem nh ngha
Cun xung mt mn hnh
Cun ln mt mn hnh
Nhy v v tr trc
Tr v u ca m-un
n cui m-un
Phm tat
F7
F2
CTRL+F
CTRL+H
SHIFT+F4
SHIFT+F3
CTRL+DOWN ARROW
CTRL+UP ARROW
SHIFT+F2
CTRL+PAGE DOWN
CTRL+PAGE UP
CTRL+SHIFT+F2
CTRL+HOME
CTRL+END
Trang 18
Visual Basic
Visual Basic
Kiu d liu
M t
Boolean
Byte
Cc gi tr s nguyn t 0 255
Integer
Long
Single
Double
Currency
String
Date
Variant
III. Hng s
III.1. Khi nim
Hng s (Constant) l gi tr d liu khng thay i.
Visual Basic
III) Bin
III.1. Khi nim
Bin (Variable) l vng lu tr c t tn cha d liu tm thi trong qu
trnh tnh ton, so snh v cc cng vic khc.
Bin c 2 c im:
o Mi bin c mt tn.
o Mi bin c th cha duy nht mt loi d liu.
III.2. Khai bo
[Public|Private|Static|Dim] <tn bin> [ As <kiu d liu> ]
Trong , tn bin: l mt tn c t ging quy tc t tn iu khin. Nu
cn khai bo nhiu bin trn mt dng th mi khai bo cch nhau du phy (,).
Nu khai bo bin khng xc nh kiu d liu th bin c kiu Variant.
Khai bo ngm: y l hnh thc khng cn phi khai bo mt bin trc khi
s dng. Cch dng ny c v thun tin nhng s gy mt s sai st, chng hn khi ta
nh nhm tn bin, VB s hiu l mt bin mi dn n kt qu chng trnh sai
m rt kh pht hin.
V d:
Dim Num As Long, a As Single
Dim Age As Integer
Khai bo tng minh: trnh rc ri nh nu trn, ta nn quy nh rng
VB s bo li khi gp bin cha c khai bo bng dng lnh:
Option Explicit trong phn Declaration (khai bo) ca m-un.
Option Explicit ch c tc dng trn tng m-un do ta phi t dng
lnh ny trong tng m-un ca biu mu, m-un lp hay m-un chun.
Trang 21
Visual Basic
Php
ngha
Kiu ca i s
Kiu ca kt qu
ton
Php ly s i
Kiu s (Integer, Single) Nh kiu i s
+
Php cng hai s
Kiu s (Integer, Single) Nh kiu i s
Php tr hai s
Kiu s (Integer, Single) Nh kiu i s
*
Php nhn hai s
Kiu s (Integer, Single) Nh kiu i s
/
Php chia hai s
Kiu s (Integer, Single) Single hay Double
\
Php chia ly phn nguyn Integer, Long
Integer, Long
Mod Php chia ly phn d
Integer, Long
Integer, Long
^
Tnh ly tha
Kiu s (Integer, Single) Nh kiu i s
b. Cc php ton quan h
y l cc php ton m gi tr tr v ca chng l mt gi tr kiu
Boolean (TRUE hay FALSE).
Php ton
ngha
So snh bng nhau
=
<>
So snh khc nhau
>
So snh ln hn
<
So snh nh hn
>=
So snh ln hn hoc bng
<=
So snh nh hn hoc bng
c. Cc php ton Logic: l cc php ton tc ng trn kiu Boolean v cho kt
qu l kiu Boolean. Cc php ton ny bao gm AND (v), OR (hoc), NOT (ph
nh). Sau y l bng gi tr ca cc php ton:
X
Y
X AND Y
X OR Y
NOT X
TRUE
TRUE TRUE
TRUE
FALSE
TRUE
FALSE FALSE
TRUE
FALSE
FALSE TRUE FALSE
TRUE
TRUE
FALSE FALSE FALSE
FALSE
TRUE
V. Cu lnh
Mt cu lnh (statement) xc nh mt cng vic m chng trnh phi thc
hin x l d liu c m t v khai bo. Cc cu lnh c ngn cch vi
nhau bi k t xung dng. K t xung dng bo hiu kt thc mt cu lnh.
V.1. Lnh gn
C php:
<Tn bin> = <Biu thc>
V d:
Gi s ta c khai bo sau:
Dim TodayTemp As Single, MinAge As Integer
Dim Sales As Single, NewSales As Single, FullName As String
Visual Basic
TodayTemp = 30.5
MinAge = 18
Sales = 200000
NewSales = Sales * 1.2
Lu c php:
Sai
ng
Cc dng lnh
Trang 23
Visual Basic
Trang 24
Visual Basic
MsgBox "You are an average person"
End Select
Ton t Is & To
Ton t Is: c dng so snh <Biu thc kim tra> vi mt biu thc no
.
Ton t To: Dng xc lp min gi tr ca <Biu thc kim tra>.
V d:
Select Case Tuoi
Case Is <18
MsgBox Vi thanh nien
Case 18 To 30
MsgBox Ban da truong thanh, lo lap than di
Case 31 To 60
MsgBox Ban dang o lua tuoi trung nien
Case Else
MsgBox Ban da lon tuoi, nghi huu duoc roi day!
End Select
V.4. Cu trc lp
Cc cu trc lp cho php thi hnh mt khi lnh no nhiu ln.
a. Lp khng bit trc s ln lp
Do ... Loop: y l cu trc lp khng xc nh trc s ln lp, trong ,
s ln lp s c quyt nh bi mt biu thc iu kin. Biu thc iu kin phi c
kt qu l True hoc False. Cu trc ny c 4 kiu:
Kiu 1:
Do While <iu kin>
<khi lnh>
kin
Loop
ng
Sai
Khi lnh
Khi lnh s c thi hnh n khi no iu kin khng cn ng na.
Do biu thc iu kin c kim tra trc khi thi hnh khi lnh, do c th khi
lnh s khng c thc hin mt ln no c.
Kiu 2:
Do
<khi lnh>
Loop While <iu kin>
Trang 25
Visual Basic
Khi lnh s c thc hin, sau biu thc iu kin c kim tra,
nu iu kin cn ng th, khi lnh s c thc hin tip tc. Do biu thc iu
kin c kim tra sau, do khi lnh s c thc hin t nht mt ln.
Kiu 3:
Do Until <iu kin>
<khi lnh>
Loop
Cng tng t nh cu trc Do While ... Loop nhng khc bit ch l
khi lnh s c thi hnh khi iu kin cn sai.
Kiu 4:
Do
<khi lnh>
Loop Until <iu kin>
Khi lnh c thi hnh trong khi iu kin cn sai v c t nht l mt
ln lp.
V d: on lnh di y cho php kim tra mt s nguyn N c phi
l s nguyn t hay khng?
Dim i As Integer
i = 2
Do While (i <= Sqr(N))
i = i + 1
Loop
If (i > Sqr(N)) And (N
MsgBox Str(N) &
Else
MsgBox Str(N) &
End If
And (N Mod i = 0)
<> 1) Then
la so nguyen to
khong la so nguyen to
Form_Click( )
As
Integer
Trang 26
Visual Basic
For
End
i = 0 To Screen.FontCount
MsgBox Screen.Fonts(I)
Next
Sub
V d: Tnh N!
o Bc 1: Thit k chng trnh c giao din:
TextBox:
Name:txtNum
o Bc 2: S kin Command1_Click c x l:
Private Sub Command1_Click()
Dim i As Integer, n As Integer, Kq As Long
n = Val(txtNum.Text)
Kq = 1
For i = 1 To n
Kq = Kq * i
Next
lblKQ.Caption = Str(Kq)
End Sub
Visual Basic
- Khng dng For Each ... Next vi mng cha kiu t nh ngha v
Variant khng cha kiu t nh ngha.
VI.2. Th tc
a. Khi nim:
Th tc l mt chng trnh con thc hin mt hay mt s tc v no .
Th tc c th c hay khng c tham s.
b. Khai bo th tc
[Private | Public] [Static] Sub <tn th tc> [(<tham s>[As <Kiu tham s>])]
<Cc dng lnh> hay <Cc khai bo>
End Sub
Trong :
- <Tn th tc>: y l mt tn c t ging quy tc tn bin, hng,
- <tham s>[: <Kiu tham s>]: c th c hay khng? Nu c nhiu tham
s th mi tham s phn cch nhau du phy. Nu khng xc nh kiu tham s th
tham s c kiu Variant.
gi th tc thc thi, ta c 2 cch:
o <Tn th tc> [<Cc tham s thc t>]
o Call <Tn th tc> ([<Cc tham s thc t>])
Trang 28
Visual Basic
TextBox:
Name:txtNum
Trang 29
Visual Basic
VI.3. Hm
a. Khi nim
Hm (Function) l mt chng trnh con c nhim v tnh ton v cho ta
mt kt qu. Kt qu ny c tr v trong tn hm cho li gi n.
b. Khai bo hm
[Private | Public | Static] Function <Tn hm> [(<tham s>[As <Kiu tham s>])] _
[As <KIU D LIU>]
<Cc dng lnh> hay <Cc khai bo>
End Function
Trong :
- <Tn hm>: y l mt tn c t ging quy tc tn bin, hng,
- <tham s>[: <Kiu tham s>]: c th c hay khng? Nu c nhiu tham
s th mi tham s phn cch nhau du phy. Nu khng xc nh kiu tham s th
tham s c kiu Variant.
- <KIU D LIU>: Kt qu tr v ca hm, trong trng hp khng
khai bo As <kiu d liu>, mc nh, VB hiu kiu tr v kiu Variant.
Khi gi hm thc thi ta nhn c mt kt qu. Cn ch khi gi hm thc
thi ta nhn c mt kt qu c kiu chnh l kiu tr v ca hm (hay l kiu Variant
nu ta khng ch r kiu tr v trong nh ngha hm). Do li gi hm phi l thnh
phn ca mt biu thc.
C php gi hm thc thi: <Tn hm>[(tham s)].
V d: Tnh N!
o Bc 1: Thit k chng trnh c giao din:
TextBox:
Name:txtNum
Trang 30
Visual Basic
Dim n As Integer
n = Val(txtNum.Text)
lblKQ.Caption = Str(Giaithua(n))
End Sub
Visual Basic
VII.3. Bin cc b
o Khi nim: Bin cc b l bin ch c hiu lc trong nhng chng trnh m
chng c nh ngha.
o Khai bo:
Dim <Tn bin> [As <Kiu d liu>]
o Lu :
Bin cc b c nh ngha bng t kha Dim s kt thc ngay khi vic
thi hnh th tc kt thc.
Visual Basic
C hai cch truyn tham s cho chng trnh con: Truyn bng gi tr &
truyn bng a ch.
o Truyn tham s bng gi tr
Vi cch truyn tham s theo cch ny, mi khi mt tham s c truyn
vo, mt bn sao ca bin c to ra. Nu chng trnh con c thay i gi tr,
nhng thay i ny ch tc ng ln bn sao ca bin. Trong VB, t kha ByVal c
dng xc nh tham s c truyn bng gi tr.
V d:
Sub Twice (ByVal Num As Integer)
Num = Num * 2
Print Num
End Sub
Private Sub Form_Click()
Dim A As Integer
A = 4
Print A
Twice A
Print A
End Sub
Visual Basic
Trang 34
Visual Basic
CHNG 4
CC KIU D LIU C
CU TRC
Mc tiu:
Chng ny gii thiu v cc cu trc d liu trong VB. Vic nm bt
c cc vn ny gip cho vic t chc d liu khi vit chng trnh VB
c hp l hn.
Hc xong chng ny, sinh vin phi nm bt c cc vn sau:
- S dng kiu d liu chui.
- S dng kiu ngy thng.
- Kiu ng (Variant)
- Kiu mng
Kin thc c lin quan:
- Cc cu trc lp trnh trong VB.
Ti liu tham kho:
http://www.vovisoft.com/VisualBasic/VB6Chapter5.htm
http://www.vovisoft.com/VisualBasic/VB6Chapter6.htm
Trang 35
Visual Basic
I.2. Cc hm x l chui
o Ghp chui: cho php ghp 2 hay nhiu chui li vi nhau nh php ton &.
V d:
Dim FirstWord As String, SecondWord As String
Dim Greeting As String
FirstWord = "Hello"
SecondWord = "World"
Greeting = FirstWord & SecondWord
' Greeting by gi l "HelloWorld"
V d 1:
Dim Today As String, StrDay As String, StrMonth As String
Dim StrYear As String, StrMonthYear As String
Today = "24/05/2001"
' Ly ra 2 k t t bn tri ca chui Today
StrDay = Left(Today,2) ' StrDay by gi bng "24"
' Ly ra 4 k t t bn phi ca String Today
StrYear = Right(Today,4) ' StrYear by gi bng "2001"
' Ly ra 2 characters bt u t k t th t ca chui
Today, k t u tin t bn tri l th nht
StrMonth = Mid(Today,4,2) ' StrMonth by gi bng "05"
Trang 36
Visual Basic
' Ly ra phn cn li bt u t k t 4 ca chui Today
StrMonthYear = Mid(Today,4) ' StrMonthYear bng 05/2001"
V d 2:
Today = "24/05/2001"
' Thay th character th 3 ca Today bng
Mid(Today,3,1) = "-"
' Thay th 2 k t bt u t k t 4 ca
Mid(Today,4,2) = "10"
' Thay th character th 6 ca Today bng
Mid(Today,6,1) = "-" ' Today by gi bng
"-"
Today bng "10"
"-"
"24-10-2001"
Trong :
- Expression: Biu thc chui cha chui cn thay th.
- find:Chui cn tm.
- replace: Chui thay th chui tm c.
- start: Tng t nh hm InStr.
- count: Xc nh s ln thay th. Mc nh l 1.
- compare: Tng t nh hm InStr.
o LTrim (RTrim): ct tt c cc khong trng bn tri (bn phi ca chui)
LTrim(string)
C php:
RTrim(string)
Trang 37
Visual Basic
o InstrRev: tng t nh InStr nhng vic tm kim c tin hnh t phi sang.
o Val: Hm i chui sang s.
o Str: Hm i s sang chui.
Hnh IV 1 Hp thoi xc lp
- Hm Now: tr v ngy gi hin ti.
V d: Dng hm Now & Format:
Trang 38
Visual Basic
III. Cc loi s
o chuyn i mt chui ra s ta c cc hm Val, CInt, CSng. Ngc li
chuyn i t s sang chui ta dng CStr, Str.
V d:
Dollars = "500"
ExchangeRatePerDollar = "7000"
tempValue= Val(Dollars) * Val(ExchangeRatePerDollar)
VNDong = CStr(tempValue)
MsgBox "Amount in VN Dong is " & VNDong
V d:
Dollars = "500.0"
ExchangeRatePerDollar = "7000.0"
'Dng hm CSng i chui ra Single
tempValue = CSng(Dollars) * CSng(ExchangeRatePerDollar)
'Dng hm Format c cc du phy ngn v triu
v phi c 2 ch s sau du chm thp phn.
VNDong = Format (tempValue, "#,###,###.00")
MsgBox "Amount in VN Dong is " & VNDong
IV.Kiu Object
Bin kiu Object cha mt a ch 4 Byte tr n i tng trong ng dng hin
hnh hoc cc ng dng khc. Dng lnh Set ch ra i tng c th.
Dim
Set
ObjDb
ObjDb
As
Object
= OpenDatabase("d:\tqdinh\thu.mdb")
V. Kiu Variant
Bin kiu Variant c th cha mi kiu d liu k c kiu mng, kiu do ngi
dng nh ngha nhng ngoi tr kiu chui c di c nh .
Bin kiu Variant c th nhn cc gi tr c bit nh Empty, Nothing, Error,
Null. Ta c th xc nh kiu d liu ca bin Variant bng cc s dng hm VarType
hoc hm TypeName.
Hm VarType dng kim tra kiu d liu
Hng
vbEmpty
vbNull
vbInteger
Gi tr
Din gii
Khng cha g c
0
1
D liu khng hp l
2
D liu kiu Integer chun
Trang 39
Visual Basic
vbLong
vbSingle
vbDouble
vbCurrency
vbDate
vbString
vbObject
vbError
vbBoolean
vbVariant
vbDataObject
vbDecimal
vbByte
vbUserDefinedType
vbArray
3
4
5
6
7
8
9
10
11
12
13
14
17
36
8192
Trang 40
Visual Basic
VI.2. Khai bo
o Mng c chiu di c nh:
Dim <Tn bin mng>(<Kch thc>) [As <Kiu>]
Lc ny phn t u tin c ch s l 0 & phn t cui cng c ch s l
<Kch thc>.
Dim <Tn bin mng>(<Ch s u> To <Ch s cui>) [As <Kiu>]
V d:
' Khai bo mt bin mng 15 phn t kiu Integer
Dim
Counters(14)As Integer
Visual Basic
o Mng ng:
- y l mng c kch thc thay i, l mt trong nhng u im ca mng
ng v n gip ta tit kim ti nguyn h thng. Ta c th s dng mt mng c kch
thc ln trong mt thi gian no ri xo b tr li vng nh cho h thng.
- Khai bo mt mng ng bng cch cho n mt danh sch khng theo chiu
no c. C php: Dim <Tn mng> () [As <Kiu>]
V d:
Dim DynArray() As Integer
Preserve
Tuy nhin ch c bin trn ca chiu cui cng trong mng c thay i
khi ta dng Preserve. Nu ta c tnh thay i chiu khc hoc bin di th VB s
bo li.
Byte,
New ()
As
Byte)
Visual Basic
End
TEmployee
Fullname
As
String
Salary
As
Single
Age
As Integer
Type
Ta c th gn:
e.Fullname = Nguyen Van An
e.Salary = 300000.00
e.Age = 26
Cu lnh With:
- c s dng vit gn hn khi thao tc vi d liu kiu mu tin.
- C php:
With <Tn bin mu tin>
Trang 43
Visual Basic
Trang 44
Visual Basic
CHNG 5
Mc tiu:
Chng ny gii thiu v cc iu khin dng trong vic to giao din
cho cc ng dng chy trn Windows. Vic nm bt c cc vn ny lm
cho cng vic to giao din cho ng dng c nhanh chng.
Hc xong chng ny, sinh vin phi nm bt c cc vn sau:
- S dng cc iu khin hp danh sch, hp la chn lu cc danh sch.
- S dng cc iu khin hp nh du, nt la chn nhn/hin th d liu
dng Yes/No.
- S dng cc iu khin hp hnh nh, iu khin nh hin th nh.
- S dng iu khin thanh cun nhn/hin th d liu s.
- S dng iu khin thi gian p ng s tri i ca thi gian.
- Mt s iu khin khc.
Kin thc c lin quan:
- Cc cu trc lp trnh trong VB.
- Cch thc x l s kin.
Ti liu tham kho:
- Microsoft Visual Basic 6.0 v Lp trnh C s d liu - Chong 3, trang
29 - Nguyn Th Ngc Mai (ch bin), Nh xut bn Gio dc - 2000.
Trang 45
Visual Basic
Visual Basic
List Box gii thiu vi ngi dng mt danh sch cc la chn. Mt cch
mc nh, cc la chn hin th theo chiu dc trn mt ct v bn c th thit lp l
hin th theo nhiu ct. Nu s lng cc la chn nhiu v khng th hin th ht
trong danh sch th mt thanh trt s t ng xut hin trn iu khin. Di y l
mt v d v danh sch cc la chn n ct.
Din gii
Tn ca List Box.
Biu thc chui ( mc) cn thm vo.
Xc nh v tr mc mi c chn vo, gi tr 0 xc nh cho
v tr u tin. Khi khng ch nh r Index th phn t thm vo
l mc cui cng trong List Box mi.
Trang 47
Visual Basic
List1.AddItem
List1.AddItem
List1.AddItem
List1.AddItem
"Germany"
"India"
"France"
"USA"
End Sub
Trang 48
Visual Basic
Chon
Trang 49
Visual Basic
Gi tr
VbComboDropDown
VbComboSimple
vbComboDropDownList
Hng
Visual Basic
Hnh V.5 l hnh minh ha cch dng Check Box hin th chui di dng t
m v nghing.
Private Sub chkBold_Click ()
If ChkBold.Value = vbChecked Then
' If checked.
txtDisplay.Font.Bold = True
Else
' If not checked.
txtDisplay.Font.Bold = False
End If
End Sub
Private Sub chkItalic_Click ()
If
ChkItalic.Value = vbChecked Then
txtDisplay.Font.Italic = True
Else If not checked.
Trang 51
' If checked.
Visual Basic
txtDisplay.Font.Italic = False
End If
End Sub
False.
II.4.3. S kin:
Click: Xy ra khi ngi s dng nhp chut trn Option Button.
Visual Basic
Hnh V.7 minh ha vic s dng thanh cun thay i kch c ca Text h tn vi
on m n gin nh sau:
Trang 53
Visual Basic
II.7.4. V d:
Trang 54
Visual Basic
II.7.5. Lu :
o iu khin Picture Box c th c dng nh mt vt cha cc iu khin
khc (tng t nh mt Frame).
o Ngoi ra ngi dng cng c th s dng Picture Box nh mt khung v
hoc nh mt khung son tho v c th in c ni dung trn .
Visual Basic
Gi tr
Hng
Rectangle
vbShapeRectangle
Square
vbShapeSquare
Oval
vbShapeOval
Circle
vbShapeCircle
Rounded Rectangle
vbShapeRoundedRectangle
Rounded Square
vbShapeRoundedSquare
Visual Basic
ti giai on thit k, khi chy ng dng iu khin Timer coi nh khng c th hin
trn biu mu.
II.10.2. Thuc tnh:
o Name: tn ca iu khin Timer.
o Interval: y l thuc tnh ch r s ms gia hai s kin k tip nhau. Tr
khi n b v hiu ha, mi iu khin Timer s lun nhn c mt s kin sau mt
khong thi gian u nhau.
Thuc tnh Interval nhn gi tr trong khong 0...64.767 ms c ngha l
khong thi gian di nht gia hai s kin ch c th l khong mt pht (64.8 giy).
o Enabled: nu gi tr l True ngha l iu khin Timer c kch hot v
ngc li.
II.10.3. S kin:
o Timer: xy ra mi khi n thi gian mt s kin c thc hin (xc nh
trong thuc tnh Interval).
II.10.4. S dng iu khin Timer:
o Khi to mt iu khin Timer: Nu lp trnh vin mun iu khin
Timer hot ng ngay ti thi im biu mu cha n c np th t thuc tnh
Enable l TRUE hoc c th dng mt s kin no t bn ngoi kch hot iu
khin Timer.
o Lp trnh p ng s kin tr v t iu khin Timer: Ta s a m
lnh ca cng vic cn thc hin vo trong s kin Timer ca iu khin Timer. Sau
y l v d khi to mt ng h s nh vo iu khin Timer.
Private Sub Timer1_Timer()
If Label1.Caption <> CStr(Time) Then
Label1.Caption = Time
End If
End Sub
Visual Basic
Trang 58
Visual Basic
Trang 59
Visual Basic
Trang 60
Visual Basic
I. Menu
I.1. Khi nim
Menu l mt loi iu khin trong ngi s dng c th la chn cc mc t
mt danh sch cho trc.
C 2 loi menu:
- Menu th xung (Drop-Down Menu): l dng menu thng dng nht.
- Menu bt ra (Pop-Up Menu): thng hin th khi ta n nt phi chut.
I.3. Cc s kin
- Click: Xy ra khi ngi s dng chng trnh nhp chut vo mt mc
no ca Menu.
Trang 61
Visual Basic
Trang 62
Visual Basic
Trang 63
Visual Basic
II. Hp thoi
II.1. Khi nim
Hp thoi (Dialog Box) l mt trong nhng cch VB dng giao tip vi
ngi dng. C 4 loi hp thoi:
II.2. Hp thng ip
Hp thng ip cng c 2 loi: Loi ch xut thng bo, loi c tng tc vi
ngi dng.
II.2.1 Loi ch xut thng bo
- Lc ny ta dng MsgBox nh l mt th tc.
- C php: MsgBox Prompt, Button, Title. Trong :
Prompt: Chui thng bo s hin th.
Button: Cc nt nhn s c hin th trn hp thng bo.
Title: Chui hin th trn thanh tiu ca hp thng bo.
- V d:
Hnh VI 4 Hp thng ip
Chng hn ta xy dng mt biu mu dng hin th tn v im trung bnh
cui nm ca mt hc sinh khi lp 12. Do gi tr im trung bnh cng nh h tn
hc sinh l khng th thay i. Do khi ngi dng Click vo mt Text no , ta
s xut thng bo rng gi tr ny khng th thay i.
Trang 64
Visual Basic
Private Sub Text2_Click()
MsgBox "Vous ne pouvez pas changer la value de ce champ!"
End Sub
Gi tr
0
1
2
3
4
5
Din gii
Ch hin th nt OK .
Hin th 2 nt OK v Cancel.
Hin th cc nt Abort, Retry, v Ignore.
Hin th cc nt Yes, No, v Cancel.
Hin th 2 nt Yes v No.
Hin th 2 nt Retry v Cancel.
Din gii
Dng cho nhng thng bo li tht bi khi
thi hnh cng vic no .
Dng cho nhng cu hi yu cu ngi
dng chn la.
Dng cho cc thng bo ca chng trnh.
Dng cho cc thng bo cung cp thm
thng tin.
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
Gi tr
1
2
3
4
5
6
Trang 65
Nt
OK
Cancel
Abort
Retry
Ignore
Yes
Visual Basic
vbNo
No
Vi nhng thng ip quan trng, ta mong mun ngi dng phi chn
la mt trong cc xut m ta a ra trc khi chuyn qua ng dng khc, ta s dng
thng s vbSystemModal.
Trang 66
Visual Basic
II.3. Hp nhp
y l loi hp thng ip cho php nhn thng tin t pha ngi s dng. Tuy
nhin trong cc ng dng, hp nhp rt t khi c dng do:
- Ta khng c cch no kim tra thng tin do ngi dng nhp vo khi m
Enter cha c n.
- Thng tin c nhp l rt t.
Sau y l mt v d v hp nhp:
Public Sub Main ()
Dim
ReturnString
As
String
ReturnString = InputBox(Nhap vao ten cua ban)
End Sub
Gi tr tr v ca hp nhp
mt5 chui.
HnhlVI
Hp nhp tn
Visual Basic
Trang 68
Visual Basic
Trang 69
Visual Basic
Trang 70
Visual Basic
Gii thch
Lu gi gi tr ca mu c chn
TRUE nu ngi dng chn ch m (Bold) v FALSE nu
Trang 71
Visual Basic
FontItalic
FontStrikeThru
FontUnderLine
FontName
Max
Min
FontSize
ngc li.
TRUE nu ngi dng chn ch nghing (Italic) v FALSE
nu ngc li.
TRUE nu chn ch gch ngang cc k t.
TRUE nu chn ch gch di
Ty
Kch c ln nht ca Font c hin th
Kch c nh nht ca font c hin th
Kch c ca Font c chn
Gi tr
&H2
&H1
&H3
&H20000
Hiu qu
Ch hin th font my in
Ch hin th font mn hnh
Ch hin th font mn hnh v font my in
Hin th font t l nh l fonts TrueType
Thuc tnh
Copies
FromPage
Max
Gii thch
S bn in
S th t ca trang bt u
S bn in ti a cho php
Trang 72
Visual Basic
Min
PrinterDefault
ToPage
Gii thch
Xy ra khi ngi s dng n chut (chut tri hoc phi)
Xy ra khi ngi s dng th mt nt chut bt k
Xy ra khi con tr chut di chuyn n mt im mi trn mn hnh.
Cc tham s
Tham s
Button
Shift
X, Y
Gii thch
Cho bit phm chut no c n
Cho bit SHIFT hay CTRL hay ALT c n
Xc nh v tr ca con tr chut i vi h ta ca iu khin
Trang 73
Visual Basic
Integer, & _
Y As Single)
phim chuot trai
phim chuot phai
phim chuot giua
Trang 74
Visual Basic
Hng
Gi tr
Din gii
ccDefault
ccArrow
Arrow.
ccCross
ccIbeam
I Beam.
ccIcon
ccSize
ccSizeNESW
ccSizeNS
ccSizeNWSE
ccSizeEW
ccUpArrow
10
Up Arrow.
ccHourglass
11
Hourglass (wait).
ccNoDrop
12
No Drop.
ccArrowHourglass
13
ccArrowQuestion
14
ccSizeAll
15
Size all.
Trang 75
Visual Basic
ccCustom
99
Trang 76
Visual Basic
Visual Basic
IV.2 X l ha
IV.2.1 Ta mn hnh
Gc tri trn ca mn hnh c ta l (0,0) c ngha l X = 0 v Y = 0.
Nh vy tc l khi di chuyn sang phi mn hnh th X tng ln cng nh di chuyn
xung di th Y tng ln.
Tuy nhin VB ch cho php ta v trn biu mu hay hp hnh (picture box).
Khi h ta s c gn vi tng iu khin.
Ta thng s dng 2 h ta ch yu sau: Twips v Pixel.
Twips: y l h ta mc nh dng cho biu mu. Mi im s bng
1/567 cm. y l h ta khng b nh hng bi thit b, kt qu v s nh nhau
trn mn hnh VGA chun, trn my in hay trn mn hnh c phn gii cao khc.
Pixel: y l h ta ph bin nht, mi mt im trn mn hnh s
bng chnh xc vi mt Pixel, nh vy khi s dng h ta ny s gip cho cc ng
dng ha thc hin c nhanh hn v khng phi thng qua qu trnh i h ta
.
IV.2.2 Cc phng thc ha
Cc iu khin c v ln biu mu lc thit k nhng cc phng thc
ha cho php v trc tip khi ng dng thi hnh.
Phng thc PaintPicture
Phng thc PaintPicture cho php sao chp nhanh cc hnh nh t biu
mu, hp hnh v my in.
C php:
Trang 78
Visual Basic
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
Object
Picture
x1, y1
Width1
Height1
x2, y2
Cc gi tr xc nh hnh nh s c v li t v tr no. Nu b
qua th gi tr mc nh l 0, tc ton b hnh nh c v li.
Width2
Height2
Opcode
Trang 79
Visual Basic
Qua v d trn ta thy phng thc PaintPicture cho php sao chp nhanh mt
nh ngun trn cc i tng khc .
Step
(x, y)
Ta ca im.
Color
Mu ca im .
Visual Basic
Object
(x, y)
Ta tm ng trn.
Radius
Bn knh ca ng trn
Color
Mu t cho ng trn. .
, pi/3, pi/2
Chng 7 : TP TIN
Mc tiu:
Chng ny gii thiu v cch thc truy cp h thng tp tin ca
Windows trong VB, thao tc thng gp trong cc ng dng chy trn
Windows.
Hc xong chng ny, sinh vin phi nm bt c cc vn sau:
- S dng m hnh i tng h thng tp tin thao tc vi a, th
mc, tp tin trong Windows.
- S dng cc hm xut/nhp tp tin truy xut tp tin vn bn, tp tin
nh phn, tp tin truy xut ngu nhin.
Kin thc c lin quan:
- Cc cu trc lp trnh trong VB.
- Cch thc t chc h thng tp tin ca h iu hnh Windows (9X,
2000, XP)
Ti liu tham kho:
- Microsoft Visual Basic 6.0 v Lp trnh C s d liu - Chng 6,
trang 88 - Nguyn Th Ngc Mai (ch bin), Nh xut bn Gio dc - 2000.
Trang 81
Visual Basic
Gii thch
Cho php thu thp thng tin v a, bao gm c cc a
chia s qua mng LAN, CD-ROM
Cho php to, xa, di chuyn v thu nhn cc thng tin h
thng trn th mc.
i tng cho php thao tc trn tp tin.
Cc thuc tnh v phng thc cho php thao tc trn tp
tin, th mc v a.
Cho php c v ghi tp tin dng vn bn (dng Text).
Cch 2:
Set fso = CreateObject("Scripting. FileSystemObject")
fso
f
As
=
New
FileSystemObject, f
As
File
fso.GetFile("d:\tqdinh\text.txt")
Visual Basic
I.4 Lm vic vi th mc
y l cc phng thc c cch s dng rt n gin, v th ta ch xt qua
phng thc no ng vi tc v g (cng vic g) ch khng i su phn tch tng
phng thc.
Tc v
Phng thc
FileSystemObject.CreateFolder
To th mc
FileSystemObject.DeleteFolder
Xa th mc
Folder.Delete
FileSystemObject.MoveFolder
Di chuyn th mc
Folder.Move
FileSystemObject.CopyFolder
Sao chp th mc
Folder.Copy
Folder.Name
Ly tn th mc
Kim tra th mc c tn ti trn FileSystemObject.FolderExists
Trang 83
hay
hay
hay
Visual Basic
a hay khng
Tr v i tng Folder
Ly tn ca th mc cha
Ly tn ca th mc h thng
FileSystemObject.GetFolder
FileSystemObject.GetParentFolderName
FileSystemObject.GetSpecialFolder
Trang 84
Visual Basic
Phng thc
FileSystemObject.MoveFile
File.Move
FileSystemObject.CopyFile
File.Copy
FileSystemObject.DeleteFile
File.Delete
hoc
hoc
hoc
I.6 V d
Thit k mt ng dng nh Notepad ca Windows, s dng FSO truy xut
tp tin.
Trang 85
Visual Basic
TextBox:
txtNoidung
o i vi mnuSave_Click:
Private Sub mnuSave_Click()
On Error GoTo Xuly
dlgFile.Filter = "All Files (*.*)|*.*| & _
Text Files (*.txt)|*.txt"
dlgFile.FilterIndex = 2
dlgFile.ShowSave
Dim fso As New FileSystemObject, f As File
Dim ts As TextStream
fso.CreateTextFile (dlgFile.FileName)
Trang 86
Visual Basic
Set f = fso.GetFile(dlgFile.FileName)
Set ts = f.OpenAsTextStream(ForWriting)
ts.Write (txtNoiDung.Text)
ts.Close
Xuly:
End Sub
o S kin mnuExit_Click:
Private Sub mnuExit_Click()
End
End Sub
Sequential
Random
Binary
Close
Get
Input( )
Input #
Line Input #
Trang 87
Visual Basic
Open
Print #
Put
Write #
Visual Basic
i s outputlist c th l:
[{Spc(n) | Tab[(n)]}] [expression] [charpos]
Trong :
- Spc(n): dng xen khong trng vo tp tin vi n l s khong
trng.
- Tab(n): dng xc nh ct bt u ghi d liu trong vng ghi vi
n l s th t ct. Dng Tab khng i s ch v tr bt u ca vng ghi tip theo.
- Expression: biu thc chui hoc biu thc s.
- Charpos: ch nh v tr ca k t k tip. Trong : du ; xc nh
d liu mi s ghi k tip k t cui cng trc . Tab(n) xc nh chnh xc ct
ghi d liu hay Tab ch ra v tr ca d liu cn ghi vo l vng ghi k tip. Nu tham
s ny b b qua, d liu s c ghi bt u t dng k tip.
II.1.4 ng tp tin
C php: Close filenumberlist: ng li cc tp tin c m vi cc
s hiu c m t trong filenumberlist, filenumberlist c dng sau:
[[#]filenumber] [, [#]filenumber] . . .
II.1.5 V d
Open "TESTFILE" For Output As #1
' M tp tin ghi.
Print #1, "This is a test"
' Ghi chui vo tp tin.
Print #1,
' Ghi mt dng trng vo tp tin.
Print #1, "Zone 1"; Tab ; "Zone 2"
' To hai vng ghi.
' Phn cch hai chui bi khong trng.
Print #1, "Hello" ; " " ; "World"
Print #1, Spc(5) ; "5 leading spaces " ' To 5 khong trng
Print #1, Tab(10) ; "Hello"
' ghi chui ti ct th 10.
' Gn gi tr thuc kiu Boolean, Date, Null v Error.
Dim MyBool, MyDate, MyNull, MyError
MyBool = False : MyDate = #February 12, 1969# : MyNull = Null
MyError = CVErr(32767)
Print #1, MyBool ; " is a Boolean value"
Print #1, MyDate ; " is a date"
Print #1, MyNull ; " is a null value"
Print #1, MyError ; " is an error value"
Close #1
' ng tp tin
V sau y l ni dung ca tp tin TESTFILE sau khi thc thi chng trnh:
Trang 89
Visual Basic
This is a test
Zone 1
Zone 2
Hello World
5 leading spaces
Hello
False is a Boolean value
2/12/1969 is a date
Null is a null value
Error 32767 is an error value
Visual Basic
II.2.5 V d
Gi s ta c khai bo 1 mu tin nh sau:
Type Hanghoa
Trang 91
Visual Basic
MaHang As String * 10
TenHang As String * 40
DVTinh As String * 15
Gia As Double
End Type
Trang 92
Visual Basic
Trang 93
Visual Basic
I. C s d liu
I.1. Khi nim
C s d liu l mt kho cha thng tin. C nhiu loi c s d liu, nhng
trong khun kh bi ging ny ta ch quan tm n cc ng dng lp trnh lin quan
n c s d liu quan h.
Mt c s d liu quan h:
o Cha d liu trong cc bng, c cu to bi cc dng cn gi l cc mu
tin, v ct cn gi l cc trng.
o Cho php ly v (hay truy vn) cc tp hp d liu con t cc bng.
o Cho php ni cc bng vi nhau cho mc ch truy cp cc mu tin lin
quan vi nhau cha trong cc bng khc nhau.
Visual Basic
Trang 95
Visual Basic
Hnh VIII.2 Ca s to
Table
Trang 96
Visual Basic
Ta s nhp tn trng ti Name, chn kiu ca trng ti Combo Type,
ty chn FixedField v VariableField xc nh di ca trng l c nh hay thay
i.
Sau khi xc nh y cc thuc tnh ca trng, n OK v tip tc thm
vo cc trng khc cho bng. Nu thm mi y cc trng ca bng, n Close
quay v ca s Table Structure.
Sau khi quay v ca s Table Structure, ta s xc lp cc ch mc cng nh
kha chnh ca bng.
Trang 97
Visual Basic
Trang 98
Visual Basic
Trang 99
Visual Basic
Trang 100
Visual Basic
Trang 101
Visual Basic
Visual Basic
Visual Basic
V.1.5 Xa mu tin
xa mu tin trong mt ng dng s dng iu khin d liu, ta dng phng
thc Delete ca i tng Recordset ca iu khin d liu.
V d: Adodc1.Recordset.Delete
V.1.6 Dng s kin WillChangeRecord m bo d liu hp l
Trong lp trnh c s d liu, vic m bo rng d liu nhp vo ph
hp vi cc quy tc ca mt c s d liu ngi dng c th l yu t quan trng bc
nht v mang tnh bt buc.
i vi iu khin ADO Data, vic xc nh xem d liu c hp l hay
khng s c vit trong s kin WillChangeRecord ca iu khin. S kin ny s
c kch hot khi ngi dng thay i thng tin ca mt mu tin v di chuyn sang
mu tin khc hoc thm mi mu tin.
Trang 104
Visual Basic
Trang 105
Visual Basic
Visual Basic
db
As
db =
Database
OpenDatabase("..\..\baigiang.mdb")
ngha
database
dbname
options
read-only
connect
dbDriverNoPrompt
ngha
Trnh qun l ODBC dng chui ni kt
cung cp tn c s d liu v ni kt. Nu
Trang 107
Visual Basic
dbDriverComplete
Nu ni kt v tn ngun d liu xc nh
y cc thng tin cn thit cho mt ni
kt th trnh qun l ODBC s dng chui
trong ni kt nu khng s nh trng hp
s dng dbDriverPrompt.
Trang 108
Visual Basic
u im
Cp nht c, kt qu tr v
c th thuc nhiu bng khc
nhau thng qua ni kt bng.
Mt u im ni tri l
i vi c s d liu nhiu
ngi s dng, n c c
kh nng t cp nht khi cc
ngi dng khc cp nht
mu tin cha trong .
Dynaset
Cc chc nng tng t nh
(dbOpenDynaset)
Dynamic, nhng t c
hiu qu hn do khng thao
tc trn d liu thc s m l
s tham chiu n d liu.
Forward-Only
C th ly v mu tin t
(dbOpenForwardOnly) nhiu bng thng qua ni kt
bng. c bit hiu qu i
vi cc Recordset nh.
Snapshot
Tng t nh Forward-Only
(dbOpenSnapshot)
Table
(dbOpenTable)
Nhc im
Km hiu qu hn so vi kiu
Dynaset
Ta ch c th di chuyn n
pha trc.
Khng cp nht c vi d
liu Jet. Tr v mt bng sao
n d liu, nn thao tc chm
hn rt nhiu so vi Dynaset.
C th nh v v ly v cc Khng th thc hin mt cu
mu tin mt cch nhanh truy vn lin quan n nhiu
chng v cc bng c lp bng.
ch mc.
Lu :
9 Nu ta m mt Recordset vi b my CSDL Microsoft Jet v ta khng xc
nh tham s type ca OpenRecordset th dbOpenTable l mc nh (nu c th).
9 Vi mt Recordset xc nh mt cu truy vn, dbOpenDynaset l mc nh.
9 Vi cch truy cp CSDL theo ODBC, dbOpenForwardOnly l mc nh.
Mt s gi tr ca tham s Option, mt hng s c th c kt hp bi
nhiu gi tr khc nhau, xc nh c tnh ca Recordset.
Trang 109
Visual Basic
Hng s
dbAppendOnly
ngha
Cho php ngi dng thm mu tin mi vo Recordset, nhng
khng c sa i hay xa cc mu tin c sn (ch vi
dynaset-Recordset ca JET).
dbDenyWrite
dbDenyRead
dbForwardOnly
dbReadOnly
dbRunAsync
dbExecDirect
Trang 110
Visual Basic
Hng s
ngha
dbReadOnly
dbPessimistic
dbOptimistic
dbOptimisticValue
dbOptimisticBatch
Lu : Xt v d sau:
Dim
Dim
Set
Set
db
rs
db
rs
As Database
As Recordset
= OpenDataBase ("..\..\baigiang.mdb")
= db.OpenRecordset ("Select * From Canbo " & _
"Order
by hotencb = "Truong"")
Visual Basic
ngha
MoveFirst
MoveNext
MovePrevious
MoveLast
Move N
Trang 112
Visual Basic
ngha
recordset
criteria
Phng thc
Bt u t
Hng tm kim
FindFirst
Mu tin u tin
n cui Recordset
FindLast
n u Recordset
FindNext
n cui Recordset
FindPrevious
n u Recordset
Trang 113
Visual Basic
Thnh phn
ngha
recordset
comparison
key1, key2...key13
Trang 114
Visual Basic
Trang 115
Visual Basic
2. Kin trc
Kin trc ODBC cha kt ni gia ng dng Client v c s d liu Server
thng qua trnh qun l iu khin ODBC.
ng dng
Client
Ngun d
liu ODBC
Trnh qun l iu
khin ODBC
Trnh iu
khin ODBC
DB
Trang 116
Visual Basic
Trang 117
Visual Basic
2
Hnh 10.4: V d v ODBC Direct
Trang 118
Visual Basic
1
Hnh 10.5: V d v Remote Data Control
Trang 119
Visual Basic
Visual Basic
Trang 121
Visual Basic
m_Query.SQL = strSQL
m_Query.Excute
ngha
DSN
UID
PWD
Mt khu truy cp
DRIVER
Visual Basic
DATABASE
Tn ca c s d liu c ni kt
SERVER
WSID
APP
ngha
rdUseIfNeeded
rdUseODBC
rdUseServer
Visual Basic
rdUseClientBatch
rdUseNone
Trang 124
Visual Basic
Trang 125
Visual Basic
ADO (ActiveX Data Objects) l cng ngh truy cp c s d liu hng i tng
tng t nh DAO. Hin nay, ADO c Microsoft xem k thut chnh truy cp d
liu t Web Server.
ActiveX Data
Objects
ODBC Driver
OLE DB Data
Provider
ODBC Driver
Manager
OLE DB
Document
Server
Email
Server
Relational Database
Ta ch cn lp trnh vi phn giao din ngi s dng pha Client. Vic truy cp
c s d liu trn trnh duyt Web hay ng dng VB c thc hin nh ADO. Cu
trc ny cho php ta lp trnh mt cch nht qun trn Web cng nh trn ng dng.
Trang 126
Visual Basic
HTTP
MS Internet
Information
Server with Active
Server Pages
Client Application
DCOM
ActiveX Server
(DLL or EXE)
ADO
OLE DB
Database
Web Browser
Visual Basic
Kt ni DSN cp thp:
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Provider = "MSDASQL"
cn.ConnectionString = "DRIVER={SQL Server}; & _
DATABASE=Baigiang;UID=myuser;PWD=mypassword;"
cn.Open
Trang 128
Visual Basic
cn.Open
M v ng ni kt ngun d liu
pht cc yu cu n ngun d liu s dng ADO, ta cn m kt ni n
ngun d liu bng phng thc Open ca i tng Connection. C php y
nh sau:
connection.Open [connect], [userid], [password]
Tt c cc tham s ca phng thc Open u l ty chn, nu nh cc thng s
ny c xc nh thng qua cc thuc tnh khc ca i tng Connection th ta
khng cn m t chng y.
Khi hon thnh tt c cc thao tc lin quan n ni kt ny, ta cn phi ng
ni kt mt cch tng minh thng qua phng thc Close ca i tng Connection.
connection.Close
ng ni kt mt cch tng minh s m bo rng tt c cc ti nguyn lin
quan n ni kt ny trn Server cng nh Client u c gii phng mt cch hp
l.
Xc nh v tr con tr
Con tr (Cursor): mt tp cc mu tin c tr v cho chng trnh. V tr con
tr c xc nh nh thuc tnh CursorLocation (c c i tng Recordset). C 2
gi tr c th ch nh:
9 adUseClient: con tr pha Client.
9 adUseServer: con tr pha Server (mc nh).
Thc thi cc cu truy vn hnh ng
Cc cu truy vn hnh ng (Insert, Update, Delete) c thc hin nh phng
thc Execute ca i tng Connection; ngoi ra phng thc ny cng c th c s
dng thc thi cc th tc lu tr sn trong c s d liu hay cc cu SELECT. C
php phng thc ny nh sau:
Nu khng c kt qu tr v:
connection.Execute CommandText, RecordsAffected, Options
C kt qu tr v:
Set recordset = connection.Execute (CommandText, RecordsAffected, Options)
Trong :
- connection: i tng Connection.
- recordset: i tng Recordset l kt qu tr v ca phng thc Execute, tuy
nhin, ngi ta thng t khi s dng cch ny. Thay vo , ngi ta thng s dng
phng thc Open ca i tng Recordset.
Trang 129
Visual Basic
Gi tr
ngha
adModeUnknown
adModeRead
M Recordset vi quyn ch c
adModeWrite
adModeReadWrite
adModeShareDenyRead
adModeShareDenyWrite
adModeShareExclusive
12
adModeShareDenyNone
16
Visual Basic
adOpenStatic
M t
Gi
tr
adLockReadOnly
adLockPessimistic
1
2
adLockOptimistic
adLockBatchOptimistic
Mc nh - Ch c.
Kha trang bi quan. Mu tin trong
RecordSet b kha khi bt u sa i &
tip tc kha cho n khi thi hnh phng
thc Update hay di chuyn sang mu tin
khc.
Kha trang lc quan. Mu tin ch b kha
ngay lc thi hnh phng thc Update
hay di chuyn sang mu tin khc.
Kha trang lc quan hng lot. H tr cp
nht nhiu mu tin cng mt lc.
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
Trang 131
Visual Basic
rs.Open
Set grdHH.DataSource = rs
End Sub
Thm mi mu tin
- M Recordset
- Thi hnh phng thc AddNew
- Gn gi tr cho cc trng trong mu tin ca Recordset
- Lu li mu tin bng cch thi hnh phng thc Update (hay UpdateBatch).
Cp nht mu tin
- M Recordset
- Thc hin cu lnh truy vn nhn v cc mu tin thch hp.
- Di chuyn n mu tin cn cp nht li gi tr.
- Gn li gi tr cho cc trng.
- Thi hnh phng thc Update (hay UpdateBatch ty thuc vo LockType).
Lu :Ch kha mu tin mc nh trong ADO l ch c, v vy ta phi i
thuc tnh LockType ca i tng Recordset sang ch son tho trc khi thi hnh
cp nht hay thm mi mu tin.
III.2.7 Thuc tnh CursorLocation
Xc nh tp mu tin tr v t c s d liu c lu u (Server hay Client,
Server l mc nh). Thuc tnh cng ging thuc tnh CursorLocation ca i tng
Connection.
III.2.8 Recordset ngt kt ni
Khi chng ta dng con tr pha Client, ta c kh nng ngt kt ni vi Server c
s d liu m vn tip tc lm vic vi d liu. Cch ny cho php ng dng tr nn
Trang 132
Visual Basic
Trang 133
Visual Basic
ngha
adCmdText
adCmdTable
adCmdTableDirect
adCmdStoredProc
adExecuteNoRecords
Trang 134
Visual Basic
M t
adParamUnknown
adParamInput
adParamOutput
Tham s u ra.
adParamInputOutput
adParamReturnValue
y l gi tr tr v.
Trang 135
Visual Basic
prmByRoyalty.Type = adInteger
prmByRoyalty.Size = 3
prmByRoyalty.Direction = adParamInput
prmByRoyalty.Value = intRoyalty
cmdByRoyalty.Parameters.Append prmByRoyalty
' To mt recordset bng cch thi hnh i tng Command.
Set rstByRoyalty = cmdByRoyalty.Execute()
' M bng Authors ly tn hin th
Set rstAuthors = New ADODB.Recordset
rstAuthors.Open "authors", cnn1, , , adCmdTable
Debug.Print "Authors with " & intRoyalty & _
" percent royalty"
Do While Not rstByRoyalty.EOF
strAuthorID = rstByRoyalty!au_id
Debug.Print , rstByRoyalty!au_id & ", ";
rstAuthors.Filter = "au_id = '" & _
strAuthorID & "'"
Debug.Print rstAuthors!au_fname & - & _
rstAuthors!au_lname
rstByRoyalty.MoveNext
Loop
rstByRoyalty.Close
rstAuthors.Close
cnn1.Close
End Sub
Visual Basic
M t
Thi hnh ng b
M t
adcReadyStateLoaded
adcReadyStateInteractive
adcReadyStateComplete
Visual Basic
Recordset = DataControl.Recordset
- Phng thc DoEvents: y l hm ca VB, n s tr iu khin cho h iu
hnh thc hin cc qu trnh khc.
Trang 138
Visual Basic
Trang 139
Visual Basic
Visual Basic
Trang 141
Visual Basic
Visual Basic
2) To mt kt ni d liu vi DED
o To mt d n mi; b sung Data Enviroment vo d n ca ta nh chn
Project/Add Data Environment. Khi la chn mc ny, mi trng DED s hin th; s
dng ca s Properties thit lp thuc tnh Name l: datHH. y, ta s s dng
DED kt ni vi CSDL HANGHOA.MDB.
o Sa li thuc tnh Name ca Connection1 l conHH; sau chut phi ln
conHH, chn Properties.
hp thoi u tin, ta phi chn mt trnh cung cp d liu, y chn
Microsoft Jet 4.0 OLE DB Provider, nhn Next tip tc.
Tip theo ta cn nhp chnh xc ng dn n tp tin CSDL, chng hn
y l: H:\Visual Basic\HangHoa.Mdb.
Cui cng, nhn nt Test Connection kim tra vic ni kt d liu
chnh xc hay khng?
Trang 143
Visual Basic
3) To i tng Command:
o Xy dng mt i tng Command kt ni trc tip vi Table (bng)
THANGHOA trong file d liu HangHoa.mdb.
o Nhp chut phi trn kt ni d liu conHH & chn Add Command; sa
Command Name l: comHH; chn Table t Combo Box Database Object, chn
THANGHOA t Combo Box Object Name.
o Trc khi ng hp thoi ny, ta chuyn qua nhn Advanced & thit lp
LockType l 3 Optimistic (mc nhin l 1 Read Only); Cursor Location: Use
client-side cursor. Nh vy ta mi c th cp nht Record Set t chng trnh ca ta.
o Tr li giao din DED, ta c:
Visual Basic
Trang 145
Visual Basic
Visual Basic
Exit Sub
Xuly:
MsgBox Err.Description, vbCritical + vbSystemModal,
"Error"
End Sub
Nh vy, ta thit k xong mt Form cho php hin th thng tin cc hng ha,
Form ny cho php sa i, thm mi cc mu tin trong bng THANGHOA ca
CSDL HANGHOA.MDB.
Trang 147
Visual Basic
Diagram
SQL
Trang 148
Visual Basic
Chng 13:
THIT LP BO CO
Mc tiu:
Chng ny gii thiu cch thc to bo co bao gm hin th d
liu cng nh sp xp v phn nhm d liu.
Hc xong chng ny, sinh vin c th:
o S dng tnh nng Report ca Microsoft Access trong cc ng dng
nh.
o S dng Data Report to bo biu.
o S dng Crystal Report, cng c mnh to bo biu.
Kin thc cn thit:
- Th vin i tng ActiveX Data Objects (ADO).
- Mi trng d liu Data Environment.
Ti liu tham kho:
Visual Basic 6.0 v Lp trnh c s d liu - Chng 21, trang 637 Nguyn Th Ngc Mai (ch bin) Nh xut bn Gio dc - 2001.
Trang 149
Visual Basic
Visual Basic
Trang 151
Visual Basic
ni kt n
trnh Data
i tng
liu t bng
- Bc 2: Ko th cc trng cn
hin th vo bo co ti mc Detail, ch
gi li trng lin quan n thng tin d
liu (t trong phn Detail Section). Thit
Hnh 13.3 Thit lp Data Environment
Trang 152
Visual Basic
Trang 153
Visual Basic
Trang 154
Visual Basic
Visual Basic
Kiu bo co
Standard
Listing
Cross-Tab
Mail label
Summary
Graph
Top N
Drill Down
Another
M t
Bo co sp xp thng tin theo dng v ct, cho php nhm
d liu.
Bo co l danh sch d liu lin tc khng c tng kt hay
trng tng cng..
Sp xp d liu theo hai chiu.
Bo co c thit k in d liu theo ct cho nhn th.
Bo co ch hin th thng tin tng qut, khng cha d liu
chi tit.
Bo co th hin d liu mt cch trc quan bng biu
Bo co cho php ch hin th mt s mu tin c chn
Bo co cho php nhn p chut ln d liu tng qut
hin th d liu chi tit.
Cc bo co c khun mu do ngi dng nh ngha trc
.
Visual Basic
Visual Basic
LI KT
Chng Thit lp bo co cng l chng kt thc ca gio
trnh Visual Basic. Tuy nhin lp trnh s kin v lp trnh c s d
liu vi VB ch l mt phn trong nhng kh nng m VB mang li.
Hy vng chng ti s gp li bn c trong nhng chuyn khc
ca VB.
Trang 158