You are on page 1of 207

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 1
GII THIU

Gio trnh ny l s c kt kinh nghim ca tc gi trong ging dy cc kho
o to v Access cng nh kinh nghim s dng Access lm h qun tr c s d
liu v cng c pht trin phn mm. Hu ht ni dung trnh by trong gio trnh
u bm theo nhng bi tp thc hnh c th. Do vy, sau khi c xong v thc
hnh theo trnh t cun sch ny, bn c gn nh c th thit k v xy dng c
nhng ng dng v qun l thng tin. C th y l: Qun l lng cn b mt c
quan v Qun l bn hng ti mt ca hng.
i tng chnh ca gio trnh l sinh vin, hc sinh cc trng THCN h
chuyn CNTT cng nh khng chuyn CNTT c hc mn Access. Tt nhin cng
hon ton ph hp cho nhng ai quan tm hc hi mn hc ny bi l cc ni dung
u c trnh by rt trc quan, c th t v kt qu r rng.
Thi lng thit k 75 tit. Trong 24 tit l thuyt, 46 tit thc hnh v 5 tit
dnh cho kim tra. Tu theo mc ng dng ca tng trng, ngnh vo mn hc
ny m mi n v s chn cho mnh mt qu thi gian cng nh cc ni dung
ging dy ph hp t gio trnh ny.

Ni dung gio trnh gm mt bi m u v 7 chng:

Bi m u
Bi ny s trnh by tng qut v mn hc; gii thiu v Access lm sao hiu
c Access dng lm g? Phn bit c vi mt s phn mm c hc
nh Pascal, Foxpro, Word, Excel, Cui cng bn c s hiu c mi trng
lm vic ca Access v thc hin vo ra v qun l cc tp d liu.
Chng 1: Xy dng c s d liu (CSDL)
Chng 1 tp trung vo nhng kin thc c bn gip c th xy dng CSDL
Access mt cch chc chn; c bit th hin qua qui trnh xy dng mt CSDL
tng kt c ni dung ton b chng hc.
Chng 2: Truy vn d liu
Tp trung vo cc kin thc v k nng gip x l d liu mt cch a dng
thng qua cc loi Query.
Chng 3: Thit k giao din
Chng ny trnh by cc khi nim cng nh nhng k thut, k nng c th
thit k c nhng giao din phn mm thng qua vic s dng Form v cc cng
c i km.



Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 2
Chng 4: In n
Bao gm cc kin thc cng nh k nng cn thit thit k cc mu biu in
n a dng s dng cng c Report ca Access. Hn na kt hp vi Form, s gii
quyt c cc bi tp mang tnh tng hp, hon thin.
Ni dung t chng 1 n chng 4 mang tnh cn bn. Nhng chng tip
theo mang tnh chuyn ngnh v nng cao hn.
Chng 5: Lp trnh VBA cn bn
Chng ny cung cp nhng khi nim cn bn v mi trng, cch lm vic v
lm vic trn nhng bi ton n gin s dng ngn ng lp trnh VBA. y l c
s tip cn tt hn trong chng tip theo- lp trnh CSDL.
Chng 6: Lp trnh CSDL
Trnh by nhng khi nim, nguyn tc, cng c v nhng k nng rt cn bn
v lp trnh CSDL ni chung cng nh lp trnh CSDL Access bng VBA ni
ring. Kt thc chng ny c th x l c CSDL rt a dng, thc t v hon
ton c th dng Access pht trin cc CSDL thnh nhng sn phm phn mm
hon chnh.
Chng 7: Menu & Toolbar
Cung cp nhng kin thc, nhng k nng cui cng c th hon thin mt
CSDL Access thnh phn mm ng gi, hon chnh.

Cui cng, chng ti xin chn thnh cm n s quan tm v to iu kin ca
S GD&DT H Ni; cc ng nghip tn tnh gip , ng gp kin xy
dng gio trnh c hon thin nh by gi. Tuy nhin rt kh trnh khi
nhng thiu xt t khch quan n ch quan. Chng ti rt mong nhn c s gp
, ph bnh gio trnh dn c hon thin hn, phc v tt cho vic dy-hc
trong nh trung v cc bn c.
H ni, ngy 3 thng 2 nm 2005
Tc gi

Nguyn Sn Hi
Trung tm Tin hc - B Gio dc v o to
T: 0913.382.686.
Email: nshai@moet.edu.vn
* ngh ghi r xut s khi s dng bt k ni dung no ca gio trnh ny!




Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 3




BI M U


Bi m u s trnh by v mi trng lm vic, cng nh cch vo ra
phn mm Access, l:
Gii thiu Access2000;
Cch khi ng;
To tp Access mi;
Mi trng lm vic;
M tp Access tn ti;
Thot khi Access.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 4


1. Gii thiu Access 2000
T cui nhng nm 80, hng Microsoft cho ra i h iu hnh Windows,
nh du mt bc ngot trong pht trin cc ng dng phn mm trn nn
Windows (giao din GUI- Graphical User Interface). Mt trong nhng ng dng
ni bt nht i km lc l b phn mm tin hc vn phng Microsoft Office. T
n nay, b phn mm ny vn chim th phn s 1 trn th gii trong lnh vc
tin hc vn phng.
Ngoi nhng ng dng v vn phng quen thuc phi k n nh: MS Word -
son tho ti liu; MS Excel - bng tnh in t; MS Powerpoint - trnh chiu
bo co; .. cn phi k n phn mm qun tr c s d liu rt ni ting i km:
MS Access. n nay phin bn mi nht l AccessXP. Ton b ni dung gio trnh
ny, chng ti gii thiu trn Access2000. V c bn, cc phin bn t Access97
tr li y cch s dng gn ging nhau. Mi phin bn ch khc mt s tnh nng
c bit v mt cht v giao din. Do , khi hc Access2000, bn c lun c
c nhng kin thc cn thit nht tip thu nhng phin bn Access mi sau
ny cng nh nhn nhn v s dng tt cc phin bn c hn. Chng ti khuyn
bn c nn s dng Access97 tr ln.
Nu l ngi cha tng bit g v Access, bn s c mt cu hi:
Access lm c g, v nhng ng dng ca n trong thc t?
- Access l mt H qun tr c s d liu quan h (RDMS- Relational
Database Management System), rt ph hp cho cc bi ton qun l va v
nh. Hiu nng cao v c bit d s dng- bi l giao din s dng phn
mm ny gn ging ht mt s phn mm khc trong b MS Office quen
thuc nh : MS Word, MS Excel;
- Hn na, Access cn cung cp h thng cng c pht trin kh mnh i km
(Development Tools). Cng c ny s gip cc nh pht trin phn mm n
gin trong vic xy dng trn gi cc d n phn mm qun l qui m va
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 5
v nh. c bit nhng ai mun hc pht trin phn mm th y l cch d
hc nht, nhanh nht gii quyt bi ton ny.
- n y c th khng nh c 2 ng dng chnh ca Access l :
1. Dng xy dng h c s d liu (ch l phn c s d liu, cn phn
pht trin thnh phn mm c th dng cc cng c khc lm nh :
Visual Basic, Visual C, Delphi, .NET,..)
2. C th dng xy dng trn gi nhng phn mm qun l qui m va
v nh.
Access2000 c g mi so vi cc phin bn c (Acces97)?
- Phi tha nhn giao din s dng c nhng tin b vt bc. Cc thao tc
s dng t i, n gin hn v giao din rt thn thin;
- Cng ngh truy cp d liu ADO ActiveX Data Objects hon ton c th
thay th cng ngh trc y s dng trong Access l DAO Data Access
Objects bi nhiu l do c v cch thc s dng ln nhng ti u v k
thut. Chng ti s gii thiu k cng ngh ny trong Phn 2 cun gio trnh;
- Ngn ng lp trnh VBA c ci tin, c bit bn MS Access 2000
Developer cn cung cp cng c ng gi d n Access (tc l to b gi
t m khi s dng khng cn phi gi t Access ln my tnh)
- C kh nng to cc ng dng truy cp c s d liu thng quan giao din
web (web-base). iu ny cha h c trong cc phin bn trc y. Tuy
nhin, kh nng ny vn cn mt s gii hn, cha th thc s mnh nh cc
cng c chuyn nghip khc nh : ASP, PHP, .NET,
c th s dng Access, my tnh phi c gi t phn mm ny thng qua
b Microsoft Office 2000. Cc bc gi t xin tham kho ti liu hng dn s
dng i km a CD phn mm.
2. Khi ng
C khi ng Access theo nhiu cch:
- M lnh Start | Programs | Microsoft Access ca Window;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 6
- Hoc c th nhn kp chut ln tn tp c phn m rng .MDB vi biu
tng ca Microsoft Access
Sau khi ra lnh chy chng trnh Access, thng thng mn hnh tip theo xut
hin cho php chn cch lm vic:

- Chn Blank Access database bt u to mt tp Access mi (to mi
tp);
- Hoc Access database wizard, page, and project to mt CSDL theo
mu c sn (khng trnh by trong gio trnh ny);
- Hoc Open an existing file m tp Access tn ti lm vic tip.
3. To mi tp Access
Mt d n Access (Access project) l mt hoc nhiu tp Access nhm gii
quyt mt cng vic ln no . Khun kh gio trnh ny ch trnh by nhng d
n c 1 tp.
Tp Access c phn m rng *.MDB (ngoi ra nhng tp c phn m rng
*.DBE cng m c nhng ch c th thc thi ch khng chnh sa c cu
trc). C 5 thnh phn chnh trn mt tp:
- Tables ni cha ton b cc bng d liu;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 7
- Queries ni cha ton b cc truy vn d liu c thit k;
- Forms ni cha cc mu giao din phn mm;
- Reports ni cha cc mu bo co c thit k;
- Macro ni cha cc Macro lnh phc v d n;
- Modules ni cha cc khai bo, cc th vin chng trnh con phc v d
n.
Thng thng mi tp Access cn phi lm vic trn tt c cc thnh phn trn.
bt u to mt tp mi, chn mc Blank Access database ca s mc 2,
tip theo nhn OK, hp thoi sau xut hin yu cu chn ni (th mc) lu tr v
t tn tp Access:

Hy chn ni lu tr hp Save in; g vo tn tp mc File Name; nhn
ghi li thit lp. n y sn sng s dng tp Access va khai
bo.
G tn tp cn lu
Chn th mc trn a, ni
s lu tp Access
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 8
4. Mi trng lm vic
Sau khi mt tp Access c m, mi trng lm vic trn Access xut hin vi
nhng thnh phn nh sau:

(1) - h thng thc n (menu) v cc thanh cng c (Toolbar)- ni thc hin
cc lnh khi cn;
(2) - Ca s tp Access ang lm vic bao gm 7 phn chnh: Tables, Queries,
Forms, Reports, Pages, Macros v Modules. Chng ta s ln lt hc cch
lm vic trn tng phn ny trong cc chng tip theo.
5. M tp tn ti
Mi tp Access phi to mi duy nht mt ln, c m ra lm vic v ghi li
trong nhng ln tip theo. m mt tp Access tn ti lm vic, lm nh
sau:
1
2
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 9
Bc 1: T mi trng Access gi thc n: File | Open (hoc nhn nt
Open trn thanh cng c), hp thoi Open xut hin:

Bc 2: Tm n tp Access cn m trn hp thoi Open bng cch:
- Tm n th mc ni cha tp Access cn m hp Look in;
- Tip theo chn tp Access cn m trn danh sch v nhn nt Open hoc
Enter.
n y ca mn hnh lm vic Access vi tp va m xut hin tip tc lm
vic.
6. Thot khi Access
Khi khng lm vic vi Access, hy ra lnh thot khi Access bng mt trong
cc cch:
- M thc n File | Exit;
- Nhn t hp phm nng Alt + F4;
- Hoc s dng nt Close trn ca s Access ang m.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 10

CHNG 1
XY DNG C S D LIU

Xy dng CSDL l cng vic quan trng u tin trong ton b qui trnh pht
trin mt ng dng trn Access. Mt CSDL c thit k v xy dng tt s l
nhng thun li, nhng t tin u tin bc vo mt qui trnh pht trin ng
dng; nhng tri li s l mt thm ha cho d n ang pht trin: s thng xuyn
gp phi nhng kh khn phi chnh sa li CSDL v ti t hn, d n c th
phi thc hin li t u do vic thit k CSDL qu km.
Trong chng ny s trnh by cc khi nim cng nh cc k nng hc vin
c th tip cn v xy dng c cc h CSDL trn Acces, c th l:
To cu trc cc bng d liu;
Thit lp thuc tnh LookUp;
Thit lp quan h v cc thuc tnh m bo ton vn d liu;
Nhp d liu cho CSDL;
c bit l qui trnh xy dng mt CSDL Access.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 11

1. Cc khi nim v CSDL Access
1.1 CSDL Access
CSDL Access l mt i tng bao gm tp hp cc bng d liu, cc kt ni
gia cc bng c thit k mt cch ph hp phc v lu tr d liu cho mt
ng dng qun l d liu no .
V d:
CSDL Qun l hc sinh bao gm tp hp cc bng d liu: HOCSINH, LOP,
KHOI, MONHOC, DIEM c kt ni vi nhau mt cch ph hp phc v lu
tr d liu cho ng dng qun l hc sinh mt trng hc. Ton b cu trc
CSDL qun l hc sinh trn Access c m t nh sau:

CSDL Qun l bn hng bao gm tp hp cc bng d liu: HANG, KHACH,
HOADON, HANGBAN c kt ni vi nhau mt cch ph hp, phc v ng
dng qun l vic bn hng ti mt ca hang. S cu trc CSDL ny nh sau:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 12
CSDL Qun l lng cn b, bao gm cc bng: PHONGBAN, CHUCVU v
CANBO c kt ni vi nhau phc v lu tr d liu cho ng dng qun l
lng cn b mt c quan. Cu trc CDSL ny c biu din nh sau:

CSDL Qun l vic nhp-xut vt t mt ca hng. Bao gm cc bng:
VATTU, KHACH, PHIEUNHAP, PHIEUXUAT, VATTU_NHAP, VATTU_XUAT
c biu din nh sau:

1.2 Bng d liu
Bng d liu (Tables) l mt phn quan trng nht ca CSDL; L ni lu tr
nhng d liu tc nghip cho ng dng. Mt CSDL c th c rt nhiu bng, cc
bng phi c thit k sao cho c th lu tr c y d liu cn thit, m
bo gim ti a tnh trng gy d tha d liu (d tha d liu c hiu n
gin l tnh trng lu tr nhng d liu khng cn thit trn mt s bng. Tc hi
ca hin tng ny s gy: sai lch d liu tc nghip v lm tng dung lng d
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 13
liu khng cn thit); gim ti a dung lng CSDL c th, ng thi to mi
trng lm vic thun li cho vic pht trin ng dng trong cc bc tip theo.
Mt bng d liu trn Access bao gm cc thnh phn: Tn bng, cc trng
d liu, trng kho, tp hp cc thuc tnh cn thit cho mi trng d liu v
tp hp cc bn ghi.
M t mt bng d liu trong trng thi Datasheet (nhp, xem, s d liu):

M t mt bng d liu trong trng thi Design view (ang thit k cu trc):

Mi ct l mt trng d liu (Field)
Mi dng l mt bn ghi (Record)
Bn ghi c bit cui cng gi l EOF
Tp hp cc thuc tnh ca
trng d liu
Trng kho (Primary key)
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 14
Tn bng
Mi bng c mt tn gi. Tn bng thng c t sau khi to xong cu trc
ca bng, tuy nhin cng c th i li tn bng trn ca s Database nh i tn
tp d liu trn ca s Windows Explorer.
Khng nn s dng du cch (Space), cc k t c bit hoc ch ting Vit
c du trong tn bng.
Trng d liu (Field)
Mi ct d liu ca bng s tng ng vi mt trng d liu. Mi trng d
liu s c mt tn gi v tp hp cc thuc tnh miu t trng d liu v d
nh: kiu d liu, trng kho, ln, nh dng, ..
Mi trng d liu phi c nh kiu d liu. Trong Access, trng d liu
c th nhn mt trong cc kiu d liu sau:
TT Kiu d liu ln Lu tr..
1 Number Tu thuc kiu c
th
S: s thc, s nguyn theo nhiu kiu
2 Autonumber 4 bytes S nguyn t ng c nh s.
3 Text tu thuc di
xu
Xu k t
4 Yes/No 1 bytes Kiu logic
5 Date/Time 8 bytes Lu tr ngy, gi
6 Currentcy Sing Lu tr d liu km k hiu tin t
7 Memo tu thuc gi tr kiu ghi nh
8 Hyperlink tu thuc di
xu
Lu tr cc siu lin kt (hyperlink)
9 OLE tu thuc d liu m thanh, hnh nh, ho, (Objects)

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 15
Khng nn s dng du cch (Space), cc k t c bit hoc ch ting Vit
c du trong tn trng.
Bn ghi (Record)
Mi dng d liu ca bng c gi mt bn ghi. Mi bng c mt con tr
bn ghi. Con tr bn ghi ang nm bn ghi no, ngi dng c th sa c d
liu bn ghi . c bit, bn ghi trng cui cng ca mi bng c gi EOF.
Trng kho (Primary key)
Trng kho c tc dng phn bit gi tr cc bn ghi trong cng mt bng
vi nhau. Trng kho c th ch 01 trng, cng c th c to t tp hp
nhiu trng (gi b trng kho).
V d:
(1)- bng THISINH ca CSDL thi tuyn sinh, trng kho l SoBaoDanh. V
mi th sinh c th nhiu trng c gi tr ht nhau, nhng SoBaoDanh th duy
nht.
(2)- bng CANBO trng MaCanBo s l trng kha v khng th tn ti 2
cn b no trong bng ny trng MaCanBo
(3)- bng HANGBAN ca CSDL Qun l bn hng, 2 trng hangID v
hoadonID l mt b trng kho. V khng th trn mt ho n bng hng no
c bn mt mt hng no ghi lp li 2 ln.
1.3 Lin kt cc bng d liu
Lin kt cc bng d liu l mt k thut trong thit k CSDL quan h. Chng
l mi lin kt gia 2 bng vi nhau theo thit k cho trc m bo c
mc ch lu tr d liu cho ng dng.
Trong Access tn ti 2 kiu lin kt: lin kt 1-1 v lin kt 1-n (mt-nhiu)
Lin kt 1-1 l: mi bn ghi ca bng ny s lin kt vi duy nht ti mt
bn ghi ca bng kia v ngc li;
V d lin kt 1-1:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 16

M t d liu 2 bng ny nh sau:

Lin kt 1-n l: mi trng ca bng 1 s c th lin kt vi mt hoc nhiu
bn ghi ca bng nhiu (n). Ngc li, mi bn ghi ca bng nhiu s lin kt ti
duy nht 1 trng ca bng 1.
V d lin kt 1-n:

C th tham kho mi cha c th c nhiu con qua 2 bng sau:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 17
Hoc xem theo mt kiu khc:

2. Xy dng cu trc bng
Mc ny hng dn cch thit k cu trc mt bng d liu trn CSDL Access.
c th lm tt c cng vic ny, ngh hc vin nn tun th theo th t cc
bc s lit k di y.
Minh ho ny hng dn cch to cu trc bng HANG bao gm cc trng
hangID, tenhang, donvi, dongia.
Bc 1: Khi ng trnh thit k cu trc bng ch Design View
th Tables, nhn nt New, chn Design View, nhn OK

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 18
Hoc nhn trn th Tables. Hp thoi thit k cu
trc mt bng xut hin:

Bc 2: Khai bo danh sch tn cc trng ca bng: bng cch g danh sch
tn cc trng ln ct Field Name ca ca s thit k.
Ch : tn trng khng nn cha du cch (space), ch ting Vit c du.
Sau khi g vo danh sch tn cc trng ca bng HANG, hp thoi thit k s
c dng:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 19

Bc 3: Khai bo kiu d liu cho cc trng ca bng, bng cch chn kiu
d liu cho tng trng ct Data Type tng ng. Sau khi chn xong kiu d
liu cho cc trng, hp thoi thit k s c dng:

chn kiu d liu, c th dng chut chn kiu d liu t hp th; mt khc
cng c th nhn k t u tin ca kiu d liu cn chn mi khi nh v n
Data Type cn lm vic. V d:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 20
Nhn S c kiu Nhn S c kiu
A Autonumber M Memo
N Number C Currency
T Text H Hyperlink
Y Yes/No O OLE
D Date/Time
Bc 4: Thit lp trng kho cho bng (nhng bng khng c trng kho c
th b qua bc ny).
- Chn cc trng mun thit lp kho bng cch: dng chut kt hp gi
phm Shift nh du u dng cc trng mun thit lp kho;
- M thc n Edit | Primary key thit lp thuc tnh kho cho cc trng
va chn. Cng c th ra lnh ny bng cch nhn nt Primary key trn
thanh cng c.
Sau khi thit lp kho, nhng trng kho s c biu tng nh sau:

Bc 5: Lu li cu trc bng. Nhn t hp phm Alt + S hoc nhn nt Save
trn thanh cng c, hp thoai yu cu ghi tn cho bng xut hin:

Hy g tn bng v nhn OK.
c bit:
- Vi nhng bng khng thit lp trng kho, trong qu trnh ghi li cu trc
bng, my tnh s hi:
Biu tng ca trng kho
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 21

Nhn Yes- my tnh s to thm mt trng mi c tn ID v thit lp trng
ny lm kho. Nu khng mun nh vy hy nhn No; nhn Cancel hu lnh
ct.
- Tn bng khng nn cha du cch, cc k t c bit khc hoc ch Vit c
du.
Mi trng d liu c khai bo trong ca s trn u c th thit lp c rt
nhiu cc thuc tnh tu thuc kiu d liu trng nhn. Cc thuc tnh ny
c th thit lp ti phn Tp hp cc thuc tnh ca cc trng nh trnh by
trn. Di y l danh sch mt s cc thuc tnh hay c s dng.
Thuc tnh Field size
thit lp kch thc d liu. Ch p dng cho cc trng c kiu d liu
Number v Text.
i vi cc trng kiu s, Field size cho bit trng nhn gi tr loi s no.
TT Loi s ln
1 Byte s nguyn 2 byte
2 Integer s nguyn 4 byte
3 Long Integer s nguyn 6 byte
4 Single s thc 8 byte
5 Double s thc 12 byte
6 Decimal s thc 16 byte
i vi cc trng kiu Text, thuc tnh ny cho bit chiu di ti a ca xu k
t. V d: Vi trng Hoten th Field size khong 30.
Thuc tnh Format
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 22
thit lp nh dng d liu khi hin th. Trng ny p dng cho hu ht cc
kiu d liu tr ra kiu: Memo, OLE, Yes/No
Thuc tnh Input Mark
Thit lp mt n nhp d liu cho cc trng. Kiu ny c th p dng cho cc
loi trng kiu Text, Number, Datetime, Currency.
Thuc tnh Default Value
thit lp gi tr ngm nh cho trng mi khi ra lnh thm mi mt bn ghi.
V d: Trng s lng mi khi thm mt bn ghi mi, gi tr trng ny t ng
l 1. Khi phi thit lp thuc tnh Default Value ca trng ny l 1.

Thuc tnh Caption
Thit lp tiu ct m trng hin th. Tn trng khng nn cha du cch
v ch Vit c du, nhng Caption ca cc trng th nn g bng ting Vit c
du sao cho d c v nhn bit. c bit gi tr thuc tnh Caption nu c s c
s dng lm tiu cho cc trng tng ng mi khi s dng cng c Form
Wizard hay Report Wizard sau ny- s rt tin li.
Thuc tnh Validation Rule
Thit lp iu kin kim tra tnh ng n ca d liu khi c nhp vo.
V d: trng NgaySinh ca hc sinh phi nhp vo nhng ngy >= 1/1/1980
chng hn. Khi thuc tnh Validation Rule ca trng Ngaysinh hy g vo
>=#1/1/1980#
Thuc tnh Required
yu cu phi nhp d liu cho trng ny (nu thit lp Yes) khi bt u mt
bn ghi mi hoc khng nu thit lp No.
Cn mt s cc thuc tnh khc xin mi tham kho qua phn Help ca Access.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 23
3. Thit lp quan h
Mt bc quan trng trong xy dng CSDL Access l thit lp quan h cc bng
trong CSDL. Lm c iu ny bn s gp c rt nhiu thun li trong qu trnh
s dng cc trnh Wizard v Design View trong Access sau ny.
Di y s l hng dn cch thit lp quan h cho mt cp bng. Tng t bn
phi thit lp ton b cc quan h c th trn CSDL.
Bc 1: M ca s thit lp quan h bi thc n: Tools | Relationship..
Bc 2: a cc bng (Tables) tham gia thit lp quan h thng qua hp thoi
Show Tables (nu cha thy hp thoi ny dng thc n Relationship | Show
table):

Cch a cc bng ln ca s thit lp quan h (Database) nh sau:
- Chn bng cn tham gia thit lp quan h (thng th chn tt c) ;
- Nhn nt Add;
- Chn xong ton b nhn Close ng ca s.
Bc 3: Thc hin to kt ni gia tng cp bng theo thit k, cch lm nh
sau:
Dng chut ko (Drag) trng cn lin kt ca bng ny (v d trng hangID
ca bng HANG) th (Drop) ln trng cn lin kt n ca bng kia (v d trng
hangID ca bng HANGBAN). Khi hp thoi Edit Relationships xut hin:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 24

Trong trng hp mun thit lp cc thuc tnh m bo ton vn d liu
(Enforce Referential Integrity) cho quan h hy thc hin chn (checked) 3 mc
chn sau:
ng thit lp cc thuc tnh m bo ton vn
d liu;
m bo ton vn d liu khi xo d liu gia 2 bng
lin quan. Khi , nu mt bn ghi bng c quan h 1 b xo, ton b cc bn ghi
c quan h vi bn ghi hin ti s c t ng xo bng c quan h nhiu (nu
xo 1 CHA, ton b cc con ca cha s t ng b xo khi bng CON);
m bo ton vn d liu khi cp nht d liu gia 2
bng lin quan. Khi , nu gi tr trng kho lin kt bng 1 b thay i, ton
b gi tr trng kho lin kt bng nhiu cng b thay i theo.
Hp Relationship Type: cho bit kiu quan h gia 2 bng ang thit lp:

- One To One Kiu 1-1
- One To Many Kiu 1-
- Indeterminate Khng xc nh c kiu lin kt
Tu thuc vo kiu kho ca cc trng tham gia lin kt m Access t xc nh
ra c kiu lin kt gia 2 bng. Di y l mt s kiu lin kt c Access t
ng xc nh:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 25
TT Bng A Bng B Kiu lin kt
1 Kho chnh Kho chnh 1-1
2 Kho chnh Kho ph (hoc khng
kho)
1-n
3 Kho ph Kho ph (hoc khng
kho)
Khng xc nh c kiu lin
kt
4 Khng kho Khng kho Khng xc nh c kiu lin
kt

Ch
- Khi hp Relationships Type ch Indeterminate c ngha l quan h ang thit lp khng
ng v cu trc kho ca 2 bng (quan h sai);
- Trong trng hp thit lp cc thuc tnh m bo ton vn d liu nu gp phi hp
thoi thng bo li:

Li ny do mt s d liu ang tn ti trong bng quan h khng tho mn vi bng
quan h 1. Hiu n gin l: c mt s mt hng khai bo trong bng HANGBAN cha c
trong trong danh mc hng (bng HANG) nh vy l khng hp l, khng tho mn cc
iu kin v ton vn d liu gia 2 bng ny.
- Khi gp phi li sau y khi kt ni gia 2 bng:

Tc l 2 trng tham gia kt ni khng cng kiu d liu. V d: mt trng kiu
Number, trng kia kiu Text; hoc mt trng kiu Text, trng kia kiu Date/Time - u
b sai v khng cng kiu d liu.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 26
4. Nhp d liu
Nhp d liu l yu cu bt buc i vi bt k mt ng dng no. D liu c
th c nhp vo CSDL bng nhiu con ng khc nhau. Trong phn ny s
trnh by cch nhp d liu t bn phm vo trc tip cc bng d liu trong
Access.
4.1 Cch nhp d liu
C 2 bc c th nhp trc tip d liu vo bng:
Bc 1: M bng nhp d liu bng cch: nhn p chut ln tn bng
cn nhp d liu; hoc chn bng cn nhp d liu ri nhn nt Open;
Bc 2: Thc hin nhp d liu vo bng ang m bng bn phm


Ch : Mt s li c th xy ra khi nhp d liu
Li th nht:

Li do: Bn nhp vo gi tr khng tng thch vi kiu d liu ca trng ch nh.
V d: trng kiu Numeric m g vo ch ci; hoc khng g y cc gi tr ngy,
thng, nm cho trng kiu Date/Time,.. li ny s xut hin.
Khc phc: hy nhp li cho ng, gi tr cc trng yu cu n khi khng xut
hin thng bo li.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 27
Li th 2:

Li do: Bn khng nhp gi tr hoc trng gi tr trng kho. l trng kho lun
yu cu phi nhp d liu cho mi bn ghi.
Khc phc: phi nhp y gi tr cho trng kho.

Li th 3:

Li do: Gi tr trng kho trng nhau. Gi tr trng kho va nhp vo trng vi gi
tr ca mt bn ghi no trn bng d liu.
Khc phc: nhp li gi tr trng kho khc sao cho va ng, v khng b trng
kho.
Li th 4:

Li do: Bn ghi va nhp d liu b trng trng bt buc nhp d liu (nhng trng
c thit lp thuc tnh Required=Yes)
Khc phc: Phi nhp d liu cho cc trng bt buc phi nhp d liu.
Li th 5:

L do: Li do thc hin mt thao tc vi phm cc nguyn tc m bo ton vn d liu. V
d: Bn nhp d liu trn mt bng c quan h m bn ghi ang nhp khng th lin
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 28
kt c ti c mt bn ghi no ca bng c quan h 1 vi n (nhp mt hng bn m
m hng cha c trong bng danh mc hng ho).
Khc phc: Tm v nhp cho ng gi tr theo bng quan h 1 tng ng. Tham kho
cch khc phc li ny mc 5: thuc tnh LookUp.


4.2 Mt s thao tc x l d liu trn bng
ng trc mt bng d liu, c rt nhiu thao tc cn x l, v d: sp xp
bng, tm kim cc bn ghi, xo bn ghi no , Ni dung phn ny trnh by
cch s dng mt s thao tc .
a. Xo bn ghi
Xo bn ghi l thao tc xo b mt s bn ghi ra khi bng. Vi bng d liu
ang m c th thc hin 2 bc sau xo cc bn ghi:
Bc 1: Chn nhng bn ghi cn xo. C th chn mt hoc nhiu bn ghi
bng cch dng chut nh du u dng nhng bn ghi cn chn;
Bc 2: Ra lnh xo bng cch: m thc n Edit | Delete Record hoc
nhn nt Delete Record trn thanh cng c hoc nhn phi chut ln vng
chn, tip theo nhn Delete Record. Mt hp thoi xut hin bn khng
nh mt ln na vic xo d liu:

- Chn Yes ng xo;
- Nhn No hu lnh xo.
Ch
D liu ng xo s khng th phc hi li c. Nn phi cn nhc trc quyt nh ny cng
nh cn nhc trc cc cu hi kiu Yes/No truc khi quyt nh.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 29

b. Sp xp d liu
Sp xp l vic thay i th t hin th mt bng d liu theo mt trt t no
. Kt qu ca vic sp xp gip ngi dng c th quan st c tt hn d
liu trn bng, tt nhin mun quan st bng d liu theo trng no phi thc
hin sp xp bng theo d liu trng y. Cch sp xp d liu trn bng ang
m nh sau:
Bc 1: t con tr ln trng (ct) mun sp xp;
Bc 2: Nhn nt lnh sp xp trn thanh cng c: - sp xp tng dn
hoc - sp xp gim dn.
Bn s thu c kt qu nh mong mun.
c. Lc d liu
Lc d liu l vic lc ra nhng bn ghi trn bng c cng mt s gi tr. Kt
qu vic lc d liu s gip ngi dng lm vic mt cch hiu qu trn tp hp
cc bn ghi h mong mun.
Mt v d v tnh hiu qu ca vic lc d liu:
Sp n ngy Quc t Ph n 8-3. C quan quyt nh thng mi ch em
100,000. c ct thng trn bng cng danh sch tt c cn b c quan, lm
sao c th nhp vo gi tr ct thng cho ch em (khng nhp cho nam gii)
l nhanh nht.
Nu c ln m xem ai l n ri nhp 100,000 cho ct thng s l rt lu. Nu
lm theo cch sau:
Bc 1: Lc ra danh sch l cc cn b n;
Bc 2: Nhp 100,000 cho tt c cc bn ghi lc. Nh vy chc chn
nhng cn b ang hin th (sau khi lc) u l ch em ph n, khng b xt
ai m cng khng nhm mt ngi nam no c lt vo danh sch thng!
Cc bc lc d liu trn mt bng ang m nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 30
Bc 1: Nhn phi chut ln trng cn lc d liu. Mt menu xut hin:
Bc 2: Thit lp iu kin lc trn trng ang chn. C rt nhiu cch
xc nh iu kin lc:
- Nu mun lc nhng bn ghi c cng gi tr ca bn ghi ang chn hy chn
mc ;
- Mun lc nhng bn ghi tho mn iu kin no , hy g iu kin ln
mc: . V d:
+ G >=10 - lc ra nhng bn ghi c gi tr trng ang thit lp lc ln
hn hoc bng 10;
+ G <>3 - lc ra nhng bn ghi c gi tr trng ang lc khc 3,
+ c bit: gi tr trng, rng c miu t l Null;
+ Lc ra nhng ngi tn Nam g nh sau Like '*Nam';
+ Lc ra gi tr trong khong 10 n 15 g nh sau: Between 10 And 15
(tham kho ton t Like v Between chng sau- Queries).
Mun hu ch t lc, nhn phi chut ln bng d liu v chn mc:


5. Thuc tnh LOOKUP
Qua cch nhp d liu cho bng c quan h nhiu trn CSDL ta thy vic nhp
d liu cho trng tham gia lin kt ca bng nhiu i hi phi c chnh xc
vi d liu trn bng quan h 1 (phi nh m nhp). Trong thc t vi nhng
danh mc ln n hng trm, thm ch nhiu hn na th vic nh m nhp d
liu qu l kh khn: hoc g sai m, nguy him hn g ng nhng nhm m.
Thuc tnh LOOKUP s gip gii quyt phn no vic kh khn trong nhp d liu
trn cc bng quan h nhiu nh vy.
Thuc tnh LOOKUP c thit lp ti trng tham gia lin kt trn bng c
quan h nhiu sang trng tham gia lin kt ca bng c quan h 1.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 31
V d: Vi CSDL Qun l bn hng th:
- trng khachID ca bng HOADON phi thit lp thuc tnh LOOKUP sang
trng khachID ca bng KHACH;
- trng hangID ca bng HANGBAN phi thit lp thuc tnh LOOKUP sang
trng hangID ca bng HANG;
- trng hoadonID ca bng HANGBAN phi thit lp thuc tnh LOOKUP
sang trng hoadonID ca bng HOADON.
Thng thng, ng vi mi quan h 1- c thit k cn phi thit lp thuc
tnh LOOKUP cho trng tham gia lin kt t bng quan h 1 sang trng tham gia
lin kt ca bng quan h nhiu. Mt trong cc cch thit lp thuc tnh ny n
gin nht l trnh LookUp Wizard ca Access. Di y l v d v thit lp thuc
tnh LOOKUP cho trng khachID ca bng HOADON sang trng khachID ca
bng KHACH trong CSDL qun l bn hng:
Bc 1: M bng c trng cn thit lp LOOKUP ra (bng HOADON) ch
Design View bng cch: chn tn bng, nhn nt Design;
Bc 2: Kch hot trnh LookUp Wizard bng cch: Ti ct Data Type ca
trng cn thit lp thuc tnh LOOKUP (trng khachID), chn mc Lookup
Wizard.. t danh sch th xung:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 32

Hp thoi Lookup Wizard xut hin:

Hp thoi ny hi D liu a vo danh sch chn ly t u? Trong trng
hp ny danh sch d liu chn ly t bng KHACH, nn chn mc I want the
lookup column to look up the values in a table or query.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 33
Nhn Next tip tc:
Bc 3: Chn d liu cho danh sch:

Hp thoi trn tr li cu hi: Bng (query) no cha d liu cn a vo danh
sch?. Trong trng hp ny ly d liu t bng KHACH nn mc View chn
Tables; v chn bng KHACH.
Chn xong nhn Next, hp thoi sau xut hin:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 34
Hp thoi ny tr li cu hi: Gi tr nhng trng no ca bng (query)
chn s c hin th trn danh sch? Hy dng cc nt >, >>, <, << a 2
trng khachID v tenkhach t danh sch Available Fields: (danh sch cc trng
c th chn) sang danh sch Selected Fields: (danh sch cc trng chn).
Lu : V nguyn tc ch cn a trng khachID ca bng khc vo danh sch
Selected Fields: l , tuy nhin nn a thm trng tenkhach thun tin hn
khi chn la d liu khi nhp sau ny.
Chn xong nhn Next tip tc:

Nu mun n m khch khi chn d liu hy chn (checked) hp
, nu khng th b qua;
Nhn Next tip tc
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 35

Cui cng nhn Finish kt thc tin trnh Lookup Wizard. Khi hp thoi
yu cu ghi li cu trc bng xut hin:

Hy nhn Yes ng .
6. Qui trnh xy dng CSDL Access
n y chng ti c th khuyn co mt qui trnh tt xy dng mt CSDL
Access theo thit k sn c :
Bc 1 : Ln lt xy dng cu trc tng bng d liu trong CSDL. Vi
mi bng d liu khi khai bo cu trc cn gii quyt cc cng vic sau :
- Khai bo danh sch cc trng ca bng ct Field Name;
- Chn kiu d liu ph hp cho cc trng ct Data Type;
- Thit lp trng kho cho bng;
- Thit lp mt s khc cn thit cho cc trng nh : Field Size, Format,
Input Mark, Requried, Validate Rule,
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 36
- Ghi tn bng
Bc 2 : Ln lt thit lp thuc tnh LOOKUP cho cc trng mt cch
ph hp. Mi quan h trn bng thit k s cn mt thao tc thit lp thuc tnh
LOOKUP (s dng trnh LookUp Wizard) t trng trn bng quan h nhiu
sang trng bng quan h mt;
Bc 3 : Thit lp cc thuc tnh m bo ton vn d liu cn thit cho cc
quan h ti ca s Relationships (menu Tool | Relationships.. hoc nhn nt
trn thanh cng c);
Bc 4 : Thc hin nhp d liu cho cc bng nu cn. Ch : bng c
quan h 1 phi c nhp d liu trc bng c quan h nhiu.

Bi tp
1. Xy dng CSDL Qun l lng cn b mt c quan c cu trc nh sau :

Yu cu :
- Thit k cu trc cc bng mt cch ph hp : kiu d liu cc trng;
trng kho; thuc tnh Lookup v cc thuc tnh khc;
- Thit lp quan h cng cc thuc tnh m bo ton vn d liu cho cc quan
h;
- Nhp d liu nh sau :
+ 4 phng ban;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 37
+ 5 loi chc v;
+ 20 h s cn b.

2. Xy dng CSDL Qun l vic bn hng cho mt ca hng c cu trc nh sau :

Yu cu :
- Thit k cu trc cc bng mt cch ph hp : kiu d liu cc trng;
trng kho; thuc tnh Lookup v cc thuc tnh khc;
- Thit lp quan h cng cc thuc tnh m bo ton vn d liu cho cc quan
h;
- Nhp d liu nh sau :
+ 5 khch hng;
+ 15 danh mc hng ho c bn;
+ lp 10 ho n bn hng;
+ vi 25 lt hng ho c bn ra.

3. Xy dng CSDL Qun l sch mt th vin c cu trc nh sau :

Yu cu :
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 38
- Thit k cu trc cc bng mt cch ph hp : kiu d liu cc trng;
trng kho; thuc tnh Lookup v cc thuc tnh khc;
- Thit lp quan h cng cc thuc tnh m bo ton vn d liu cho cc quan
h;
- Nhp d liu nh sau :
+ 5 tc gi;
+ 3 nh xut bn;
+ 3 danh mc sch;
+ 20 u sch.


4. Xy dng CSDL Qun l im hc sinh trng ph thng c cu trc nh sau :

Yu cu :
- Thit k cu trc cc bng mt cch ph hp: kiu d liu cc trng;
trng kho; thuc tnh Lookup v cc thuc tnh khc;
- Thit lp quan h cng cc thuc tnh m bo ton vn d liu cho cc quan
h;
- Nhp d liu nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 39
+ 10 mn hc ph thng;
+ 3 khi hc;
+ 15 lp chia u cho 3 khi;
+ 30 hc sinh;
+ V nhp im 2 hc k cho hc sinh ca mt lp no .
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 40

CHNG 2
TRUY VN D LIU

Trong chng trc gii thiu nhng khi nim cng nh cc k nng, trnh
t cn thit c th xy dng tt mt CSDL trn Access. Chng ny s cung cp
nhng khi nim cng nh nhng k nng cn thit x l d liu khi cn. Mt
trong nhng cng c x l d liu trc quan, hu hiu trn Access l Query.
C rt nhiu dng yu cu x l d liu nh: trch - lc - hin th d liu; tng
hp - thng k; thm - bt - cp nht d liu; V vy s tn ti mt s loi Query
tng ng gii quyt cc yu cu x l d liu trn. C 7 loi query trong
Access :
Select Query;
Total Query;
Crosstab Query;
Append Query;
Delete Query;
Update Query;
Make table Query.
Bn cht ca Query l cc cu lnh SQL (Structured Queries Laguage- ngn ng
truy vn d liu c cu trc)- mt ngn ng truy vn d liu c dng kh ph
bin trn hu ht cc h qun tr CSDL hin nay. Vic thit k mt query l gin
tip to ra mt cu lnh x l d liu SQL. Vic thi hnh query chnh l vic thi
hnh cu lnh SQL to ra.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 41


1. SELECT queries
1.1 Cch to
Select query l loi truy vn dng trch - lc - kt xut d liu t nhiu
ngun khc nhau t CSDL ra mt bng kt qu. V d:
- a ra thng tin chi tit bng lng thng 8;
- a ra danh sch cn b l ng vin;
- a ra thng tin chi tit v cc ho n bn ra trong ngy hm nay;
- a ra doanh thu bn hng ca mt thng no ;
-
Tt c nhng yu cu dng nh vy (a ra mt danh sch kt qu) u c
th s dng SELECT query p ng. Mi yu cu x l d liu cn phi
to ra mt Select query p ng; mi query s c mt tn gi (nh cch t
tn bng d liu); query sau khi to ra u c th chnh sa li c cu
trc cng nh ni dung; qui trnh p ng mi yu cu trn nh sau: to
mt query p ng c cc yu cu thi hnh query to thu nhn kt
qu.
Tip theo minh ho qui trnh cc bc to mt select query p ng yu
cu n gin nht:
T CSDL Qun l lng cn b, hy a ra bng lng cn b vi nhng
thng tin sau: canboID, hoten, ngaysinh, tencv, luongchinh, phucapcv,
thuclinh.
Trong : luongchinh = hesoluong * 290000
Thuclinh = luongchinh + phucapcv
Phn tch yu cu:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 42
(1). Thng tin yu cu i hi t nhiu bng khc nhau (bng CANBO vi
cc ct: canboID, hoten, ngaysinh; bng CHUCVU vi cc ct tencv,
phucapcv);
(2). C nhng ct thng tin c sn trn CSDL (5 ct k trn) nhng mt
s ct yu cu phi c tnh bi biu thc: ct luongchinh v ct thuclinh.
Hng dn cch lm:
Bc 1: Ra lnh to mt Select query mi bng cch: kch hot th
Queries, nhn nt New, chn Design View, nhn Ok (hnh di):

Hoc nhn p chut ln biu tng Create query in Design view trn
mn hnh:

Bc 2: Chn nhng bng c cha d liu lin quan ln mn hnh thit k
query t ca s Show Table (khng thy ca s ny nhn nt Show table
trn thanh cng c):
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 43

Hy chn cc bng c lin quan (bng CANBO v bng CHUCVU); chn
xong nhn Add v nhn Close. Khi mn hnh thit k query xut hin:
Bc 3: Khai bo nhng thng tin cn thit cho query:

Dng Field: l ni khai bo danh sch cc thng tin (ct d liu) ca bng
kt qu.
C 2 loi thng tin bi ton yu cu: thng tin c sn t cc trng trn
CSDL nh canboID, hoten, tencv, phucapcv v thng tin phi c tnh theo
mt biu thc no nh: luongchinh v thuclinh.
Mun hin th trng (field) no ln query, ch vic nhn p chut ln tn
trng hoc dng chut ko tn chng t cc bng ln dng Field. Hy
dng phng php ny a 4 trng canboID, hoten, ngaysinh v
phucapcv ln dng Field.
Nhn p ln tn trng chn
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 44
Vi 2 ct luongchinh v thuclinh phi a vo query bng cch to mt ct
mi vi mt tn gi <tn ct> c tnh bng mt <biu thc> trn dng
Field theo c php nh sau:
<Tn ct> : <biu thc>


V d:
Luongchinh : hesoluong * 290000 to thm ct luongchinh mi
Thuclinh : luongchinh + phucapcv to thm ct thuclinh mi.
Cui cng, mn hnh thit k query nh sau:

C th ghi query li vi mt tn gi khi ra lnh ct Alt + S
Bc 4: S dng query va to. Mt query sau khi to xong c th:
(1) Kch hot chng ly kt qu bng cch: nhn p chut ln tn
query. Nu ang trong ch thit k (Design view), nhn nt View
trn thanh cng c hoc nhn phi chut ln Query ang thit k
chn . Bn s xem c kt qu tr v ca query v
c th thao tc bng d liu ny nh trn mt Table (xem mc 4.2,
Phn 1- To CSDL):
Tn ct mi Du ngn cch Biu thc tnh
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 45

(2) Sa li c cu trc thit k query khi chn chng v nhn nt
Design.
Bn cht ca mt SELECT query l cu lnh SQL c dng:-----------------
SELECT FROM
------------------------------------------------------------------------------------------------
Mt s thit lp khc cho Query
Dng Sort: thit lp th t sp xp d liu trn Query. Mun sp xp d
liu cho trng no, thit lp thuc tnh Sort cho trng y. C 2 gi tr cho
thuc tnh Sort: Ascending - sp xp tng dn v Descending - sp xp gim
dn. Trng no ng trc s c th t sp xp trc.

Bn cht ca yu cu sp xp d liu th hin mnh :-------------------
ORDER BY [ASC] [DESC] trong cu lnh SQL
------------------------------------------------------------------------------------------------
Dng Show: ch nh hin th hay khng hin th d liu trng ra
bng kt qu. Nu chn (checked)- d liu s c hin th ra bng kt qu.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 46
Ch : C 2 li hay mc phi:
- Li g sai biu thc:

Nguyn nhn gy ra li ny l rt nhiu, c th lit k ra y mt s tnh
hung:
Tnh hung 1: C th mt trong s tn cc trng bn g trong biu
thc c cha du cch hoc cc k t c bit. V d: trng hesoluong
ca bn l he so luong th phi g nh sau: [he so luong] thm du
mc vung vo 2 u ca tn trng;
Tnh hung 2: Sai k php l gc ca biu thc: do vit tha hoc
thiu cc ton t, ton hng, hoc cc du m ng ngoc khng khp..;
- G khng ng tn trng trong biu thc:

Li ny xy ra khi bn g sai tn trng. Tn hin th trn hp thoi
(phucap cv) my tnh khng hiu, c th tn ng ca trng ny l
phucapcv. Bn phi ln ti biu thc c cha tn trn v kim tra sa cho
ng vi tn trng c trong CSDL. Li ny hay xy ra khi thit k bng
t tn cc trng c cha du cch!
1.2 Lc d liu
Khc vi bng (Tables), Queries cung cp mt kh nng lc d liu kh
hon chnh; C th lc ra nhng d liu theo nhng iu kin phc tp hn,
c bit c th chp nhn nhng gi tr lc l cc tham bin.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 47
lc d liu, bn phi thit lp iu kin t lc ln vng Criteria ca
queries (trong ch ang thit k).

Cc iu kin nm trn cng mt dng Criteria s c ni vi nhau bi
ton t AND (v); mi dng Criteria s c ni vi nhau bi ton t OR
(hoc). Xt cc v d sau thc hin lc trn query bng lng va c to ra:
V d 1: Lc ra nhng cn b l trng phng c thc lnh <=1,000,000

V d 2: Lc ra nhng cn b l Trng phng m khng phi l ng
vin hoc nhng cn b N l ng vin:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 48

V d 3: Lc ra nhng cn b c tn l Nam. Ch : Tn ch l mt phn
ca trng Hoten:

Ton t LIKE biu din nhng gi tr mang tnh tng i (c th ch
ging mt phn gi tr thc). C php biu din ton t ny nh sau:
Like <gi tr tng i>
Trong <gi tr tng i> c th cha hng (Nam) v cc k t i din.
C 2 k t i din l:
- K t * biu din bt k gi tr no;
- K t ? biu din mt k t bt k.
Mt s v d minh ho ton t LIKE:
- Like Nguyn* - lc ra nhng ngi h nguyn. 6 k t u l
Nguyn, cc k t cn li l thoi mi;
- Like *c* - lc ra nhng ngi c H hoc m hoc Tn l
c;
- Like */*/1980 - lc ra nhng ngi sinh nm 1980;
- Like */11/* - lc ra nhng ngi sinh thng 11;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 49
- Like */*/198? - lc ra nhng ngi sinh t nm 1980 n nm
1989;
-
V d 4: Lc ra nhng cn b c 2,000,000>= Thuclinh >=1,000,000:

Ton t BETWEEN lc ra cc gi tr nm trong mt khong no .
Thng gii quyt cc yu cu ln hn hoc bng bao nhiu v nh hn hoc
bng bao nhiu?
C php ton t Between nh sau:
Between <gi tr nh> And <gi tr ln>
C 4 v d trn u t lc theo cc tham tr (lc cng). Trong trng hp
s dng cc tham bin vo iu kin lc, xin tip tc theo di hng dn di
y:
Mun thit lp gi tr t lc no l tham bin bn lm nh sau:
[G mt li nhc trong ngoc vung] ti ng v tr tham s cn thit lp.
V d: Lc ra danh sch cc cn b phng ban no , lm nh sau:

Khi thi hnh query, mt hp thoi yu cu g vo tham s cn lc:

Hy g vo Tn phng ban cn xem. Vic thit lp tham s kiu ny khng
gii hn trn mt query.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 50
Bn cht ca yu cu lc d liu th hin mnh :-------------------------
WHERE trong cu lnh SQL
-------------------------------------------------------------------------------------------------
2. TOTAL queries
Tng hp l php x l d liu kh ph bin. Trong Access, query l mt
trong nhng cng c x l kh tt vic ny. Total query l mt in hnh.
Hy xt mt s yu cu tng hp d liu nh sau:



Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 51

Tt c nhng yu cu trn u c th c p ng bng cc TOTAL query.
Di y s hng dn cch to Total query. V d: to query a ra bng tng
hp Tenchucvu, Tng s CB (query th 2);
Bc 1: To mt select query vi y cc thng tin lin quan bng tng
hp:

Bc 2: Tu chn Total query bng cch m thc n View | Total hoc
nhn nt Total trn thanh cng c;
Bc 3: Thit lp cc tu chn Total cho cc trng mt cch ph hp nh
sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 52

- V bi ton yu cu tng hp thng tin theo tng loi chc v, nn Total
ca trng Tenchucvu l Group By;
- Trng canboID dng m s cn b tng chc v, nn chn php tng
hp l Count.
n y to xong query v c th thi hnh thu nhn kt qu.
Ngoi php Count m, Total query cn cung cp mt s php tng hp
khc nh:
Sum - tnh tng;
AVG - tnh trung bnh cng;
Max - xc nh gi tr ln nht;
Min - xc nh gi tr nh nht
Bn cht ca Total query th hin cu lnh SQL:-------------------------------
SELECT .. FROM .. GROUP BY
------------------------------------------------------------------------------------------------
3. CROSSTAB queries
mc 2 chng ta c tm hiu v Total query trong vic p ng cc
yu cu tng hp d liu. Trn thc t cn rt nhiu cc yu cu tng hp khc
m Total query khng th p ng c. Nhiu trong s nh l:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 53



Tt c nhng yu cu dng trn c th s dng CROSSTAB query p
ng. Trc khi tm hiu cch to Crosstab query, chng ta hy tm hiu cu trc
mt Crosstab, c minh ho bi hnh sau:
Column heading
Row heading
Value
- Row heading l tiu cc dng, c cha cc gi tr ca cc trng no
lm tiu ch thng k. Mi Crosstab phi c ti thiu 1 trng lm Row
heading;
- Column heading l tiu cc ct, c cha cc gi tr ca mt trng no
lm tiu ch thng k. Mi Crosstab ch c duy nht 01 trng lm
Column heading;
- Value l vng d liu tng hp (l cc con s). Ch c duy nht mt trng
lm Value, tng ng vi n l mt php tng hp hoc: m, tnh tng,
tnh trung bnh cng, max, min,..
Yu cu tng hp d liu l
cc tiu dng v ct!
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 54
Cc bc to mt Crosstab query. V d to query a ra c bng tng
hp sau:

Bc 1: To mt select query vi y cc trng c lin quan n php
tng hp (khng tha v cng khng th thiu mt trng no) nh sau:

Bc 2: Ra lnh chn kiu Crostab query bng cch m thc n Queries |
Crosstab Query;
Bc 3: Thit lp cc thuc tnh Total cng nh Crosstab cho cc trng ph
hp nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 55

C th:
Tn trng Thuc tnh Total Thuc tnh Crosstab
Tenphongban Group By Row Heading
Tenchucvu Group By Column Heading
canboID Count Value

Bn cht ca Crosstab query th hin cu lnh SQL:--------------------------
TRANSFORM .. SELECT .. FROM .. GROUP BY PIVOT
------------------------------------------------------------------------------------------------
4. MAKE TABLE queries
Select v Total query lun a ra mt bng kt qu- l gi tr tc thi, mi
nht c ly ra t CSDL ti thi im . Ti thi im khc khi thi hnh query
, rt c th chng ta khng thu li c bng kt qu nh thi im trc .
Mun lu li bng kt qu ca mt query ti mt thi im no , trong Access c
mt cch l a d liu kt qu query ra mt bng (Table) lu tr lu di bi
mt MAKE TABLE query.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 56
Cc bc to mt Make table query lu tr kt qu mt query ra mt bng
d liu c tin hnh theo 2 bc chnh:
Bc 1: To mt Select query hoc mt Total query a ra c bng kt qu
cn lu tr;
Bc 2: Ra lnh to Make table query t query ang thit k v thi hnh
thu c bng kt qu nh mong mun.
Gi s to c mt Select query a ra c bng kt qu nh sau:

Bi ton t ra l: a ton b kt qu ca query ang hin th ra mt bng mi
c tn bangluong. Cch lm nh sau:
Bc 1: m select query to c ch Design View;
Bc 2: ra lnh to Make table query bng cch m thc n Queries | Make
Table query, hp thoi Make table xut hin:
Hy nhp vo tn bng d liu cn lu vo Table Name: Ch :
- Nu tn bng nhp vo l mi, Access s t ng to mt bng mi v sao
chp ton b d liu m query kt xut c ra bng ny;
- Nu tn nhp vo trng mt tn bng c sn, khi thi hnh Access s xo
bng c v in vo d liu mi (cn cn nhc khi t tn bng trng tn
bng tn ti).

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 57
Bc 3: thi hnh query nhn kt qu bng cch:
- Nu query ang ch thit k, nhn nt Run trn thanh cng c;
- Hoc nhy p chut ln query cn thc hin.
Khi mt hp thoi cnh bo vic bn ang ra lnh thi hnh mt query c th
lm thay i n d liu trn CSDL:

Nhn Yes tip tc hoc nhn No hu b lnh.
Nu trn CSDL tn ti mt bng c cng tn bng bn ch nh cho query
ny lu d liu, Access s hi bn: tn ti bng xxx trn CSDL ri, n s b xo
sch khi query ny thi hnh, bn c mun tip tc khng?

Nhn Yes tip tc (tt nhin bng d liu s b xo v thay vo ni dung
mi); nhn No hu b.
Cui cng mt hp thoi hi mt ln cui xem bn c ng dn xxx bn ghi
vo bng ch nh hay khng?

Nhn Yes ng , No hu b.
Thi hnh xong hy m bng va to c kim tra kt qu.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 58
Bn cht ca Crosstab query th hin cu lnh SQL:--------------------------
SELECT .. INTO .. FROM..
------------------------------------------------------------------------------------------------
5. DELETE queries
Delete Query l mt loi Action Query (query hnh ng). N c th gy thay
i d liu trong CSDL. Trong trng hp ny, Delete query dng xo cc bn
ghi t CSDL tho mn nhng iu kin no .
Di y l hng dn to mt Detele query xo i nhng cn b n tui ngh
hu ra khi CSDL Qun l lng cn b. Khi query ny thi hnh, danh sch cc
cn b n tui hu s b xo khi bng canbo. Cch to query ny nh sau:
Bc 1: To mt Select query nh sau:

Bc 2: i query hin hnh thnh Delete query bng cch m thc n
Queries | Delete Query
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 59

thi hnh vic xo cn b, nhn nt Run trn thanh cng c. Khi mt
hp thoi cnh bo xut hin:

Nhn Yes ng xo i cc bn ghi (bn ghi xo khng th phc hi li
c); nhn No hu b lnh.
Phi cn trng trc khi quyt nh lnh xo d liu.
Bn cht ca Delete query th hin cu lnh SQL:--------------------------
DELETE FROM [WHERE]
------------------------------------------------------------------------------------------------
6. UPDATE queries
Update query dng cp nht d liu mt s trng no trong CSDL. Ging
vi Delete query, Update query l loi query hnh ng, lm thay i ni dung d
liu trn CSDL.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 60
Di y l mt v d s dng Update query tnh gi tr cho ct luongchinh
(lng chnh) l mt trng mi c thm vo bng canbo.
Bc 1: To mt query v c cha bng canbo v chuyn thnh Update query
bng cch m thc n Queries | Update query; hp thoi thit k query nh sau:

Bc 2: Thit lp cc trng cn cp nht d liu bng cch:
- Chn tn trng cn cp nht d liu dng Field;
- G vo biu thc tnh gi tr cho trng dng Update To;
- G vo iu kin tnh ton nu cn dng Criteria.
Vi yu cu trn, luongchinh = hesoluong * 290000 ca s thit k query s
nh sau:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 61
thi hnh vic xo cn b, nhn nt Run trn thanh cng c. Khi mt
hp thoi cnh bo xut hin:

Nhn Yes ng cp nht d liu (d liu sau khi cp nht khng th
phc hi li c); nhn No hu b lnh.
Phi cn trng trc khi quyt nh lnh ny.
Bn cht ca Update query th hin cu lnh SQL:--------------------------
UPDATE SET [WHERE]
------------------------------------------------------------------------------------------------
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 62
Bi tp
Thc hin trn CSDL Qun l lng cn b cc yu cu:
Bi s 1: Hy tnh v in ra bng lng ca c quan bao gm cc thng tin:
Hoten, ngaysinh, tenchucvu, tenphongban, luongchinh, phucapcv, dangphi,
congdoanphi, thuclinh.
Trong :
Luongchinh = hesoluong * 290000
Dangphi = 20,000 vi nhng ai l ng vin
Congdoanphi = 5%Luongchinh vi nhng ai vo cng on

Bi s 2: Hy a ra danh sch cc cn b l ng vin m cha vo cng
on;

Bi s 3: Hy lc ra danh sch cn b ca mt phng ban no , tn phng
ban c nhp t bn phm khi query c kch hot;

Bi s 4: Hy lc ra danh sch cn b l ng vin v c thc lnh ln hn mt
s no - c nhp t bn phm khi query c kch hot;

Bi s 5: Hy lc ra danh sch cn b m nm sinh ri vo trong mt khong
nm no c nhp vo t bn phm. V d: khi kch hot query, Access yu cu
nhp vo khong nm sinh t nm no, n nm no. Khi query s lc ra danh
sch cc cn b tho mn iu kin ;

Bi s 6: Lc ra danh sch cn b c tn c nhp vo t bn phm khi kch
hot query. V d: khi query kch hot s hi: G vo tn cn xem? Sau khi g vo
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 63
mt tn (c th c h hoc c h v tn), my tnh s lc ra danh sch cn b tho
mn iu kin;

Bi s 7: Lc ra danh sch cn b n tui ngh hu, bit rng iu kin ngh
hu xc nh nh sau:
- L Nam gii, tui >=60
- L N gii, tui >=55

Bi s 8: Hy a ra bng tng hp s cn b vo ng hay cha vo ng
theo gii tnh nh sau:


Bi s 9: Hy a ra bng tng hp tng s cn b theo tng loi chc v ca
cc phng ban nh sau:


Bi s 10: a ra bng tng hp v chc v theo gii tnh nh sau:


Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 64
Bi s 11: a ra bng tng hp lng theo tng phng ban nh sau:


Thc hin trn CSDL Qun l bn hng cc yu cu:
Bi s 12: To query hin th chi tit thng tin tng hng bn:

Bi s 13: To query a ra bng tng hp tng tin bn c tng ngy ca ca
hng nh sau:

Bi s 14: To query a ra bng tng hp tng s bn v tng tin bn ra ca
tng loi mt hng nh sau:

Bi s 15: To bng tnh tng tin tng ho n bn hng nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 65

Bi s 16: Lp bng tng hp s lng bn ra tng ngy ca tng mt hng nh
sau:

Bi s 17: Lp bng tng hp s lng mua tng mt hng ca cc khch hng
nh sau:



Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 66

CHNG 3
THIT K GIAO DIN

Chng ny trnh by v FORMs - mt cng c thit k giao din ngi s dng
phn mm- b phn giao tip gia ngi dng vi ng dng.
Ton chng s cp n cc mng kin thc:
Cc khi nim v Forms;
S dng Form wizard;
S dng Form design view;
K thut Sub-form
Sau khi hc xong chng ny, hc vin s:
- Nm c cc khi nim v Form, v thit k giao din, v lp trnh trc
quan, hng i tng;
- Qua , hc vin hon ton c nhng k nng tt c th to ra c cc
dng Form nhp d liu; form iu khin, x l d liu theo nhng yu cu
ca bi ton thc t t ra. Tuy nhin, c mt kh nng pht trin chuyn
nghip hn, hc vin cn chuyn su n phn 2 ca gio trnh ny ni v Lp
trnh CSDL.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 67

1. Khi nim Forms
Khi s dng mt ng dng, a phn cng vic ca ngi dng lm trn cc hp
thoi (Dialogue), ca s (Windows). C 2 thnh phn ny trong lp trnh u c
gi l Form. Vi ngi dng, Form l giao din s dng phn mm; cn vi
nhng ngi pht trin phn mm, Form l nhng ci m h phi ngh, phi thit
k v to ra sao cho ngi dng h cm thy rt thoi mi, ph hp v d dng.
C 2 mi trng dng to Form trong Access:
- S dng trnh Form Wizard. y l cch rt n gin, nhanh chng, d dng
gip to nhanh mt Form. Tuy nhin Form c to ra c nhiu hn ch,
khng gn gi vi yu cu ca ngi dng;
- S dng trnh Form Design View - mt cng c tng i hon chnh to ra
cc form p ng nhiu yu cu khc nhau ca ngi s dng.
Tip theo s gii thiu c 2 mi trng ny.
2. S dng FORM WIZARD
Form wizard l cng c trn Access gip ngi dng nhanh chng v d dng
to ra mt Form dng lm giao din nhp d liu cho cc bng trn CSDL.
Di y trnh by cc bc to mt form lm giao din nhp d liu cho
bng CANBO trong CSDL Qun l lng cn b. (bn phi chc chn to hon
chnh cu trc CSDL trn):
Bc 1: Kch hot trnh Form Wizard
th Forms, nhn nt New, chn Form Wizard, nhn OK;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 68

Hoc c th nhn p chut ln Shortcut Creat Form by using Form wizard
Bc 2: Chn cc thng tin cn a ln form. y l bc quan trng nht
khai bo nhng trng d liu no ca form s c th c nhp d liu thng qua
form ang to. Hc vin phi cc k cn nhc cc thng tin y: chn bng no
v chn nhng trng no cho ng?

- Chn bng - ni c trng cn a ln form nhp d liu hp
Tables/Queries;
- Tip theo a cc trng cn nhp d liu ln form t danh sch Available
Fields: sang danh sch Selected Fields: bng cc nt lnh: >, >>, <, <<;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 69
- Hy lm ln lt n khi chn c cc trng cn nhp d liu ln form.

tip tc nhn Next;
Bc 3: Chn b cc (Layout) cho form. C 4 kiu b cc c th thit lp c
cho form l: Columnar; Tabular; Datasheet v Justified. Hy ln lt nhn ln
tng kiu b cc (hnh di) v xem kt qu minh ho (Preview) hp ch nht
bn tri hp thoi quyt nh nn chn loi no:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 70
Chn xong nhn Next tip tc;
Bc 4: Chnkiu dng (Style) cho form. C mt danh sch cc kiu dng
chn. Hy th tng kiu dng v chn cho form mt phong cch ph hp:

Chn xong nhn Next:
Bc 5: Hon thin cng vic:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 71
- Bn c th g vo tn gi cng nh tiu cho form hp What title do you
want for your form?
- C th tu chn kch hot ngay form va to nu chn Open the form to
view or enter information hoc m form ra ch Design view sa
cu trc nu chn mc Modify the forms design;
- Nhn Finish hon tt ton b cng vic.
Ch
Quan trng nht l bc 1, 2. T bc 3 tr i c th b qua bng cnh nhn Finish
ngay t bc 2 nu m bo ton b cc thit lp t bc 3, 4, 5 l ph hp.

S dng form to c vo vic nhp d liu:
Chn form, nhn nt Open. Nu form ang ch thit k c th nhn nt
View trn thanh cng c. Lc ny c th s dng form cp nht d liu:

Ti mi thi im, form nhp d liu ch hin th gi tr ca mt bn ghi. Bn c
th nhp, sa trc tip cc trng ca bn ghi hin ti trn form ny. Thanh nh
hng (Navigator bar) s gip x l mt s thao tc trn form, cch s dng nh
sau:
- Nt chuyn n bn ghi k sau;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 72
- Nt chuyn n bn ghi k trc;
- Nt chuyn v bn ghi u tin;
- Nt chuyn n bn ghi cui cng;
- Nt thm mt bn ghi mi
3. S dng FORM DESIGN VIEW
to ra c form mang tnh chuyn nghip v p ng c st yu cu thc
t bt buc phi s dng n Form Design View. Ni nh vy khng c ngha l
khng dng Form Wizard to form, m trong nhiu tnh hung vn dng Form
Wizard ri s dng n Form Design View tip tc hon thin yu cu.
Ni dung mc ny trnh by mi trng thit k form cng nh cch to mt s
kiu form t n gin n phc tp s dng Form Design View.

3.1 Thit k Form nhp d liu n gin
Chng ta s tm hiu cch thit k mt form nhp d liu n gin thng qua yu
cu: to form dng lm mu nhp d liu cho bng CANBO.
Bc 1: th Form, nhn New, chn Design View
Hoc nhn biu tng trn ca s QLL Database. Mi
trng thit k form xut hin:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 73

C 3 thnh phn quan trng lm vic:
(1) Ca s Form ni s thit k v xy dng cc thng tin cn thit theo yu
cu bi ton. Cu trc form gm 3 phn:
Form Header - phn tiu u form;
Form Footer - phn tiu cui;
Detail - phn thn form..
Ton b cc thng tin trn form u c cha trong cc i tng iu
khin (Control), cc i tng ny c ly t thanh cng c Toolbox s
trnh by phn tip sau.
(2) Thanh cng c Toolbox ni cha nhng i tng, nhng cng c c th
a ln form vi mc ch thit k giao din v iu khin d liu theo bi
ton. V d: mun to nhp H tn trn form c th dng i tng
Textbox, mun a mt ch thch (nhn hin th) c th dng Label, mun
to mt nt lnh c th dng CommandButton,
1
2
3
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 74
Mi i tng s c tp hp cc thuc tnh (Properties) v tp cc s
kin (Events). Thuc tnh m t tnh cht cho i tng , v d nh:
mu sc, kch thc, tnh cht d liu,.. S kin- ni c th gn cc m lnh
VBA hoc gn cc Macro lnh x l nhng cng vic no . Chng ta
s tm hiu k vic s dng cc s kin trong phn lp trnh VBA.
(3) Ca c Properties ni c th thit lp cc thuc tnh (properties) cho form
cng nh cc i tng trn form;
Bc 2: Thit lp ngun d liu cho form thuc tnh Record Source.
Form ang thit k l loi nhp d liu, bc ny xc nh ngun d liu
form lm vic. V ch nhp d liu cho bng CANBO, nn ngun d liu s l
bng cn b. Cch thit lp thuc tnh ny nh sau:
- Chn thuc tnh form bng cch chn tn i tng Form hp chn Object
trn thanh cng c Formatting:
Hoc nhn chut ln vung- v tr giao gia 2 thc k ngang-dc ca form
ang thit k. Lm sao khi tiu ca s Properties l Form l ok.
- Thit lp thuc tnh Record Source cho form bng cch chn tn bng
CANBO hp Record Source. C th tm thuc tnh ny th Data - ch
nhng thuc tnh lin quan n d liu; hoc th All- c y tt c cc
thuc tnh v s kin:

Bc 3: M ca s Field List.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 75
Ca s Field List c cha danh sch cc trng trn CSDL c trong ngun d
liu ca Form. N h tr vic a nhng trng d liu ny ln form nhp v
hin th d liu rt tt. Trong trng hp ny ta dng a nhng trng cn
nhp d liu t bng CANBO ln form.
Nu cha thy ca s ny xut hin, hy thc hin hin th n bng cch m thc
n View | Field List hoc nhn nt Field List trn thanh cng c chun.

Bc 4: a nhng trng cn nhp d liu t ca s Field List ln Form ang
thit k bng cch: Dng chut ko tng trng mun thit k ln form t ca s
Field List th ln v tr hp l trn form (vi bi ny phi ko ton b cc trng
ln form).Lc ny ca s thit k form c dng:
Mi khi ko mt trng t Field List ln form, Access s t ng to mt i
tng gn kt ti trng d liu tng ng, i tng ny c th l Textbox,
Combobox hay i tng khc tu thuc vo kiu d liu ca trng tng ng; v
i tng Label i km nhm to nhn ch thch cho trng d liu.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 76

n y to xong form nhp d liu n gin cho mt bng.
3.2 Tinh chnh cu trc Form
Khi thit k mt form, i hi lp trnh vin khng nhng phi to ra c form
p ng y cc yu cu v x l d liu ca bi ton, m cn phi p ng tnh
thm m. Th no l form c thm m cao? Cu hi ny rt kh! Tu thuc vo bi
ton, vo i tng ngi s dng m thit k nhng kiu giao din thn thin.
Thanh cng c Toolbox v ca s Properties l nhng cng c cn thit thit k
giao din.
a. Sa thuc tnh
M form sa ch thit k (Design view) bng cch: chn form, nhn nt
Design; hoc nhn nt Design trn thanh cng c. Mn hnh thit k form xut
hin:
Tu tng mc ch, i tng lm vic c th m c cc cch lm vic khc
nhau. Sau y l mt s v d:
Sa nhn (Label):
Label l i tng to ra dng ch ch thch trn form. Dng ch ny (nhn)
phi c nhp trc tip t bn phm lm sao tht ngn gn, xc tch ngi dng
c th hiu c bn cht cng nh ngha ca vic bn ang gii thch.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 77
Gi tr hin th trn nhn chnh l gi tr ca thuc tnh Caption. Sa nhn l sa
thuc tnh Caption hoc c th bm chut trc tip ln nhn s gi tr.
Thay i kch thc i tng (Resize):
Kch thc ca i tng thng c m t thuc tnh: Height - chiu cao v
With - chiu rng. Tuy nhin bn hon ton c th thay i kch thc i tng
mt cch trc quan bng chut. Cch lm tng t nh vic thay i kch thc
mt i tng ho (Graphic) trn Word. C th nh sau:
Khi tr chut (chn) ln i tng cn thay i, x xut hin 6 im trn i
tng:

Khi c th t chut ln tng im (khi no con tr chut chuyn thnh mi
tn 2 u) iu chnh ln bng cch gi v di chut.
Di chuyn i tng:
Mi i tng nm trn form u c xc nh bi mt to , to ny c
th hin qua 2 thuc tnh: Top - khong cch t tiu form n i tng v Left -
khong cch t mp form bn tri n i tng. Tuy nhin bn nn di chuyn i
tng bng cch trc quan s dng chut vi thao tc ko-th. Ch trong nhng
trng hp i hi phi di chuyn i tng n cc v tr chnh xc mi cn dng
n 2 thuc tnh Top v Left thit lp.
Thay i Font ch:
Nhng i tng c hin th ch (Text) hon ton c th thay i c phng
ch. Gi tr ny c miu t thuc tnh Font Name. Tuy nhin bn hon ton su
dng hp Font trn thanh cng c Formatting thit lp nhanh.
Thay i mu nn:
Mi i tng thng c th thit lp c mu nn, chng th hin thuc tnh
BackColor. Tuy nhin hon ton c th thit lp mu nn mt cch nhanh chng
hp Fill\Back Color trn thanh Formatting.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 78
Thay i mu ch:
Mi i tng thng hin th ch c th thit lp c mu ch, chng th hin
thuc tnh ForeColor. Tuy nhin hon ton c th thit lp mu ch mt cch
nhanh chng hp Font\Fore Color trn thanh Formatting
Ngoi ra c th s dng thuc tnh Format v InputMark nh dng d liu
khi hin th cng nh mt n khi nhp d liu. Xin tham kho cch lm ny phn
cc thuc tnh ca bng d liu (Chng 1; mc 2- Xy dng cu trc bng).
Hy s dng cc tnh nng nh dng nh trn mt cch ph hp, hon ton c
th a form ban u v dng d nhn, d s dng hn nh sau:


b. S dng Command Button Wizard
Tuy cha c hc mt cht g v lp trnh trn Access, nhng hc vin vn c
th to c mt s cc nt lnh t trn form iu khin cng vic. Tnh nng
Command Button Wizard gip lm iu .
Nt lnh (Command Button) thng c dng lp trnh x l cc cng vic
no . V d: khi nhn ln nt - mt bng lng s c in ra hoc
khi nhn nt - form ang lm vic s c ng li. Mun vy, ngi
lp trnh phi vit cc lnh pha sau nt , lm sao khi nhn ln nt, cc lnh s
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 79
c thi hnh iu khin cng vic nh yu cu. Control Button Wizard s gip
to mt s loi nt lnh m khng cn bit n lp trnh. Di y l cc bc s
dng:
V d: To nt
Trc khi s dng tnh nng ny, phi m bo nt Control Wizard trn thanh
cng c ToolBox c nhn chm xung:

Bc 1: Dng chut a i tng Command Button t thanh cng c ln v
tr thch hp trn Form, hp thoi sau xut hin:

Bc 2: Chn hnh ng cn lm cho nt lnh. Quan st hp thoi trn c 2
danh sch:
- Categories: cha cc nhm thao tc m mt nt lnh c th nhn;
- Actions: cha danh sch cc lnh ca mi nhm.
Bng di y lit k danh sch lnh ca tng nhm:
TT Nhm \ Lnh ngha
1 Record Navigation Nhm nh hng bn ghi
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 80
1.1
1.2
1.3
1.4
- Goto First Reocord
- Goto Last Reocord
- Goto Next Reocord
- Goto Previous Reocord
- Chuyn v bn ghi u
- Chuyn n bn ghi cui cng
- Chuyn bn ghi k sau
- Chuyn bn ghi k trc
2
2.1
2.2
2.3
2.4
Record Operations
- AddNew Reocord
- Delete Reocord
- Update Reocord
- Undo Reocord
Cc x l vi bn ghi
- Thm bn ghi mi
- Xo bn ghi hin ti
- Cp nht bn ghi hin ti
- Phc hi thay i d liu bn ghi
3
3.1
3.2
Form Operations
- Close Form
- Open Form
Cc x l vi Form
- ng form
- M mt form khc
4
4.1
4.2
4.3
Report Operations
- Preview report
- Print report
- Send report to file
Cc x l vi Report
- Xem trc ni dung (Preview) report
- In report
- Xut report ra mt tp tin ngoi
5
5.1
5.2
Applications
- Quit Application
- Run Application
X l ng dng
- Thot khi Access
- Chy mt ng dng no (tp .exe)
6
6.1
6.2
6.3
Miscellaneos
- Print table
- Run macro
- Run query
Mt s thao tc khc
- In ni dung mt bng
- Thi hnh mt Macro
- Thi hnh mt query
Vi yu cu ng form, phi chn: Categories = Form Actions v Actions =
Close Form.
Chn xong nhn Next:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 81
Bc 3: Chn hin th cho nt lnh trn hp thoi di:

- Chn tu chn Text nu mun nt lnh hin th bng ch. Khi g vo
ch hin th trn nt. Hnh trn g ng Form;
- Chn tu chn Picture nu mun th hin mt hnh nh ln nt lnh. Khi
c th chn mt hnh nh trn danh sch.
Bn c th quan st trc c th hin ca nt lnh hp Sample bn tri
hp thoi.
- Cui cng, nhn Finish kt thc vic to mt nt lnh.
4. K thut Sub-form
K thut thit k form trnh by cc phn trn c th gi l Single-form.
Sub-form l k thut thit k giao din rt mnh, p ng c nhng yu cu
x l d liu phc tp m k thut Single-form cha th p ng. C th hiu
Sub-form l vic form ny lng trong form kia (c th lng trong nhau nhiu
lp). Form cha gi l form m (Main form); form c lng vo gi l form
con (Sub-form). Vic x l d liu trn tng form c th x l c lp hoc c
quan h vi nhau tu theo mc ch cng vic.
Sub-form c th c s dng trong cc loi form nhp d liu, hoc s dng
hin th d liu. Di y minh ho 2 v d to form c s dng k thut ny.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 82
S dng Sub-form trong form nhp d liu:
Bi ton: Thit k form nhp thng tin ho n bn hng nh sau:

Vi yu cu ny, phi to mt form con cho php hin th v nhp cc
thng tin v hng bn (1);
Phi to mt form m nhp thng tin v ho n bn hng (2);
Phi kt ni form m vi form con thng qua trng hoadonID.
Cch lm nh sau (yu cu thc hin theo ng th t cng vic cc bc):
Bc 1: To form con
- To mi mi form ch Design View;
- V form con s hin th d liu dng bng nn phi thit lp thuc tnh
Default View cho form con l Datasheet;
- Thit lp ngun d liu lm vic cho form con thuc tnh Record Source
bng cch nhn nt (hnh di)

1
2
Nhn ln y to ngun d
liu cho form.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 83
Mt mn hnh thit k query xut hin. Hy thit lp query ny nh sau:

(Ch phi chn ng tn trng ca cc bng ch dn)
Tip theo ng mn hnh thit k query
- S dng ca s Field List a cc trng cn thit ln vng Detail ca
form bao gm: hangID, donvi, dongia, soluong, thanhtien;
- Ghi li form vi mt tn gi (v d: frmHangban) v ng li, chun b to
form m.

Bc 2: To form m
- To mi mi form ch Design View;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 84
- Thit lp ngun d liu lm vic cho form m thuc tnh Record Source
bng cch nhn nt (hnh di)

Mt mn hnh thit k query xut hin. Hy thit lp query ny nh sau:

(Ch phi chn ng tn trng ca cc bng ch dn)
Tip theo ng mn hnh thit k query
- S dng ca s Field List a cc trng cn thit ln vng Detail ca
form bao gm: hoadonID, khacID, ngayban, diachi, email;
- S dng i tng Subform\Subreport trn thanh cng c ToolBox
a form con ln form m. Sau khi a mt i tng Subform\Subreport
ln form, mt hp thoi xut hin;
Nhn ln y to ngun d
liu cho form.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 85

Hy chn tn form con cn a ln danh sch Use an existing form.
Chn xong nhn Finish.
(C th a form con ln form m bng cch dng chut gp tn form con
th ln form m)
- Ghi li form vi mt tn gi (v d: frmLapHoadon) v ng li, kt thc
yu cu c bn bi ton, thu c kt qu nh sau:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 86
Khi s dng Form wizard, bn cng rt r dng khi to form theo yu cu
trn. Cch lm y l kt hp gia form wizard vi form Design view. Chng ti
trnh by thm cch ny cc bn tham kho.
Bc 1: To form wizard ly nhng d liu sau:
Bng HOADON ly cc trng: hoadonID, khachID, ngayban;
Bng KHACH ly cc trng: diachi, email;
Bng HANGBAN ly cc trng: hangID, soluong;
Bng HANG ly cc trng: donvi, dongia.
Sau bc ny Access s to c form theo yu cu c dng:

Form ny gn p ng yu cu u bi (ch thiu ct Thanhtien trong form con).
Bc 2: Sa form con p ng bi ton:
- M form con ch Design View (thng thng tn form con ny Access
s t hangban subform);
- Thm mt Textbox ln vng Detail ca form con v thit lp thuc tnh
Control Source cho text box ny nh sau (= [dongia]*[soluong]):
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 87

- ng v ghi li tt c. Bn to c form nh yu cu.

S dng Sub-form trong form lc d liu
Bi ton: Thit k form lc ra danh sch cn b mt phng ban no nh
sau:

Vi yu cu ny, phi to mt form con cho php hin th cc thng tin
v danh sch cn b cn in ra (1);
Phi to mt form m cho php nhp cc tham s cn lc (2);
Phi thit lp tham s cho form con sao cho mi khi chn mt phng ban
trn form m, danh sch cn b phng ban s t ng hin th ra
form con.
Cch lm nh sau (yu cu thc hin theo ng th t cng vic cc bc):
1
2
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 88
Bc 1: To form con
- To mi mi form ch Design View;
- V form con s hin th d liu dng bng nn phi thit lp thuc tnh
Default View cho form con l Datasheet;
- Thit lp ngun d liu lm vic cho form con tuc tnh Record Source
bng cch nhn nt (hnh di)

Mt mn hnh thit k query xut hin. Hy thit lp query ny nh sau:

(Ch phi chn ng tn trng ca cc bng ch dn)
Tip theo ng mn hnh thit k query
- S dng ca s Field List a cc trng cn thit ln vng Detail ca
form bao gm: hoten, gioitinh, ngaysinh, tenchucvu;
- Ghi li form vi mt tn gi (v d: frmDscb_subform) v ng li, chun
b to form m.
Nhn ln y to ngun d
liu cho form.
G tham s cho form con ti
trng phongbanID
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 89
Bc 2: To form m
- To mi mi form ch Design View;
- To hp Combo box cha danh sch cc phng ban c th chn trn form
m bng cch:
Dng chut ko i tng Combobox t thanh cng c ToolBox th ln
form m, hp thoi sau xut hin:

Hy chn mc I want the combo box look up the value in a table or
query. Nhn Next tip tc, hp thoi sau xut hin:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 90

Chn bng t danh sch Table\Queries ni c cha danh sch phng
ban cn a vo hp chn Combobox. Chn PHONGBAN, nhn Next, hp
thoi tip theo xut hin:

Chn cc trng s hin th gi tr ln Combo box t danh sch
Available Fields: Selected Fields: (chn 2 trng phongbanID v
Tenpban). Nhn Next tip tc:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 91

Nn chn mc Hide key column (recommended) n i kho lm cho
danh sch th xung hp th gn gng hn. Cui cng nhn Finish kt
thc vic to Combo box.
Thit lp thuc tnh Name cho Combo box trng tn vi tham s thit
lp form con l cboPhongban.
- S dng i tng Subform\Subreport trn thanh cng c ToolBox
a form con ln form m. Sau khi a mt i tng Subform\Subreport
ln form, mt hp thoi xut hin;

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 92
Hy chn tn form con cn a ln danh sch Use an existing form.
Chn xong nhn Finish.
- Ghi li form vi mt tn gi (v d: frmTracuuDanhSachCanBo) v ng
li, kt thc yu cu c bn bi ton.
Ch
1. Gi tr thuc tnh Name ca hp Combobox trn form m phi trng vi tham s t
form con. Nu cha trng nhau phi sa li cho khp: hoc sa Name ca Combo cho
khp vi tham s form con hoc thao tc ngc li m form con sa tham s cho khp
Name ca Combobox.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 93
Bi tp
C s Qun l lng cn b
Bi s 1: To form cho php xem danh sch cn b tng phng ban nh sau:

Mi khi chn mt phng ban t hp th

danh sch cn b phng ban c hin th ln Subform.

Bi s 2: To form cho php tm kim cn b theo tn nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 94

Sau khi g mt tn (c th l m + Tn hoc y h v tn), danh sch cc
kt qu tm thy s c lit k ln Subform.

Trn CSDL Qun l bn hng hy:
Bi s 3: Thit k form lp ho n bn hng theo mu:

Yu cu chi tit:
- Cc nt Tin, Li nh v ho n cn lm vic;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 95
- Nt Thm mi bt u to mi mt ho n;
- Nt Xo H xo ho n hin ti. Yu cu phi c xc nhn trc khi xo;
- Nt In H in chi tit ho n bn hng ra report (chc nng ny s c
hon thin sau khi hc xong Chng Report)

Bi s 4: Thit k form tng hp thng tin bn hng nh sau:

Sau khi nhp xong gi tr t ngy v n ngy, thng tin chi tit v cc mt hng
bn ra trong phm vi ngy c tng hp theo nh giao din trn.

Bi s 5: Thit k form tng hp thng tin bn hng cho mt khc hng no
trong mt khong ngy no nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 96

Yu cu: Sau khi chn mt khch hng, nhp vo khong ngy cn tng hp.
Thng tin tng hp v tng mt hng ca khch mua s c lit k.
Bi s 6: To form tng hp thng tin hng bn chi tit theo tng ngy nh
sau:


Bi s 7: To form theo di thng tin ho n bn hng ca mt khch hng no
:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 97

Sau khi chn tn mt khch, thng tin v cc ho n mua hng c hin th.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 98

CHNG 4
THIT K BO CO

Report l cng c dng thit k in n d liu hu hiu trong Access. Hu nh tt
c nhng g bn mun in v in theo b cc nh th no? Report u c th p ng!
Chng ny s trnh by t nhng khi nim cn bn v thit k in n, v Report
ca Access n tip cn nhng k thut in n phc tp nh: report c tham s, sub-
report,..
Ni dung c th bao gm:
Cc khi nim v Report;
S dng report wizard;
S dng report design view;
K thut sub-report;
Tham s cho report.
Kt thc chng, hc vin hon ton c th thit k c nhng mu biu in n
n gin n nhng biu phc tp phc v nhu cu in n a dng trong cc bi ton
thc t t CSDL.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 99

1. Cc khi nim v Report
Mun in cc bo co trong Access bn c th s dng Report- mt cng c in n
rt mnh. ng vi mi mu bo co c th thit k cc thng tin ln mt report.
Mi khi report hin th kt qu (preview) l lc c th in c ni dung bo co ra
giy.
1.1 Cu trc Report
Cu trc mt report thng thng gm 5 phn:

Page Header
L phn u tin ca mt trang bo co. Ging nh khi nim Page header
trong Word v Excel. Phn ny c th c hoc khng c thng tin tu vo
ngi thit k.
Page Footer
Report header
Detai
Page header
Page Footer
Report footer
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 100
L phn cui cng ca mi trang bo co. Ging nh khi nim Page footer
trong Word v Excel. Phn ny c th c hoc khng c thng tin tu vo
ngi thit k.
Detail
L phn thn ca report ni hin th gi tr cc bn ghi s in ra. Phn ny c
th b thay i, ph thuc vo ngun d liu ti thi im s in ra ca report.
V d: Danh sch hc sinh lp 10A1 l 45 khi Detail report s in ra 45
dng; nu chuyn sang in danh sch hc sinh lp 10A2 c 48 hc sinh, lc
ny Detail report s in ra 48 dng (tng ng vi s bn ghi ca ngun d liu
s in ra).
Report Header
L phn tiu ca trang u tin Report, nm tip theo phn Page header v
nm trn phn Detail. Mi Report s ch c nhiu nht 1 Report header. Phn
ny c th c hoc khng c thng tin tu vo ngi thit k.
Report Footer
L phn tiu cui ca trang cui cng Report, nm tip theo phn Detail v
pha trc phn Page Footer. Mi Report s ch c nhiu nht 1 Report footer.
Phn ny c th c hoc khng c thng tin tu vo ngi thit k.

1.2 Mi trng lm vic
Lm vic vi Report gn ging lm vic vi Form. S khc nhau c bn ca
Report v Form l: Form c th hin th, tra cu, cp nht v iu khin d liu
t CSDL; cn Report ch c th lp bo co v in ra, c bit Report khng lm
thay i gi tr d liu trong CSDL.
Thng thng mi report s in d liu ca mt Table hoc mt Query no .
Tc l phi c mt ngun d liu cn in c th (trng hp c bit Report
khng c ngun d liu s ni n phn cui)
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 101
2. S dng Report wizard
Ging nh Form wizard, Report wizard l mt cng c rt n gin, d dng
to nhanh mt Report. Di y hng dn tng bc dng Report wizard to
mt report in ra danh sch cn b t CSDL Qun l lng bao gm cc thng tin:
Hoten, ngaysinh, tenchucvu, Tenphongban.
Bc 1: th Reports, nhn New, chn Report wizard, nhn OK:

Hoc nhn p chut ln biu tng
Bc 2: Chn d liu cn in trn hp thoi sau:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 102
chn d liu cn in ln report, c 2 thao tc phi lm trn hp thoi ny:
- Chn bng hoc query ni c cha trng d liu cn in ra hp
Table/Queries;
- S dng cc nt lnh >, >>, <, << a cc trng cn in t danh sch
Available Fields: (danh sch cc trng c th in) sang danh sch Seleted
Fields: (danh sch cc trng s c in ra report). Hy ln lt thc hin
chn cc trng hoten, ngaysinh (t bng CANBO), trng tenchucvu (bng
CHUCVU) v trng tenphongban (bng PHONGBAN). Chn xong nhn
Next:
Bc 3: Chn kiu cch hin th d liu trn report:

Bn mun in d liu theo kiu no: Hy chn kiu cn in t danh sch bn tri
hp thoi. Trong yu cu ny c th c 3 kiu hin th d liu trn report (v d liu
c chn ra t 3 bng khc nhau). V mun in mt danh sch cn b nn chn
kiu by CANBO (c th xem kiu hin th bn phi hp thoi). Nhn Next tip
tc:
Bc 4: Thit lp cc nhm d liu cn thit:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 103

Mun hin th d liu theo nhm gi tr ca trng no, hy Add trng t
danh sch bn tri hp thoi sang hp preview bn phi hp thoi. Trong bi ny
ch cn hin th mt danh sch chung nn khng cn thit lp nhm bc ny.
Nhn Next tip tc:
Bc 5: Thit lp sp xp d liu trn bo co:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 104
Report wizard cho php ti a 4 mc u tin sp xp d liu c nh s t 1
n 4 (hp thoi trn). Trng no thit lp trc, s c u tin sp xp trc.
Trong trng hp gi tr trng trng nhau, Access s chuyn n cc mc tip
theo sp xp. Kiu sp xp (theo chiu tng hoc gim) c th thit lp khi nhn
nt bn cnh. Thit lp xong nhn Next tip tc:
Bc 6: Chn b cc (Layout) cho Report:

C 2 thit lp trong bc ny:
- Chn b cc cho report hp Layout. C 3 kiu Layout: Columnar, Tabular
v Justified- hy chn mt kiu ph hp (xem hp preview bn tri bit
trc kt qu);
- Chn hng giy in hp Orientation. C 2 kiu hng in l: Portrait in
theo kh giy dc v Landscape- in theo kh giy ngang;
- Chn xong nhn Next tip tc:
Bc 7: Chn mu nh dng (Style) cho report:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 105

Hy chn mt mu nh dng t danh sch bn tri hp thoi. Chn xong nhn
Next tip tc:
Bc 8: Hon thin cc thng tin cui cng:

Bao gm cc thng tin sau:
- G vo tiu report cng nh tn report trn hp What do you want for yu
report?;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 106
- Chn Preview the report hin th d liu ca report ngay sau khi kt thc;
hoc hin th ngay mn hnh thit k sa cu trc report khi chn Modify
the reports design;
- Cui cng nhn Finish kt thc cc cng vic s dng report wizard.
Mn hnh hin th d liu report nh sau:

T mn hnh ny c th thc hin rt nhiu cc thao tc thng qua thanh cng c
Print Preview nh sau:

Nt Print :
in ni dung report ra my in;
Nut Design :
m report ra ch thit k;
Nt One page :
hin th report ra mn hnh trong tng trang bo co;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 107
Nt Two page :
hin th 2 trang bo co mt trn mn hnh;
Nt Multi Page :
chn nhiu trang bo co c th hin th trn mn hnh;
Nt Zoom :
phng to, thu nh ni dung report;
Nt Office Link :
kt xut (Export) thng tin trn report ra cc loi nh dng
khc ca MS Office nh Word, Excel, HTML.
Nt Close :
ng mn hnh preview report.
Ton b 8 bc s dng report wizard lit k trn, khng phi lc no cng
cn thc hin y . Vi nhng report n gin nh trn, ch cn thc hin Bc
1; Bc 2 c th nhn Finish kt thc. Tuy nhin tu vo yu cu in bo co
m mun dng li bc no thit lp cc thng tin cho ph hp hy chuyn
nhanh n bc .
3. Thit k report
Phn trc trnh by cc bc dng Report wizard c th thit k cc mu
bo co in n d liu t CSDL. l cch lm rt d dng v nhanh chng. Tuy
nhin, cc mu bo co c sinh ra ch gii hn theo mt s mu m my tnh
cung cp sn, khng th in ra c nhng biu bo co phc tp theo nh nhng
yu cu a dng ca ngi s dng. Report wizard ch c th to ra cc report in d
liu t cc bng hoc queries theo cu trc n gin; trong nhng trng hp yu
cu cu trc report phc tp, hoc phi in d liu khng phi hon ton ch t cc
bng v queries hoc in n bo co theo cc tiu ch, tham s ng no th khng
th p ng c. Trong trng hp ny phi dng n Report design view.
Trong chng mc no , cch lm vic vi Report design view gn ging cch
lm vic vi Form design view. Sau y l tng bc hng dn s dng Report
design view thit report theo yu cu nh trn:
Bc 1: Khi ng Report design view:
T th Report nhn nt New, chn Design view, nhn OK
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 108

Hoc nhn p chut ln biu tng Creat report in Design view trn ca s d
n:

Mi trng lm vic vi Report design view xut hin:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 109

C 3 phn quan trng trn mi trng lm vic ny:
(1) Ca s thit k Report (hnh trn tiu ca s ny l Report1: Report)-
ni thit k ni dung cn in n. Ni dung c thit k trn ca s ny l
cc i tng t thanh cng c Toolbox sau khi c thit lp cc thuc
tnh ph hp vi mc ch;
(2) Thanh cng c Toolbox- ni cha nhng i tng gip a cc thng tin
cn thit ln report. Chc nng v cch lm vic trn thanh cng c ny gn
ging vi lm vic trn thanh cng c Toolbox ca Form design view;
(3) Ca s Properties ni thit lp cc thuc tnh ph hp cho cc i tng
trn mn hnh thit k report.
Chng ta s c tm hiu k hn cc thnh phn trn trong cc bc tip theo
khi lm vic c th vi chng.
Bc 2: Xy dng ngun d liu in n cho report.
1
2
3
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 110
Report s in nhng thng tin g? Phm vi nh th no? L cc cu hi phi c
tr li bc ny bng cch thit lp thuc tnh Record Source cho report.
Thng thng, report s in d liu t mt hay nhiu bng hoc t kt qu ca
mt query, tng qut l t mt query. Query c th c xy dng sn t danh
sch cc Queries ca d n (cha trn th Queries)- khi bc ny ch chn query
cn in ti thuc tnh Record Source ca report:

Tuy nhin query cn in c th c to ra trong chnh bn thn report (khng
hin th tn query trn th Queries)- iu ny nn lm v nh vy s m bo s
chc chn ca report. Khi hy nhn chut ln nt ca thuc tnh Record
Source:

Mt ca s thit k query lm ngun d liu cho report xut hin:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 111

Hy thit lp cc thng tin cn in ra report trn query ny. Thit lp xong nhn
nt ng ca s thit k query (hoc nhn phm nng Ctrl+W) v chn Yes trong
hp thoi sau:

Bc 3: a cc thng tin ln ca s thit k report:
(1) C rt nhiu loi thng tin phi a ln report. Mi khi c nh a mt
thng tin ln, bn phi tr li c 2 cu hi:
l thng tin g? l tiu DANH SCH CN B.
S t thng tin ln phn no ca report? t ln phn Page Header!
(2) Theo ngm nh, ca s thit k report ch xut hin 3 phn: Page header,
Page footer v Detail. Nu report ang thit k yu cu c c Report
header v Report footer, hy hin th chng bng cch: nhn phi chut
ln ca s thit k report v chn:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 112

Nhng phn no khng dng n khi thit k c th tt i hoc dng chut
thu li din tch phn .
(3) S dng cng c Label
- Dng chut nhp nt Label trn thanh cng c Toolbox th ln v tr
cn t vo trn Report;
- G vo ni dung tiu cn in ra report;
- C th s dng thanh cng c Formatting nh dng hp d liu ny.
(4) S dng cng c Text box
Text box l dng hin th d liu ca mt trng d liu (Field) no ,
hin th d liu ca mt biu thc (v d tnh Tng tin chng hn). Cch
s dng Textbox nh sau:
- Dng chut nhp nt Textbox trn thanh cng c Toolbox th ln v
tr cn t vo trn Report;
- G vo ngun d liu s hin th ln Textbox thuc tnh Control
Source. Gi tr thuc tnh ny c th:
+ Hin th gi tr mt trng: Khi hy chn trng mun a thng
tin vo (hnh di):
Hin th li khi thit k.
Bt hoc tt phn Page header/Footer
Bt hoc tt phn Report header/Footer
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 113

+ Hoc hn th kt qu mt biu thc. Khi g biu thc ln thuc
tnh ny bt u mt du bng =. V d:

- C th s dng thanh cng c Formatting nh dng hp d liu ny.
(5) S dng ca s Field List
Danh sch cc trng d liu c th in ra c report th hin ca s
Field List (nu cha thy hin th m thc n View | Field List). Mun
in ra gi tr ca trng no ln v tr no ca report c th dng i tng
Textbox nh gii thiu trn hoc c th dng ca s Field List ny bng
cch: dng chut ko trng cn in ra t ca s Field List th ln v tr cn
in trn ca s thit k report (nn lm theo cch ny thay v dng
Textbox).
(6) S dng cng c Image
Cng c Image trn thanh cng c Toolbox gip a nh t cc tp tin
nh in ra report. Sau khi dng chut nhp nt nt Image t thanh cng c
t ln report, mt hp thoi xut hin cho php tm n tp tin nh cn
a ln report:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 114

Hy tm v chn tp nh, chn xong nhn OK hon tt cng vic.
(7) S dng cng c Line
Cng c Line dng v cc ng thng ln Report. Rt hu hiu
trong vic k bng biu.
Sau khi nhp nt Line trn thanh cng c, hy thc hin k bng cch di
chut.
Vi yu cu nh trn, bng cch s dng cc cng c nh hng dn hy
thit k mt report nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 115

Trong :
- Textbox bao gm cc nh nh mi tn ch dn. Trong :
- hoten, ngaysinh, tenchucvu, tenphongban c to bng cch ko
t ca s Field List ln phn Detail;
- Textbox m tng s cn b thit lp thuc tnh Control Source l
=Count([hoten]), phn Report footer.
- Textbox t ng nh s th t phi thit lp nh sau: Control
Source l =1; thuc tnh Running sum l Over Group.
- Cc hp ch cn li dng i tng Label;
- Ton b bng biu s dng i tng Line. Ch cc ng k phi
c ni kht vi nhau. Nu khng kht s to ra cc khe h v nt t
(khng lin nt)
4. Report cha tham s
Report c tham s thc cht l loi Report c kh nng lc d liu khi in. V d:
bnh thng Report in ra danh sch cn b trn s in danh sch ton b cn b
trong c quan. By gi mun in danh sch cn b mt phng ban no ? Lc ny
phi cn n report c tham s.
Textbox
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 116
C nhiu cch thit lp v s dng report c tham s nh:
- Thit lp tham s trn Record Source ca report;
- Thit lp tham s trn iu kin lc (Where Condition) dng Macro;
- Thit lp tham s trong cu lnh VBA DoCmd;
-
Trong phn ny, chng ti hng dn cch thit lp tham s trn thuc tnh
Record Source ca report. Cch d lm, khng cn am hiu v lp trnh VBA. Cch
dng Macro cng tt nhng khng nn dng. V phng php lp trnh ny tr
nn cng nhc. Thc t, phng php dng cu lnh DoCmd trn VBA l tt nht,
n th hin tnh linh hot v chuyn nghip ca cch gii quyt vn . Ring cch
ny, cc bn c th tham kho Chng Lp trnh CSDL.
Sau y l cch gii quyt bi ton: In danh sch cn b mt phng ban no .
Phng ban cn in c chn t Combo box mt form nh sau:

Sau khi chn tn mt phng ban t danh sch, nhn nt In danh sch. Danh
sch cn b phng chn s c in ra mt report.

Cch lm:
Bc 1: To Report p ng thng tin cn in
C th s dng report Wizard hoc Report Design View to ra mt Report in
danh sch cn b vi cc thng tin nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 117

Bc 2: To form theo yu cu bi ton
- C th s dng Combo Wizard to Combobox ly ra danh sch cc phng
ban t bng phongban;
- C th s dng Command button Wizard to cc nt lnh ng v In danh
sch;
Cui cng c form nh sau:

Bc 3: Thit lp tham s cho Report
y trnh by phng php thit lp tham s vo thuc tnh Record Source ca
Report. Cch lm nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 118
- M report to c ch Design View (ch thit k);
- M query c thit lp thuc tnh Record Source ni to ngun d liu v
thit lp tham s cho trng phongbanID ca query nh sau:

Trong : tham s cho trng phongbanID l tn (Name) ca Combo box cha
phng ban c chn trn form. C php vit tham chiu ti mt i tng trn
form nh sau:
Forms!<Tn form>!<tn i tng>
Trong trng hp ny tn Combo l Combo1 v tn ca form (Name ca
form) l frmIndsCB, cch vit tham s s nh sau:
Forms!frmIndsCB!Combo1
Nu cch vit ny kh thc hin, bn c th s dng tnh nng Build Expression
c sn trn Access gip to biu thc ny nh sau:
Nhn phi chut ln Criteria ca trng phongbanID- ni s g vo tham s.
Mt menu s xung xut hin:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 119

Chn hoc c th nhn nt Build trn thanh cng c
Standard, hp thoi Expression Builder xut hin:

cy cc i tng bn tri hp thoi, hy chn:
Forms | All Forms | frmIndsCB y l form cha i tng combo box phng
ban cn lc. Khi mt danh sch cc i tng trn form frmIndsCB xut hin
gia hp thoi;
Hy nhn p chut ln Combo1 - i tng cha phng ban cn lc, c kt
qu nh hnh sau:
Nhn p chut ln
Combo1 chn!
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 120

Cui cng nhn OK hon tt vic to tham s cho query bng hp thoi
Expression Builder.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 121
Bi tp
Trn CSDL Qun l lng cn b thc hin cc yu cu sau:
Bi s 1: Thit k report in danh sch cn b vi cc thng tin: canboID, hoten,
ngaysinh, gioitinh (phi ghi r l Nam hay N), tencv, tenpban.

Bi s 2: In danh sch cn b mt phng ban no nh sau:

Sau khi chn tn mt phng ban, nhn nt In danh sch cn b. an sch cn b
phng ban chn s c in ra mt report.

Bi s 3: Thit k report in bng lng cn b c quan, bao gm cc thng tin:
Hoten, tencv, ngaysinh, luongchinh, phucapcv, dangphi, congdoanphi, thuclinh

Bi s 4: Thit k query in ra bng tng hp cn b nh sau:
STT Tn chc v Tng s cn b


Bi s 5: To form v report xem v in bng lng ca cc phng ban nh
sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 122

Sau khi chn tn mt phng ban, bng lng cc cn b phng hin th ln
sub-form. Nhn nt In bng lng, bng lng ring phng ban s c in ra
mt report.




Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 123

CHNG 5
LP TRNH VBA CN
BN

Access khng nhng l h qun tr CSDL rt mnh- c th cc bn c tm
hiu rt k Chng 1 v Chng 2. Hn na, vi nhng cng c c sn i km
nh Forms, Report, Macros v c bit l ngn ng lp trnh VBA Access s cn
l mt cng c pht trin phn mm rt mnh, d s dng cho cc ng dng qun l
va v nh.
Ni dung chng ny s trnh by cn bn v ngn ng lp trnh VBA (Visual
Basic for Application)- mt ngn ng kh quen thuc i vi nhng ngi s dng
chuyn su sn phm Microsoft Office. y chnh l c s quan trng cc bn
tip cn c th chuyn ngnh lp trnh CSDL s c gii thiu trong chng tip
theo.
Qua chng ny, hc vin s hiu c mi trng lm vic ngn ng VBA;
bit cch s dng cc cu trc lnh; vit v s dng tt chng trnh con; c bit
dn lm quen vic lp trnh trn cc i tng ActiveX- sn sng tip cn cc cng
c lp trnh hng i tng trc quan hin i nh Visual Basic v Visual Basic
.NET.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 124
1. Mi trng lp trnh VBA
B phn mm tin hc vn phng Microsoft Office phi ni l ni ting nht th
gii trong lnh vc tin hc vn phng. Word cung cp kh nng ch bn in t p
v hin i; Excel vi kh nng bng tnh in t mnh m; FrontPage vi kh
nng to ra cc trang web sng ng; Access vi kh nng qun tr CSDL; tt c
cc phn mm to nn s ph bin ca b phn mm ny vi hu ht ngi
dng my tnh trn ton th gii.
Khng dng mc ng dng c sn, b phn mm ny cn c mt ngn ng lp
trnh i km VBA Visual Basic for Application gip ngi dng c th to ra
cc tu bin mnh hn, thn thin hn vi trong cng vic ca mnh. Vi Word,
Excel bn hon ton c th t to ra cc macro tng tc s dng ng dng;
hn th na VBA trn Access th hin tnh chuyn nghip trong lp trnh, phn
no bin c mt CSDL n gin tr thnh nhng sn phm ng gi thng mi.
Mn hnh lm vic ngn ng VBA thng c dng:

1
2
3
4
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 125
Trong :
(1) H thng thc n v thanh cng c
Cng nh bt k mi trng lm vic no u c h thng thc n v thanh
cng c i km. Trn c cha cc lnh gi, thi hnh hoc thit lp cc
iu khin cn thit.
(2) Ca s Project Explorer;
C rt nhiu cc thnh phn c th lp trnh c bi VBA nh: Forms,
Reports, Modules. Ca s Project Explorer l cy phn cp lp cc i tng
c cha m lnh VBA, ng thi gip lp trnh vin d dng trong vic vit
(coding) cng nh qun l cc m lnh VBA vit.
(3) Ca s vit lnh;
Ca s vit lnh l ni son tho cc dng lnh VBA. Mi ca s s cha
ton b m lnh cho mt i tng nh: Forms, Reports, Modules. Trong
mi ca s c th c nhiu phn c vit lnh, mi phn c th l ni dung
mt khai bo, mt chng trnh con, ni dung mt th tc p ng s kin.
V d:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 126

(4) Ca s Intermediate
Ca s Intermediate l ni gip thi hnh trc tip mt cu lnh no , rt
hu dng trong vic g li phn mm (s quay tr li vn g ri phn
mm cui chng)
2. Cc kiu d liu v khai bo
2.1 Cc kiu d liu c bn
Cng nh cc ngn ng lp trnh khc, VBA u h tr cc kiu d liu c bn.
Di y gii thiu chi tit v tng kiu.

Boolean
Kiu l gc, tng t kiu Boolean trn Pascal. Kiu ny chim 2 byte b nh;
ch nhn mt trong 2 gi tr l: Yes No hoc True False hoc i khi th hin
Phn khai bo
Th tc p ng s
Chng trnh con
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 127
di dng s 0 tng ng vi False, True tng ng vi bt k s no khc 0.
Khi lp trnh CSDL, kiu Boolean tng ng vi kiu Yes/No trong bng d liu.

Byte
Kiu s nguyn dng trong phm vi t 0..255. Kiu ny chim 1 byte b nh.

Integer
Kiu nguyn, c gi tr trong khong -32768...32767. Kiu ny chim 2 bytes b
nh.

Long
Kiu s nguyn di, c gi tr trong khong 2,147,483,648 .. 2,147,483,647.
Kiu ny chim 4 bytes b nh.

Single
Kiu s thc, c gi tr trong khong 1.401298E-45 to 3.402823E38. Chim 4
bytes b nh.

Double
Kiu s thc c ln hn kiu Single, c gi tr trong khong
4.94065645841247E-324 to 1.79769313486232E308. Chim 8 bytes b nh.

Currency
Kiu tin t. Bn cht l kiu s, ln 8 bytes, c gi tr trong khong -
922,337,203,685,477.5808 to 922,337,203,685,477.5807. c bit, kiu ny lun
c k hiu tin t i km.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 128
String
Kiu xu k t. Kiu ny tng ng vi kiu String trong Pascal, tng ng vi
kiu Text trong cc trng CSDL Access. ln ti a 255 bytes tng ng vi
kh nng x l xu di 255 k t.

Variant
Variant l kiu d liu khng tng minh. Bin kiu ny c th nhn bt k mt
gi tr no c th. V d :

Dim a As Variant
a = 123
a = Nguyn Vn Ng

Hon ton khng c li.
Ngi ta thng khai bo bin kiu Variant trong nhng trng hp phi x l
bin mm do. Khi th bin nhn gi tr kiu ny, khi th nhn gi tr v x l
theo kiu d liu khc.

Object
Object l mt loi bin kiu Variant, chim dung lng nh 4 bytes, dng
tham chiu ti mt loi i tng (Object) no trong khi lp trnh. Tt nhin
mun khai bo bin Object kiu no, phi chc chn i tng c ng k
vo th vin tham chiu VBA bi tnh nng Tool | Reference. Chng ta s cn tr
li vn ny khi lp trnh CSDL.
2.2 Bin v cch s dng bin
a. Bin khai bo bin n gin
Bin (Variable) l thnh phn ca mt ngn ng lp trnh, gip x l d liu mt
cch linh hot v mm do.
Thng thng trong cc ngn ng lp trnh, mi bin khi tn ti phi c nh
kiu, tc l phi nhn mt kiu d liu xc nh. Tuy nhin trong VBA th khng,
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 129
mi bin c th nh kiu (c khai bo trc khi s dng) hoc khng nh kiu
(khng khai bo vn s dng c). Trong trng hp ny bin s t nhn kiu
gi tr Variant.
Bin c th c khai bo bt k u trong phn vit lnh ca VBA. Tt nhin,
bin c hiu lc nh khai bo ch bt u t sau li khai bo v m bo phm vi
hot ng nh qui nh. V bin trong VBA hot ng rt mm do, nn c
nhiu cch khai bo bin nh:
V d 1: Khai bo bin i kiu Integer

Dim i As Integer


V d 2: Khai bo 2 bin i, j kiu Integer

Dim i, j As Integer


V d 3: Khai bo bin i kiu Integer, st kiu String di 15 k t

Dim i As Integer, st As String*15


V d 4: Khai bo bin i kiu Variant

Dim i As Variant
hoc
Dim i


V d 5: Khai bo bin txt kiu Textbox

Dim txt As TextBox


V d 6: Khai bo mng kiu String*30 gm 46 phn t
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 130

Dim Hoten(45) As String * 45


V d 7: Khai bo bin mng 2 chiu A(i , j) trong : i = 0..3 v j = 0..4

Dim A(3, 4) As Integer


V d 8: Khai bo mng 3 chiu A(i, j, k) trong : i = 1..5; j = 4..9 v k = 3..5

Dim A(1 To 5, 4 To 9, 3 To 5) As Double


V d 9: Khai bo mt mng ng kiu Variant. Mng ng l mng khng c
nh chiu di.

Dim MyArray()


b. Phm vi bin
Nh chng ta bit, mi bin sau khi c khai bo n s nhn mt kiu d
liu v c mt phm vi hot ng, tc l li khai bo bin ch c tc dng trong
nhng vng c ch nh; ngoi vng ch nh bin s khng c tc dng,
nu c tc dng s theo ngha khc (bin cc b kiu Variant chng hn).
Bin cc b:
Bin cc b c khai bo sau t kho Dim, n ch c tc dng trong mt
chng trnh con, cc b trong mt form hoc mt module no . Di y s ch
ra 3 trng hp bin cc b ny:
- Trong mt chng trnh con, nu n c khai bo trong chng trnh con ;
- Trong c mt Form, nu n c khai bo trong phn Decralations ca Form
;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 131
- Trong c mt Reports, nu n c khai bo trong phn Decralations ca
Report ;
- Trong c mt Modules, nu n c khai bo trong phn Decralations ca
Modules ;
* Bin ch c tc dng sau lnh khai bo Dim
Bin ton cc:
Bin ton cc c khai bo sau cm t kho Public, n c tc dng trong ton
b chng trnh ( bt k ch no c th vit lnh). Loi bin ny lun phi c
khi bo ti vng Decralations ca mt Module no .
V d:

Public Hoten(45) As String * 45


Trn mt tp Access, khng c php khai bo trng tn bin ton cc. Tuy
nhin tn bin cc b vn c th trng tn bin ton cc, trong trng hp VBA
s u tin s dng bin cc b trong phm vi ca n.
2.3 Hng v cch s dng hng
a. Khai bo hng
Hng (Constan) l i lng c gi tr xc nh v khng b thay i trong bt k
hon cnh no. Tng ng vi tng kiu d liu, s c nhng hng tng ng.
Khai bo hng s bi t kho Const. Sau y l cc v d v khai bo cc loi
hng:
V d 1: Hng a =5 (hng s)

Const a = 5


V d 2: Hng ngy = 24/12/2004 kiu Date (bao bi cp du thng #..#)

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 132
Const ngay = #24/12/2004#


V d 3: Hng xu k t (bao bi cp du nhy kp ..)

Const phongban = "Ti v"


V d 4: Hng kiu Lgc xc nh bi True hoc False

Const ok = True


b. Phm vi hng
Tng t nh bin, hng cng c nhng phm vi hot ng ca n. Hng c
khai bo trong th tc no, hoc cc b trong form, report hoc module no s ch
c tc dng trong phm vi .
Mun hng c phm vi ton cc, phi c khai bo sau t kho Public Const,
ti vng Decralations ca mt module no nh sau:

Public Const a = 12


3. Cc cu trc lnh VBA
Cc cu trc lnh l thnh phn c bn ca mi ngn ng lp trnh. Thng
thng cc ngn ng lp trnh u c cc cu trc lnh nh nhau: lnh x l iu
kin, lnh lp bit trc s vng lp, lnh lp khng bit trc s vng lp,.. Tuy
nhin cch th hin (c php) mi cu trc lnh c th khc nhau tu thuc vo mi
ngn ng lp trnh. Hn na, mi ngn ng cng c th c mt s im khc bit,
c trng trong mi cu trc lnh.
Cng ging nh nhiu ngn ng lp trnh hin i khc, cc cu trc lnh trong
VBA u tun th cc nguyn tc:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 133
- C cu trc: mi cu trc lnh u c t kho bt u v mt t kha bo hiu
kt thc;
- Thc hin tun t (loi tr trng hp c bit th tc Goto <Label>);
- C kh nng lng nhau;
3.1 Cu trc IF END IF
Cu trc ny thng gi l lnh la chn. Tc l nu mt iu kin no xy
ra s l g, hoc tri li c th lm g. Trong VBA c php lnh ny nh sau:

If <iu kin> Then
<th tc 1>
[ Else
<th tc 2> ]
End If

ngha lnh trn l: nu <iu kin> = True th thc hin cc lnh trong <th
tc1>. Tri li thc hin cc lnh trong <th tc 2>.
Phn trong cp du ngoc vung [..] c th c hoc khng c trong cu lnh, tu
thuc vo mc ch x l.
V d 1: Kim tra v tr li mt s l chn hay l?

If so Mod 2 = 0 Then
Msgbox L s chn !
Else
Msgbox L s l !
End If


Cho bit thang (s nguyn) roi vo u nm (1..4), gia nm (5..8) hay cui nm
(9//12)?

If thang >=9 Then
Msgbox Cui nm
Else
If thang >=5 Then
Msgbox Gia nm
Else
Msgbox u nm
End If
End If
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 134


3.2 Cu trc SELECT CASE .. END SELECT
y l mt loi ca cu trc la chn. Thng thng hon ton c th s dng If
.. End If thc hin cc x l lin quan n kiu cu trc ny, nhng trong nhng
trng hp c bit, cu trc Select Case .. End Select th hin c s tin dng
vt tri. Trong VBA c php lnh ny nh sau:

Select Case <biu thc>
Case <gi tr 1>
<th tc 1>
Case <gi tr 2>
<th tc 2>

Case <gi tr n>
<th tc n>
[Case Else
<th tc n+1>]
End Select


Trong : <Biu thc> lun tr v gi tr kiu v hng m c nh: s
nguyn, xu k t, kiu l gc,..
Vi cu trc ny, VBA hot ng nh sau:
(1) Tnh gi tr ca biu thc
(2) Kim tra <biu thc> = <gi tr 1> ?
- Nu ng thc hin <th tc 1> v kt thc lnh, thc hin lnh tip theo sau t
kho End Select.
- Nu sai, thc hin tip vic so snh <biu thc> = <gi tr i> tip theo v x l
tng t qui trnh nu trn.
(3) Trong trng hp <biu thc> <> <gi tr i>, i=1..n khi c 2 kh nng:
- Nu c tu chn Case Else th VBA s thc hin <th tc n+1>;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 135
- Nu khng c tu chn Case Else, VBA s khng thc hin bt k th tc no
lit k trong vng Select .. End Select c m chuyn ti thc hin lnh tip theo
sau t kho End Select.
Xt v d sau: Kim tra mt s nguyn (so) v tr v tn ting Anh thng tng
ng vi s nguyn (bin thang) , v d:
1 - Janualy
2 - Februaly

12 - December
>12 - Khng xc nh
Nu dng lnh If hon ton c th p ng c bi ton ny, thay vo s l
mt tp hp 12 lnh If .. Else .. End If nh sau:

If so = 1 Then
thang = "Janualy"
Else
If so = 2 Then
thang = "Feb"
Else
If so = 3 Then
thang = "Feb"
Else
If so = 4 Then
thang = "Feb"
Else
If so = 5 Then
thang = "Feb"
Else
If so = 6 Then
thang = "Feb"
Else
If so = 7 Then
thang = "Feb"
Else
If so = 8 Then
thang = "Feb"
Else
If so = 9 Then
thang = "Feb"
Else
If so = 10 Then
thang = "Feb"
Else
If so = 11 Then
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 136
thang = "Feb"
Else
If so = 12 Then
thang =
"Feb"
Else
thang =
"Feb"
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If


Tuy nhin khi s dng Select Case .. End Select, cu trc s gn gng v sng
sa hn nhiu. C th nh sau:

Select Case so
Case 1
thang = "Janualy"
Case 2
thang = "Janualy"
Case 3
thang = "Janualy"
Case 4
thang = "Janualy"
Case 5
thang = "Janualy"
Case 6
thang = "Janualy"
Case 7
thang = "Janualy"
Case 8
thang = "Janualy"
Case 9
thang = "Janualy"
Case 10
thang = "Janualy"
Case 11
thang = "Janualy"
Case 12
thang = "Janualy"
Case Else
thang = "Khng xc nh"
End Select

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 137

3.3 Cu trc FOR NEXT
For Next l mt cu trc lp bit trc s ln lp trong VBA, tuy nhin trong
nhng tnh hung c bit, vn c th s dng cu trc ny nh cu trc khng bit
trc c s ln lp.
C php cu trc ForNext nh sau:

For <bin chy> = <gi tr 1> To <gi tr 2> [Step <n>]
<th tc>
[Exit For]
Next


Trong :
- <bin chy> l bin kiu v hng m c, hay dng nht l bin kiu
nguyn;
- <gi tr 1>, <gi tr 2> l cc gi tr m bin chy s nhn v thc hin dch
chuyn sau mi ln lp. C th dch chuyn i 1 n v, c th dch chuyn i
nhiu n v mt ln, c th dch chuyn tin, cng c th dch chuyn li- tt
c iu ny tu thuc vo vic c hay khng c tu chn [Step <n>];
- Nu c tu chn [Step <n>] bin chy s dch n n v sau mi ln lp. Khi
, nu n>0 d dch tin, ngc li s dch li;
- Mi ln lp, VBA s thc hin <th tc> mt ln;
- Trong trng hp c bit nu gp phi lnh Exit For trong vng lp, ngay
lp tc thot khi lnh lp v thc hin lnh tip ngay sau t kho Next.
Chnh Exit For lm mt i tnh lp bit trc c s ln lp ca loi lnh
ny.
Tip theo l cc v d:
V d 1: Tnh tng cc s t 1 n 50, gi tr c lu vo bin tong.

Dim i As Byte
Dim tong As Integer
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 138

tong = 0
For i = 1 To 50
tong = tong +i
Next
Msgbox tong


V d 2: Tnh tng cc s chia ht cho 3 t 1 n 50, gi tr c lu vo bin
tong.

Dim i As Byte
Dim tong As Integer

tong = 0
For i = 3 To 50 Step 3
tong = tong +i
Next
Msgbox tong

Lnh For trong v d ny ch khc lnh For v d 1 ch Step 3. V <gi tr
1> = 3 l s chia ht cho 3, nn tt c cc gi tr i cn li s chia ht cho 3 (v i = i
+3).

V d 3: Kim tra mt s nguyn (>2) c phi l nguyn t hay khng?

Dim so As Integer
Dim uoc As Integer
Dim nguyento As Boolean

nguyento = True
For uoc = 2 To Int(so / 2)
If so Mod uoc = 0 Then
nguyento = False
Exit For
End If
Next

If nguyento Then
Msgbox "l nguyn t"
Else
Msgbox "khng l nguyn t !"
End If

Gii thut n gin xc nh mt s c phi nguyn t hay khng l: xc nh
xem tt c cc s (uoc) c th tr thnh c ca s (so) cn kim tra. Nu tm thy
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 139
mt c thc s u tin, kt lun ngay khng phi s nguyn t bi lnh nguyento
= False v thot khi vng lp bng lnh Exit For; trong trng hp xt ton b
cc c c th m khng tm c mt s no l c thc s, kt lun y l s
nguyn t (bin nguyento = True nh gi tr ban u)

3.4 Cu trc WHILE WEND
While Wend l mt cu trc lp khng bit trc s ln lp trong VBA.C
php cu trc WhileWend nh sau (Wend - vit tt ca cm t While End):

While <iu kin>
<th tc>
Wend


Trong :
- While, Wend l cc t kho ca lnh lp;
- Nu <iu kin> = True, cc lnh trong <th tc> s c thc hin. Thc
hin xong li quay ln dng lnh While kim tra tip <iu kin>;
- Nu <iu kin> = False, s thot khi vng lp v thc hin lnh tip theo
t kho Wend.
Ch : Lun phi chng minh c rng, sau mt s hu hn ln thc hin <th
tc>, gi tr ca <biu thc> phi l False thot khi vng lp. Trong trng
hp khng th thot khi vng lp, c ngha ngi lp trnh mc phi li lp v
hn. C th dn n chng trnh b treo.
Cc v d:
V d 1: Tnh tng cc s chia ht cho 3 trong khong t 1 n 50

Dim i As Byte
Dim tong As Integer

tong = 0
i = 3
While i <= 50
tong = tong +i
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 140
i = i + 3
Wend
Msgbox tong


V d 2: V d ny th hin vng lp v hn. L do c th l ch quan, rt n
gin v g nhm! Hy ch ra dng lnh g nhm v thc hin sa cho ng.

Dim i As Byte
Dim tong As Integer

tong = 0
i = 1
While i <= 50
If i Mod 3 = 0 Then
tong = tong + i
End If
j = i + 1
Wend
Msgbox tong


3.5 Lnh DoCmd
Bn c th dng lnh DoCmd thi hnh cc cng vic thng thng trn
Access thng qua mi trng VBA. V d nh: dng DoCmd c th m form,
m report, query, lc d liu, thi hnh macro x l bn ghi, ng dng,.. Hu ht cc
thao tc x l trn cc i tung ca Access u c th dng lnh doCmd gi ra
thc hin trong mi trng VBA.
Di y lit k mt s cc php x l ca lnh DoCmd thng dng:
Lnh ng mt i tng
Lnh ny ng (Close) hoc gii phng i tng no ra khi b nh. Hay
dng lnh ny ng form ang hot ng hoc ng mt report ang preview.
C php nh sau:
DoCmd.Close [ObjectType], [ObjectName], [SaveOption]
Trong :
ObjectType ch kiu i tng cn ng. C th nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 141
acForrm ng form
acReport ng report
acQuery ng query
acTable ng bng
ObjectName - ch tn i tng cn ng;
SaveOption - ch nh tu chn ghi li cu trc (nu c s thay i). C th:
SaveNo Khng khi li
SaveYes Lun ghi li
SavePromt Hin th hp thoi nhc ghi nu c s thay i
V d sau ng form frmHoadon, khng cn ghi li cu trc nu c s thay
i.

DoCmd.Close acForm, "frmHoadon", acSaveNo

c bit, ra lnh ng i tng ch ang m ch cn ra lnh sau:

DoCmd.Close


Lnh m form
L mt lnh hon chnh m v thit lp mi trng lm vic cho mt form.
C php nh sau:
DoCmd.OpenForm [objectName], [ViewMode], [FilterName], [WhereCondition],
[DataMode], [WindowsMode]
Trong :
ObjectName tn form mun m;
ViewMode - ch m. C th:
acDesign M form ra ch thit k
acNormal M form ra thi hnh
FilterName - t lc
WhereCondition - Gii hn cc bn ghi trong ngun d liu
DataMode - thit lp ch d liu trn form, c th:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 142
WindowsMode - thit lp kiu ca s form l:
acDialog Kiu hp thoi
acWindowsNormal Kiu ca s bnh thng
V d: Di y l lnh m form lp ho n bn hng (frmLapHoaDon), trong
ch hin th ni dung ca ho n c m "H0035"

DoCmd.OpenForm "frmLapHoaDon", , ,"hoadonID = 'H0035'"


Lnh m report
L mt lnh hon chnh m v thit lp mi trng lm vic cho mt report.
C php nh sau:
DoCmd.OpenReport [objectName], [ViewMode], [FilterName], [WhereCondition],
[DataMode], [WindowsMode]
Trong :
ObjectName tn Report mun m;
ViewMode - ch m. C th:
acDesign M Report ra ch thit k
acNormal M Report ra thi hnh
FilterName - t lc
WhereCondition - Gii hn cc bn ghi trong ngun d liu
DataMode - thit lp ch d liu trn Report , c th:
WindowsMode - thit lp kiu ca s Report l:
acDialog Kiu hp thoi
acWindowsNormal Kiu ca s bnh thng
V d: Di y l lnh Preview report in ra ho n bn hng (rptHoaDon),
trong ch hin th ni dung ca ho n hin ti trn mt form ( cha m ho
n l txtHoadonID)

DoCmd.OpenReport "rptHoadon",,,"hoadonID = '" + txtHoadonID +
"'"

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 143

Lnh thi hnh cu lnh SQL
Dng thi hnh mt lnh SQL. C php nh sau:
DoCmd.RunSQL
Gi s trn bng canbo c thm trng luongchinh. Lnh sau y s cp nht gi
tr cho trng ny thng qua lnh SQL cp nht d liu:

DoCmd.RunSQL "UPDATE canbo SET luongchinh = hessoluong*290000"

Hoc di y l lnh xo b nhng cn b n tui ngh hu ra khi CSDL:

DoCmd.RunSQL "DELETE * FROM canbo " _
+ " WHERE (Year(Date())-Year([ngaysinh])>=60 AND gioitinh=Yes)"
_
+ " OR (Year(Date())-Year([ngaysinh])>=55 AND gioitinh=No)"

4. Chng trnh con
Chng trnh con l mt n v m lnh VBA, n c th cha tp hp cc cu
lnh nhm thao tc, tnh ton hoc iu khin mc ch hoc d liu no . Trong
VBA c 2 loi chng trnh con:
- Chng trnh con dng th tc, c khai bo bi t kho Sub;
- Chng trnh con dng hm, c khai bo bi t kho Function.
V bn cht, 2 loi chng trnh con trn u nh nhau: khai bo, tham s v
truyn tham s. Tuy nhin, im khc nhau c bn l:
- Function lun tr v mt gi tr kiu v hng chun, v d: hm Date() - tr v
gi tr ngy hin ti kiu Date. Trong Access sn c rt nhiu cc hm tnh
ton (tham kho trang ), chng c gi l cc build-in fuction. Hn na,
ngi dng hon ton c th to ra cc hm s dng cho cc mc ch ring
loi hm ny gi l user-define function;
- Cn Sub th khng, n ch thc hin mt s cc cng vic. Tt nhin nhng
cng vic ny hon ton c th lm thay i d liu theo mong mun trong
chng trnh. Cng nh Function, Access v VBA sn c mt th vin cc th
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 144
tc; hn na ngi dng cng c th t to thm nhng th tc mi phc v
vic x l d liu theo mc ch ring. c bit, Access cn nh ngha th tc
p ng s kin. Th tc ny s c t ng gi ra khi s kin p ng b nh
hng. Chng ta s tr li ni dung ny qua cc v d lp trnh VBA.
Tu tng tnh hung c th s la chn s dng Function hoc Sub.
4.1 Chng trnh con dng hm
C php

Function <tn hm>([<danh sch cc tham s>]) As <kiu DL hm>
<th tc>
End Function


Trong :
- Function, End Function l cc t kho bt buc khai bo cu trc mt
chng trnh con dng hm;
- <tn hm> l tn gi hm nh khai bo. Tn khng c cha du cch
(space) v cc k t c bit;
- <danh sch cc tham s> - danh sch cc tham s cn thit cho hm. C hay
khng c danh sch ny tu thuc vo hm cn nh ngha;
- <kiu DL hm> - kiu d liu m hm s tr li. Phn ny bt buc phi c
khai bo vi mi hm;
- <th tc> - thn chng trnh con. Trong cu lnh <tn hm> = <biu
thc> phi xut hin t nht mt ln trong th tc. Cu lnh ny c tc dng
gn gi tr cho hm.
Nu khng c t kho Public trc Function, hm ch c tc dng cc b:
trong mt module, trong mt report hoc trong mt form. Khi c t kho Public
trc Function, hm s c tc dng ton cc. Tc l c th s dng bt k ni no
trn tp Access . Tt nhin, tt c nhng g khai bo l Public phi c khai bo
trong phn Decralations ca mt Module no .
Cc v d:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 145
V d 1: hm tnh tng 2 s

Function Tong2So(a, b As Double) As Double
Tong2So = a + b
End Function


V d 2: hm kim tra mt s c phi l nguyn t hay khng?

Function laNguyenTo(so As Integer) As Boolean
Dim uoc As Integer

laNguyenTo = True
If so > 2 Then
For uoc = 2 To Int(Sqr(so))
If so Mod uoc = 0 Then
laNguyenTo = False
Exit For
End If
Next
End If
End Function

V d trn c s dng n:
- hm Int(number) hm ly phn nguyn ca mt s;
- hm Sqr(number) hm ly cn bc hai mt s

V d 3: hm tch tn trong xu h v tn.
y l mt bi ton gp phi rt nhiu trong thc t. C th bi ton gii quyt
vn sau:
Nu bit h tn l Nguyn Sn Hi, hm s tch ra c tn l Hi. Ton b m
lnh hm nh sau:

Function GetTen(hoten As String) As String
Dim pos As Integer

pos = 1
If InStr(pos, Trim(hoten), " ") = 0 Then
GetTen = hoten
Exit Function
End If
While InStr(pos + 1, Trim(hoten), " ") > 0
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 146
pos = InStr(pos + 1, Trim(ten), " ")
Wend

GetTen = Mid(hoten, pos)
End Function


V d 4: Hm dng so snh 2 xu kiu ch TCVN3 chng ti a ra di y l
mt tham kho rt tt. Trong Word, Access cng nh cc bng d liu ting Vit c
du trn my tnh, vic sp xp xu k t l mt bi ton m ngi Vit phi gii
quyt. V d, di y l mt danh sch trn Word:
STT Tn
1 Quang
2 c
3 on
4 Bng
5 Bang
6 An
7 n

Sau khi s dng tnh nng sp xp (Sort) ca Word theo ct Tn theo th t tng
dn, c danh sch kt qu nh sau:
STT Tn
7 n
3 on
2 c
6 An
4 Bng
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 147
5 Bang
1 Quang

M danh sch sp xp ng phi l:
STT Tn
6 An
7 n
5 Bang
4 Bng
3 on
2 c
1 Quang

Hm Mahoa di y s gip qui i mt xu ting Vit chun TCVN3 (b
phng ABC) v dng khng du. Mun sp xp hay so snh v th cc xu, hy so
snh cc xu khng du c chuyn i bi hm Mahoa ny.

Private Function MahoaTCVN3(Ckt As String)
Dim kq, kti As String
Dim vt1, vt2, i As Integer
Dim Cgoc1, Cma1 As String, Cgoc2, xd, Cma2 As String

Cgoc1 =
"aeiou
y"
Cma1 = "abadafaparazblbnbpcbcdcl1b1c1d1e1f1a"
Cgoc2 =
"AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZ
z"

Cma2 =
"aaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfb
gbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcccbcccdcecfcgchcicjckclcmc
n"

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 148
kq = ""
xd = ""

For i = 1 To Len(Ckt)
kti = Mid(Ckt, i, 1)
vt1 = InStr(Cgoc1, kti)
If vt1 <> 0 Then
kq = kq & Mid(Cma1, 1 + ((vt1 - 1) \ 6) * 2, 2)
xd = xd & Mid(Cma1, 25 + ((4 + vt1) Mod 6) * 2, 2)
Else
vt2 = InStr(Cgoc2, kti)
If vt2 <> 0 Then
kq = kq & Mid(Cma2, (vt2) * 2 - 1, 2)
Else
kq = kq + kti
End If
End If
Next i
MahoaTCVN3 = kq & xd
End Function

Function Mahoa(Ckt As String) As String
Dim vt1 As Integer
Dim kq, Ctam As String
Ckt = Ckt & " "
kq = ""
vt1 = InStr(Ckt, " ")

Do While vt1 <> 0
Ctam = Trim(Left(Ckt, vt1 - 1))
Ckt = Right(Ckt, Len(Ckt) - vt1)
kq = MahoaTCVN3(Ctam) & " " & kq
vt1 = InStr(Ckt, " ")
Loop
Mahoa = kq
End Function




4.2 Chng trnh con dng th tc
C php

[Public] [Private] Sub <tn CTC>([<danh sch cc tham s>])
<th tc>
End Sub


Trong :
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 149
- Sub, End Sub l cc t kho bt buc khai bo cu trc mt chng trnh con
dng th tc;
- <tn CTC> l tn gi th tc nh khai bo. Tn khng c cha du cch
(space) v cc k t c bit;
- <danh sch cc tham s> - danh sch cc tham s cn thit cho th tc. C
hay khng c danh sch ny tu thuc vo th tc cn to
- <th tc> - thn chng trnh con.
Nu khng c t kho Public trc Sub, th tc ch c tc dng cc b: trong
mt module, trong mt report hoc trong mt form. Khi c t kho Public trc
Sub, th tc s c tc dng ton cc. Tc l c th s dng bt k ni no trn tp
Access . Tt nhin, tt c nhng g khai bo l Public phi c khai bo trong
phn Decralations ca mt Module no .
Cc v d:
V d 1: Th tc tnh tng hai s

Sub tong2so(a, b As Double)
tong = a + b

ch : tong- l bin c khai bo ton cc
End Sub


V d 2: Cng l tnh tng, nhng th tc sau y khng c ngha g!

Sub tong2so(a, b As Double)
Dim tong As Double

tong = a + b

ch : tong- l bin c khai bo ton cc
End Sub

V sao? V bin tong c khai bo cc b trong CTC tong2so, nn khi CTC ny
kt thc, bin tong cng b gii thot khi b nh lun. Khng gy nh hng g
n d liu cng nh th hin ca chng trnh.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 150
5. K thut x l li
X l li l k thut rt quan trng trong lp trnh. lp trnh th kh trnh khi
li (Errors). C rt nhiu nguyn nhn gy ra li; cc nguyn nhn ny c th c
lng trc hoc khng c lng trc. K thut x l li bao gm cc k nng
pht hin v x l cc tnh hung khi chng trnh gy li.
5.1 X l li
L vic x l khi ang lp trnh gp phi li. Thng thng khi chy th chng
trnh trong lc ang xy dng phn mm nu gp phi li, s xut hin hp thoi
thng bo li c dng:

Thng thng mt hp thoi thng bo li gm 2 thnh phn:
- Thnh phn bo li bao gm:
+ M s li - Mi li m VBA c th kim tra c u c mt m s, c
hin th dng thng bo: Run-time error 'm s li': V d trn l : Run-time error
'11':
+ Tn li. v d trn tn li l: Division by zero - li sai kiu d liu.
- Thnh phn x l li gm 2 nt lnh:
+ Nt - dng ngay chng trnh, chuyn v ch Design - thit
k bnh thng;
+ Nt - dng chng trnh chuyn v ch Break - sa li trc
tip. Khi cu lnh li s c t bi mu nn vng cho php ngi lp trnh c
th s c m chng trnh:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 151

Khi dch chut ln mt bin no , gi tr bin s c hin th di dng Tool
tip.

Hnh trn khi di chut ln bin b, gi tr bin b xut hin di dng Tool tip (gi
tr b = 0).
Sau khi chn nt Debug, bn hon ton c th thc hin sa m lnh trong
chng trnh. Tuy nhin, trong mt s trng hp khi sa m lnh VBA s hi:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 152
iu ny c ngha: vic sa i m lnh va ri, VBA yu cu phi tr v ch
thit k bnh thng nu nhn Ok; tri li nhn Cancel- vic thay i m lnh s
khng c chp nhn.
Sau khi thc hin sa m lnh, bn c th yu cu VBA thc thi tip chng
trnh.

Vic thc thi s c tin hnh tip tc ti v tr vt sng ang tr. Bn c th
dng chut dch chuyn vt sng v lnh cn thc thi (ch trong cng mt
chng trnh con). thc thi tip nhn phm F5 hoc nt Continue trn thanh
cng c; hoc nhn nt Stop nu mun dng vic sa m lnh trong ch
Break, chuyn v ch Design.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 153


Ca s Immediate
L cng c hu hiu h tr vic d li bi: hp thoi ny cho php thc thi tng
cu lnh trn ch hi thoi.

Gi s v d trn sau khi g lnh:

? b

Xem gi tr ca bin b. Sau khi nhn Enter s nhn c kt qu

0

Hoc nu g:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 154

? a / b

S nhn c thng bo li:

V b = 0.
5.2 By li
Mc 5.1 trnh by nhng k nng x l li khi ang son tho chng
trnh. Cc thao tc ch c thc hin trong lc ang xy dng phn mm (VBA
IDE), do ngi lp trnh x l. Khi phn mm c ng gi chuyn n
ngi dng nu gp li, n s hin th mt hp tthoi thng bo li (Error Dialog)
cho bit l do vn tt v li. Sau khi bn nhn OK, chng trnh s ngng hot
ng, b thot.
x l li trong tnh hung ny, c 2 phng php by li m chng ti a ra
di y tham kho; hy vng bn s chn la c tnh hung ph hp s
dng mt trong cc phng php ny m bo chng trnh vit ra chy c ng
theo mc ch.
S dng lnh On Error Resume Next
Khi t ch tr i, nu chng trnh gp li, n s b qua (ignore) hon
ton. im ny tin ch gip chng trnh EXE ca ta trnh gp li thot khi
t ngt nh phn tch trn. Nhng n cng bt li l khi khch hng cho hay h
gp nhng trng hp l, khng gii thch c (v li b b qua m khng ai
), th ta cng b lun, c th khng bit bt u t u g li. Do , trong lc
g li ta khng nn dng n, nhng trc khi giao cho khch hng bn nn cn
nhc k c nn s dng trong cc on m lnh hay khng.
V d s dng On Error Resume Next b qua li:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 155
Function A_chia_B(a, b As Double) As Double
On Error Resume Next

A_chia_B = Null

A_chia_B = a / b

End Function

Trong chng trnh con trn, nu b = 0, lnh A_chia_B = a / b s gp phi li.
Do c li khai bo On Error Resume Next nn lnh li ny c b qua (khng
thc hin). Tc l gi tr hm l Null.
S dng cu lnh On Error Goto <nhn>
Khi mt th tc c t cu lnh ny, nu gp phi mt li no , VBA s
chuyn thng vic thc hin n <nhn> ch nh. Thng thng cc lnh tip
theo ca <nhn> l x l cc tnh hung li.
Sau y l v d s dng phong php On Error Goto <nhn> by li:

Function A_chia_B(a, b As Double) As Double
On Error GoTo Loi

A_chia_B = a / b
Msgbox Ok!

Loi:

If Err.Number = 11 Then
MsgBox "Li chia cho 0 !"
End If

End Function

Trong chng trnh con trn, trong trng hp b = 0 cu lnh A_chia_B = a / b
s gy ra li. Theo nh khai bo On Error Goto Loi ban u, VBA s b qua tt c
cc lnh sau lnh li v chuyn thng ti cc lnh sau nhn Loi: y l lnh kim
tra li. Nu M li = 11 kt lun ngay mt thng bo li ting Vit. Li chia cho
0 !
Phng php ny cng c dng ph bin c trong qu trnh xy dng pht
hin li, cng nh trong phn mm ng gi gi n khch hng. Mi khi gp
li s c thng bo nguyn nhn gy ra li bng ting Vit (chng hn) m vn
khng nh hng n hot ng khc ca phn mm.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 156
Trong phng php ny, ngi lp trnh nn khai thc ti a i tng Err - i
tng mang nhng thng tin v li ang xy ra, c th:
Hnh ng Kt qu
Err.Description M t tn li
Err.Number a ra m li
Err.Number Xo b cc gi tr ca i tng Err

6. Mt s v d
Phn ny trnh by mt s v d s dng Form, mt s i tng iu khin
(Control), cc khai bo, cc cu trc lnh v nhng k thut lin quan gii quyt
mt s bi ton thc t n gin.
Bi ton 1: Nhp vo mt s nguyn v kim tra s l chn hay s l?
Thit k form nh sau:

Thit lp thuc tnh cho cc i tng nh sau:
Form
Caption: Kim tra s chn - l
Default view: Single Form
Scroll bar: Neither
Record selector: No
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 157
Navigation Buttons: No
Diving line: No
nhp s cn kim tra
Name: Text0
Nt Kim tra chn l
Name: cmdChanLe
Caption: Kim tra chn l
Nt ng
Name: cmdClose
Caption: ng
V m lnh cho form nh sau:
'--------------------------------------
'Lnh cho nt Kim tra chn l
'
Private Sub cmdChanLe_Click()
If Text0 Mod 2 = 0 Then
MsgBox Text0 + " L s chn !"
Else
MsgBox Text0 + " L s l !"
End If
End Sub

'----------------------------------------
'Lnh cho nt ng
'
Private Sub cmdClose_Click()
DoCmd.Close
End Sub


Bi ton 2: Nhp vo 2 s nguyn v tnh USC v BCS ca 2 s
Thit k form nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 158

Thit lp thuc tnh cho cc i tng nh sau:
Form
Caption: Tm USC v BSC
Default view: Single Form
Scroll bar: Neither
Record selector: No
Navigation Buttons: No
Diving line: No
nhp s cn kim tra
Thuc tnh Name
A: txtA
B: txtB
USC: txtUSC
BSC: txtBSC

Nt Tnh ton
Name: cmdTinhToan
Caption: Tnh ton
Nt ng
Name: cmdClose
Caption: ng
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 159
V m lnh cho form nh sau:
'---------------------------------------------------------
'Hm xc nh USCNN ca 2 s nguyn (thut ton -c-lt)
'
Function usc(a, b As Integer) As Integer
Dim a1, b1 As Integer

a1 = a
b1 = b
While a1 <> b1
If a1 > b1 Then
a1 = a1 - b1
Else
b1 = b1 - a1
End If
Wend
usc = a1

End Function

'-------------------------------
'M lnh cho nt Tnh ton
'
Private Sub cmdTinhToan_Click()
txtUSC = usc(txtA, txtB)
txtBSC = txtA * txtB / usc(txtA, txtB)
End Sub

'------------------------------
'M lnh cho nt ng
'
Private Sub cmdClose_Click()
DoCmd.Close
End Sub

Bi ton 3: Nhp vo 3 h s A, B, C ca phng trnh bc hai Ax
2

+ Bx+C =0
v cho bit nghim phng trnh :
Thit k form nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 160

Thit lp thuc tnh cho cc i tng nh sau:
Form
Caption: Gii phng trnh bc 2
Default view: Single Form
Scroll bar: Neither
Record selector: No
Navigation Buttons: No
Diving line: No
nhp s cn kim tra
Thuc tnh Name
A: txtA
B: txtB
C: txtC
Nt Tnh ton
Name: cmdGPTB2
Caption: Gii phng trnh
Nt ng
Name: cmdClose
Caption: ng
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 161
V m lnh cho form nh sau:

'--------------------------------------
'M lnh cho nt Gii phng trnh
'
Private Sub cmdChanLe_Click()
Dim delta, x, x1, x2 As Double
Dim kqua As String

delta = txtB * txtB - 4 * txtA * txtC
If delta = 0 Then
x = -txtB / (2 * txtA)
kq = "Nghim kp: x1 = x2 = " + Trim(Str(x))
Else
If dleta > 0 Then
x1 = (-txtB + Sqr(delta)) / (2 * txtA)
x1 = (-txtB - Sqr(delta)) / (2 * txtA)
kqua = "C 2 nghim phn bit:" + Chr(13) _
+ " X1 = " + Trim(Str(x1)) + Chr(13) _
+ " X2 = " + Trim(Str(x2))
Else
kqua = "Phng trnh v nghim"
End If
End If

MsgBox kqua

End Sub

'------------------------------------------
'Lnh cho nt ng
'
Private Sub cmdClose_Click()
DoCmd.Close
End Sub

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 162

CHNG 7
LP TRNH C S D LIU

Access khng nhng l mt h qun tr CSDL mnh m cn cung cp nhng
cng c mnh cho php pht trin mt CSDL n thun thnh mt sn phm ng
gi thng mi. Chng ta c hc Queries, Forms, Report l nhng cng
c kh mnh v d hc dng xy dng cc truy vn, biu mu v bo co in n
trong Access. Chng 7 c lm quen vi ngn ng VBA- mt ngn ng lp
trnh trc quan, hng i tng trong cc ng dng Microsoft Office ni chung
cng nh trn Access. l c s quan trng trong chng ny chng ta tm
hiu nhng k thut lp trnh CSDL bng VBA- c th ni l mt mc chuyn su
tip theo nhng g hc VBA cn bn.
Cc ch s c bn n trong chng ny bao gm:
Lp i tng truy cp d liu (DAO- Data Access Objects);
Bi ton tm kim;
Bi ton t lc;
Mt s bi ton khc.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 163



1. K thut DAO
DAO (Data Access Objects Cc i tng truy xut d liu) l tp hp bao
gm lp cc i tng c th dng lp trnh truy cp v x l d liu trong cc
h CSDL. y CSDL Access, ngn ng lp trnh VBA.
DAO c pht trin kh sm, gn y nht l phin bn DAO 3.5 v 3.51- n
c th thc hin tt c trn cc phin bn Access t 97 tr v trc. Vi Access
2000, XP phi dng phin bn DAO 3.6. Vi phin bn mi ny, DAO 3.6 s dng
nn Microsoft Jet 4.0. V vy, c th lm vic c trn nn Unicode d dng.
np th vin DAO3.6 vo lm vic, hy thc hin nh sau:
Bc 1: M ca s lp trnh VBA;
Bc 2: Chn thc n Tools | References .. Hp thoi sau xut hin:

Hy chn (tch) mc Microsoft DAO 3.6 Object Libraly trn danh sch
Available References; chn xong, nhn OK ng li.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 164

Trc khi bc vo hc lp trnh CSDL, cc bn hy xem cch thc lm vic
nh th no?







Trong :
- Tng ng dng: bao gm nhng giao din ngi s dng cng nh nhng cng
c n gin m ngi lp trnh c th dng x l d liu theo cc bi ton;
- Tng Kt ni d liu: bao gm tp hp cc cng c, phng thc kt ni ti
nhng d liu cn lm vic trong CSDL. y, tng kt ni bao gm cc
chun Microsoft Jet 4.0 v cc lp i tng DAO;
- Tng C s d liu: bao gm cc bng, cc query trong c s d liu thc ti.
Nh vy lp trnh trn mt CSDL phi s dng cc i tng, cc phng
thc tng kt ni nh l nhng cng c c th truy cp c vo CSDL tc
nghip x l. Tng kt ni chnh l Jet 4.0 v DAO 3.6 m chng ta s c tm
hiu di y.

1.1 Lp i tng DAO
Cu trc mt CSDL bao gm nhiu thnh phn, i hi lp trnh cng cn c
nhng thnh phn tng ng lm vic. Lp cc thnh phn tng ng c th
lp trnh c trn ton b cu trc CSDL l lp cc i tng DAO. Chng c tn
gi, c nhng tp thuc tnh, cc phng thc lm vic v c quan h mt thit vi
nhau. Cy phn cp lp cc i tng DAO sau y th hin iu :
C s d liu
Cc kt ni d liu
ng dng
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 165










Trong :
Workspaces nh ngha tp hp cc vng lm vic. y c th coi l lp
lm vic cao nht. V l thuyt c th khai bo mt vi vng lm vic
(Workspace), nhng trn thc t ch cn khai bo mt vng lm vic v
vng ny lun c khai bo ngm nh cho CSDL hin ti. Nn s khng
cn bn nhiu n lp cc WorkSpace ny;
Databases - nh ngha tp hp cc CSDL Access cn lm vic trn mt d
n;
RecordSets- nh ngha cc tp hp bn ghi (Records) cn lm vic;
QueryDefs - nh ngha tp hp cc Query lm vic. Querydefs v
Recordsets l kh nng truy xut, x l d liu (Data Manipulation) ca
DAO;
TableDefs - nh ngha tp hp cc bng (Table) cn lm vic. y l kh
nng nh ngh d liu (Data-Definition Language);
Relations - nh ngha tp hp cc quan h (Relationship) cn lm vic;
Mi lp cc i tng trn s bao gm tt c cc i tng i tng cng loi
trong mt i tng m ang m. V d:
Workspaces
Databases
RecordSets
QueryDefs
TableDefs
Relations
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 166
- Databases s bao gm tt c cc CSDL ang oc m trong vng lm vic hin
ti;
- RecordSets s bao gm tp hp tt c cc Recordset ang c m trn CSDL
hin ti.
Khi , tham chiu n mt i tng c th cn lm vic, c th dng ch s
(s th t ca i tng trn tp hp tt c cc i tng ) hoc dng tn gi
i tng tham chiu. V d sau lit k tn ca tt c cc Recordset ang s
dng trong CSDL db.

Dim db As DAO.Database
'------------------------------------
'cc cu lnh tip theo y..
'
For i = 0 To db.Recordsets.Count
MsgBox db.Recordsets(i).Name
Next


lm vic ti mt i tng c th, cn phi tham chiu t lp cc i tng m
ca n.
V d: hin th gi tr ca trng (Field) hoten trn tp hp cc bn ghi
(Recordset) rs1 lm nh sau:

MsgBox rs1.Fields("hoten").Value

' hoc
MsgBox rs1.Fields![hoten].Value


1.2 i tng Database
Database l i tng dng lm vic vi mt CSDL (trong trng hp ny c
th hiu mt CSDL nh mt tp Access .MDB).
Lp cc i tng con ca Database c th hin qua s sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 167

Khai bo

Dim db As DAO.Database

' Gn db cho mt CSDL c th
Set db = OpenDatabase(C:\Baitap\qlbh.mdb)

'c bit, lnh gn db cho CSDL hin ti nh sau:
Set db = CurrentDb

Khi khng lm vic vi CSDL no , c th ra lnh ng gii phngd b
nh bng cch:

db.Close

Sau khi lnh ny thc thi, tt c cc i tng con ca db nu ang m s c
ng li gii phng b nh. Bn thn db cng c gii phng b nh (bng
Nothing), tt nhin tp CSDL v d liu vn cn nguyn trn a.
1.3 i tng RecordSet
Recordset l i tng dng miu t tp hp cc bn ghi ca mt bng, ca
mt query hoc tp cc bn ghi kt qu ca vic thi hnh mt cu lnh SQL no .
Lp cc i tng con ca Recordset c th hin qua s sau:

Khai bo

Set rs=db.OpenRecordset(<Name>)

Trong :
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 168
- Set rs = db.OpenRecordset l lnh to ra tp hp cc bn ghi t CSDL db
gn vo bin kiu recordset rs;
- <Name> l mt xu k t ch ra ngun d liu s tr v cho Recordset. Xu
ny c th l tn mt bng, mt Query hoc mt cu lnh SQL;
Mi bin Recordset khi lm vic, phi c ch ra Database xut x ca n (phi
c tham chiu t mt bin kiu Database c khai bo). Sau y l cc v d:

V d 1:
Gn tp hp cc bn ghi t mt bng vo bin Recordset ( y l bng canbo).

Dim rs As DAO.Recordset

Set rs = db.OpenRecordset("canbo")


V d 2:
Gn tp hp cc bn ghi t mt cu lnh chn d liu SQL vo bin Recordset
( y l cc thng tin hoten, ngaysinh ca tt c cc cn b n t bng canbo).

Dim rs As DAO.Recordset

Set rs = db.OpenRecordset("SELECT hoten, ngaysinh FROM canbo
WHERE gioitinh = False")


Mt s thuc tnh ca Recordset
Thuc tnh Name
Tr v xu k t trong tham s <name> ca lnh gi Recordset. V d: lnh sau
s cho bit xu k t to ngun d liu cho Recordset l g?

MsgBox rs.Name


Thuc tnh AbsolutePosition
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 169
Cho bit v tr bn ghi hin ti (c tnh t 0). Trong trng hp khng c bn
ghi no trn recordset hoc con tr bn ghi ang nm EOF- s khng th ly c
gi tr thuc tnh ny. Do vy s dng thuc tnh ny thng phi i km thuc
tnh kim tra c tn ti bn ghi no hay khng (RecordCount > 0) v con tr bn
ghi c cui tp cha (EOF = False).
Thuc tnh RecordCount
Cho bit tng s bn ghi tr v trn Recordset
Thuc tnh EOF
Cho bit con tr bn ghi hin ti c nm EOF hay khng? Nu c gi tr thuc
tnh ny l True, tri li l False.
Thuc tnh Fields
Dng tham chiu ti cc trng (Fields) trn tp hp cc bn ghi m Recordset
tr v. Thc t Field cng l mt i tng v cng c b thuc tnh v cc phng
thc ca n. Vi Field ca Recordset thng thng ngi ta hay s dng thuc tnh
Value. Nu khng ch nh thuc tnh c th no cho Field, VBA vn hiu ngm
nh l Value.
V d: Hin th gi tr trng hoten trong Recordset rs

Msgbox rs.Fields("hoten").Value

'hoc
Msgbox rs.Fields("hoten")


Mt s phng thc ca Recordset
Phng thc Close
ng Recordset, gii phng b nh. Ch thc hin hnh ng ny khi khng
lm vic vi Recordset no .
Cc phng thc di chuyn bn ghi ca Recorset
Phng thc MoveFirts
chuyn con tr v bn ghi u tin
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 170
Phng thc MoveLast
di chuyn con tr v bn ghi cui cng
Phng thc MoveNext
Dch n bn ghi k sau
Phng thc MovePrevious
Dch n bn ghi k trc
V d 3:
V d sau duyt v hin th ton b Hoten ca bng canbo

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("canbo")

If rs.RecordCount > 0 Then
rs.MoveFirst
While rs.EOF = False
MsgBox rs.Fields("hoten").Value
rs.MoveNext
Wend
End If


Phng thc AddNew, Update
thm mi mt bn ghi vo Recordset. Qui trnh thm mt bn ghi mi nh
sau:
1. Ra lnh Addnew
2. Gn gi tr cho cc trng ca bn ghi mi
3. Ra lnh Update
Di y l v d thm mi mt h s cn b mi vo bng canbo.
V d 4:

Dim db As DAO.Database
Dim rs As DAO.Recordset

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 171
Set db = CurrentDb
Set rs = db.OpenRecordset("canbo")

'----------------------
'Ra lnh thm mi bn ghi
'
rs.AddNew

'--------
'Gn gi tr cho cc trng ca bn ghi mi
'
rs.Fields("canboID") = "CB00565"
rs.Fields("hoten") = "Nguyn Sn Hi"
rs.Fields("ngaysinh") = #2/11/1975#
rs.Fields("gioitinh") = True
rs.Fields("chucvuID") = "CV002"

'--------
'Ra lnh ghi li d liu
'
rs.Update


Phng thc Edit, Update
Phng thc Edit sa d liu mt bn ghi no trn recordset. Qui trnh
sa mt bn ghi nh sau:
1. nh v ti bn ghi cn s trn recordset
2. Ra lnh Edit
3. Gn gi tr mi cho cc trng cn sa
4. Ra lnh Update
Di y l v d v sa h s cn b c m CB000565
V d 5:

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb

'-------------------------------------
'nh v ti bn ghi cn sa
'
Set rs = db.OpenRecordset("SELECT * FROM canbo WHERE
canboID='CB000565'")

If rs.RecordCount > 0 Then
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 172
rs.MoveFirst

'---------------------------------
'Ra lnh sa bn ghi
'
rs.Edit

'---------------------------------
'Thc hin sa cc trng d liu cn thit
'
rs.Fields("hoten") = "Nguyn Vn Hi"
rs.Fields("ngaysinh") = #22/11/1975#

'-----------------------
'Ra lnh ghi li d liu va sa
'
rs.Update
End If


Phng thc Delete
xo bn ghi hin ti ra khi Recordset. Khi bn ghi hin ti s b xo b
khi CSDL. Cn thn trng mi khi ra lnh ny. Thng thng cc lnh mt nt
Xo bn ghi ca mt mu nhp liu (nhp vo bin Recordset rs) nh sau:
V d 6:

Private Sub cmDelete_Click()
Dim tbao

tbao = MsgBox(" chc chn xo cha?", vbYesNo + vbCritical)
If tbao = vbYes Then
rs.Delete
rs.MoveNext
End If

End Sub


1.4 i tng QueryDef
i tng Querydef dng tham chiu ti cc Query c sn (Buil-in) trn
CSDL Access, hoc cng c th lp trnh to cc Query t cc cu lnh SQL.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 173

to v kch hot mt query trn VBA bng cch thc thi cu lnh SQL bn
lm theo hng dn sau:
'------------------
'Khai bo mt bin kiu Database v mt bin kiu QueryDef

Dim db As DAO.Database
Dim qr As DAO.QueryDef

'---------------------------
'Ra lnh to mt Query mi, c tn rng (ch trong b nh)

Set qr = db.CreateQueryDef(<tn query>)

'-------------------------------
'Gn chui lnh SQL vo thuc tnh SQL ca query
'
qr.SQL = "G lnh SQL cn thi hnh vo y"

'--------------------------
'Ra lnh thi hnh query
'
qr.Execute

'---------------------------
'gii phng b nh

qr.Close

Trong :
- Bt buc phi khai bo mt bin kiu QueryDef lm vic (bin qr);
- Phi c mt bin Database c khai bo sn (bin db);
- Lnh Set qr = db.CreatQueryDef(<tn query>) to mt query mi ln
CSDL. <tn query> s c hin th trn danh sch trong th Queries trn
ca s Database. Nu <tn query>="", query ny s ch tn ti trong b nh.
Tu thuc vo mc ch cng vic m c t tn query hay khng, nu ch
n thun to mt query x l cng vi no ri gii phng, nn t <tn
query>="";
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 174
- Lnh qr.SQL=<cu lnh SQL> gn lnh SQL cn thc thi vo Query. Tu
thuc vo cu lnh SQL ny m query s thc hin nhng g. V d: qr.SQL =
"DELETE * FROM canbo" lnh ny s xo tt c cc bn ghi trn bng cn b;
- Lnh qr.Excute thi hnh cu lnh SQL c thit lp. Lnh ny tng
ng nhn nt Run i vi mt query trn ch thit k;
- Lnh qr.Close ng query hin ti v gii phng b nh khi khng cn lm
vic n na.
Sau y l mt s v dng v s dng bin QueryDef to ra mt s loi query
x l d liu trong mi trng VBA.
V d 1: To DELETE query xo danh sch nhng cn b c tui ln hn 60
ra khi bng canbo (cn b ngh hu)

Dim db As DAO.Database
Dim qr As DAO.QueryDef

Set db = CurrentDb

Set qr = db.CreateQueryDef("")

qr.SQL="DELETE * FROM canbo WHERE Year(Date())- " _
& " Year(Ngaysinh)>=60"

qr.Execute

qr.Close


V d 2: Gi s thm mt trng mi trn bng cn b c tn luongchinh.
To UPDATE query tnh gi tr cho trng ny = hesoluong * 290000.

Dim db As DAO.Database
Dim qr As DAO.QueryDef

Set db = CurrentDb

Set qr = db.CreateQueryDef("")

qr.SQL = "UPDATE canbo SET canbo.luongchinh = hesoluong * 290000"

qr.Execute

qr.Close
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 175


1.5 i tng TableDef
i tng TableDef c dng tham chiu ti cc bng d liu (Table) trn
CSDL. Thng qua i tng ny c th thit k, chnh sa c cu trc cc bng
d liu trong ch Run-time ca VBA nh trn ch thit k bng Design
View.

Mt s thuc tnh quan trng ca TableDef
Thuc tnh Name
Cho bit tn bng c gn vo bin kiu TableDef
Thuc tnh RecordCount
Cho bit tng s bn ghi hin c trn bng c gn bi bin TableDef
Thuc tnh DateCreated
Cho bit thi gian to ra bng c gn vo bin kiu TableDef
Thuc tnh Fields
tham chiu ti cc trng ca bng. y l thuc tnh hay c s dng nht
i vi TableDef. Thc cht, Field y l mt i tng, do cng c tp cc
thuc tnh v phng thc ring cho thuc tnh ny.
Di y l th tc hin th tn ca tt cc cc trng trong mt bng no
(ngm nh trn mt CSDL c khai bo v gn bin db - kiu Database).

V d 1:

Sub LietKeTenTruong(tenbang As String)
Dim tbl As DAO.TableDef

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 176
Set tbl = db.TableDefs(tenbang)

For i = 0 To tbl.Fields.Count - 1
MsgBox tbl.Fields(i).Name
Next

End Sub


Mt s phng thc ca TableDef
Phng thc CreateTableDef
to ra mt bng mi bng VBA. C php to bng mi nh sau:

Set tbl = db.CreateTableDef(<Tn bng mi>)

-------------------------------------------
....Cc th tc to trng mi cho bng
-------------------------------------------

db.TableDefs.Append tbl

Trong :
- db l bin kiu Database c gn bi CSDL cn lm vic (bng mi s
c to ra trn CSDL ny);
- <Tn bng mi> l tn bng cn to.
- Lnh db.TableDefs.Append tbl l lnh ghi cu trc bng ang khai bo ln
CSDL ch nh.
Phng thc CreateField
to ra cc trng cho mt bng kiu TableDef no . thm mt trng
mi ln bng, s dng c php sau:

tbl.Fields.Append tbl.CreateField(<tn trng>,<KiuDL>,<ln>)

Trong :
- <tn trng> - tn trng mi cn to;
- <KiuDL> - l mt tu chn khai bo kiu d liu ca trng cn to. Kiu
d liu c khai bo theo cc hng s nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 177
Gi tr: Tng ng vi kiu
dbBoolean Boolean
dbByte Byte
dbChar Char
dbCurrency Currency
dbDate Date/Time
dbDecimal Decimal
dbDouble Double
dbFloat Float
dbGUID GUID
dbInteger Integer
dbLong Long
dbMemo Memo
dbNumeric Numeric
dbSingle Single
dbText Text
dbTime Time
- < ln> l mt tu chn khai bo ln d liu nu cn.
Tip theo l v d minh ho cch to cu trc mt bng d liu tng hp nhng
hng dn trnh by trn.
V d 2:

Sub TaoBangMoi()
On Error GoTo Loi
Dim tbl As DAO.TableDef

Set tbl = db.CreateTableDef("NewTable")

tbl.Fields.Append tbl.CreateField("ID", dbInteger)
tbl.Fields.Append tbl.CreateField("Name", dbText)
tbl.Fields.Append tbl.CreateField("Age", dbByte)
tbl.Fields.Append tbl.CreateField("DateBirth", dbDate)
tbl.Fields.Append tbl.CreateField("Comment", dbMemo)

db.TableDefs.Append tbl

Exit Sub

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 178
Loi:
If Err.Number = 3010 Then
MsgBox " tn ti bng c tn " + tbl.Name
End If
End Sub


1.6 i tng Relation
i tng Relation dng to kt ni (RelationShip) gia 2 bng trong CSDL
Access. Di y l mt v d to kt ni gia 2 bng hoadon v khach trong
CSDL Qun l bn hng.

Sub CreatRelationShip()
On Error GoTo Loi
Dim db As DAO.Database
Dim rls As DAO.Relation

Set db = CurrentDb

Set rls = db.CreateRelation("TaoQuanHe", "khach", "hoadon",
dbRelationUpdateCascade)

rls.Fields.Append rls.CreateField("khachID")
rls.Fields("khachID").ForeignName = "khachID"
db.Relations.Append rls

Loi:
If Err.Number = 3012 Then
MsgBox " tn ti quan h ny !"
End If

End Sub

Trong trung hp tn ti kt ni ny, mt thng bo li ting Vit " tn ti
quan h ny !" xut hin.
2. Bi ton t lc d liu
t lc l lp bi ton ph dng trong thc t. Vi bi ton ny phi c nhng
yu cu c th v lc d liu (iu kin lc). Kt qu tr v s l mt tp hp cc
bn ghi, c th c kt xut trn form hoc c in ra my in di dng report.
Di y l minh ho mt bi ton t lc sau khi c xy dng v ang
hot ng:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 179

Qui trnh xy dng mt bi ton t lc c th thc hin nh sau:
Bc 1: Xy dng form con - form s cha nhng kt qu lc c;
Bc 2: Xy dng form m - form cha nhng thit lp iu kin lc;
Bc 3: Thc hin lc ra cc bn ghi tho mn cc iu kin trn form m v
hin th kt qu ln form con.
Vi bi ton trn, cch gii quyt nh sau:
Bc 1: Xy dng Form con
S dng cc k nng thng thng to mt form con p ng c cc kt
qu theo nh bi ton. C th tng bc nh sau:
- To mi form ch Design view;
- Thit lp thuc tnh Record Source cho form l mt Total Query nh sau:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 180

- Thit lp thuc tnh Defaul View cho form con l Datasheets;
- M ca s FieldList v thit k form nh sau:

- ng thit k form con li v ghi ten l frm_formcon.
Bc 2: Xy dng form m
- To mi form ch Design view;
- a hp Combobox t thnh cng c Toolbox ln form m (gi s tn (Name)
ca Combo ny l Combo0). S dng tnh nng Combobox Wizard ca Access
lm vic ny. Mc ch l a danh sch cc khch hng t bng khach vo
hp Combo chn, phc v nhu cu lc d liu;
- S dng i tng Sub-form/Sub-report trn thanh cng c Toolbox a
form con va to ln form m. Ngm nh tn ca sub-form ny l
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 181
frm_formcon. Ch n tn gi ny v phn tip sau s s dng n lp
trnh.
Cui cng, giao din thit k form m nh sau:

Bc 3: Thit lp lnh lc d liu trn form m
Cng vic ca bc ny l lm sao sau khi chn tn mt khch hng hp
Combobox, danh sch cc ho n mua hng ca khch s c hin th ln
form con. Mun th, vic lp trnh lc d liu y phi c thc hin trong th
tc p ng s kin Combo0_Click. Gii thut s l:
- To mt bin Recordset thi hnh cu lnh SQL a ra danh sch kt qu
tho mn iu kin t lc. Cu lnh SQL trong trng hp ny l:

"SELECT hoadonID, khachID, ngayban, Sum([soluong]*[dongia]) _
+ AS tongtien FROM " _
+ " hoadon INNER JOIN (hang INNER JOIN hangban ON " _
+ " hang.hangID = hangban.hangID) ON hoadon.hoadonID =" _
+ " hangban.hoadonID WHERE Trim(khachID)='"+Trim(Combo0)" _
+ " GROUP BY hoadonID, khachID, ngayban "

- Gn thuc tnh Recorset ca form con l bin kiu recordset va to ra (cha
kt qu lc);
- Ra lnh lm ti d liu cho form con.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 182
Tt nhin, trc phi khai bo mt bin kiu Database ton cc trong form v
nh ngha n th tc Form_Load()
Ton b m lnh cho bi ton trn nh sau:

Dim db As DAO.Database

Private Sub Form_Load()
Set db = CurrentDb
End Sub

Private Sub Combo0_Click()
Dim rs As DAO.Recordset

Set rs = db.OpenRecordset("SELECT hoadonID, khachID, " _
+ " ngayban, Sum([soluong]*[dongia]) AS tongtien FROM" _
+ " hoadon INNER JOIN (hang INNER JOIN hangban ON " _
+ " hang.hangID = hangban.hangID) ON hoadon.hoadonID =" _
+ " hangban.hoadonID WHERE Trim(khachID)='"+Trim(Combo0)" _
+ " GROUP BY hoadonID, khachID, ngayban ")

Set frm_formcon.Form.Recordset = rs

frm_formcon.Requery

End Sub


Tm li, vi mi bi ton t lc p dng theo phng php k trn u ging
nhau v cch lm vic, im khc nhau duy nht l cu lnh SQL. C th kt lun
mu cht ca bi ton ny l to ra c lnh SQL ng p ng mi iu kin
t lc t form m.
Ch
Vic vit ra cu lnh SQL ng l rt kh, i hi lp trnh vin phi c nhiu kinh
nghim. lm tt c vic ny, nn thit k mt query ch design view; ri s
dng tnh nng Copy, Paste dn cu lnh SQL m query to ln ni son tho lnh
VBA v chnh sa cho ph hp. Thng thng sa mnh WHERE ca cu lnh.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 183


CHNG 7
MENU & TOOLBAR

Chng ny trnh by nhng k thut to menu v toolbar nhm lin kt ton b
nhng g lm c thnh mt h thng phn mm hon chnh. Bao gm cc
mng kin thc:
To Menu;
To Toolbar;
To form chnh phn mm

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 184


1. To Menu
Menu l i tng c thit k c cu trc nhm gn kt cc chc nng phn
mm li ngi dng thun tin trong vic khai thc cc tnh nng cng nh
CSDL.
C nhiu cch to menu trong Access, di y chng ti trnh by cch n
gin, d to v hiu qu, l: s dng kh nng Customize ca thanh cng c.
Trc khi to menu, bn phi m bo xy dng xong y cc tnh nng
cn thit ca phn mm; bc ny s l cui cng, mang tnh cht gn kt cc chc
nng li thnh phn mm hon chnh.
Gi s trong CSDL Qun l lng cn b lm c nhng vic sau:
1. to xong CSDL
2. to form nhp d liu cho bng chucvu, form nhp d liu cho bng
phongban, form nhp d liu cho bng canbo;
3. to xong report in ra Danh sch chc v, Danh sch phng ban;
4. to xong form tm kim cn b theo tn, in danh sch cn b mt phng
ban
5. to xong form gii thiu phn mm (frmAbout)
Di y l hng dn to ra h thng menu c cu trc nh sau:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 185
(cc mc chn ca menu H thng)

(Cc mc chn ca menu D liu)

(Cc mc chn ca menu In n)

Cc bc t h thng menu trn nh sau:
Bc 1: To mt Toolbar mi
Nhn chut phi ln thanh cng c ca Access, chn Customize

Hp thoi Customize xut hin:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 186

to mi mt thanh cng c, nhn nt New. Hp thoi sau xut hin, yu cu
g vo tn cho thanh cng c:

Hy g tn cho thanh cng c, gi s Qun l lng. G xong nhn OK. Khi
m hnh lm vic xut hin mt thanh cng c trng. Cng vic tip theo l xy
dng h thng Menu trn thanh cng c ny.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 187
Bc 2: Xy dng cc mc cp 1
Cc mc cp 1 l: H thng, D liu v In n. xy dng cc mc ny, trn
hp thoi Customize m th Commands. danh sch Categories chn New
Menu v ln lt ko mc New Menu trn danh sch Commands th ln Toolbar
ang thit k:

Hy ln lt ko th s menu cp 1 (3 menu cp 1). Tip theo ln lt thay
i tiu cho 3 menu ny bng cch:
- Nhn chut phi ln menu cn thay i;
- G tiu mi vo hp Name (hnh di):

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 188
Bc 3: Xy dng cc mc cp con
3 mc to trn l cp 1, cc mc cn li nm trong 3 mc u l mc con,
chu. Bc ny s xy dng ton b cc mc con nh vy.
Mi mc con c th l li gi mt Form, mt Report, mt bng,.. (gi tt l i
tng) ra lm vic. Mun m i tng no, hy xc nh chng loi i tng
bn danh sch Categories; tip theo dng chut ko-th i tng cn a ln
menu t danh sch Commands ln v tr xc nh trn menu ang thit k.

Hnh trn minh ho cch a li gi n form frmAbout ln menu H thng.
Tng t hy a cc form v report cn li ln v tr thch hp trn menu Qun
l lng. Cch t tn cho cc menu ny thc hin tng t nh cch t tn cho 3
menu m trnh by.
c bit mc Exit ly File | Exit.
Bc 4: Quyt nh l Menu hay ToolBar
Vi cc bc lm vic nh trn, Access ngm hiu l ang to mt ToolBar.
Bc ny hng dn cch tu chn li l menu hay toolbar? Cch lm nh sau:
Tr v th ToolBars ca hp thoi Customize, chn tn toolbar cn lm vic
(Qun l lng) v nhn nt Properties:
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 189

Hp thoi Toolbar Properties xut hin cho php thit lp cc thuc tnh cho
Toolbar ang chn:

- Toolbar Name - thit lp tn cho ToolBar;
- Type - xc nh kiu l ToolBar hay Menu?
- Docking - tu chn cc kiu kho Menu: khng cho php thay i li (Can't
Change); cho php thay i li Any Allow);
- Show on Toolbars Menu cho php hin th trn h thng thanh cng c v
menu;
- Allow Customizing cho php nh ngha li cc mc;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 190
- Allow Resizing cho php thay i kch c hin th;
- Allow Moving cho php di chuyn c;
Thit lp xong nhn Close.
2. Gn kt Menu, Toolbar
Mt Menu hay Toolbar sau khi to ra, mun i km vi i tng no phi
thc hin gn kt vo i tng bng cch thit lp thuc tnh Toolbar - nu
mun gn Toolbar hoc Menu Bar nu mun gn menu bar. Cch lm nh sau:
Bc 1: M i tng cn gn kt Menu hoc ToolBar (v d mt form) ra ch
Design View:

Bc 2: Chn Menu Bar hoc ToolBar cn gn kt bng cch thit lp thuc
tnh ToolBar hoc Menu Bar (hnh trn chn Menu Bar Qun l lng).
3. To form chnh
Form chnh l form cha h thng menu (hoc toolbar) ca phn mm, n xut
hin ngay sau khi khi ng (Start-Up Object). Vi mi phn mm ng gi hu
ht phi to form chnh. t y c th m n cc chc nng phn mm cn lm
vic.
Trong mt tp Access, form chnh l mt form c thit k ch Design
view; c gn Menu (hoc ToolBar) v c thit lp khi ng u tin mi khi tp
ny c m.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 191
Di y l hng dn cch to form chnh cho CSDL Qun l lng nh th
hin mc 1. To menu
Bc 1: To frmMain
- To mt form mi ch Design View;
- t tn form ny l frmMain;
- Thit lp mt s thuc tnh cho form nh sau:
Menu Bar Qun l lng
Caption Qun l lng
Record Seletor No
Navigation Button No
Diving Line No
mi khi form ny khi ng s t ng phng cc i ca s, hy m ca s
VBA v vit lnh cho s kin Form_Open nh sau:

Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
End Sub

ngha lnh DoCmd.Maximize l phng to (Maximize) form ang lm vic.

Bc 2: Thit lp cc thng tin v ng dng
M thc n Tools | Startup.., hp thoi Startup xut hin:

- G tiu phn mm vo Application Title;
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 192
- Chn form chnh hp Display Form/Page (chn frmMain);
- Chn Menu cho ng dng hp Menu Bar (chn menu Qun l lng);
- Hp Application Icon chn mt biu tng cho ng dng (loi tp *.ico);
- Cho php hin th ca s Database hay khng?;
- Cho php hin th thanh trng thi?
- Cho php thay i menu bar v toolbar?
-
Thit lp xong nhn OK ng li. Ln sau khi m tp CSDL ny, mn hnh
u tin bn gp l form frmMain:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 193

Bi tp
Bi s 1: Xy dng trn CSDL Qun l bn hng
1. Xy dng CSDL theo cu trc nh sau :

Yu cu :
- Thit k cu trc cc bng mt cch ph hp : kiu d liu cc trng;
trng kho; thuc tnh Lookup v cc thuc tnh khc;
- Thit lp quan h cng cc thuc tnh m bo ton vn d liu cho cc quan
h;

2. To cc form lm giao din nhp d liu cho cc bng :

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 194
Yu cu chi tit:
- Cc nt Tin, Li nh v ho n cn lm vic;
- Nt Thm mi bt u to mi mt ho n;
- Nt Xo H xo ho n hin ti. Yu cu phi c xc nhn trc khi xo;
- Nt In H in chi tit ho n bn hng ra report.

3. Thit k form tng hp thng tin bn hng theo ngy nh sau:

Sau khi nhp xong gi tr t ngy v n ngy, thng tin chi tit v cc mt hng
bn ra trong phm vi ngy c tng hp theo nh giao din trn.

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 195
4. Thit k form tng hp thng tin bn hng cho khc hng theo ngy nh sau:

Yu cu: Sau khi chn mt khch hng, nhp vo khong ngy cn tng hp.
Thng tin tng hp v tng mt hng ca khch mua s c lit k.

5. To form theo di thng tin chi tit bn hng theo ngy nh sau:


Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 196
6. To form theo di ho n mua hng cc khch hng nh sau:

Sau khi chn tn mt khch, thng tin v cc ho n mua hng c hin th.

7. To form frmAbout a nhng thng tin gii thiu v phn mm ny.

8. Thit k form chnh v menu bar lin kt ton b cc chc nng lm c
trn CSDL Qun l bn hng nh sau:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 197



Bi s 2: Xy dng trn CSDL Qun l lng cn b
1. Xy dng CSDL nh sau:

Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 198
Yu cu :
- Thit k cu trc cc bng mt cch ph hp : kiu d liu cc trng;
trng kho; thuc tnh Lookup v cc thuc tnh khc;
- Thit lp quan h cng cc thuc tnh m bo ton vn d liu cho cc quan
h;

2. Thit k form lm giao din nhp d liu cho cc bng:
frmPhongban - cp nht d liu danh sch phng ban;
frmChucvu - cp nht danh mc chc v.

3. Thit k form cp nht h s cn b nh sau:





Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 199
3. To form cho php xem v in danh sch cn b tng phng ban nh sau:


4. To form cho php tm kim cn b theo tn nh sau:

Sau khi g mt tn (c th l m + Tn hoc y h v tn), danh sch cc
kt qu tm thy s c lit k ln Subform.

5. To report in ra bo co tng hp tng s cn b theo chc v ca tng phng
ban.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 200

6. To form frmAbout gii thiu cc thng tin v phn mm.

7. To form chnh cng h thng menu gi ti tt c cc chc nng lm wocj
nh sau:



Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 201

THUT NG TIN HC

Di y l danh sch mt s cc thut ng tin hc hay gp phi trong khi hc
v s dng Microsoft Access c xp theo th t t in bn c tham kho.
Append Ch hnh ng chn thm cc bn ghi ln cc bng trong c s d
liu
Child Quan h con. Thut ng ny thng i vi Master quan h cha
Column Ct trong bng d liu
Data D liu, d kin, s liu
Data integrity Tnh ton vn d liu. Mt yu t rt quan trong khi thit k mt c
s d liu.
Data source Ngun cung cp d liu, c th l cung cp cho mt Form, cung cp
d liu cho mt Report.
Data Table Bng d liu- ni cha d liu vt l ca c s d liu
Data type Kiu d liu. D liu trong c s d liu phi c nh kiu: kiu
s, kiu ch, kiu l gc, - l cc kiu d liu
Database C s d liu. Ni cha ton b d liu cho mt mc ch qun l
no , d liu c thit k v lu tr theo cc cu trc ti u.
Datasheet Bng d liu- ni d liu hin th di dng bng bao gm cc ct
v cc dng d liu.
Design View Mi trng thit k, c th l thit k Form, thit k report, query,
Detete Ch hnh ng xa cc bn ghi ra khi c s d liu
EOF End Of File mt du hiu cho bit con tr bn ghi nm v tr
ci cng ca mt recorset.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 202
Field Trng d liu
Field size ln ca trng d liu
Form i tng dng thit k giao din trong pht trin phn mm. Kt
qu ca form khi s dng s l cc ca s, hp thoi- ni m ngi
dng c th s dng thao tc trn phn mm.
Form wizard Mt trnh iu khin gip n gin to mt form nhp d liu
Formating Ch vic nh khun dng d liu khi hin th
Group By Mt mnh trong cu lnh SQL dng nhm cc bn ghi phc v
cc vic tng hp d liu no .
Input mark Mt n nhp d liu hay khun nhp d liu
Insert Ch hnh ng chn thm cc bn ghi ln cc bng trong c s d
liu
Master Quan h cha. Thut ng ny thng i vi Child quan h con
Order By Mt mnh trong cu lnh SQL dng sp xp cc bn ghi
Query Mt i tng dng truy xut, x l d liu trn cc h c s d liu
Record Bn ghi
Recordset Tp hp cc bn ghi
Relationship Ch quan h gia cc bng trong c s d liu
Report
wizard
Mt trnh iu khin gip n gin to mt report hin th v in
n d liu
Row Dng trong mt bng d liu
Select Ch hnh ng chn cc bn ghi t c s d liu
SQL Structured Query Laguage ngn ng truy vn d liu c cu trc.
Mt ngn ng x l d liu kh ph dng trn cc h c s d liu.
Vi Access, Query Design chnh l ni thit k to ra cc cu
lnh SQL thi hnh cc php x l d liu.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 203
Sub-form Form con- mt form nm trong mt form khc. Khi form cha
sub-form gi l form m (form cha) thut ng ting Anh l Master
form.
Table wizard Mt trnh iu khin gip n gin to mt bng d liu
Update Ch hnh ng cp nht d liu cc bn ghi trong c s d liu
Validation Mt khi nim ch s ng n ca d liu
Where Mt mnh trong cu lnh SQL thit lp iu kin x l d liu
Wizard L trnh iu khin gip ngi lp trnh n gin trong vic xy
dng ng dng. C rt nhiu trnh Wizard trong Acces nh: Form
wizard, report wizard, table wizard, database wizard, control
wizard,
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 204

TI LIU THAM KHO

1. Microsoft Access 2000 Bible Quick Start; Cary N.Prague, Michael R. Iruin;
Pulished by Hungry Minds, Inc, 2002.
2. Microsoft Access 2000 with VBA Advanced; Al Napier, Phil Judd, H.
Albert Napier, Philip J. Judd; Pulished by Kris Oxford, 2000.
3. Mastering Microsoft Office 2000 Professional Edition; Gini Courter and
Annette Marquis; Pulished by Oxford Express, 1999.
4. Ti liu t Mng Gio dc Vit Nam
http://www.edu.net.vn/Default.aspx?tabindex=1&tabid=6&mid=18
5. Thng tin sn phm v cc ti liu hc tp lin quan ti Website ca Cng ty
Microsoft http://office.microsoft.com/en-ca/FX010857911033.aspx.
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 205
MC LC

GII THIU ............................................................................................................ 1
BI M U........................................................................................................... 3
1. Gii thiu Access 2000...................................................................................... 4
2. Khi ng........................................................................................................... 5
3. To mi tp Access............................................................................................ 6
4. Mi trng lm vic........................................................................................... 8
5. M tp tn ti ................................................................................................ 8
6. Thot khi Access.............................................................................................. 9

CHNG 1: XY DNG C S D LIU..................................................... 10
1. Cc khi nim v CSDL Access ...................................................................... 11
1.1 CSDL Access ....................................................................................................... 11
1.2 Bng d liu ......................................................................................................... 12
1.3 Lin kt cc bng d liu ..................................................................................... 15
2. Xy dng cu trc bng ................................................................................... 17
3. Thit lp quan h.............................................................................................. 23
4. Nhp d liu..................................................................................................... 26
4.1 Cch nhp d liu................................................................................................. 26
4.2 Mt s thao tc x l d liu trn bng................................................................ 28
a. Xo bn ghi ........................................................................................................ 28
b. Sp xp d liu................................................................................................... 29
c. Lc d liu.......................................................................................................... 29
5. Thuc tnh LOOKUP....................................................................................... 30
6. Qui trnh xy dng CSDL Access ................................................................... 35
Bi tp .................................................................................................................. 36

CHNG 2: TRUY VN D LIU................................................................... 40
1. SELECT queries .............................................................................................. 41
1.1 Cch to................................................................................................................ 41
1.2 Lc d liu ........................................................................................................... 46
2. TOTAL queries................................................................................................ 50
3. CROSSTAB queries ........................................................................................ 52
4. MAKE TABLE queries ................................................................................... 55
5. DELETE queries.............................................................................................. 58
6. UPDATE queries ............................................................................................. 59
Bi tp .................................................................................................................. 62
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 206
CHNG 3: THIT K GIAO DIN................................................................ 66
1. Khi nim Forms.............................................................................................. 67
2. S dng FORM WIZARD............................................................................... 67
3. S dng FORM DESIGN VIEW..................................................................... 72
3.1 Thit k Form nhp d liu n gin................................................................... 72
3.2 Tinh chnh cu trc Form..................................................................................... 76
4. K thut Sub-form........................................................................................... 81
Bi tp .................................................................................................................. 93

CHNG 4: THIT K BO CO................................................................... 98
1. Cc khi nim v Report.................................................................................. 99
1.1 Cu trc Report .................................................................................................... 99
1.2 Mi trng lm vic........................................................................................... 100
2. S dng Report wizard .................................................................................. 101
3. Thit k report................................................................................................ 107
4. Report cha tham s ...................................................................................... 115
Bi tp ................................................................................................................ 121

CHNG 5: LP TRNH VBA CN BN..................................................... 123
1. Mi trng lp trnh VBA............................................................................. 124
2. Cc kiu d liu v khai bo.......................................................................... 126
2.1 Cc kiu d liu c bn...................................................................................... 126
2.2 Bin v cch s dng bin.................................................................................. 128
a. Bin khai bo bin n gin ......................................................................... 128
b. Phm vi bin .................................................................................................... 130
2.3 Hng v cch s dng hng................................................................................ 131
a. Khai bo hng.................................................................................................. 131
b. Phm vi hng ................................................................................................... 132
3. Cc cu trc lnh VBA.................................................................................. 132
3.1 Cu trc IF END IF........................................................................................ 133
3.2 Cu trc SELECT CASE .. END SELECT ....................................................... 134
3.3 Cu trc FOR NEXT..................................................................................... 137
3.4 Cu trc WHILE WEND.............................................................................. 139
3.5 Lnh DoCmd...................................................................................................... 140
4. Chng trnh con ........................................................................................... 143
4.1 Chng trnh con dng hm............................................................................... 144
4.2 Chng trnh con dng th tc........................................................................... 148
5. K thut x l li ........................................................................................... 150
5.1 X l li ............................................................................................................. 150
5.2 By li ................................................................................................................ 154
6. Mt s v d ................................................................................................... 156
Gio trnh Microsoft Access 2000 Copyright

Nguyn Sn Hi
Trang 207

CHNG 6: LP TRNH C S D LIU................................................... 162
1. K thut DAO................................................................................................ 163
1.1 Lp i tng DAO........................................................................................... 164
1.2 i tng Database............................................................................................ 166
1.3 i tng RecordSet.......................................................................................... 167
1.4 i tng QueryDef .......................................................................................... 172
1.5 i tng TableDef ........................................................................................... 175
1.6 i tng Relation............................................................................................. 178
2. Bi ton t lc d liu .................................................................................. 178

CHNG 7: MENU & TOOLBAR.................................................................. 183
1. To Menu....................................................................................................... 184
2. Gn kt Menu, Toolbar .................................................................................. 190
3. To form chnh............................................................................................... 190
Bi tp ................................................................................................................ 193

THUT NG TIN HC..................................................................................... 202
TI LIU THAM KHO................................................................................... 204

You might also like