ƯỜ
Ạ Ọ
Ệ
TR
Ộ NG Đ I H C KINH DOANH CÔNG NGH HÀ N I
Ệ
KHOA CÔNG NGH THÔNG TIN
MICROSOFT ACCESS 2010
1
ƯỜ
Ạ Ọ
Ệ
TR
Ộ NG Đ I H C KINH DOANH VÀ CÔNG NGH HÀ N I Ệ
KHOA CÔNG NGH THÔNG TIN
ậ
Module – L p trình trong Access
ươ
Ch
ng 8
ạ ộ
ứ
ủ
ổ
ươ
8.1 T ch c và ho t đ ng c a ch
ng trình trong Access
ươ ạ ỗ ươ ộ Ch ng trình con có hai d ng: ng trình con là m t dãy Th t củ ụ ho c ặ hàm. M i ch
ể ự ệ ệ ệ ộ ộ ươ ề ấ các l nh đ th c hi n m t công vi c nào đó. M t ch ể ng trình có th có r t nhi u
ươ ch ng trình con.
ươ ủ ụ ạ ầ ầ ồ ủ ụ Bao g m các thành ph n: Đ u th t c, thân a. Ch ng trình con d ng th t c:
ủ ụ ủ ụ ế th t c và k t thúc th t c.
ầ ạ ủ ụ 1. Đ u th t c có d ng:
ố ố ủ ụ
o [Private] Sub [(]
2. Thân th t củ ụ
ủ ụ ủ ụ ủ ụ ứ ệ ằ ầ ế i quy t
o Thân th t c n m sau đ u th t c. Thân th t c ch a các l nh đ gi ể ả
ụ ể ạ ệ ệ ẽ ể ộ m t công vi c nào đó (các l nh c th b n s tìm hi u sau).
ủ ụ ế 3. K t thúc th t c
ể ế ế ủ ụ ế ệ ộ t k t thúc m t th t c, ta vi t dòng l nh: End Sub
o Đ báo cho máy tính bi
ố ố
3
ủ ụ ủ ụ
[Private] Sub
ạ ộ
ủ
ứ
ổ
ươ
8.1 T ch c và ho t đ ng c a ch
ng trình trong Access
ươ ạ ng trình con d ng hàm (Funtion)
ầ ầ b. Ch Ø Cũng nh th t c, hàm cũng có c u trúc ba ph n: Đ u hàm, thân hàm và k t ế
ố ố
[Private] Function
ư ủ ụ ạ ư ấ ổ thúc hàm. D ng t ng quát nh sau:
ộ ố ậ ể ị ớ ậ ạ ế “Chào b n đã đ n v i l p trình
Ø Sau đây là m t s ví d : ụ o Ví d 1ụ : L p trình hi n th câu chào:
ọ ổ ể ạ ử ạ , sau đó c a s đ b n so n
4
ọ New ch n Macro & code ọ ử ổ ư ệ Access” o B c 1: ướ o Ch n Create ch n ọ ươ ả th o ch ng trình (hay còn g i là c a s Code) hi n ra nh sau:
ạ ộ
ủ
ứ
ổ
ươ
8.1 T ch c và ho t đ ng c a ch
ng trình trong Access
ẽ ể ệ ử ứ ệ ạ ạ ổ ồ B n gõ vào c a s Code các l nh (b n c gõ r i sau s hi u l nh đó là
Ø B c 2: ướ
ư gì?) nh hình sau:
ươ ạ ươ ế ng trình: Ch n ng trình, k t ọ Run/Run Sub. Sau khi ch y ch
ØB c 3: ướ ư ả
ạ Ch y ch qu nh hình sau:
ả
ØGi
ệ
ộ
ươ
ể
i thích:
MsgBox(“Chao ban da den voi lap trinh Access”) s đ a ra m t thông báo nh hình ng
ị ữ ệ ươ
ẽ ư ư ế c. Khi đ a ra k t qu trên ch ự
ả ệ ệ
ượ ẽ
ư ế
ừ
ế
ạ
ạ
ạ
ng trình s ch y ti p và th c hi n l nh sau
ọ OK thì ch
L nh ệ ể ọ trên. Ta có th g i đây là l nh hi n th d li u cũng đ trình t m d ng và n u b n ch n l nh ệ MsgBox(...).
5
ạ ộ
ứ
ủ
ổ
ươ
8.1 T ch c và ho t đ ng c a ch
ng trình trong Access
ị ổ ủ ố
Ø Ví d 2:ụ Vào 2 s nguyên, tính t ng và hi n th t ng c a hai s đó. ổ ư
ố ử ạ ể o B n gõ vào c a s Code nh hình sau: ổ
ạ ươ ầ ạ ừ ư ị ng trình, máy yêu c u b n gõ t bàn phím giá tr a nh giao
ệ
o Khi ch y ch di n sau:
6
ạ ộ
ủ
ứ
ổ
ươ
8.1 T ch c và ho t đ ng c a ch
ng trình trong Access
ế ế ạ ố ẽ ư ấ ố
ØĐ n đây n u b n gõ vào s 5 và ch n
ọ OK (Hay n Enter) thì s nguyên 5 s l u
ế ạ ư ệ vào bi n a. Máy l i đ a ra giao di n:
ế ạ ố ẽ ư ế ế ố
ØVà n u b n gõ vào s 4 và ch n
ọ OK thì máy s l u s nguyên 4 vào bi n b. Ti p
7
ư ư ẽ ế ả ổ ụ t c máy s tính t ng và đ a k t qu là 9 nh hình sau:
ạ ộ
ứ
ủ
ổ
ươ
8.1 T ch c và ho t đ ng c a ch
ng trình trong Access
ả i thích:
ØGi ØL nhệ : Dim a As Integer
ế
ể ớ
ế
ứ
o Nghĩa là: Bi n (Dim) a là (As) nguyên (Integer). B n khai báo bi n a là nguyên , đ máy ả ố ự thì ô nh ph i
ế ạ ấ t nhiên n u là
ng ng v i
mà!, t
ớ s nguyên
s th c
ố ậ
ử ụ ớ ươ s d ng ô nh t ơ ớ l n h n, v.v.. lý do khai báo là v y.
ØL nhệ : a = InputBox("Moi ban go vao so a? ")
ế
ậ
ạ
o Nghĩa là: H p nh p li u (InputBox) ra thông báo: "Moi ban go vao so a? “. N u b n gõ
ộ ố
ố
ế
ệ ộ ượ ư vào m t s thì s đó đ
c l u vào bi n a
ØL nhệ : s = a + b
ẽ ấ
ế
ạ
ộ
ệ ủ
ả ẽ
ừ ế
ừ
ế
ế
ế
ả
ạ ư ậ
o Đây là l nh “gán”, nghĩa là máy s l y n i d ng bi n a (b n v a gõ vào 5), c ng v i n i ớ ộ ộ ụ ọ dung c a bi n b (b n v a gõ vào 4), k t qu s là 9, “gán” k t qu này cho bi n s (g i ệ l nh “gán” là nh v y).
ệ
ả ồ
ØL nhệ : MsgBox "Tong 2 so la: " & Str(s) ữ ệ ế
o Đây là l nh hi n th d li u, nh ng d li u thì ph i đ ng nh t, ấ ở ư ể ủ
ể ả
ữ ệ ộ
ị ữ ệ ộ ố
ủ
ế
ạ
ằ
ượ Str vi
ộ ố ả ấ
ư ể ộ
ể
ả
ả
ấ
đây: "Tong 2 so la: "(là ạ ả ổ c b n ph i đ i d li u văn b n) còn n i dung c a bi n s là m t s nguyên. Đ ghép đ ữ ế ắ ừ t t n i dung c a bi n s (s nguyên) thành d ng văn b n b ng hàm Str(s): ch t t ố String (văn b n). Đ ghép hai văn b n ta dùng d u & (cũng nh đ c ng 2 s ta dùng d u + ).
8
ự ệ
ủ ụ
ứ
ớ
8.2 Th t c đáp ng s ki n v i form, report
ở ố ượ ặ ở ế ộ
ØM đ i t
ng form ho c report ch đ design.
→ ả ố
ØClick ph i trên control mu n gán module
ch n ọ properties.
→ → ọ ọ ợ ể ượ
ØCh n tab event
ch n event thích h p Click nút bi u t ng.
ử ệ ấ
ØXu t hi n c a s Choose Builder. ổ
ØCh n l nh
. ọ ệ Code Builder OK→
ớ ộ ử ệ ấ ạ ặ ổ ị
ØXu t hi n c a s so n th o module v i n i m c đ nh. ả
ự ệ ể ạ ầ ọ
ØB n ch n Event và cu n đ tìm s ki n mình c n. ố
9
ự ệ
ủ ụ
ứ
ớ
8.2 Th t c đáp ng s ki n v i form, report
ể ở ả ủ ụ ạ
ØVí d :ụ T o th t c đ m b ng có tên
SO_LUONG khi ta kích vào vùng tiêu đ ề
ư ầ đ u trang Form. Ta thao tác nh sau:
ØCh n ọ Create vào tap Form chon Form Design
ể ậ ử ự ệ ủ ụ ứ ứ ổ
ØKích vào thanh FormHeader đ b t c a s ch a các th t c đáp ng s ki n
10
ứ ớ ấ ng v i vùng này (t t nhiên ban chon ư Event), nh hình sau:
ự ệ
ủ ụ
ứ
ớ
8.2 Th t c đáp ng s ki n v i form, report
ả ứ ớ ể ố ọ
ØKích vào ô bên ph i ng v i dòng
On Click, kích mũi tên xu ng đ ch n [Event
ự ệ ủ ụ ứ ế ấ ả Procedure], kích ti p vao nút ba ch m bên ph i , Sau đó th t c đáp ng s ki n
11
ệ hi n ra:
ự ệ
ủ ụ
ứ
ớ
8.2 Th t c đáp ng s ki n v i form, report
ệ DoCmd.OpenTable “So_luong”.
ạ ư ả ử ộ s tên DauForm
ạ ọ
ØB n gõ dòng l nh: ØL u th t c này b ng m t tên nào đó, gi ằ ủ ụ ØThoát v ề CSDL ØCh y th t c này b ng cách ch n Navigation pane/
Forms, kích đúp vào tên
ệ ủ ụ DauForm ta th y m t ằ ộ Form hi n ra.
ế ươ ế ả ả ạ ng trình ch y và k t qu là b ng FormHeader, ch
ấ ØTi p theo b n kích vào vùng ạ ượ ư ở c m ra nh sau: SoLuong đ
ở ạ ự
ØS ki n
12
các vùng còn l i thi ế ế ươ t k t ng t . ự ệ Click
ủ ụ
ự
ạ
ệ 8.3 T o và th c hi n th t c và hàm
ọ
ủ ụ
ặ
Macro & Code Tab. ọ Macro & Code ch n Module
a. Ta th t c, hàm trong Create ch n Tab ạ ậ Khai báo và t o l p th t c ho c hàm Ghi Module ọ ủ ụ o B c 1: ướ o B c 2: ướ o B c 3: ướ
ổ ủ ườ ổ ủ ọ i, tính tu i trung bình c a h .
ể ả ả ả ổ
ự ậ ấ ấ ố ố
13
Ví d :ụ Vào tu i c a hai ng Function Tong() Dim T1 As Interger Dim T2 As Interger Dim TB As Single T1 = InputBox(“vào tuoi cua nguoi thu nhat?”) T2 = InputBox(“vào tuoi cua nguoi thu hai?”) TB=(T1+T2)/2 MsgBox “Tuoi trung binh la:” & Str(TB) End Function ØTu i trung bình có th không ph i nguyên (vì ph i chia cho 2), do đó ta ph i khai ụ ự báo là th c (Single). S th c trong máy là s có d u ch m th p phân, ví d : 23.45, 12.00, 45.34567, v.v..
ủ ụ
ự
ạ
ệ 8.3 T o và th c hi n th t c và hàm
ạ ể ề ự ủ ụ
ệ ệ ẳ ạ
ệ ướ ế
ộ ố ượ ả ử ệ s nút l nh (Button) ng lên Form, gi
ch ng h n.
ổ Code: ả ộ ộ ạ Code ứ ủ b. T o th t c đáp ng s kiên c a các đi u khi n trên Form. ư ể ặ ể ề Trên Form ta có th đ t các đi u khi n nh nút l nh ch ng h n, nút l nh này cũng ự có các s ki n. Các b c ti n hành: ØB c 1: ổ M ở Form và b sung m t đ i t ướ ẳ ạ ØB c 2: ướ o Ch n nút l nh, kích ph i chu t ch n Build event , sau đó h p tho i ọ ọ
14
ở ử M c a s ệ ệ Builder hi n ra:
ủ ụ
ự
ạ
ệ 8.3 T o và th c hi n th t c và hàm
ự ệ ủ ụ ệ ấ ộ
ØCh n ọ Code Builder và ch n ọ OK, m t th t c s ki n xu t hi n:
ự ệ ặ
ủ ụ ủ ụ ứ ử ạ ạ
ØSo n th t c ho c hàm đáp ng s ki n. ạ ØGhi l
15
i th t c đó và ch y th
ủ ụ
ự
ạ
ệ 8.3 T o và th c hi n th t c và hàm
ề
ươ
ủ ụ
ạ
ủ ụ
ệ
ệ
ọ
ộ
ọ
ể ủ ụ
ặ ủ ụ
ụ
ng trình có nhi u th t c ầ ề ị ọ i đúng tên th t c b g i, ví d hai th t c sau:
c vi
c. Ch ộ ủ ụ M t th t c khi ch y có th yêu c u (g i) m t ho c nhi u th t c khác làm vi c. L nh g i này ượ ế ạ đ t l Sub MoBang() DoCmd.OpenTable”So_luong”
ủ ụ
ổ
End Sub Và th t c tính t ng:
Sub Tong() Dim a As Integer, b As Integer, s As Integer
a = 12
b = 20
s = a + b
MsgBox ("s=" & Str(s))
ể ạ
ủ ụ
ủ ụ
ộ
ả ử
ủ ụ
ạ
ể
ượ
c 2 th t c trên, ta có th t o m t th t c khác (gi
s có tên là
GOI(), th t c
End Sub Đ ch y đ ạ GOI có d ng sau: Sub GOI() MoBang
Tong
End Sub
16
ủ ụ
ự
ạ
ệ 8.3 T o và th c hi n th t c và hàm
ạ ủ ụ ầ
ệ
ế ệ ủ ụ MoBang() làm vi c, th t c MoBang() làm ủ ụ GOI() yêu c u th t c ọ ệ ạ i quay v th t c GOI() và th c hi n ti p l nh sau đó (t c là l nh g i ượ c t c các l nh trong th t c GOI() đ
17
ề ủ ụ ư ế ằ ứ ủ ụ ư ứ ủ ụ ấ ộ Khi ch y, th t c ự ệ vi c xong l ấ ả ủ ụ th t c Tong). C nh th cho đ n khi t ạ hoàn t ế ệ ệ ươ ng trình) nh sau: t. Ba th t c đó n m trong m t đo n mã (ch
ứ
ế
ể
8.4 Các phép toán, hàm, bi n, bi u th c
a. Các phép toán s h c ố ọ
ấ
ư
ỹ ừ
ầ Mod : Chia l y ph n d \ : Chia nguyên ^ : Lu th a
+ : C ngộ : Trừ * : Nhân / : Chia
b. Các phép toán so sánh:
ớ
ặ ặ
ằ ằ
= : B ngằ ỏ ơ < : Nh h n ơ ớ > : L n h n
ơ >= : L n h n ho c b ng ỏ ơ <= : Nh h n ho c b ng <> : khác
ứ
ể
ạ
c. Các phép toán Logic: AND, OR, NOT: Các phép toán so sánh t o nên bi u th c logic
ế cho k t qu
ả True(1) ho c ặ False(0)
X And Y 1 1 1 0
Y 1 0 0 0 ố
ự
ỗ
Not (x) 0 0 1 1 ử ụ
ỗ
ta s s ng phép toán
ặ & ho c d u
ấ +
X Or Y X 1 1 1 1 1 0 0 0 ự Mu n ghép 2 chu i ký t :
d. Phép ghép chu i ký t
18
ứ
ế
ể
8.4 Các phép toán, hàm, bi n, bi u th c
ả ế ể ị
ươ ươ ẽ ớ ng trình xác đ nh: ệ ng trình s làm vi c v i tên đó.
ủ ủ ự ả ả Khai báo bi n:ế ØBi n ph i khai báo đ ch ØTên c a bi n là gì? vì ch ế ØKi u c a bi n là gì? (nguyên, th c, logic, văn b n, v.v..) vì ch ế
ư ể ỗ ế ợ ả ớ
ủ ế ế ớ
ể ệ ụ ế ể ế ớ ớ
ế ỗ ể ư ư ủ
ể
ư ế
ạ ự ặ
ữ ố ấ
ậ
ạ
ộ
B n t
ượ
ặ
ữ đ t theo lu t sau: là m t chu i các ch cái, ch s , d u g ch chân, ừ khoá có trong Access và đ c
ỗ ớ c trùng v i các t
, không đ
ự ầ
ữ
ả
ươ
ng trình ph i “x p
ộ
ươ
ng trình ph i huy đ ng ô nh phù h p
ch ” cho các bi n “l u trú”, nghĩa là ch
ố ự
ế
ớ
v i ki u c a bi n, ví d n u bi n nguyên thì ô nh “bé”, s th c thì ô nh “to”,
ợ
ỗ ở ủ
v.v..Vi c khai báo là đ x p ch
c a bi n (ô nh ) cho h p lý, tránh lãng phí
ừ
ặ
(th a không gian “l u trú” ho c không đ ch đ “l u trú”)
ØD ng khai báo bi n nh sau:
ạ
ế
Dim
:ế
ộ
đ dài tên không quá 40 ký t
ệ
bi
ự đ u ph i là ch cái..
t ký t
ế
ể
ư ế
ể
ể
ầ
ố
ị
N u ph n này không ghi thì coi nh bi n đó ng m đ nh có các ki u: Ki u s ,
ế
ể
ỗ
ỗ
ỳ
ị
ầ ữ ả ả
ử ụ ể
ự
ế
ể
ầ
[As]:
chu i, Date/Time, Null (r ng). Khi s d ng bi n đó tu ng c nh mà xác đ nh ki u sau.
Còn n u ghi ph n này thì ki u có th là: Nguyên, th c, văn b n, v.v..
ế
ề
ế
ắ
Ví dụ v khai báo bi n: Dim i As Interger (i là bi n nguyên ng n)
19
ứ
ể
ế
8.4 Các phép toán, hàm, bi n, bi u th c
ườ Các hàm th ử ụ ng s d ng.
ạ ả ớ ế ụ ị
ØV i các hàm, b n cũng ph i vi
ủ t đúng theo quy đ nh c a Access, ví d Sin(x),
ư ở ươ Cos(x), Sqr(x), v.v..các hàm nh đã trình bày ch ng 5.
ứ ể Bi u th c (Expression)
ố ớ ế ằ ở ượ ứ ể ể ọ
Ø... Các bi n, h ng, hàm n i v i nhau b i phép toán đ
c g i là bi u th c, bi u
ể ế ề ạ ả ằ ọ ỉ ế ứ th c cũng có th ch là 1 bi n , 1 h ng, 1 hàm. Đi u quan tr ng là b n ph i vi t
ứ ế ị ị ể bi u th c đúng quy đ nh (đúng phép toán đã quy đ nh, đúng tên bi n, đúng tên
ằ ế ằ h ng, đúng cách vi ụ t h ng v.v..). Ví d :
ứ ứ ể ằ ỉ
o Bi u th c ch ch a h ng: (234+678)/13
ứ ể ế ố ỉ
o Bi u th c s ch ch a bi n: (a+b+c)*(a+b) ứ
ố ừ ứ ể ế ằ
o Bi u th c s v a ch a bi n và h ng: (a+b)/7 ứ
ứ ể ả
o Bi u th c văn b n: “Tin hoc” & “Văn phong”
ứ ể
o Bi u th c logic:(5>13) Or (3<9)
20
ộ ố ệ
ề ậ
8.5 M t s l nh v l p trình
ỉ ượ ệ ậ ế ế ố ế
ØKhi l p trình trong Access, 1 câu l nh ch đ
c vi t trên 1 dòng, n u mu n vi t
ề ệ ể ấ ấ ả nhi u câu l nh trên 1 dòng ta ph i dùng d u hai ch m(:) đ ngăn cách.
ụ Ví d : a=4: b=7: s=a+b
ả ứ ứ ừ ể ế ằ
Ø Các câu ghi chú, có ý nghĩa gi
i thích rõ ch c năng t ng h ng, bi n, bi u th c,
ả ắ ầ ệ ặ ấ ằ ơ ụ câu l nh, v.v.. Câu ghi chú ph i b t đ u b ng REM ho c d u nháy đ n (‘), ví d :
21
Rem Doan ma sau là de vao du lieu
ộ ố ệ
ề ậ
8.5 M t s l nh v l p trình
ữ ệ
8.5.1 Vào ra d li u
ệ
a. L nh Inputbox$
ứ
ị ể
ớ ừ
ậ
ả
ộ
Cho phép nh p giá tr ki u văn b n vào b nh t
bàn
Ø Ch c năng:
phím
Ø Cú pháp:
ề
ầ
ị
ị
Inputbox$([ , [][,]])
ủ
ụ
ế
ậ
ộ
Ví d : Nh p tên c a m t khách hàng vào bi n Kh
Dim Kh As String *20
Kh=InputBox$(“Tên khách hàng”)
22
ữ ệ
8.5.1 Vào ra d li u
ệ
ị ể ậ ừ Cho phép nh p giá tr ki u Varial vào t bàn phím
b. L nh Inputbox
Ø Ch c năng:
ứ
Ø Cú pháp:
ề ầ ị ị InputBox(
[ , [][,]])
ứ ụ ậ ố ừ ủ ế ộ Ví d :Nh p s ch ng t ơ
c a m t hoá đ n vào bi n Sct
Dim Sct
ứ ừ ố Sct=InputBox(“S ch ng t ”)
ệ
ệ ả ạ
: Hi n chu i văn b n (thông báo) ra h p tho i.
ỗ
ộ ộ
ề ể c. L nh MsgBox
ØCh c năng
ứ
ØCú pháp: MsgBox([ ,[ ,]])
ụ Ví d : MsgBox (“Hello Thao”)
ụ ế ậ ả ố ộ ổ ạ
Ví d 2: Nh p và tính t ng hai s và in k t qu ra h p tho i
Sub Tong()
Dim a As Interger, b As Interger
a=InputBox(“vào a=”)
23
b= InputBox(“vào b=”)
ế ả
Msgbox “K t qu là:” & Str(a+b)
End Sub
ệ
8.5.2 L nh gán
ư ầ ậ ệ ầ ạ ph n đ u l p trình, l nh gán có d ng:
ể
ế
ụ
ØNh đã nói qua
ở
ứ
=
Ví d : s=s+i
ệ ẽ
ể
ệ
ề
ứ
If Then
ệ
End If
8.5.3 L nh r nhánh IF…THEN…END IF
ØD ng 1:
ạ
ư
ØHo t đ ng c a l nh này nh sau:
ủ ệ
ề
ứ
ệ
ự
ệ
ệ
N u đúng thì th c hi n
ứ
ệ
ể
ế
ề
ỏ
ệ
N u sai thì b qua l nh If.
Ví d :ụ
ạ ộ
ể
ế
Sub XemTuoi()
Dim tuoi As Integer
tuoi=InputBox(“ Vao tuoi cua ban?”)
If tuoi>60 Then
ạ
ắ
MsgBox(“Ch c b n ngh h u r i?”)
ỉ ư ồ
24
End If
End Sub
ẽ
ệ
8.5.3 L nh r nhánh IF...THEN...END IF
ươ ạ ng trình:
ẽ ắ ạ ơ ơ
o N u b n gõ vào 65 (l n h n 60) và Enter thì máy s in ra câu: “Ch c b n ngh
ỉ
ỏ ơ ư ạ
ØKhi ch y ch
ế
ạ
ư ồ
h u r i”.
ế
o Còn n u b n gõ vào 25 (nh h n 60) và Enter thì máy không đ a ra gì c .
ả
ØD ng 2:
ạ
ệ
ể
ứ
ệ
ệ
ề
If Then
Else
End If
ể ề ự ệ ệ ệ ỏ ệ đúng thì th c hi n b
ạ ộ
Ho t đ ng:
N u ế
ứ
2>
ể ề ự ệ ệ ệ ỏ ệ sai thì th c hi n b
25
N u ế
ứ
1>
ẽ
ệ
8.5.3 L nh r nhánh IF...THEN...END IF
ể ặ ủ ụ ườ ả ờ ợ ụ i th t c XemTuoi() đ g p tr ng h p nào máy cũng tr l i:
ØVí d 1: Ta s a l
ử ạ
Sub XemTuoi()
Dim tuoi As Integer
tuoi=InputBox(“ Vao tuoi cua ban?”)
If tuoi>60 Then
ỉ ư ồ
ạ
ắ
MsgBox(“Ch c b n ngh h u r i?”)
Else
ỉ ư
ư
ế
ạ
ổ
MsgBox(“B n ch a đ n tu i ngh h u!” )
End If
End Sub
ụ ậ ả ươ ậ
ØVí d 2: L p trình gi
i ph ng trình b c hai:ax2+bx+c=0
ệ ươ ế ạ ả
ớ ậ
ế ấ ệ ể ạ
26
ế
ở
ị ụ ể ế ế ạ ờ
ạ
ệ ự ệ ả ậ ể
ị ụ ể
ng trình b c hai này, b n ph i cho máy bi
t ba giá tr c th
ả
ự
ng v i a, b, c ( đây ki u 3 bi n y là th c, rõ ràng b n ph i dùng l n InputBox).
ượ Delta, sau đó b n ph i xem xét n u (If)
c
i thu t) đó (gi
Đ tính nghi m ph
ứ
ả
Nh giá tr c th 3 bi n đó b n tính đ
Delta không âm thì có 2 nghi m, n u âm thì vô nghi m. Trình t
đ ư
t kê nh sau: ượ ệ
c li
ẽ
ệ
8.5.3 L nh r nhánh IF...THEN...END IF
27
Sub GPTB2()
Dim a As Double, b As Double, c As Double, Delta As Double
Dim x1 As Double, x2 As Double
a= InputBox(“vao a=”)
b= InputBox(“vao b=”)
c= InputBox(“vao c=”)
Delta= b*b 4*a*c
If Delta>0 Then
x1=(b+Sqr(Delta))/(2*a)
x2=(bSqr(Delta))/(2*a)
MsgBox (“x1=” & Str(x1))
MsgBox (“x2=” & Str(x2))
Else
MsgBox (“Pt vo nghiem”)
End If
End Sub
ệ
ọ
8.5.4 L nh ch n Select...Case
ả ữ ế
ợ ạ ụ ọ ố ng h p b n ph i ch n 1 trong nhi u nhánh, ví d : Gi
ủ
ế i. N u
ượ
ượ
ØKhông ph i lúc nào cũng “không th này thì th kia” (2 nhánh) mà có nh ng
ệ
t nghi p c a
ng 100.000đ, n u
ng.
ế khá thì đ
ng 200.000đ, còn trung bình thì không đ ả ử ằ
s b ng t
ưở
c th
ưở
c th ạ
ưở
c th
ế
ề
ả
ườ
tr
ỏ
ạ
b n có 3 lo i: Trung bình, Khá và Gi
ỏ ượ
i đ
gi
ØCh
ươ ng trình nh sau:
Dim Loai As Integer
ạ
ố
ố
ỏ ố
Loai=InputBox(“Vào lo i: Trung bình gõ vào s 1, Khá s 2, Gi
i s 3”)
Select Loai
Case 1
ạ
ượ
ưở
MsgBox(“B n không đ
c th
ng”)
Case 2
ạ
ượ
ưở
MsgBox(“B n đ
c th
ng 100.000đ”)
Case Else
ạ
ượ
ưở
MsgBox(“B n đ
c th
ng 200.000đ”)
End Select
28
End Sub
ư
Sub XetThuong()
ệ
ọ
8.5.4 L nh ch n Select...Case
ạ ươ ượ ế ạ ạ ố
ØKhi ch y ch
ng trình, n u b n gõ vào s 3 thì máy s in dòng:” B n đ
ầ ạ ầ ẽ
ố
ạ ạ
ưở
ườ
ả ư ể c
ư
ng 200.000đ”. Nh ng n u b n không may gõ nh m s 6 (gõ nh m là bình
th
ạ
ẫ
ng b n 200.000đ, m c dù không có lo i nào là lo i
ng mà!) thì máy v n th
th
ử ạ
6 c . Đ an toàn b n s a l ế
ặ
ưở
i đoan mã trên nh sau:
Dim Loai As Integer
ạ
ố
ố
ỏ ố
Loai=InputBox(“Vào lo i: Trung bình gõ vào s 1, Khá s 2, Gi
i s 3”)
Select Loai
Case 1
ạ
ượ
ưở
MsgBox(“B n không đ
c th
ng”)
Case 2
ạ
ượ
ưở
MsgBox(“B n đ
c th
ng 100.000đ”)
Case 3
ạ
ượ
ưở
MsgBox(“B n đ
c th
ng 200.000đ”)
Case Else
ạ ằ
ạ
ồ
MsgBox(“B n gõ nh m lo i b ng r i!”)
ầ
29
End Select
End Sub
ạ
Sub XetThuong()
ệ
ọ
8.5.4 L nh ch n Select...Case
ủ ệ ư ổ
ØCú pháp t ng quát c a l nh Select nh sau:
ứ
ệ
ệ
ể
Select Case
Case ị
Case ị
………..
Case ị
ệ
[Case Else
ệ
]
End Select
ự
ệ ị ằ ế ệ ế
ệ
ệ ườ ự ế ợ
ØN u b ng i thì th c hi n và k t thúc l nh Select Case.
ØCòn n u không có 1 tr
ệ ệ ế ặ ỏ
30
ệ
ng h p nào đúng thì h c hi n và cũng
ế
k t thúc luôn l nh Select Case ho c ra kh i Select Case n u không dùng l nh
Case Else..
ệ
ọ
8.5.4 L nh ch n Select...Case
ủ ụ ậ ụ ế ặ ầ ạ ộ
ạ
ươ ệ
ượ ủ ụ ệ ạ
ØVí d : T o m t th t c l p k ho ch công tác trong tu n, đ t vào nút l nh
c
ạ
ng trình và kích ho t nút l nh th t c đ
ệ Command() trên Form. Khi ch y ch
th c hi n:
ự
Private Sub command0_Click()
Dim Thu As Integer
ạ ế Thu = InputBox(“B n cho bi ứ
t th ? ”)
Select Case Thu
Case 2
ọ MsgBox (“H p giao ban”)
Case 3
ố ưở MsgBox (“Đi xu ng phân x ng”)
Case 4
ổ MsgBox (“Đi lên t ng công ty”)
Case 5 Or 6
ưở MsgBox (“H p các phân x ng”)
ọ
31
Case Else
MsgBox (“Ngh ”)ỉ
End Select
End Sub
ệ
ặ
8.5.5 L nh l p For...Next
ư ệ ổ
ØL nh For có cú pháp t ng quát nh sau:
ế
ế
ị ầ
ướ
ố
ị
For = To [Step ]
ệ
Next
ế ế ị ầ ị ố , n u ế
ØBan đ u ầ
nh n ậ , và so sánh v i ớ
ế ơ ỏ ơ ệ ự ế ằ ớ
l n h n thì k t thúc ặ
For, n u nh h n ho c b ng thì th c hi n ệ ,
ế ế ướ ộ ồ ờ ớ c ng thêm v i và đ ng th i so sánh v i g p ặ Next, ớ ,
ế ơ ế ỏ ơ ế ặ ằ ơ
ố , n u l n h n thì k t thúc ị
For, còn n u đang nh h n ho c b ng
32
ạ ệ ự ạ ư ế thì l i th c hi n i làm ti p nh trên. ệ , g pặ Next l
ệ
ặ
8.5.5 L nh l p For...Next
ụ ổ
ØVí d : Tính t ng s=11+22+33+...+1010 .
Sub Tong()
Dim s As Double, i As Integer
For i = 1 To 10 Step 1
s = s + i^i
Next
ế ả MsgBox “K t qu là:” & Str(s)
33
End Sub
ệ
8.5.6 L nh Do while... Loop
ư
ạ
ổ
ØD ng t ng quát nh sau:
ề
ệ
Do While <Đi u ki n>
ệ
Loop
ề
ừ
ệ
ệ
ệ
ự
ệ
ề
ệ
ặ
ỏ
ØCh ng nào <Đi u ki n> còn đúng thì th c hi n
ự
ØKhi <Đi u ki n> sai thì ra thì thoát kh i vòng l p và th c hi n nhóm l nh sau Loop .
ệ
Ví d :ụ
Sub Tong()
Dim s As Double, a As Double, i As Integer
i= 1
a=1/i
s= 0
Do While a>=0.0001
s= s+a
i= i+1
a=1/i
Loop
34
ế
ả
MsgBox (“K t qu :”) & Str(s)
End Sub
ệ
8.5.7 L nh Do Until... Loop
ư
ạ
ổ
ØD ng t ng quát nh sau:
ệ
ề
Do Until <Đi u ki n>
ệ
Loop
ệ
ề
ự
ệ v n ẫ còn sai thì th c hi n
<Đi u ki n>
ệ .
ØCh ng nào
ừ
ØVí d trên ta vi
ụ
ế ạ
t l
ệ
i theo l nh này:
Sub Tong()
Dim s As Double, a As Double, i As Integer
i= 1
a=1/i
s= 0
Do Until a< 0.0001
s= s+a
i= i+1
a=1/i
Loop
ế
ả
MsgBox (“K t qu :”) & Str(s)
35
End Sub
ự
ề
ệ
ệ
ệ
ặ
ỏ
ØKhi <Đi u ki n> đúng thì ra kh i vòng l p và th c hi n nhóm l nh sau Loop.
ố ượ
ố ượ
ố ượ
8.6 Đ i t
ế
ng, bi n đ i t
ử
ng và x lý đ i t
ng
ộ ố ố ượ ạ
ØTrong Access có m t s đ i t
ầ
ng mà b n c n quan tâm:
ứ ng ng
ØĐ i t
ố ượ DBEngine: ch a đ i t ố ượ Workspaces (vùng làm vi c)ệ
ứ ứ ệ ề ỗ ộ ng
ØĐ i t
ố ượ Workspaces: ch a nhi u vùng làm vi c, m i vùng ch a m t
Database.
ØĐ i t
ng ố ượ Database: ch a ứ CSDL
ố ượ ứ
ØĐ i t
ng ng trong ố ượ RecordSets: ch a các đ i t CSDL
ố ượ ủ ứ ả
ØĐ i t
ng Tabledefs: ch a các b ng c a m t ộ CSDL
ủ ấ
ØĐ i t
ng ứ
ố ượ Querydefs: ch a các truy v n c a m t ộ CSDL
ố ượ ườ ả
ØĐ i t
ng ng trong b ng ứ
Field: ch a các tr
ố ượ
ØĐ i t
ng ứ
Form: ch a các Form
Øv.v..
36
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ố ượ
ế
ể
Dim As
ng>
ố ượ ế Cách khai báo bi n đ i t ng:
ể ệ ậ ớ ộ ế ế cho phép tham chi u đ n m t ể
ộ CSDL, vì v y đ làm vi c v i m t a. Ki u Database
ế ả CSDL ta ph i khai báo bi n ki u ể Database
ư ờ ớ ộ ệ ệ ể
ØĐ làm vi c v i m t CSDL hi n th i ta làm nh sau:
ế
ể
Dim Db As Database (Khai báo bi n Db có ki u Database)
ứ
ế
ệ
ắ
ớ
ờ
Set Db=DBEngine.Wokspaces(0).Database(0) (g n bi n Db ng v i CSDL hi n th i)
ặ
ØHo c có th vi
ể ế
t:
Dim Db As Database
ế
ệ
ắ
ớ
ờ
Set Db=CurrentDb() (G n bi n Db v i CSDL hi n th i)
ệ
Ø Làm vi c v i 1 CSDL khác:
ớ
Dim Db As Database
37
Set Db= DBEngine.Wokspaces(0).Database()
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ể ế ử ụ
ế ố ượ ủ ng c a CSDL đã khai b. S d ng bi n ki u RecordSet
ØKi u ể RecordSets cho phép ta tham chi u đ n các đ i t
ả
ế
ấ
báo nh : B ng, truy v n, các b n ghi, v.v..
ắ ư ả
ạ ớ ả ế ệ T o 1 bi n ki u ể RecordSet g n v i b ng ủ
So_luong c a CSDL hi n
ØVí d 1:ụ
th i:ờ
Sub Form_Load()
Dim Db As Database
Dim Rec As Recordset
Dim Dem As Integer
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("So_luong", DB_OPEN_TABLE)
Dem = Rec.RecordCount
ổ ố ả
MsgBox "T ng s b n ghi là" + Str(Dem)
End Sub
ủ ụ ủ ụ ạ ở ự ộ
Ø trên ta dùng th t c Form_Load(), th t c này khi ch y thì t
38
ạ
đ ng n p Form.
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ư ể ế ả ộ Ví d 2:ụ Ta có th dùng m t bi n b ng nh sau::
Sub Form_Load()
Dim Db As Database
Dim TB As TableDef
Dim Dem As Integer
Set Db = DBEngine.Workspaces(0).Databases(0)
Set TB = Db.TableDefs("So_luong")
Dem = TB.RecordCount
ủ MsgBox "So ban ghi c a Bang So_luong la:" & Str(Dem)
39
End Sub
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ả ố ồ ườ ng: Hoten, NgaySinh, DienToan,
ư Ví d 3:ụ Ta có b ng KhoiA (kh i A) g m các tr
DienLy. DienHoa, DiemTong, GhiChu nh sau:
ậ ể
Hãy l p trình đ tính
DiemTong:
DiemTong=DiemToan+DiemLy+DiemHoa.
Sub Form_Load()
Dim Db As Database
Dim Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("KhoiA")
ế ệ
ế
Do Until Rec.EOF ‘Làm cho đ n h t t p
ả
ộ
ử
Rec.Edit ‘cho phép s a n i dung các b n ghi
Rec![TongDiem] = Rec![DiemToan] + Rec![DiemLy] + Rec![DiemHoa]
ậ
ị ớ
ậ
Rec.Update ‘c p nh t giá tr m i
ế ế
ể
ế
ả
Rec.MoveNext ‘Di chuy n đ n b n ghi k ti p
40
Loop
Rec.Close
Db.Close
End Sub
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ạ ươ ư ả ớ ộ
ØSau khi ch y ch
ng trình ta có n i dung b ng m i nh sau:
ØChú ý:
ế ườ ả t Rec![TongDiem], nghĩa là tr ng ể
TongDiem trong trong b n ghi, đ
o Ta vi
ệ ớ ế ừ phân bi t v i bi n khi khai báo t khoá Dim...
ụ ừ ụ ể ậ ữ ế
ØVí d 4: Cũng t
ví d 3, hãy l p trình đ ghi vào tr ng ườ GhiChu ch “Do” n u
41
ữ ế ặ TongDiem>=15 ho c ch “Truot” n u TongTong<15
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
Sub Form_Load()
Dim Db As Database
Dim Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("KhoiA")
ế ệ
ế
Do Until Rec.EOF ‘Làm cho đ n h t t p
If Rec![TongDiem]>=15 Then
ử
ả
ộ
Rec.Edit ‘cho phép s a n i dung các b n ghi
Rec![GhiChu]=”Do”
Else
ử
ả
ộ
Rec.Edit ‘cho phép s a n i dung các b n ghi
Rec![GhiChu]=”Truot”
End If
ậ
ị ớ
ậ
Rec.Update ‘c p nh t giá tr m i
ế ế
ế
ể
42
ả
Rec.MoveNext ‘Di chuy n đ n b n ghi k ti p
Loop
Rec.Close
Db.Close
End Sub
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ạ
Sau khi ch y ta có:
43
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ệ
a. Câu l nh Macro.
ể ự
ệ
ệ
ộ
ØĐ th c hi n m t Macro ta dùng l nh sau:
ả ựơ
ệ
ể ự
ủ ụ
ặ
ØL nh này ph i đ
ặ
c đ t trong các hàm ho c th t c đ th c thi.
ố ố ộ DoCmd. [,]
ố ượ
ộ
ở
b. Hành đ ng m , đóng các đ i t
ng.
ố ượ
ØĐóng các đ i t
ng: CLOSE
ụ
ể
ộ
ư
ví d : Đ đóng m t Form
DanhSach ta gõ nh sau:
DoCmd.Close acForm, “DanhSach”, acSaveYes
ố
ạ ộ
AcForm: là thông s ch
ỉ Form đang ho t đ ng
ố
ạ
ọ ự
ổ
i m i s thay đ i trên đó.
AcSaveYes: là thông s cho phép khi đóng
Form thì ghi l
ố ượ
ể
ươ
ụ
ư
ụ
Đ đóng các đ i t
ng khác ta làm t
ng t
nh ví d trên.
44
ố ượ
ệ
ằ
8.6.2 M ở đóng đ i t
ng b ng câu l nh Marco
ộ ố ượ
ØM các đ i t
ữ
ng ta s d ng nh ng hành đ ng sau:
ử ụ
ở ộ ả
ở ộ
ở ộ
ở ộ
ở ộ ở
o OpenTable: M m t b ng
o OpenForm: M m t Form
o OpenReport: M m t Report
o OpenQuery: M m t Query
o OpenModule: M m t Module
ở ả ủ ụ ự ạ ộ ộ ệ
Ví d 1ụ : T o m t th t c th c hi n m t Macro m b ng DanhSach
ố ượ ự ư
nh trên.
ệ DoCmd.Opentable (“DanhSach”)
ØĐ m các đ i t
ươ
ể ở
Ví d 2ụ : Gi
ng khác ta làm t
ng t
ờ
s trong CSDL hi n th i ta có:
ể
ồ ơ
ả TaHsTs (b ng H s Tuy n Sinh) và b ng ả TaDiemD (b ng ả
ố ể ả ử
1. Hai b ng ả
Đi m kh i D) .
ả ng sau: Sbd, HoTen, NgaySinh, GioiTinh, KhuVuc,
ườ
B ng TaHsTs có các tr
UuTien, TonGiao, DanToc.
ả ườ B ng TaDiemD có các tr ng: Sbd, Toan, Van, Anh
2. Ba Form TuyenSinh2014, FoHsTs, FoDiemD
45
ủ ư ệ ộ M t giao di n chính c a Form TuyenSinh2014 nh hình sau:
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ộ
ư
ØChú ý: thu c tính Name cho
4 nút trên nh sau:
ề
ề
ề
o Nút có tiêu đ : “NHAP HO SO” có tên NhapHoSo
o Nút có tiêu đ : “NHAP DIEM” có tên NhapDiem
o Nút có tiêu đ : “KET THUC” có tên KetThuc
ạ ẽ ượ ở ể ư ữ
c m đ ta đ a d FoDsTs s đ
46
ế ế ượ ư a. Khi ta kích ho t nút NHAP HO SO thì Form
ệ
li u vào, Form này đ ạ
t k có hình d ng nh sau: c thi
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ề
o Nút có tiêu đ : “nh p” có tên NhapLyLich
ậ
ề ế
o Nút có tiêu đ : “k t thúc” có tên KetThucLyLich
ể ậ ạ ở ệ ẽ ượ b. Khi ta kích ho t nút “NH P Đi m” giao di n chính thì Form c FoDiemD s đ
ở ể ữ ệ ư ư ể ệ ấ ấ m đ ta đ a d li u đi m sau khi đã ch m. Giao di n này có c u trúc nh sau:
ư ộ
ØChú ý: Thu c tính Name cho 2 nút trên nh sau:
ề ậ
o Nút có tiêu đ : “nh p li u” có tên NhapDuLieu
ệ
ề ế
o Nút có tiêu đ : “K t thúc” có tên KetThucNhap
47
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ủ ụ ệ ả
ề
ở
ự ệ
ằ ư
ọ ệ
Ø Sau đây là các th t c s ki n cu ba nút l nh trên Form TuyenSinh214 nh sau:
ọ Navigation pane/ Form, ch n t p
o M Form TuyenSinh2014 b ng cách v CSDL, ch n
ọ
TuyenSinh2014, ch n Design
ả
ọ
ộ
ư
ề
ủ ụ
t Code cho 3 th t c đó nh sau:
o Ch n nút có tiêu đ NHAP HO SO/ kích ph i chu t ch n Code buider
ọ
o Vi
ế
Option Compare Database
Private Sub KetThuc_Click()
DoCmd.Close
End Sub
Private Sub NhapDiem_Click()
DoCmd.OpenForm ("FoDiemD")
End Sub
Private Sub NhapHoSo_Click()
DoCmd.OpenForm ("FoHsTs")
End Sub
ươ
ủ ụ
ủ
ư
T
ng t
ự ế
vi
ệ
t Code cho 2 th t c c a nút l nh trên Form FoHsTs nh sau:
ủ ụ
Rem Th t c trên Form FoHsTs
Option Compare Database
48
Private Sub KetThucLyLich_Click()
DoCmd.Close
End Sub
Rem
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
Private Sub NhapLyLich_Click()
Dim Db As Database, Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("TaHsTs")
Rec.AddNew
Rec("SBD") = Sbd
Rec("HOTEN") = HoTen
Rec("GIOITINH") = GioiTinh
Rec("KHUVUC") = Val(KV)
Rec("TONGIAO") = TonGiao
Rec("DANTOC") = DanToc
Rec.Update
Sbd = ""
HoTen = ""
NgaySinh = ""
GioiTinh = ""
49
KhuVuc = ""
TonGiao = ""
DanToc = ""
UuTien = ""
Sbd.SetFocus
End Sub
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ươ
ự
ế ế
ủ ụ
ủ
ệ
T
ng t
ư ậ
nh v y vi
t ti p cho 2 th t c c a hai nút l nh trên Form: FoDiemD
ủ ụ
Rem Th t c trên Form FoDiemD
Option Compare Database
Private Sub KetThucNhap_Click()
DoCmd.Close
End Sub
Rem ....................................................................
Private Sub NhapDuLieu_Click()
Dim Db As Database, Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("TaDiemD")
ả
ớ
Rec.AddNew 'Thêm b n ghi m i
Rec("SBD") = Sbd
Rec("Toan") = Val(Toan)
Rec("Van") = Val(Van)
Rec("Anh") = Val(Anh)
ậ
ậ
ả
ớ
50
ả
Rec.Update 'C p nh p b n ghi m i vào b ng TaHsTs
Sbd = ""
Toan = ""
Anh = ""
Van = ""
ỏ ế
ể
Sbd.SetFocus 'Chuy n tr đ n SBD.
End Sub
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ươ
ự
ế ế
ủ ụ
ủ
ệ
T
ng t
ư ậ
nh v y vi
t ti p cho 2 th t c c a hai nút l nh trên Form: FoDiemD
ủ ụ
Rem Th t c trên Form FoDiemD
Option Compare Database
Private Sub KetThucNhap_Click()
DoCmd.Close
End Sub
Rem ....................................................................
Private Sub NhapDuLieu_Click()
Dim Db As Database, Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("TaDiemD")
ả
ớ
Rec.AddNew 'Thêm b n ghi m i
Rec("SBD") = Sbd
Rec("Toan") = Val(Toan)
Rec("Van") = Val(Van)
Rec("Anh") = Val(Anh)
ậ
ả
ậ
ớ
51
ả
Rec.Update 'C p nh p b n ghi m i vào b ng TaHsTs
Sbd = ""
Toan = ""
Anh = ""
Van = ""
ỏ ế
ể
Sbd.SetFocus 'Chuy n tr đ n SBD.
End Sub
Có thể bạn quan tâm
Tài liêu mới
ủ
ụ
ế
ậ
ộ
Ví d : Nh p tên c a m t khách hàng vào bi n Kh
Dim Kh As String *20
Kh=InputBox$(“Tên khách hàng”)
22
ữ ệ
8.5.1 Vào ra d li u
ệ
ị ể ậ ừ Cho phép nh p giá tr ki u Varial vào t bàn phím
b. L nh Inputbox Ø Ch c năng: ứ Ø Cú pháp:
ề ầ ị ị InputBox(
ứ ụ ậ ố ừ ủ ế ộ Ví d :Nh p s ch ng t ơ c a m t hoá đ n vào bi n Sct
Dim Sct
ứ ừ ố Sct=InputBox(“S ch ng t ”)
ệ
ệ ả ạ : Hi n chu i văn b n (thông báo) ra h p tho i.
ỗ
ộ ộ
ề ể c. L nh MsgBox
ØCh c năng
ứ
ØCú pháp: MsgBox(
ụ Ví d : MsgBox (“Hello Thao”)
ụ ế ậ ả ố ộ ổ ạ Ví d 2: Nh p và tính t ng hai s và in k t qu ra h p tho i
Sub Tong()
Dim a As Interger, b As Interger
a=InputBox(“vào a=”)
23
b= InputBox(“vào b=”)
ế ả Msgbox “K t qu là:” & Str(a+b)
End Sub
ệ 8.5.2 L nh gán
ư ầ ậ ệ ầ ạ ph n đ u l p trình, l nh gán có d ng:
ể
ế ụ
ØNh đã nói qua
ở
ứ
=
Ví d : s=s+i
ệ ẽ
ể
ệ
ề
ứ
If
8.5.3 L nh r nhánh IF…THEN…END IF ØD ng 1: ạ
ư
ØHo t đ ng c a l nh này nh sau: ủ ệ ề ứ
ệ
ự
ệ
ệ
N u
ứ
ệ
ể
ế
ề
ỏ
ệ
N u
Ví d :ụ
ạ ộ ể ế
Sub XemTuoi()
Dim tuoi As Integer
tuoi=InputBox(“ Vao tuoi cua ban?”)
If tuoi>60 Then
ạ
ắ MsgBox(“Ch c b n ngh h u r i?”)
ỉ ư ồ 24
End If
End Sub
ẽ
ệ
8.5.3 L nh r nhánh IF...THEN...END IF
ươ ạ ng trình:
ẽ ắ ạ ơ ơ
o N u b n gõ vào 65 (l n h n 60) và Enter thì máy s in ra câu: “Ch c b n ngh ỉ
ỏ ơ ư ạ
ØKhi ch y ch ế ạ ư ồ h u r i”. ế
o Còn n u b n gõ vào 25 (nh h n 60) và Enter thì máy không đ a ra gì c . ả
ØD ng 2: ạ
ệ
ể
ứ
ệ
ệ
ề
If
ể ề ự ệ ệ ệ ỏ ệ đúng thì th c hi n ạ ộ
Ho t đ ng:
N u ế ể ề ự ệ ệ ệ ỏ ệ sai thì th c hi n 25 N u ế ể ặ ủ ụ ườ ả ờ ợ ụ i th t c XemTuoi() đ g p tr ng h p nào máy cũng tr l i: Dim tuoi As Integer tuoi=InputBox(“ Vao tuoi cua ban?”) If tuoi>60 Then ỉ ư ồ ạ ắ
MsgBox(“Ch c b n ngh h u r i?”) Else ỉ ư ư ế ạ ổ MsgBox(“B n ch a đ n tu i ngh h u!” ) ụ ậ ả ươ ậ i ph ng trình b c hai:ax2+bx+c=0 ệ ươ ế ạ ả ớ ậ
ế ấ ệ ể ạ 26
ế ở
ị ụ ể ế ế ạ ờ ạ
ệ ự ệ ả ậ ể
ị ụ ể
ng trình b c hai này, b n ph i cho máy bi
t ba giá tr c th
ả
ự
ng v i a, b, c ( đây ki u 3 bi n y là th c, rõ ràng b n ph i dùng l n InputBox).
ượ Delta, sau đó b n ph i xem xét n u (If)
c
i thu t) đó (gi Đ tính nghi m ph
ứ
ả
Nh giá tr c th 3 bi n đó b n tính đ
Delta không âm thì có 2 nghi m, n u âm thì vô nghi m. Trình t
đ ư
t kê nh sau: ượ ệ
c li 27 Sub GPTB2()
Dim a As Double, b As Double, c As Double, Delta As Double
Dim x1 As Double, x2 As Double
a= InputBox(“vao a=”)
b= InputBox(“vao b=”)
c= InputBox(“vao c=”)
Delta= b*b 4*a*c
If Delta>0 Then
x1=(b+Sqr(Delta))/(2*a)
x2=(bSqr(Delta))/(2*a)
MsgBox (“x1=” & Str(x1))
MsgBox (“x2=” & Str(x2))
Else
MsgBox (“Pt vo nghiem”)
End If
End Sub ả ữ ế ợ ạ ụ ọ ố ng h p b n ph i ch n 1 trong nhi u nhánh, ví d : Gi ủ
ế i. N u ượ
ượ ế khá thì đ
ng 200.000đ, còn trung bình thì không đ ả ử ằ
s b ng t
ưở
c th
ưở
c th ạ
ưở
c th ế
ề
ả
ườ
tr
ỏ
ạ
b n có 3 lo i: Trung bình, Khá và Gi
ỏ ượ
i đ
gi
ØCh
ươ ng trình nh sau: Dim Loai As Integer ạ ố ố ỏ ố Loai=InputBox(“Vào lo i: Trung bình gõ vào s 1, Khá s 2, Gi i s 3”) Select Loai Case 1 ạ ượ ưở MsgBox(“B n không đ c th ng”) Case 2 ạ ượ ưở MsgBox(“B n đ c th ng 100.000đ”) Case Else ạ ượ ưở MsgBox(“B n đ c th ng 200.000đ”) End Select 28 End Sub ư
Sub XetThuong() ạ ươ ượ ế ạ ạ ố ng trình, n u b n gõ vào s 3 thì máy s in dòng:” B n đ ầ ạ ầ ẽ
ố ạ ạ ưở
ườ
ả ư ể c
ư
ng 200.000đ”. Nh ng n u b n không may gõ nh m s 6 (gõ nh m là bình
th
ạ
ẫ
ng b n 200.000đ, m c dù không có lo i nào là lo i
ng mà!) thì máy v n th
th
ử ạ
6 c . Đ an toàn b n s a l ế
ặ
ưở
i đoan mã trên nh sau: Dim Loai As Integer ạ ố ố ỏ ố Loai=InputBox(“Vào lo i: Trung bình gõ vào s 1, Khá s 2, Gi i s 3”) Select Loai Case 1 ạ ượ ưở MsgBox(“B n không đ c th ng”) Case 2 ạ ượ ưở MsgBox(“B n đ c th ng 100.000đ”) Case 3 ạ ượ ưở MsgBox(“B n đ c th ng 200.000đ”) Case Else ạ ằ ạ ồ MsgBox(“B n gõ nh m lo i b ng r i!”) ầ
29 End Select End Sub ạ
Sub XetThuong() ủ ệ ư ổ ứ ệ ệ ể
Select Case ệ ị ằ ế ệ ế ệ
ệ ườ ự ế ợ ệ ệ ế ặ ỏ 30 ệ
ng h p nào đúng thì h c hi n ủ ụ ậ ụ ế ặ ầ ạ ộ ạ
ươ ệ
ượ ủ ụ ệ ạ ạ
ng trình và kích ho t nút l nh th t c đ ệ Command() trên Form. Khi ch y ch
th c hi n: ự
Private Sub command0_Click() Dim Thu As Integer ạ ế Thu = InputBox(“B n cho bi ứ
t th ? ”) Select Case Thu Case 2 ọ MsgBox (“H p giao ban”) Case 3 ố ưở MsgBox (“Đi xu ng phân x ng”) Case 4 ổ MsgBox (“Đi lên t ng công ty”) Case 5 Or 6 ưở MsgBox (“H p các phân x ng”) ọ
31 Case Else MsgBox (“Ngh ”)ỉ End Select End Sub ư ệ ổ ế ế ị ầ ướ ố ị For ế ế ị ầ ị ố , n u ế nh n ậ ế ơ ỏ ơ ệ ự ế ằ ớ
l n h n thì k t thúc ặ
For, n u nh h n ho c b ng thì th c hi n ệ ế ế ướ ộ ồ ờ ớ c ng thêm v i và đ ng th i so sánh v i g p ặ Next, ế ơ ế ỏ ơ ế ặ ằ ơ
ố , n u l n h n thì k t thúc ị
32 ạ ệ ự ạ ư ế thì l i th c hi n i làm ti p nh trên. ệ ụ ổ Sub Tong() Dim s As Double, i As Integer For i = 1 To 10 Step 1 s = s + i^i Next ế ả MsgBox “K t qu là:” & Str(s) 33 End Sub ư ạ ổ ØD ng t ng quát nh sau: ề ệ
Do While <Đi u ki n>
ề ừ ệ ệ ệ ự ệ ề ệ ặ ỏ Dim s As Double, a As Double, i As Integer i= 1 a=1/i s= 0 s= s+a i= i+1 a=1/i 34 ế ả MsgBox (“K t qu :”) & Str(s) ư ạ ổ ØD ng t ng quát nh sau: ệ ề
Do Until <Đi u ki n>
ự ệ ØCh ng nào
ừ
ØVí d trên ta vi
ụ ế ạ
t l ệ
i theo l nh này: Dim s As Double, a As Double, i As Integer i= 1 a=1/i s= 0 s= s+a i= i+1 a=1/i ế ả MsgBox (“K t qu :”) & Str(s) 35 ự ề ệ ệ ệ ặ ỏ ØKhi <Đi u ki n> đúng thì ra kh i vòng l p và th c hi n nhóm l nh sau Loop. ộ ố ố ượ ạ ầ
ng mà b n c n quan tâm: ứ ng ng ố ượ DBEngine: ch a đ i t ố ượ Workspaces (vùng làm vi c)ệ ứ ứ ệ ề ỗ ộ ng ố ượ Workspaces: ch a nhi u vùng làm vi c, m i vùng ch a m t Database. ng ố ượ Database: ch a ứ CSDL ố ượ ứ ng ng trong ố ượ RecordSets: ch a các đ i t CSDL ố ượ ủ ứ ả ng Tabledefs: ch a các b ng c a m t ộ CSDL ủ ấ ng ứ
ố ượ Querydefs: ch a các truy v n c a m t ộ CSDL ố ượ ườ ả ng ng trong b ng ứ
Field: ch a các tr ố ượ ng ứ
Form: ch a các Form 36 ố ượ ế ể Dim ng> ố ượ ế Cách khai báo bi n đ i t ng: ể ệ ậ ớ ộ ế ế cho phép tham chi u đ n m t ể
ộ CSDL, vì v y đ làm vi c v i m t a. Ki u Database ế ả CSDL ta ph i khai báo bi n ki u ể Database ư ờ ớ ộ ệ ệ ể ế ể Dim Db As Database (Khai báo bi n Db có ki u Database) ứ ế ệ ắ ớ ờ ặ t: ế ệ ắ ớ ờ ệ 37 ể ế ử ụ ế ố ượ ủ ng c a CSDL đã khai b. S d ng bi n ki u RecordSet
ØKi u ể RecordSets cho phép ta tham chi u đ n các đ i t ả ế
ấ
báo nh : B ng, truy v n, các b n ghi, v.v..
ắ ư ả
ạ ớ ả ế ệ T o 1 bi n ki u ể RecordSet g n v i b ng ủ
So_luong c a CSDL hi n Sub Form_Load() Dim Db As Database Dim Rec As Recordset Dim Dem As Integer Set Db = CurrentDb() Set Rec = Db.OpenRecordset("So_luong", DB_OPEN_TABLE) Dem = Rec.RecordCount ổ ố ả
MsgBox "T ng s b n ghi là" + Str(Dem) End Sub ủ ụ ủ ụ ạ ở ự ộ 38 ạ
đ ng n p Form. ư ể ế ả ộ Ví d 2:ụ Ta có th dùng m t bi n b ng nh sau:: Sub Form_Load() Dim Db As Database Dim TB As TableDef Dim Dem As Integer Set Db = DBEngine.Workspaces(0).Databases(0) Set TB = Db.TableDefs("So_luong") Dem = TB.RecordCount ủ MsgBox "So ban ghi c a Bang So_luong la:" & Str(Dem) 39 End Sub ả ố ồ ườ ng: Hoten, NgaySinh, DienToan, ư Ví d 3:ụ Ta có b ng KhoiA (kh i A) g m các tr
DienLy. DienHoa, DiemTong, GhiChu nh sau: ậ ể Hãy l p trình đ tính
DiemTong: DiemTong=DiemToan+DiemLy+DiemHoa. Dim Db As Database Dim Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("KhoiA") ế ệ ế ả ộ ử
Rec.Edit ‘cho phép s a n i dung các b n ghi Rec![TongDiem] = Rec![DiemToan] + Rec![DiemLy] + Rec![DiemHoa] ậ ị ớ
ậ
Rec.Update ‘c p nh t giá tr m i ế ế ể ế ả Rec.MoveNext ‘Di chuy n đ n b n ghi k ti p 40 Rec.Close Db.Close ạ ươ ư ả ớ ộ ng trình ta có n i dung b ng m i nh sau: ế ườ ả t Rec![TongDiem], nghĩa là tr ng ể
TongDiem trong trong b n ghi, đ ệ ớ ế ừ phân bi t v i bi n khi khai báo t khoá Dim... ụ ừ ụ ể ậ ữ ế ví d 3, hãy l p trình đ ghi vào tr ng ườ GhiChu ch “Do” n u 41 ữ ế ặ TongDiem>=15 ho c ch “Truot” n u TongTong<15 Dim Db As Database Dim Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("KhoiA") ế ệ ế ử ả ộ Rec.Edit ‘cho phép s a n i dung các b n ghi Rec![GhiChu]=”Do” Else ử ả ộ Rec.Edit ‘cho phép s a n i dung các b n ghi Rec![GhiChu]=”Truot” End If ậ ị ớ
ậ
Rec.Update ‘c p nh t giá tr m i ế ế ế ể 42
ả Rec.MoveNext ‘Di chuy n đ n b n ghi k ti p Rec.Close Db.Close 43 8.6.2 M đóng đ i t ể ự ệ ệ ộ ØĐ th c hi n m t Macro ta dùng l nh sau: ả ựơ ệ ể ự ủ ụ ặ ØL nh này ph i đ ặ
c đ t trong các hàm ho c th t c đ th c thi. ố ố ộ DoCmd. ố ượ ØĐóng các đ i t ng: CLOSE ụ ể ộ ư ví d : Đ đóng m t Form ố ạ ộ ỉ Form đang ho t đ ng ố ạ ọ ự ổ i m i s thay đ i trên đó. ố ượ ể ươ ụ ư ụ Đ đóng các đ i t ng khác ta làm t ng t nh ví d trên. 44 ộ ố ượ ữ
ng ta s d ng nh ng hành đ ng sau: ử ụ
ở ộ ả
ở ộ ở ộ
ở ộ ở ộ ở
o OpenTable: M m t b ng
o OpenForm: M m t Form
o OpenReport: M m t Report
o OpenQuery: M m t Query
o OpenModule: M m t Module ở ả ủ ụ ự ạ ộ ộ ệ
Ví d 1ụ : T o m t th t c th c hi n m t Macro m b ng DanhSach ố ượ ự ư
nh trên. ệ DoCmd.Opentable (“DanhSach”)
ØĐ m các đ i t
ươ
ể ở
Ví d 2ụ : Gi ng khác ta làm t
ng t
ờ
s trong CSDL hi n th i ta có:
ể
ồ ơ
ả TaHsTs (b ng H s Tuy n Sinh) và b ng ả TaDiemD (b ng ả ố ể ả ử
1. Hai b ng ả
Đi m kh i D) . ả ng sau: Sbd, HoTen, NgaySinh, GioiTinh, KhuVuc, ườ
B ng TaHsTs có các tr
UuTien, TonGiao, DanToc. ả ườ B ng TaDiemD có các tr ng: Sbd, Toan, Van, Anh 2. Ba Form TuyenSinh2014, FoHsTs, FoDiemD 45 ủ ư ệ ộ M t giao di n chính c a Form TuyenSinh2014 nh hình sau: ộ ư ề
ề
ề ạ ẽ ượ ở ể ư ữ
c m đ ta đ a d FoDsTs s đ 46 ế ế ượ ư a. Khi ta kích ho t nút NHAP HO SO thì Form
ệ
li u vào, Form này đ ạ
t k có hình d ng nh sau: c thi ề ề ế ể ậ ạ ở ệ ẽ ượ b. Khi ta kích ho t nút “NH P Đi m” giao di n chính thì Form c FoDiemD s đ ở ể ữ ệ ư ư ể ệ ấ ấ m đ ta đ a d li u đi m sau khi đã ch m. Giao di n này có c u trúc nh sau: ư ộ ề ậ ề ế 47 ủ ụ ệ ả ề ở ự ệ
ằ ư
ọ ệ o M Form TuyenSinh2014 b ng cách v CSDL, ch n ả ọ ộ ư ề
ủ ụ
t Code cho 3 th t c đó nh sau: Private Sub KetThuc_Click() DoCmd.Close DoCmd.OpenForm ("FoDiemD") DoCmd.OpenForm ("FoHsTs") ươ ủ ụ ủ ư T ng t ự ế
vi ệ
t Code cho 2 th t c c a nút l nh trên Form FoHsTs nh sau: 48 DoCmd.Close Dim Db As Database, Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("TaHsTs") Rec.AddNew Rec("SBD") = Sbd Rec("HOTEN") = HoTen Rec("GIOITINH") = GioiTinh Rec("KHUVUC") = Val(KV) Rec("TONGIAO") = TonGiao Rec("DANTOC") = DanToc Rec.Update Sbd = "" HoTen = "" NgaySinh = "" GioiTinh = "" 49 KhuVuc = "" TonGiao = "" DanToc = "" UuTien = "" Sbd.SetFocus ươ ự ế ế ủ ụ ủ ệ T ng t ư ậ
nh v y vi t ti p cho 2 th t c c a hai nút l nh trên Form: FoDiemD Option Compare Database DoCmd.Close Rem .................................................................... Dim Db As Database, Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("TaDiemD") ả ớ
Rec.AddNew 'Thêm b n ghi m i Rec("SBD") = Sbd Rec("Toan") = Val(Toan) Rec("Van") = Val(Van) Rec("Anh") = Val(Anh) ậ ậ ả ớ 50
ả Rec.Update 'C p nh p b n ghi m i vào b ng TaHsTs Sbd = "" Toan = "" Anh = "" Van = "" ỏ ế ể Sbd.SetFocus 'Chuy n tr đ n SBD. ươ ự ế ế ủ ụ ủ ệ T ng t ư ậ
nh v y vi t ti p cho 2 th t c c a hai nút l nh trên Form: FoDiemD Option Compare Database DoCmd.Close Rem .................................................................... Dim Db As Database, Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("TaDiemD") ả ớ
Rec.AddNew 'Thêm b n ghi m i Rec("SBD") = Sbd Rec("Toan") = Val(Toan) Rec("Van") = Val(Van) Rec("Anh") = Val(Anh) ậ ả ậ ớ 51
ả Rec.Update 'C p nh p b n ghi m i vào b ng TaHsTs Sbd = "" Toan = "" Anh = "" Van = "" ỏ ế ể Sbd.SetFocus 'Chuy n tr đ n SBD.ẽ
ệ
8.5.3 L nh r nhánh IF...THEN...END IF
ØVí d 1: Ta s a l
ử ạ
Sub XemTuoi()
End If
End Sub
ØVí d 2: L p trình gi
ẽ
ệ
8.5.3 L nh r nhánh IF...THEN...END IF
ệ
ọ
8.5.4 L nh ch n Select...Case
ØKhông ph i lúc nào cũng “không th này thì th kia” (2 nhánh) mà có nh ng
ệ
t nghi p c a
ng 100.000đ, n u
ng.
ệ
ọ
8.5.4 L nh ch n Select...Case
ØKhi ch y ch
ệ
ọ
8.5.4 L nh ch n Select...Case
ØCú pháp t ng quát c a l nh Select nh sau:
ØN u
ệ
ọ
8.5.4 L nh ch n Select...Case
ØVí d : T o m t th t c l p k ho ch công tác trong tu n, đ t vào nút l nh
c
ệ
ặ
8.5.5 L nh l p For...Next
ØL nh For có cú pháp t ng quát nh sau:
ØBan đ u ầ
ệ
ặ
8.5.5 L nh l p For...Next
ØVí d : Tính t ng s=11+22+33+...+1010 .
ệ
8.5.6 L nh Do while... Loop
ØCh ng nào <Đi u ki n> còn đúng thì th c hi n
Sub Tong()
Do While a>=0.0001
Loop
End Sub
ệ
8.5.7 L nh Do Until... Loop
ệ
ề
ệ v n ẫ còn sai thì th c hi n
<Đi u ki n>
Sub Tong()
Do Until a< 0.0001
Loop
End Sub
ố ượ
ố ượ
ố ượ
8.6 Đ i t
ế
ng, bi n đ i t
ử
ng và x lý đ i t
ng
ØTrong Access có m t s đ i t
ØĐ i t
ØĐ i t
ØĐ i t
ØĐ i t
ØĐ i t
ØĐ i t
ØĐ i t
ØĐ i t
Øv.v..
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ØĐ làm vi c v i m t CSDL hi n th i ta làm nh sau:
Set Db=DBEngine.Wokspaces(0).Database(0) (g n bi n Db ng v i CSDL hi n th i)
ØHo c có th vi
ể ế
Dim Db As Database
Set Db=CurrentDb() (G n bi n Db v i CSDL hi n th i)
Ø Làm vi c v i 1 CSDL khác:
ớ
Dim Db As Database
Set Db= DBEngine.Wokspaces(0).Database(
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ØVí d 1:ụ
th i:ờ
Ø trên ta dùng th t c Form_Load(), th t c này khi ch y thì t
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
Sub Form_Load()
Do Until Rec.EOF ‘Làm cho đ n h t t p
Loop
End Sub
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ØSau khi ch y ch
ØChú ý:
o Ta vi
ØVí d 4: Cũng t
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
Sub Form_Load()
Do Until Rec.EOF ‘Làm cho đ n h t t p
If Rec![TongDiem]>=15 Then
Loop
End Sub
ố ượ
ố ượ
8.6.1 Đ i t
ng và khai báo đ i t
ng
ạ
Sau khi ch y ta có:
ố ượ
ở
ệ
ằ
ng b ng câu l nh Marco
ệ
a. Câu l nh Macro.
ố ượ
ộ
ở
b. Hành đ ng m , đóng các đ i t
ng.
DanhSach ta gõ nh sau:
DoCmd.Close acForm, “DanhSach”, acSaveYes
AcForm: là thông s ch
AcSaveYes: là thông s cho phép khi đóng
Form thì ghi l
ố ượ
ệ
ằ
8.6.2 M ở đóng đ i t
ng b ng câu l nh Marco
ØM các đ i t
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ØChú ý: thu c tính Name cho
4 nút trên nh sau:
o Nút có tiêu đ : “NHAP HO SO” có tên NhapHoSo
o Nút có tiêu đ : “NHAP DIEM” có tên NhapDiem
o Nút có tiêu đ : “KET THUC” có tên KetThuc
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
o Nút có tiêu đ : “nh p” có tên NhapLyLich
ậ
o Nút có tiêu đ : “k t thúc” có tên KetThucLyLich
ØChú ý: Thu c tính Name cho 2 nút trên nh sau:
o Nút có tiêu đ : “nh p li u” có tên NhapDuLieu
ệ
o Nút có tiêu đ : “K t thúc” có tên KetThucNhap
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
Ø Sau đây là các th t c s ki n cu ba nút l nh trên Form TuyenSinh214 nh sau:
ọ Navigation pane/ Form, ch n t p
ọ
TuyenSinh2014, ch n Design
o Ch n nút có tiêu đ NHAP HO SO/ kích ph i chu t ch n Code buider
ọ
o Vi
ế
Option Compare Database
End Sub
Private Sub NhapDiem_Click()
End Sub
Private Sub NhapHoSo_Click()
End Sub
ủ ụ
Rem Th t c trên Form FoHsTs
Option Compare Database
Private Sub KetThucLyLich_Click()
End Sub
Rem
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
Private Sub NhapLyLich_Click()
End Sub
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ủ ụ
Rem Th t c trên Form FoDiemD
Private Sub KetThucNhap_Click()
End Sub
Private Sub NhapDuLieu_Click()
End Sub
ố ượ
ở
ệ
ằ
8.6.2 M đóng đ i t
ng b ng câu l nh Marco
ủ ụ
Rem Th t c trên Form FoDiemD
Private Sub KetThucNhap_Click()
End Sub
Private Sub NhapDuLieu_Click()
End Sub
Có thể bạn quan tâm
Tài liêu mới