189
Baøi 8.
(VISUAL BASIC FOR
APPLICATIONS)
8.1.
.
8.2.
8.2.1.
a) MODULE CHUNG
và hàm chung do ngi thit k t lp trình bng
ngôn ng VBA b sung cho file c s d liu
b) NG FORM, REPORT
x lý s kin
không th
8.2.2.
a)
Trên thanh Ribbon chn ngn Create sau chn Module.
190
nh 8.1: Chn muc Module
8
b) RIÊNG
M Form hay Report ch Design
191
8.3: Nút Code trên thanh phiu Design ca thanh Ribbon
8
8.2.3.
a)
b) (EVENT PROCEDURE)
c)
8.2.4. EVENT PROCEDURE)
192
a)
b)
:
- Form_Open
-
cmdThem_Click.
c)
chao nút lnh
li chà
8.5: Form chao
- Cách 1:
8chao
B2giá tr Event Procedure trong b
193
8.7chao
- Cách 2
Build Event
8.8
B2
8.9
- Cách 3
Box bên trái
194
8.10
8.11
8.2.5.
a)
-
.
-
-
b)
c)
[Public | Private] [Static] Sub ([])
End Sub
195
-
.
-
n bên trong.
()
8.12: Txy
ta có th gi th tc con bng mt trong 2 cách sau:
Cách 1: Call <tên th tc con>(<danh sách tham s>)
Ví d: Call USCLN(6,9)
Cách 2: <tên th tc con> <danh sách tham s>
Ví d: USCLN 6,9
d)
[Public | Private] [Static] Function <Tê> ([<>]) As <
>
<> = <>
End Sub
196
-
-
-
< > = < > (< >,<
>)
y
USCLN
8.13: HUSCLNxy
Sau ta có th gán bin US nhn ly kt qu ca hàm Uscln nh sau:
US=Uscln(9,6)
Hoc in kt qu ca hàm ra hp thoi Msgbox
Msgbox Uscln(9,6)
-
-
<<>.
-
.
e)
[Byval | ByRef] <Tên tham s> As <> [=<>]
197
- ByVal:. Nu tham s c truyn theo giá
tr thì giá tr ca i lng truyn vào cho tham s s không thay i theo
tham s trong th tc.
- ByRef:. Nu tham s c
truyn theo a ch thì giá tr ca i lng truyn vào cho tham s s thay
i theo s thay i ca tham s trong th tc.
-
f)
lnh (View Code)
8.14
8.15
Public hay Private Scope
n
g)
198
h)
-
-
.
8.16hàm uscln
8 tc thutucuscln
199
8.2.6. N TRONG VBA
Trong
-
-
-
- Dim,
8.2.7.
a)
-
-
-
b)
Dim <> [As <>]
-
ênngn gn
Dim strFrmName As String
Dim intN As Integer
-
c)
bt buc ngi lp trình phi trc khi s dng
Option Explicit
khi phát hin ra các bin có s dng nhng cha khai báo
200
d)
-
-
Private
Public
e)
Dim
Static.
Dim intX As Integer
Static intX As Integer
Dim
Static
f)
DimPrivate.
Option Compare Database
Option Explicit
Dim intX As Integer
Private intX As Integer
g)
Public.
201
Option Compare Database
Option Explicit
Public intX As Integer
h)
-
-
-
Static.
8.2.8.
a)
-
-
-
-
b)
[Public | Private] Const [As ] =
-
-
-
c)
Const Pi = 3.14159
Const DoublePi = Pi * 2
Public Const Max = 10
Const Ngay = #1/7/2006#
202
8.2.9.
a)
b)
Byte
0 255
1
Boolean
Logic
0: false ; -1: true
2
Integer
-32768 32767
2
Long
-2147483648 2147483647
4
Currency
- 922337203685774.5808
922337203685774.5808
8
Single
-3.402823E38 -1.401298E-45 (âm)
1.401298E-45
4
Double
-1.79769313486232E308
-4.94065645841247E-324 (âm)
4.94065645841247E-324
8
Date
y
1/1/100 32/12/9999
8
String
Variant
16
Object
4
c)
-
-
-
d)
-
-
-
Dim Ten As String *8
203
-
- RTRIM, LTRIM, TRIM
e)
- Yes/No True/False.
- False.
f)
-
-
- Cdate
: Cdate(2) = #1/1/1900#
g)
-
-
Null.
-
- :
Dim X
X = X 2
- IsNumeric
True
-
True
-
Empty
204
-
IsNull
Null.
:
-
-
-
X = Null.
-
h)
-
-
-
Dim Rs As Recordset
8.2.10. CHÚ Ý
a) MT S QUY C KHI SON THO LNH TRONG VB
Ngôn ng lp trình VB không phân bit ch thng hay ch in khi son tho
lnh.
Ví d:
Dim A As Byte
ta cng có th vit
DIM A AS BYTE hoc dim a as byte
Mi lnh phi t nm trn vn trên cùng mt dòng màn hình.
o Nu lnh ngn thì ta có th t nhiu lnh trên cùng mt dòng màn hình
nhng gia các lnh phi cách nhau bng du hai ch
Ví d:
A=2
B=3
C=A+B
ba lnh trên có th c vit trên cùng mt dòng màn hình là:
A=2 : B=3 : C=A+B
205
o Nu lnh quá dài thì ta có th xung dòng nhng trc khi xung dòng
phi t du gch ni vào cui dòng phía trên.
Ví d:
A=2+3*9-3
lnh trên có th c vit trên hai dòng màn hình là:
A=2 +3 _
*9-3
Ta có th a li chú thích (comment) vào trong chng trình gii thích
lnh nhng phi t du nháy n trc li ghi chú . Khi biên dch trình
biên dch s b qu tt c nhng ni dung t sau du nháy n.
Ví d:
c tính din tích hình tròn.
b)
nút lnh có tên Cmdchao
8.18
206
sau nhn phím Tab chn thuc tính hoc phng
thc
Xem thông tin nhanh:
8.19
.
.20khi b sai.
.
c)
207
-
-
- Private Sub Chao_click()
ChaoClick.
8.21.
d)
-
-
Edit / Bookmark / Toggle BookMark. Mt
BookMark.
8.22
-
- Edit / BookMark / Clear All
BookMark.
BookMark
208
8.3.
8.3.1. NH GÁN
- Cú pháp: <tên bin>=<biu thc>
Trong : <biu thc> có th là hng, bin, hàm hoc biu thc thc s
- : lnh thc hin ly giá tr ca biu thc làm ni dung cho bin có tên
c ch nh trong cú pháp.
- Ví d:
u thc trong lnh này là mt hng s nguyên.
u thc trong lnh này là mt tên bin khác.
u thc trong lnh này là hàm cn bc 2.
u thc trong lnh này là mt biu thc s hc.
8.3.2.
a) CU TRÚC IF KHUYT DNG MT LNH
- :
If Then <
- : Nu kin> là úng thì thc hin <lc li không làm
gì c.
- :Hàm TimMax có ch ln nht ca 2 giá tr cha trong
tham s A, B.
8.23
b) CU TRÚC IF KHUYT DNG NHIU LNH
- :
If Then
End If
209
Trong :
- a: N u kin> là úng thì thc hin <Khi l c li
không làm gì c.
- V: on lnh sau y có ch ln nht và nh nht ca 2
giá tr cha trong hai bin A, B.
Max=A : Min =B
If Max < Min then
Max=B
Min=A
End If
c) CU TRÚC IF DNG MT LNH
- :
If Then < Else <
- N u ki c hin <l c li, nu
u kin> là Sai thì thc hin <lnh 2>.
- : on chng trình có chc nng A
B.
If A>B then Max=A Else Max=B
d) CU TRÚC IF DNG MT LNH
- :
If Then
Else
End If
Trong <Khi lnh 1>, <Khi lnh 2> có th là mt lnh hoc nhiu
lnh.
- Nu kin> là úng thì thc hin <Khi lc li,
nu kin> là Sai thì thc hin <Khi lnh 2>
- :on chng trình có chc nnggiá tr và giá tr nh
nht AB.
If A>B then
Max=A
Min=B
Else
210
Max=B
Min=A
End If
e) CU TRÚC IF DNG PHC TP NHIU TRNG HP
- :
If Then
ElseIf Then
ElseIf Then
[Else
]
End If
- Nu u kin 1> là úng thì thc hin <Khi lnh 1>, nu u
kin 2> là thì thc hin <Khi lnh 2>u u kin n> là
thì thc hin <Khi lnh n>, nu kin nào là c thì thc
hin <Khi lnh n+1> nu có.
- : bin lun nghim phng trình bc dng
tng quát ax
2
+bx+c=0, (a<>0)
Delta=b^2-4*a*c
If Delta<0 then
ng trình vô nghi
ElseIf Delta=0 then
ng trình có nghim ké-c/(2*a)
Else
x1=(-b+Sqr(delta))/(2*a)
x2=(-b-Sqr(delta))/(2*a)
ng trình có 2 nghim phân bi
x2
End If
8.3.3.
211
a)
Select Case
Case
Case
Case
h n>
[Case Else
]
End Select
b)
Nu <Biu thc kim tra> có giá tr là <Giá tr 1> thì thc hin <Nhóm lnh
1>, nu <Biu thc kim tra> có giá tr là <Giá tr 2> thì thc hin <Nhóm lnh
2u <Biu thc kim tra> có giá tr là <Giá tr n> thì thc hin <Nhóm
lnh n> , còn nu <Biu thc kim tra> có giá tr khác vi các giá tr t kê thì
thc hin <Nhóm lnh n+1> nu có.
c)
ca mt ngày bt k
Public Sub InThuCuaNgay()
Dim Thu As String
Ngay = InputBox("Nhap mot ngay bat ky", "Nhap lieu")
Select Case Weekday(Ngay)
Case 1
Thu = "Chu Nhat"
Case 2
Thu = "Thu Hai"
Case 3
Thu = "Thu Ba"
Case 4
Thu = "Thu Tu"
Case 5
Thu = "Thu Nam"
212
Case 6
Thu = "Thu Sau"
Case 7
Thu = "Thu Bay"
End Select
MsgBox Ngay & " la ngay " & Thu, vbInformation, "Ket qua"
Debug.Print Ngay & " la ngay " & Thu
End Sub
8.24
8.25:
8.3.4.
a)
:
- :
Do While
Loop
- là thì
Sai
213
:
- :
Do
Loop While
- .
là .
Khi nào là Sai
:
-
While
>
Wend
-
Sai
- :
Do Until
Loop
- Ý là Sai thì
. Khi nào là
- :
Do
Loop Until
- m tra .
là Sai .
Khi nào là
: