205
GIỚI THIỆU Giáo trình này là sự đúc kết kinh nghiệm của tác giả t đào tạo về Access cũng như kinh nghiệm sử dụng Access làm liệu và công cụ phát triển phần mềm. Hầu hết nội dung trìn bám theo những bài tập thực hành cụ thể. Do vậy, sau khi trình tự cuốn sách này, bạn đọc gần như có thể thiết kế và dụng về quản lý thông tin. Cụ thể ở đây là: Quản lý lương Quản lý bán hàng tại một cửa hàng. Đối tượng chính của giáo trình là sinh viên, học sinh chuyên CNTT cũng như không chuyên CNTT có học môn Access. hoàn toàn phù hợp cho những ai quan tâm học hỏi môn học nà đều được trình bày rất trực quan, có thứ tự và kết quả rõ Thời lượng thiết kế 80 tiết. Tuỳ theo mức độ ứng dụng vào môn học này mà mỗi đơn vị sẽ chọn cho mình một quĩ thờ nội dung giảng dạy phù hợp từ giáo trình này. Nội dung giáo trình gồm một bài mở đầu và 7 chương: Bài mở đầu Bài này sẽ trình bày tổng quát về môn học; giới thiệu được Access dùng để làm gì? Phân biệt được với một số phần Pascal, Foxpro, Word, Excel,… Cuối cùng bạn đọc sẽ hiểu đư của Access và thực hiện vào ra và quản lý các tập tin dữ l Chương 1: Xây dựng cơ sở dữ liệu (CSDL) Chương 1 tập trung vào những kiến thức cơ bản giúp có Access một cách chắc chắn, đặc biệt thể hiện qua qui trình kết được nội dung toàn bộ chương học. Chương 2: Truy vấn dữ liệu - QUERY Tập trung vào các kiến thức và kỹ năng giúp xử lý dữ l thông qua các loại Query. Chương 3: Thiết kế giao diện - FORM Chương này trình bày các khái niệm cũng như những kỹ t thiết kế được những giao diện phần mềm thông qua việc sử d cụ đi kèm. Chương 4: In ấn - REPORT Bao gồm các kiến thức cũng như kỹ năng cần thiết để th ấn đa dạng sử dụng công cụ Report của Access. Hơn nữa kết quyết được các bài tập mang tính tổng hợp, hoàn thiện. Nội dung từ chương 1 đến chương 4 mang tính căn bản. theo mang tính chuyên ngành và nâng cao hơn. 1

Giaotrinh Access

Embed Size (px)

Citation preview

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 80 tit. 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 tin 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 - QUERY 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 - FORM 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. Chng 4: In n - REPORT 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.1

Chng 5: Lp trnh VBA cn bn MACRO & MODULE 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 VBA WITH DAO 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.

2

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 Access2003 Cch khi ng To tp tin CSDL mdb mi Mi trng lm vic M tp tin CSDL mdb tn ti Thot khi Access. 1. Gii thiu Access 2003 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 Access2007. Ton b ni dung gio trnh ny, chng ti gii thiu trn Access2003. 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 Access2003, bn 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 Access2003 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 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 :3

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. Access2003 c g mi so vi cc phin bn c (Access2000)? - 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 2003 Developer cn cung cp cng c ng gi d n Access (tc l to b ci 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 ci t phn mm ny thng qua b Microsoft Office 2003. Cc bc ci t xin tham kho ti liu hng dn s dng i km a CD phn mm. 2. Khi ng C th khi ng Access theo nhiu cch: - Cch 1: Start --> Programs --> Microsoft Office 2003 --> Microsoft Office Access 2003

4

- Cch 2: Start -- > Run -- > g vo

MSACCESS

-- > OK

- Chn Blank Access Database bt u to mt tp tin Access mi (to mi tp tin); - 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 tin Access tn ti lm vic tip. 3. To mi tp tin CSDL Access . mdb 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 tin. Tp tin CSDL Access c phn m rng *.MDB (ngoi ra nhng tp tin c phn m rng *.DBE cng m c nhng ch c th thc thi ch khng chnh sa c cu trc). C 6 thnh phn chnh trn mt tp tin: - Tables ni cha ton b cc bng d liu, cha thng tin ca cc i tng trn CSDL. y l i tng c bn ca CSDL. - 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. - Macros 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 tin Access cn phi lm vic trn tt c cc thnh phn trn. bt u to mt tp tin 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 tin Access:

Hy chn ni lu tr hp Save in; g vo tn tp tin mc File Name; nhn5

ghi li thit lp. n y sn sng s dng tp tin Access va khai bo. 4. Mi trng lm vic Sau khi mt tp tin 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 tin 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 tin tn ti Mi tp tin Access phi to mi duy nht mt ln, c m ra lm vic v ghi li trong nhng ln tip theo. m mt tp tin Access tn ti lm vic, lm nh sau: Bc 1: T mi trng Access gi Menu: File | Open (hoc nhn nt Open trn thanh cng c), hp thoi Open xut hin:

6

Bc 2: Tm n tp tin Access cn m trn hp thoi Open bng cch: - Tm n th mc ni cha tp tin Access cn m hp Look in; - Tip theo chn tp tin Access cn m trn danh sch v nhn nt Open hoc Enter. n y ca mn hnh lm vic Access vi tp tin 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. 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 - Table 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. 1. Cc khi nim v CSDL Access 1.1 CSDL Access : CSDL l tp hp thng tin ca nhiu i tng trong mt thc th, cc i tng ny c mi quan h cht ch vi nhau. C th hn: 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 .7

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:

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:

8

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. Mi mt Table cho php lu tr mt i tng trong 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 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):

9

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

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 tin 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 mt field cho php lu tr 1 thuc tnh ca i tng . Tu thuc vo tnh cht gi tr ca thuc tnh m ta xc nh kiu d liu cho ph hp10

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 1 2 3 4 5 6 7 8 9

Kiu d liu Number Autonumber Text Yes/No Date/Time Currency Memo Hyperlink OLE

ln

Lu tr.. S: s thc, s nguyn theo nhiu kiu

4 bytes

S nguyn t ng c nh s. Kiu chui c kch thc nh 255 k t

1 bytes 8 bytes

Kiu logic Lu tr ngy, gi Lu tr d liu km k hiu tin t

tu thuc gi tr tu thuc di xu tu thuc d liu

Kiu chui c kch thc ln (65535 k t) Lu tr cc siu lin kt (hyperlink) m thanh, hnh nh, ho, (Objects)

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.

11

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 c th trong i tng A c quan h vi mt c th bn i tng B (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:

M t d liu 2 bng ny nh sau:

12

Lin kt 1-n l: mi c th trong i tng A c quan h vi nhiu c th bn i tng B (mi bn ghi 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: Hoc xem theo mt kiu khc:

13

14

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 tab Tables, nhn nt New, chn Design View, nhn OK Hoc nhn

trn tab Tables. Hp thoi thit k cu trc mt bng xut hin:

15

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:

16

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:17

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 Ctrl + S hoc nhn nt Save trn thanh cng c, hp thoai yu cu ghi tn cho bng xut hin:

18

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:

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 1 Loi s Byte ln s nguyn 1 byte

19

2 3 4 5 6

Integer Long Integer Single Double Decimal

s nguyn 2 byte s nguyn 4 byte s thc 8 byte s thc 12 byte 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. Vic xc nh kch thc Field Size rt quan trng. Khi thit lp ta ch cn to mt size va trnh gy lng ph v thi gian sng ca CSDL l rt ln nn vic tnh ton Field size cho mi Field rt quan trng . Thuc tnh Format 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, Date/Time V d: Cc chui nh dng format thng s dng > : t ng chuyn sang ch hoa < : t ng chuyn sang ch thng ; N; Nam tr No ; N[Red]; Nam[Blule]: mu xanh dd/mm/yyyy: Thuc tnh Input Mark Thit lp mt n nhp d liu cho cc trng. Qui nh dng thc d liu phi nhp vo cho field . Kiu ny c th p dng cho cc loi trng kiu Text, Number, Datetime, Currency. K T 0 NGHA Bt buc phi nhp gi tr. Nhp gi tr t 0 9. Khng cho php s dng du + hin th gi tr kiu date/time N hin th ch mu , Nam : Hin th l N cho gi tr Yes, Nam cho gi

20

9 # L ? A a & C password V d:

Khng bt buc nhp gi tri. Nhp gi tr t 0 9 hoc l khong trng. Khng cho php s dng du + Khng bt buc nhp gi tr. Nhp gi tr t 0 9 hoc l khong trng. Cho php s dng du + Bt buc nhp gi tr. Nhp gi tr t A Z. Khng bt buc nhp gi tr. Nhp gi tr t A Z. Bt buc nhp gi tr. Nhp gi tr t A Z, 0 - 9 Khng bt buc nhp gi tr. Nhp gi tr t A Z, 0 - 9 Bt buc nhp gi tr. Nhp bt k k t no Khng bt buc nhp gi tr. Nhp bt k k t no Bt k k t no c nhp vo u c lu di dng chui nhng n ch hin th du * khi g vo

Mnh thit lp Input mask l LL000 cho field MaNV: Bt buc nhp 2 k t lin tip, pha sau phi l 3 k s. 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#

21

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.

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 Menu: 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):

22

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:

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:23

- One To One Kiu 1-1 - One To Many Kiu 1-n - 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: Bng A Kho chnh Kho chnh Kho ph Khng kho

TT 1 2 3 4

Bng B Kho chnh Kho ph kho Kho ph kho Khng kho

Kiu lin kt 1-1 1-n Khng xc nh c kiu lin kt 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:

24

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. 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

25

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

26

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. 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 khng27

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 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.28

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. 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 liu29

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 - Sp xp gim dn.

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: 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 hn30

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. 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- n 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 Look Up 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 Lookup31

Wizard...

Hp thoi Lookup Wizard xut hin:

32

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. 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:

33

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 >, >>, Pht sinh nhu cu chuyn ti d liu t mt Table ngun vo mt Table ch. Append query l gii php hu hiu. 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):

61

Bc 2: Chn Table ngun cung cp ngun d liu cho Table ch. Bc 3: Menu Query -- > Append Query

Table Name: Chn Table ch ( table s nhn d liu truyn qua). Current Database: Table ch nm trn CSDL hin hnh. Another Database: Table ch nm trn CSDl khc, khi bn phi chn file CSDL cn chuyn d liu qua.

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:

62

Bc 1: To mt Select query nh sau:

Bc 2: i query hin hnh thnh Delete query bng cch m Menu Queries | Delete Query

63

thi hnh vic xo cn b, nhn nt Run hp thoi cnh bo xut hin:

trn thanh cng c. Khi mt

64

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. Khi xo d liu ri th khng th phc hi.

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. 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:

65

66

thi hnh vic xo cn b, nhn nt Run hp thoi cnh bo xut hin:

trn thanh cng c. Khi mt

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]

67

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 Main 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. 1. Khi nim Forms Khi s dng mt ng dng, a phn cng vic ca ngi dng lm trn cc hp thoi (Dialog), 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, thng dng to cc Form kt ni vo CSDL. - 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, thng dng to cc Form iu khin hoc cc Form c cu to phc tp Tip theo s gii thiu c 2 mi trng ny.

68

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;

69

- 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: >, >>, Control Source: ly field trung gian to lin kt vo. + Link Master Field: in thng tin Master Field + Link Child Field: in thng tin Name ca Text box to trn.

105

106

CHNG 1 THIT K BO CO - REPORT 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. 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.

107

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 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.

108

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) 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:

109

Bc 2: Chn d liu cn in trn hp thoi sau:

chn d liu cn in ln report, c 2 thao tc phi lm trn hp thoi ny:110

-Chn bng hoc query ni c cha trng d liu cn in ra hp Table/Queries; -S dng cc nt lnh >, >>, 0 d dch tin, ngc li s dch li; - Mi ln lp, VBA s thc hin 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.

146

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

Lnh For trong v d ny ch khc lnh For v d 1 ch Step 3. V = 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?

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 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) Tuy nhin gii thut kim tra s nguyn t trn l cha ti u, bn hy tm mt thut ton kim tra mt s n c phi l nguyn t hay khng tt hn!

147

148

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):

Trong : -While, Wend l cc t kho ca lnh lp -Nu = True, cc lnh trong s c thc hin. Thc hin xong li quay ln dng lnh While kim tra tip -Nu = 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 , gi tr ca 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

149

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.

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: 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 ghi150

li cu trc nu c s thay i.

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

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], [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 iu kin lc d liu WhereCondition - Gii hn cc bn ghi trong ngun d liu DataMode - thit lp ch d liu trn form, c th: 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" [ViewMode], [FilterName],

151

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], [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 [ViewMode], [FilterName],

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)

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:

152

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

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 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.

153

4.1 Chng trnh con dng hm C php

Trong : -Function, End Function l cc t kho bt buc khai bo cu trc mt chng trnh con dng 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 cn thit cho hm. C hay khng c danh sch ny tu thuc vo hm cn nh ngha; - - kiu d liu m hm s tr li. Phn ny bt buc phi c khai bo vi mi hm; - - thn chng trnh con. Trong cu lnh = 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 tin 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: hm tnh tng 2 s

154

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

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:

155

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 1 2 3 4 5 6 7 Tn Quang c on Bng Bang An 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 7 3 2 Tn n on c

156

6 4 5 Bang 1 Quang

An Bng

M danh sch sp xp ng phi l: STT 6 7 5 4 3 2 1 Tn An n Bang Bng on c 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.

157

158

159

4.2 Chng trnh con dng th tc C php

Trong : -Sub, End Sub l cc t kho bt buc khai bo cu trc mt chng trnh con dng th tc; - 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 cn thit cho th tc. C hay khng c danh sch ny tu thuc vo th tc cn to - - 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 tin 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

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

160

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. 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.

Hnh trn khi di chut ln bin b, gi tr bin b xut hin di dng Tool tip161

(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:

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.162

163

Gi s v d trn sau khi g lnh:

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

Hoc nu g: 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 c164

nn s dng trong cc on m lnh hay khng. V d s dng On Error Resume Next b qua li:

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 Khi mt th tc c t cu lnh ny, nu gp phi mt li no , VBA s chuyn thng vic thc hin n ch nh. Thng thng cc lnh tip theo ca l x l cc tnh hung li. Sau y l v d s dng phong php On Error Goto by li:

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 chia165

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. 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 Err.Description Err.Number Err.Number 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: Kt qu M t tn li a ra m li Xo b cc gi tr ca i tng Err

Thit lp thuc tnh cho cc i tng nh sau:

166

Form Caption: Kim tra s chn - l Default view: Single Form Scroll bar: Neither Record selector: No 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:

Bi ton 2: Nhp vo 2 s nguyn v tnh USC v BCS ca 2 s Thit k form nh sau:

167

Thit lp thuc tnh cho cc i tng nh sau: Form Caption: Default view: Dialog Scroll bar: None Record selector: No Navigation Buttons:No Diving line: No

168

nhp s cn kim tra Tm USC v BSC Single Form Neither No No No A: B: USC: BSC: Nt Tnh ton cmdTinhToa Name: Caption: Nt ng Name: Caption: cmdClose ng n Tnh ton txtA txtB txtUSC txtBSC

V m lnh cho form nh sau:

169

170

Bi ton 3: Nhp vo 3 h s A, B, C ca phng trnh bc hai Ax2 + Bx+C =0 v cho bit nghim phng trnh : Thit k form nh sau:

Thit lp thuc tnh cho cc i tng nh sau:

nhp s cn kim tra Gii phng trnh bc 2 Single Form Neither No No No

V m lnh cho form nh sau:

171

172

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. 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 2003, 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:

173

Hy chn (tch) mc Microsoft DAO 3.6 Object Libraly trn danh sch Available References; chn xong, nhn OK ng li. Trc khi bc vo hc lp trnh CSDL, cc bn hy xem cch thc lm vic nh th no? ng dng

174

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 :

175

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; 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; Databases -nh ngha tp hp cc CSDL Access cn lm vic trn mt

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: -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.176

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.

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:

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 tin Access .MDB). Lp cc i tng con ca Database c th hin qua s sau: Khai bo

177

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

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 tin 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:

178

Khai bo

Trong : -Set rs = db.OpenRecordset l lnh to ra tp hp cc bn ghi t CSDL db gn vo bin kiu recordset rs; - 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).

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).

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

Thuc tnh AbsolutePosition 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 tin 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

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 .

180

Cc phng thc di chuyn bn ghi ca Recorset Phng thc MoveFirts chuyn con tr v bn ghi u tin 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

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:

181

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

182

183

V d 5:

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:

184

V d 6:

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.

to v kch hot mt query trn VBA bng cch thc thi cu lnh SQL bn lm theo hng dn sau:

185

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() to mt query mi ln CSDL. s c hin th trn danh sch trong th Queries trn ca s Database. Nu ="", 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 =""; -Lnh qr.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.186

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)

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.

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.187

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:

188

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

Trong : -db l bin kiu Database c gn bi CSDL cn lm vic (bng mi s c to ra trn CSDL ny) - 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:

189

Trong : - - tn trng mi cn to - - 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: 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 - 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.

190

V d 2:

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.

191

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:

192

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:

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

-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 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:

194

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:

-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.195

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

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. CHNG 7 MENU & TOOLBAR Chng ny trnh by nhng k thut to menu v toolbar nhm lin kt ton196

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 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:

(cc mc chn ca menu H thng)197

(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:

198

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.

199

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:

200

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.201

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:

202

-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)203

-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 -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 tin 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 tin ny c m.204

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:

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:

205