Professional Documents
Culture Documents
microsoft
access 2000
Bíc 2: X¸c ®Þnh c¸c b¶ng chøa dl vµ c¸c trêng trong mçi b¶ng
Bíc 4: Xö lÝ d÷ liÖu
Default Value Giá trị mặc định (ban ®Çu) cña trêng
Validation Rule Quy tắc kiểm tra dữ liệu nhập
Validation Text Chuỗi thông báo lổi của Validation Rule
Required Yes/No Bắt buộc hoặc không bắt buộc phải nhập liệu
cho trường
Allow Zero Length Cho phép chuỗi có độ dài bằng Zero (Yes/No)
Indexed Cách tạo chỉ mục (No, Yes Duplicates, No Duplicates)
Display Control Dạng hiện thị Check box, Text box, Combo box
- Thuộc tính Fileds Size
+ Dữ liệu kiểu Text : Dài tối đa 255 (Mặc định 50)
+ Dự liệu kiểu AutoNumber : Long Interger hay ReplicationID
+ Dữ liệu kiểu Number gồm:
Xác lập Vùng lưu trữ K.Thước
Byte 0 255 1Byte
Interger -32,768 32,768 2
Long Interger -2,147,483,648 2,147,483,648 4
Single -3.402823.1038 3.402823.1038 4
Double -1.79769313486231.10308 8
1.79769313486231.10308
ReplicationID Lưu trữ định danh duy nhất cấp toàn cục 16
- Thuộc tính Format:
+ Ký tự định dạng dùng riêng cho Text hoặc Memo:
Ký hiệu Mô tả
@ Bắt buột là khoảng trắng hay 1 ký tự
& Không Bắt buột là khoảng trắng hay 1 ký tự
< ChuyÓn tÊt c¶ thành ch÷ thêng
> ChuyÓn tÊt c¶ thành ch÷ in hoa
Ký hiệu Mô tả
. Dấu phân cách phần thập phân
, Dấu phân cách hàng ngàn
# Ký số giữ vị trí (Hiện thị ký số hay không hiện thị gì cả)
$ Hiện thị ký hiệu $
% Giá trị /100 và có ký hiệu %
E+ Hay E- Ký hiệu khoa học như : 0.00E-00 hay 0.00E00
- Thuộc tính InputMask
Ký hiệu dùng trongInputMask
Ký hiệu Mô tả
0 Bắt buộc nhập 1 số bất kì trong khoảng từ 0 ->9.
9 Không bắt buộc nhập 1 chữ số
# Nhập 1 kí tự trắng hoặc 1 chữ số bất kỳ từ 0 -> 9.
L Bắt buộc nhập 1 tự bất kỳ trong khoảng từ A -> Z
?, & Không bắt buộc nhập kí tự
A Bắt buộc nhập 1 ký tự hay 1 ký số
C Không bắt buộc nhập ký tự .
. , : ; - / Dấu phân cách thập phân, hàng ngàn, ngày giờ
< Chuyển tất cả thành ký tự thường
> Chuyển tất cả thành ký tự in hoa
! Canh trái, có thể kèm ký tự hay bất kỳ InputMask nào
\ Ký tự theo sau hiển thị như một ký tự bình thường
3-C¸c ph¬ng thøc t¹o b¶ng
B5: ThiÕt kÕ l¹i vµ söa cÊu tróc b¶ng: Më View/ Design View
B3: §æi tªn trêng: Chän Rename Field/ gâ tªn trêng míi/OK
->Next
Thiết lập để nhận diện duy nhất các mẫu tin của 1 Table. trị của khóa chính
không được trùng nhau, không chứa giá trị Null.
- Khoá ngoạI
Dùng để tham chiếu đến 1 hay nhiều Field là khóa chính của Table. Kiểu dữ
liệu khóa ngoạI và khóa chính phảI phù hợp nhau
Hå ViÕt ThÞnh
Minh Họa Khóa
Khóa chính
Khóa chính
Khóa ngoại
3-C¸c kiÓu quan hÖ
- Quan hÖ 1-1 (One to One):
+ Mỗi bản ghi bất kỳ trong bảng thứ nhất có mỗi quan hệ với một bản
ghi trong bảng thứ 2. (Ví dụ: Quan hệ giữa khoá học với Sinh viên).
+§k: Kho¸ cña 2 b¶ng ph¶i lµ trêng kho¸ (Primary key)
- Quan hÖ 1-n (One to Many):
+ Là quan hệ mỗi bản ghi bất kỳ trong bảng thứ nhất có mỗi quan hệ
với nhiều bản ghi trong bảng thứ 2. (Ví dụ: Quan hệ giữa khoá học với DS
Sinh viên)
+ §K: Kho¸ trong b¶ng thø nhÊt ph¶i lµ kho¸ chÝnh.
- Quan hÖ n-n (Many to Many): Là quan hệ nhiều bản ghi bất kỳ
trong bảng thứ nhất có mỗi quan hệ với nhiều bản ghi trong bảng thứ
2. (Ví dụ: Quan hệ giữa kỳ học với môn học).
Hå ViÕt ThÞnh
4-ThiÕt lËp vµ huû bá mèi quan hÖ
a. ThiÕt lËp quan hÖ gi÷a c¸c b¶ng
B1. Mở menu Tools/ RelationShips
B2. Chọn bảng trong họp thoại Show table
B3. Chọn khoá từ bảng chính, kéo thả sang khoá tương ứng của bảng kia và
xác định kiểu quan hệ.
B4. Chọn Create.
B5: Ghi vµ ®ãng b¶ng quan hÖ.
Hå ViÕt ThÞnh
Hữu tài tất hữu dụng, ngàn vàng dẫu có mất luôn ngay
. Total : Chän hµm cÇn tÝnh t¬ng øng víi mçi trêng cÇn tÝnh
-> NhËp c¸c c©u hái víi d÷ liÖu øng víi trêng cÇn hái trªn dßng
Criteria.
chó ý : C©u hái tuú ®Æt ph¶i ®Æt trong dÊu [ …] tèi ®a 255 kÝ tù
-> Chän c¸c trêng cÇn thiÕt ë c¸c « trªn dßng Field
-> LËp tiªu chuÈn chän c¸c b¶n ghi cÇn xo¸ ë « trªn dßng Criteria
-> Thùc hiÖn c¸c bíc theo chØ dÉn cña hép tho¹i Crosstab Query
Wizard
step 4: Chän trêng cÇn tÝnh gi¸ trÞ (Value) vµ hµm cÇn tÝnh /Next
B4: ViÕt c¸c c©u lÖnh chän c¸c trêng cÇn thiÕt vµ ®iÒu kiÖn chän b¶n ghi
theo cÊu tróc trªn
-> Ghi vµ thùc hiÖn truy vÊn
VÝ dô1 : Cho b¶ng DIEM(MASV,TIN,ANH,KT)
§a ra danh s¸ch nh÷ng sinh viªn cã ®iÓm tin >=5 vµ ®iÓm Anh>=0
FROM DIEM
((DIEM.KT)>=5));
VÝ dô2 : Cho b¶ng DIEM(MASV,TIN,ANH,KT)
§a ra danh s¸ch nh÷ng sinh viªn cã ®iÓm tin >=5 vµ hoÆc Tæng
[anh]+[kt] AS Tonngdiem
FROM DIEM
Ch¬ng iv-Form
I-Kh¸i qu¸t.
Lµ ®èi tîng ®îc thiÕt kÕ ®¶m nhiÖm viÖc giao diÖn gi÷a ngêi
sö dông vµ ch¬ng tr×nh øng dông nh: nhËp, söa vµ tr×nh bµy
d÷ liÖu tõ c¸c b¶ng trong CSDL víi c¸c d¹ng thøc kh¸c nhau.
2-C¸c d¹ng thøc cña Form
- Columnar : D¹ng cét víi tõng b¶n ghi trong ®ã mçi trêng trong
- Nhãm ®iÒu khiÓn g¾n kÕt(Bound Control): bao gåm c¸c ®èi tîng
g¾n víi c¸c trêng trong b¶ng d÷ liÖu nh: Text box, Combo box,
List box,...
- Nhãm ®iÒu khiÓn kh«ng g¾n kÕt(Unbound Control) gåm c¸c ®èi
+ Form Operations (§iÒu khiÓn Form): gåm c¸c hµnh ®éng víi Form:
.....
+ Report Operations : gåm c¸c hµnh ®éng víi Report:
. Preview Report : Xem tríc khi in
. Print Report: In Report.
.....
+ Applications : lµm viÖc «øi c¸c øng dông
.Quit Applications : tho¸t khái øng dông
.Run Applications : ch¹y mét øng dông
.Run excel: ch¹y excel
.Run Word: ch¹y word
+ Miscellaneous : nh÷ng hµnh ®éng kh¸c
.Print Table
.Run Query
.Run Macro.
- C¸ch t¹o Command Button b»ng Wizard:
B3:Thùc hiÖn theo chØ dÉn wizard: ®Ó ®Æt hµnh ®éng cho
nót lÖnh.
->Chän Finish.
Điều khó nhất ở trên đời là một trang nam tử,
ý trí vững vàng mà tình cảm mênh mang
b- Text box
- Chøc n¨ng : lµ ®èi tîng g¾n víi trêng d÷ liÖu trong b¶ng vµ
tÝnh to¸n.
- C¸ch t¹o Text box:
+ T¹o Text box g¾n víi c¸c trêng trong b¶ng:
C¸ch1: sö dông c«ng cô Field list
B1: Më cöa sæ Field list : View/Field list
B2: KÐo - th¶ : ®a c¸c trêng vµo vÞ trÝ thÝch hîp trªn
Form.
C¸ch 2: sö dông c«ng cô Toolbox
B1: Më hép Toolbox : View/Toolbox
B2: Chän c«ng cô Text box trong Toolbox
B3: KÐo - th¶
B4: Cài ®Æt c¸c thuéc tÝnh: Më View/Properties/ §Æt c¸c thuéc tÝnh:
- Chøc n¨ng : lµ ®èi tîng chøa danh s¸ch c¸c gi¸ trÞ ®Ó chän lùa
B3: XuÊt hiÖn hép tho¹i Wizard víi c¸c lùa chän:
I want the combo box to look up the value in a table or query: LÊy d÷ liÖu tõ
trêng d÷ liÖu trong b¶ng hay truy vÊn lµm nguån
I will type in the value that I want : LÊy d÷ liÖu tõ bµn phÝm .
Find a record on my form based on the value I selected in my combo box:
T×m vµ ®a ra b¶n ghi theo gi¸ trÞ lùa chän trong combo box.
Vẻ đẹp làm vui mắt, sự dịu dàng thật đáng quí
- Chøc n¨ng: thêng ®îc sö dông ®Ó nhËn c¸c gi¸ trÞ Yes hoÆc No,
chØ kh¸c ë h×nh thøc
- C¸ch t¹o c¸c ®iÒu khiÓn g¾n víi c¸c trêng Yes/No
B2: Chän mét trong c¸c nót Check box,Toggle button, Option
Button.
B3: KÐo mét trêng kiÓu Yes/No vµo biÓu mÉu ta cã mét ®iÒu
khiÓn g¾n víi trêng kiÓu Yes/No trªn Form.
VÝ dô: Cho b¶ng DSCB(danh s¸ch c¸n bé) gåm c¸c trêng:
HOTEN KiÓu Text
DANGVIEN KiÓu Yes/No
DOANVIEN KiÓu Yes/No
VO_CHONG KiÓu Yes/No
Yªu cÇu: T¹o mét Form nhËp liÖu vµo c¸c trêng trªn nhsau:
- Mét Text box g¾n víi trêng HOTEN
- Mét Check box g¾n víi trêng DANGVIEN
- Mét Option button g¾n víi DOANVIEN
- Mét Toggle button g¾n víi trêng VO_CHONG
Tr×nh tù thao t¸c thiÕt kÕ biÓu mÉu:
4- Chän nót Check Box , kÐo kÐo trêng DANGVIEN vµo Form
6- Chän nót Toggle button, kÐo trêng VO_ CHONG vµo vµo Form,
t¹o nh·n Cã Vî/Chång
“Người hiếu học dẫu chết cũng như còn, người không học
dẫu còn chăng qua là thây đi thịt chạy mà thôi”
g- C¸c ®èi tîng trang trÝ: §êng th¼ng, h×nh ch÷ nhËt, ¶nh,...
VÝ dô: Cho b¶ng DSHS gåm c¸c trêng:
HOTEN KiÓu Text
XEPLOAI KiÓu Integer nhËn 4 gi¸ trÞ cã ý nghÜa sau:
1- Giái
2- Kh¸
3- TB
4- YÕu
Yªu cÇu: T¹o mét Form nhËp liÖu vµo c¸c trêng trong b¶ng trªn nh
sau:
- Mét Text box g¾n víi trêng HOTEN
- Mét ®iÒu khiÓn Option Group g¾n víi trêng XEPLOAI
- T¹o 4 nót lùa chän (Option button) øng víi c¸c lo¹i: Giái, Kh¸,
TB, YÕu trong ®iÒu khiÓn Option Group trªn.
Tr×nh tù c¸c thao t¸c thiÕt kÕ Form:
4- Chän nót Option group, kÐo trêng xÕp lo¹i vµo Form
5- Dïng nót Option button ®Ó t¹o 4 nót lùa chän bªn trong nhãm
Option group.
6- Söa tiªu ®Ò c¸c nh·n lµ tªn c¸c lo¹i : Giái, Kh¸, TB, YÕu.
Ta cã biÓu mÉu sau:
Ch¬ng v-report
I-Kh¸i qu¸t.
1-Report (B¸o c¸o) lµ g×?
Lµ d¹ng ®Æc biÖt cña Form ®îc thiÕt kÕ ®¶m nhiÖm viÖc
víi c¸c d¹ng thøc kh¸c nhau nh: In d¹ng biÓu(ho¸ ®¬n, thÎ dù
thi, phiÕu b¸o ®iÓm, giÊy mêi,..), in d¹ng b¶ng (B¶ng l¬ng,
- Design View
- AutoReport
- Report Wizard
- Design View
- Print Preview.
6. C¸c vÊn ®Ò thêng gÆp khi x©y dùng Report
- X©y dùng ®Çu, cuèi B¸o biÓu, ®Çu trang, cuèi trang b¸o biÓu.
- X©y dùng th©n b¸o biÓu (néi dung cña b¸o biÓu)
- §¸nh sè trang.
Ii-x©y dùng report
1-T¹o Report b»ng AutoReport
B1: Chän ®èi tîng Report/New
B2: Chän mét trong 2 d¹ng thøc AutoReport:
+Columnar : D¹ng biÓu
+Tabular : D¹ng b¶ng
B3: Chän b¶ng hay truy vÊn lµm nguån / OK
B4: Ghi vµ ®ãng Report
2-T¹o Report b»ng Report Wizard
B1: Chän ®èi tîng Report /New/Chän Report Wizard
B2: Chän b¶ng hay truy vÊn lµm nguån/Ok
B3: Thùc hiÖn theo c¸c chØ dÉn cña hép tho¹i Report Wizard/ Chän
Finish.
3- ThiÕt kÕ Report b»ng Design View
B1: Chän ®èi tîng Report /New/ Design View
B2: Chän b¶ng hay truy vÊn lµm nguån
B3: Sö dông hép c«ng cô Toolbox ®Ó t¹o c¸c ®iÒu khiÓn trªn Report
B4: §Þnh d¹ng (tr×nh bµy) b¸o biÓu b»ng c«ng cô Formatting
4- S¾p xÕp & tËp hîp d÷ liÖu theo nhãm
B1: Më cöa sæ Design view cña b¸o biÓu
B2: Më Menu View/Sorting and Grouping
B3: Chän tªn trêng cÇn nhãm vµ s¾p xÕp ë « trong cét Field/Expression
B4: Chän c¸ch s¾p xÕp ë « t¬ng øng trong cét Sort order
B5: §Æt c¸c thuéc tÝnh : + Group Header lµ Yes
+ Group Footer lµ Yes
B6: §Æt c¸c « ®iÒu khiÓn ë trªn phÇn ®Çu vµ cuèi nhãm, dïng c¸c hµm thèng kª ®Ó tæng
hîp d÷ liÖu trªn tõng nhãm
VÝ dô: Cho b¶ng DSTS gåm c¸c trêng:
- HOTEN kiÓu Text
- PHONGTHI kiÓu Number.
- SOBD kiÓu Text
- NGAYSINH kiÓu Date/Time
- Vµ mét sè trêng kh¸c
Yªu cÇu in danh s¸ch thÝ sinh theo phßng thi
IV-In b¸o biÓu.
1- Cµi ®Æt trang : Më Menu File/Page Setup
2- In Ên : Më Menu File/Print ( Ctrl + P )
Ch¬ng vi- macro
I-Kh¸i qu¸t.
1-Macro lµ g×?
Lµ mét ®o¹n ch¬ng tr×nh gåm mét hoÆc d·y c¸c hµnh ®éng dïng ®Ó
tù ®éng ho¸ c¸c thao t¸c víi CSDL vµ tæ chøc giao diÖn ch¬ng tr×nh.
2-C¸c Macro thêng dïng.
- Open: Më ®èi tîng (Form, Report, Table, Query, Report,...)
- Close : §ãng ®èi tîng
- Delete: Xo¸ ®èi tîng
- Maximize : Phãng to cöa sæ
- Minimize : Thu nhá cöa sæ
- Beep : Kªu tiÕng chu«ng
- Msgbox : HiÖn dßng th«ng b¸o
- AddMenu: t¹o thùc ®¬n,...
3-CÊu tróc cña mét Macro gåm 2 phÇn
- Tªn hµnh ®éng (Action)
- C¸c tham sè (Action Argument)
VÝ dô: Macro më Form gåm
Action: Open Form
Action Argument :
+ Form name: tªn Form
+ View : ChÕ ®é quan s¸t
II-T¹o vµ thùc hiÖn macro
1-T¹o Macro:
Bíc 1: Chän ®èi tîng Macro/New
Bíc 2: §a c¸c hµnh ®éng vµ c¸c ®èi sè t¬ng øng vµo Macro.
1-Menu bar lµ g×: lµ danh s¸ch c¸c môc chän ngang hiÓn thÞ trªn dßng
2-Thµnh phÇn cña Menu bar : gåm cã nhiÒu thµnh phÇn mçi thµnh phÇn
cã thÓ lµ:
b»ng mét hµnh ®éng Addmenu trong cöa sæ Macro gåm hai
tham sè.
-NÕu Menu thµnh phÇn lµ Menu däc th× ta dïng hµnh ®éng Addmenu ®Ó m« t¶
-NÕu Menu thµnh phÇn lµ chøc n¨ng thùc hiÖn ngay ta ®a vµo c¸c th«ng tin sau:
->Gâ tªn Macro vµo dßng thuéc tÝnh Menu bar vµ ®ãng l¹i
X©y dùng ch¬ng tr×nh qu¶n lý c¸n bé gåm c¸c chøc n¨ng sau:
NAMSINH Date/time
NGOAINGU Text
CHUYENMON Text
B¶ng 2: DSTINH(Danh s¸ch tØnh)
Lµ ng«n ng÷ lËp tr×nh ho¹t ®éng theo c¸c sù kiÖn nh»m x©y
dùng c¸c øng dông Access phøc t¹p, hoµn chØnh h¬n trªn nÒn c¸c
trªn mçi Module cã thÓ ®Þnh nghÜa c¸c biÕn, m¶ng , thñ tôc,
hµm.....
3-Ho¹t ®éng cña ch¬ng tr×nh Theo c¸c sù kiÖn:
- G¾n víi mét sù kiÖn nµo ®ã ®îc kÝch ho¹t khi sù kiÖn x¶y ra.
II- Giíi thiÖu vÒ Module.
1-CÊu tróc mét Module
- C¸c tuú chän
+Option Compare Database
+Option Explicit
- Khai b¸o c¸c h»ng, biÕn, m¶ng chung cho c¶ ch¬ng tr×nh dïng
tõ Global.
- Khai b¸o c¸c h»ng, biÕn, m¶ng cÊp ®¬n thÓ dïng tõ Dim
- C¸c thñ tôc chung
- C¸c thñ tôc riªng cho tõng ®¬n thÓ dïng tõ Private
- C¸c hµm
2-C¸c t¹o vµ ch¹y thö Module
Bíc 1: Më cöa sæ Module, chän Module/ New ta cã cöa sæ sau :
Bíc 2 : So¹n th¶o c¸c Hµm vµ thñ tôc cÇn dïng
1-Thñ tôc
a-K/n : Thñ tôc lµ mét ®o¹n ch¬ng tr×nh con dïng ®Ó thùc hiÖn mét ®o¹n
tÝnh to¸n hoÆc ®¸p øng mét sù kiÖn nµo ®ã kÕt qu¶ kh«ng tr¶ vÒ tªn thñ
tôc.
.....
End sub
c- Thñ tôc ®¸p øng sù kiÖn
- Sù kiÖn cña Form
Sub Form_tªn_sù_kiÖn()
...
End Sub
- Sù kiÖn cña Report
Sub Report_tªn_sù_kiÖn()
...
End Sub
- Sù kiÖn cña « ®iÒu khiÓn
Sub tªn_«_®iÒu_khiÓn_sù_kiÖn()
...
End Sub
Chó ý: NÕu thñ tôc ®¸p øng sù kiÖn cho mét ®¬n thÓ ph¶i b¾t
®Çu b»ng tõ Private ®Ó gäi thùc hiÖn mét thñ tôc ta viÕt
Tªn_thñ tôc C¸c tham sè.
2-Hµm (Function)
a-K/n: Hµm lµ mét ®o¹n ch¬ng tr×nh con dïng ®Ó thùc hiÖn mét
®o¹n tÝnh to¸n nµo ®ã trong ch¬ng tr×nh kÕt qu¶ ®îc tr¶ vÒ tªn
hµm.
b-CÊu tróc cña mét hµm
Function Tªn_hµm(c¸c ®èi sè)
...
End Function
IV-C¸c lÖnh c¬ b¶n :
2-Vµo d÷ liÖu:
...
[case else
End select
2- CÊu tróc lÆp
a-LÖnh lÆp For ...Next (biÕt tríc sè lÇn lÆp)
For BiÕn_®Õm=m1 to m2 [step bíc]
Nhãm lÖnh
Next
b-LÖnh lÆp Do...Loop ( ko biÕt tríc sè lÇn lÆp)
-D¹ng 1:
Do while §k_tiÕp_tôc_lÆp
Nhãm lÖnh
Loop
-D¹ng 2:
Do Until §k_ra_khái_vßng_lÆp
Nhãm lÖnh
Loop
VI-BiÕn ®èi tîng
- Rót trÝch c¸c b¶n ghi tho¶ m·n ®iÒu kiÖn nµo ®ã
-§èi tîng kiÓu Tabledef : Dïng ®Ó t¹o, xo¸, söa cÊu tróc b¶ng
-§èi tîng kiÓu Querydef: Dïng ®Ó t¹o, xo¸, söa cÊu tróc cña truy vÊn.
-§èi tîng kiÓu RecordSet : Dïng ®Ó xö lý c¸c b¶n ghi cña CSDL.
1-BiÕn kiÓu Database
a-Chøc n¨ng:
Dïng ®Ó thao t¸c víi mét CSDL
b-C¸c khai b¸o biÕn kiÓu Database
Dim Tªn_biÕn As Database
c-G¾n biÕn kiÓu Database víi 1 CSDL
-Lµm viÖc víi CSDL hiÖn thêi:
Set Tªn_biÕn _kiÓu_Database=CurrentDB()
-Lµm viÖc víi mét CSDL kh¸c:
Set Tªn_kiÓu_Database=DBEngine.Workspace(0).OpenDatabase(“Tªn CSDL”)
2-BiÕn kiÓu RecordSet
a- Chøc n¨ng : Xö lý c¸c b¶n ghi trong CSDL.
b- C¸ch khai b¸o biÕn kiÓu RecordSet
Dim Tªn_biÕn As RecordSet
c- Ph¬ng thøc OpenRecordSet
-Lµ ph¬ng thøc c¬ b¶n ®Ó lµm viÖc víi c¸c ®èi tîng trong CSDL
-C¸ch viÕt:
Set BiÕn_RecordSet=§èi_tîng. OpenRecordSet(“Nguån, lo¹i”)
trong ®ã :
+ §èi tîng lµ biÕn kiÓu Database, Tabledef hoÆc Querydef
+Nguån : lµ chuçi kÝ tù ghi tªn b¶ng hay truy vÊn
+Lo¹i : DB_Open_Table.
d-C¸c ph¬ng thøc cña RecordSet
-Update : CËp nhËt gi¸ trÞ míi cho b¶n ghi hiÖn thêi.
....
e-VÝ dô:
VÝ dô 1: Cho mét CSDL chøa b¶ng DSNV gåm c¸c trêng :
Manv (Text)
Hodem (Text)
Ngaysinh (Date)
Ten (Text)
§C (Text)
Tel (Text)
Yªu cÇu: ViÕt thñ tôc Click cho nót lÖnh T×m kiÕm trªn Form, ®Ó
t×m nh©n viªn theo m· nh©n viªn (Manv), khi t×m thÊy th× hiÓn
thÞ Manv, hä ®Öm, tªn, sè phone t¹i c¸c « Textbox trªn Form.
Thao t¸c vµ c¸c bíc thùc hiÖn:
Manv (Text)
Hodem (Text)
Ten (Text)
§C (Text)
Tel (Text)
Yªu cÇu: ViÕt thñ tôc Click cho nót lÖnh Thªm trªn Form, ®Ó
hd = ""
t = ""
ns = ""
dchi = ""
phone = ""
Me.List13.Requery
End Sub
CHƯƠNG VII: LẬP TRÌNH TRÊN ACCESS (MODUL).
I. Giới thiệu chung
1. Khái niệm.
Là ngôn ngữ lập trình hoạt động theo các sự kiện, trên nguyên tắc của lập trình
cấu trúc, nhằm xây dựng các ứng dụng một cách linh hoạt trên nền các đối tượng của
Access.
2. Cấu trúc một chương trình.
a. Chương trình con dạng thủ tục (Sub).
Thủ tục bao gồm 3 thành phần:
1. Đầu thủ tục: (Sub <Tên thủ tục > [<(Danh sách các đối số>)]).
2. Thân thủ tục: (Chứa các lệnh để giải quyết một công việc nào đó cua bai toan).
3. Kết thúc thủ tục: (End Sub).
Sub <Tên thủ tục > [<(Danh sách các đối số)>]
<Thân thủ tục >
End Sub
Ghi chú:
Nếu các thủ tục, các hàm được xây dựng trên đối tượng Form hoặc Report thì thủ tục, hàm đó chỉ
có tác dụng với Form hoặc Report đó mà thôi. Người ta gọi là thủ tục riêng.
Nếu các thủ tục, các hàm được xây dựng trong phần Modules thì thủ tục, hàm đó có tác dụng trên
toàn chương trình. Người ta gọi là thủ tục chung.
4. Ngôn ngữ Visual Basic trong Access.
Các thành phần cơ bản.
- Bộ kí tự.
Sử dụng 26 chữ Latin A. . Z, a . . z. Ký tự gạch nối, bộ chữ thập phân, các kí hiệu toán học: + ,
-,*,/...
- Từ khoá (key word).
Các từ khóa riêng của Visual Basic, được định nghĩa sẵn. Ta không thể dùng vào việc khác
Ví dụ: Dim, Sub, If . . Then . . Else, Case, Do While . . Loop . . .
- Tên chuẩn (Standard Identifies).
Các tên chuẩn là các tên đã được định nghĩa, chúng ta có thể định nghĩa lại để dùng vào việc
khác nhưng không nên.
Ví dụ: Single, Doulbe, True, False.
5. Chạy thử Modul.
- Chạy thử Modul qua sự kiện.
- Chạy Modul thông qua lệnh.
Cách 1: Mở menu Run /Run (F5).
Cách 2: Kích nút Run trên thanh Standard.
II. Các lệnh cơ bản của ngôn ngữ Visual Basic For Access.
1. Lệnh khai báo biến.
Dim Tên biến AS Kiểu dữ liệu.
Ví dụ:
Dim HTAs String
Dim NS As Date
Dim A As Double
Dim B As Double
Dim Tong As Double
2. Lệnh vào dữ liệu.
Tên biến = InputBox (“Thông báo, chỉ dẫn …”).
Ví dụ:
A = InputBox("Vao so A")
B = InputBox("Vao so B")
3. Lệnh gán dữ liệu cho biến.
Tên biến = Biểu thức
Ví dụ:
Tong=A+B
4. Lệnh ra dư liệu.
Msgbox Tên Biến
Ví dụ:
Msgbox Tong
Một số ví dụ:
Ví dụ 1: Viết thủ tục (Modul) tính tổng 2 số A và B nhập từ bàn phìm thông qua sự
kiện Click của nút lệnh Command.
Bước 1: Tạo một Command trên Form và đặt tên là CmdTinhTong (Lưu ý: Không sử
dụng tính năng Control Wizards của thanh công cụ ToolBox khi tạo nút lệnh).
Bước 2: Kích vào Build/Code Builder/OK sau đó chọn sự kiện Click.
Bước 3: Viết lệnh.
Private Sub CmdTinhTong_Click()
Dim A As Double
Dim B As Double
'----Vào dữ liệu-----
A = InputBox("Vao so A")
B = InputBox("Vao so B")
'----Xử lý dữ liệu----
Tong = A + B
'----Ra dữ liệu-------
MsgBox Tong
End Sub
Bước 4: Chạy thử chương trình.
Ví dụ 2: Viết thủ tục (Modul) tính tổng 2 số A và B nhập từ bàn phìm thông qua của
sổ Code.
Bước 1: Tại cửa sổ Database chọn Modules/New hoặc mở menu Insert/Module.
Bước 2: Khai báo và tạo lập thủ tục hoặc hàm.
Sub TinhTongHaiSo()
'----Khai bao cac bien----
Dim A As Double
Dim B As Double
Dim Tong As Double
'----Vao du lieu-----
A = InputBox("Vao so A")
B = InputBox("Vao so B")
'----Xu ly du lieu----
Tong = A + B
'----Ra du lieu-------
MsgBox ("Tong hai so A va B la: ") & Tong
End Sub
Bước 3: Chạy thủ tục. Ấn phím F5.
Sinh viên tư viết các thủ tục tính diện tích hình chữ nhật, Hình tròn và hình tam giác.
5. Cấu trúc lệnh rẽ nhánh
5.1 Cấu trúc IF().
a. Rẽ nhánh khuyết (IF … THEN … ENDIF).
If <Điều kiện> Then
<Nhóm lệnh>
End IF
Ví dụ: Tạo thủ tục khi nhập điểm từ bàn phím máy sẽ thông báo kết quả đỗ.
Sub KetQua()
Dim Diem As Double
Diem = InputBox(“Hay nhap diem cua thi sinh ?")
If Diem>=15 and Diem<=30 then
MsgBox (“Ban da trung tuyen ky thi dai hoc nam 2009 - 2010. Xin chuc mung ban!”
Endif
End Sub
b. Rẽ nhánh đầy đủ (IF … THEN … ELSE … ENDIF).
If <Điều kiện > Then
<Nhóm lệnh 1>
Else
<Nhóm lệnh 2>
End IF
Ví dụ: Tạo thủ tục khi nhập điểm từ bàn phím máy sẽ thông báo kết quả đỗ,
trượt.
Sub KetQua()
Dim Diem As Double
Diem = InputBox(“Hay nhap diem cua thi sinh ?")
If Diem>=15 and Diem<=30 then
MsgBox (“Ban da trung tuyen ky thi dai hoc nam 2009 - 2010. Xin chuc mung ban!”
else
MsgBox (“Ban da truot tuyen ky thi dai hoc nam 2009 - 2010. Xin chia buon cung
ban!”
End If
End Sub
c. Rẽ nhánh lồng nhau.
If <Điều kiện 1> Then
<Nhóm lệnh 1>
Else
If <Điều kiện 2> Then
<Nhóm lệnh 2>
Else
…
If <Điều kiện N> Then
<Nhóm lệnh N>
Else
<Nhóm lệnh N+1 >
End If
End IF
Endif
Ví dụ: Tạo thủ tục khi nhập điểm từ bàn phím máy sẽ thông báo kết quả đỗ của
từng hệ tuyển sinh.
Sub KetQua()
Dim Diem As Double
Diem = InputBox(“Hay nhap diem cua thi sinh ?")
If Diem>=15 and Diem <=30 then
MsgBox (“Ban da trung tuyen vao he dai hoc cua truong. Xin chuc mung ban!”
Else
If Diem>=12 and Diem <15 then
MsgBox (“Ban da trung tuyen vao he cao dang cua truong. Xin chia se cung ban!”
Else
If Diem>=10 and Diem <12 then
MsgBox (“Ban da trung tuyen vao he trung cap cua truong. Xin an ui cung ban!”
Else
If Diem >=0 and diem<10 then
MsgBox (“Rat tiec ban da khong du tieu chuan vao truong. Xin chia buon cung
ban!”
else
MsgBox (“Khong co muc diem nhu vay, Xin vui long nhap lai !”
Endif
Endif
Endif
Endif
End Sub
5.2. Cấu trúc lệnh rẽ nhánh Select Case ().
Select Case Biểu thức nguyên
Case Giá trị 1
Nhóm lệnh 1
Case Giá trị 2
Nhóm lệnh 2
…
Case Giá trị N
Nhóm lệnh N
Else Case
Nhóm lệnh N+1
End Select
Ví dụ: Tạo thủ tục để xem thời khoá biểu, Thứ được nhập từ bàn phím máy tính sẽ
thông báo lịch học của thứ đó.
Sub ThoiKhoaBieu()
Dim Thu As Integer
Thu = InputBox(“Ban muon lich học của thứ mấy ?")
Select case Thu
Case 2
Msgbox (“ Thứ 2 học Tin ở phòng B507 Vĩnh tuy”)
Case 3
Msgbox (“ Thứ 3 học Triết ở giảng đường B305 Vĩnh tuy”)
Case 4
Msgbox (“ Thứ 4 học tiếng Anh ở phòng B606 Vĩnh tuy”)
Case 5
Msgbox (“ Thứ 5 học Kinh tế chính trị ở giảng đường B206 Vĩnh tuy”)
Case 6
Msgbox (“ Thứ 6 học toán cao cấp 1 ở phòng B604 Vĩnh tuy”)
Case 7
Msgbox (“ Thứ 7 nghỉ ở nhà”)
Else case
Msgbox (“ Không có thứ đó vui long nhap lai thu tu thu 2 den thu 7”)
End select
End Sub
6. Cấu trúc lặp
a. Cấu trúc For... Next (Số lần lặp biết trước).
For <Biến đếm >=<Giá trị đầu > To <Giá trị cuối >[Step <Bước tăng >]
<Nhóm lệnh >
Next
Hoạt động của lệnh:
<Biến đếm > nhận <Giá trị đầu >, và so sánh với <Giá trị cuối >:
Nếu lớn hơn thì kết thúc For.
Nếu nhỏ hơn hoặc bằng thì thực hiện <Nhóm lệnh >.
Ví dụ: Tạo thủ tục để máy tính tự động tính tổng từ 1 đến 100.
Sub TinhTong()
Dim S As Double, i As Integer
S=0
For i = 1 To 100 Step 1
S=S+I
Next
MsgBox “Kết quả là:” & S
End Sub
Bài tập: Hãy tạo thủ tục để tính tổng các số lẻ từ 1 đến 100. Tổng các số chắn từ 1 đến 100.
b. Cấu trúc lệnh lặp Do While ….Loop (Số lần lặp không biết trước).
Do While <Điều kiện>
<Nhóm lệnh >
Loop
Hoạt động của lệnh:
Chừng nào <Điều kiện > còn đúng thì thực hiện <Nhóm lệnh >
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ụ: Tạo thủ tục để máy tính tự động tính tổng từ 1 đến 100.
Sub TinhTong()
Dim S As Double, I As Integer
i= 1
S= 0
Do While I<=100
S= S+I
I= I+1
Loop
MsgBox ( “Kết quả:”) & S
End Sub
Bài tập: Hãy tạo thủ tục để tính tổng các số lẻ từ 1 đến 100. Tổng các số chắn từ 1 đến 100.
c. Cấu trúc lệnh lặp Lệnh Do Until …Loop.
Do Until <Điều kiện >
<Nhóm lệnh >
Loop
Hoạt động của lệnh:
Chừng nào <Điều kiện > vẫn còn sai thì thực hiện <Nhóm lệnh >.
Khi <Điều kiện > đúng thì ra thì thoát khỏi vòng lặp và thực hiện nhóm lệnh sau Loop.
Ví dụ: Tạo thủ tục để máy tính tự động tính tổng từ 1 đến 100.
Sub TinhTong()
Dim S As Double, I As Integer
i= 1
S= 0
Do Untile I>100
S= S+I
I= I+1
Loop
MsgBox ( “Kết quả:”) & S
End Sub
Bài tập: Hãy tạo thủ tục để tính tổng các số lẻ từ 1 đến 100. Tổng các số chắn từ 1 đến 100.