Professional Documents
Culture Documents
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
Bi ging Access
Thanh cng c
Blank database
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
Bi ging Access
Ta t tn CSDL l tck45.mdb v nh v cho n c t ti th mc mong mun D:\TailieuGiangday\CSDL\HeQTCSDLAccess (ci ny ty bn!). Cc bn lu , phn m rng ca Access l mdb (phin bn 2007 v sau c khc i cht). Ca s sau xut hin:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
1.2. M mt CSDL c
By gi chng ta m Access, chn File\Open hoc nhn Ctrl+O hoc nhn vo nt c biu tng Open trn thanh cng c. Hp thoi Open xut hin. Ta chn tp tin mdb cn m, sau nhn nt Open.
Quan st, chng ta thy CSDL Access c cc thnh phn nh: Tables, Queries, Forms, Reports, Pages, Macros v Modules. Chng ta s ln lt tm hiu v cc thnh phn ny.
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
Bi ging Access
C hai mc khng c gii thiu y, l: Import Table (nhp khu mt bng c to ra trong trnh ng dng khc) v Link Table (to mt bng c kt ni vi mt bng khc trong tp tin khc). Bc 2: Nhn chn mc Table Wizard, sau nhn OK. Hp thoi Table Wizard xut hin:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
Bi ging Access
Bc 3: Chn Sample Tables l Students, sau ln lt chn cc mc trong danh sch Sample Fields v chuyn n vo Fields in my new table:
Nu mun i tn ct, ta chn mc tng ng ri nhn vo nt Rename Field... Bc 4: Sau nhn Next. Hp thoi sau xut hin:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
Bi ging Access
Bc 5: Nu mun bn c th i tn bng. y ti nguyn l Students. Bc 6: Nhn Next chuyn sang hp thoi tip theo.
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
Bi ging Access
Ti y, chng ta c th nhp d liu trc tip vo bng nu mun. Tm thi chng ta cha nhp g c. Chng ta s xem bng Students trong ch Design:
Chn bng Students v nhn nt Design, ca s sau xut hin: Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 8
Bi ging Access
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
Bi ging Access
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
10
Bi ging Access
Sao chp d liu k bn trn: nhn CTRL + ' hoc s dng k thut Copy-Paste Xa khon tin:
Nhn vo y xa khon tin Nhn Record Selector chn ton b khon tin
Nhn Yes xa thc s Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 11
Bi ging Access
Thay i ngoi hnh ca bng: ln ca s, ct, hng Gn cht mt (hoc nhiu) trng vo mt v tr nht nh: Chn ct, kch chut phi, nhn Freeze Columns hoc chn ct, chn Format, Freeze Columns. Nu mun b tnh cht ny, ta ch vic chn Unfreeze All Columns. Sau , nu cn, c th dng k thut ko th cc ct v v tr mong mun. Che du v hin li ct: Format/Hide Columns v Format/Unhide Columns Sp xp cc khon tin: Chn ct, nhn Sort Ascending hoc Sort Descending. Cc chc nng trong Tools/ Options. Thay i skin cho bng: Format/Datasheet Thay i font ch: Format/Font In bng: Print Preview v Print, File/Page Setup
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
12
Bi ging Access
Trong ch thit k:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
13
Bi ging Access
Cc kiu d liu: Kiu d liu M t Text Dng d liu ph bin nht. C th cha ch ci, ch s v cc k t nh &, %, =, ?. C th di ti 255 k t. Memo Tng t nh Text nhng c th cha ti 65535 k t. Thng dng cung cp cc ch gii. Trng Memo khng th l mt trng kha, khng th lp ch mc. Number Gi tr s. C th c nhng kch c nh sau: Byte: s nguyn t 0 n 255 Integer: s nguyn t -32768 n 32767 Long Integer: s nguyn trong khong -2,147,483,648 n +2,147,483,647 Single: s c chnh xc n trong khong -3.40283*1038 n -1.401298*10-45 v 1.401298*10-45 n 3.40283*1038 Double: s c chnh xc kp trong khong -1.7976931348623*10308 n -4.94065645841247*10-324 v 4.94065645841247*10324 n 1.7976931348623*10308 Replication ID: S nhn dng duy nht ton cc Date/Time Ngy v gi c lu tr theo mt dng thc c nh c bit, gi tr trong khong t ngy 1.1.100 n 31.12.9999. C nhiu nh dng. Currency Mt dng s, c th c ti 15 ch s bn tri v 4 ch s nm bn phi du thp phn. AutoNumber Gi tr s m Access t ng in cho tng khon tin mi b sung vo bng. C th l s tun t hoc ngu nhin, c di l Long Integer hoc Replication ID. C th s dng lm kha chnh. Khng th cp nht. Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 14
Bi ging Access Yes/No OLE Object ng/sai, c/khng, bt/tt. C th cha i tng ha hoc cc i tng khc (bng tnh, tp tin m thanh, video) c to bi trnh ng dng windows c h tr OLE. i tng c th c nhng vo trng hay c kt ni (link) vi trng. C th l ng dn n mt tp tin trong cng hay trn my ch ca mng hay mt a ch URL dn n mt i tng trn mng. Access s chuyn n i tng khi nhn vo link. Khng phi mt dng d liu. thut c s dng to mt trng cho php tra cu cc gi tr trong mt bng hay chn gi tr t mt danh sch.
Bi ging Access Phn 7 ch s sau ca my di ng hoc ton b s ca my c nh c phn thnh 2 nhm, cch nhau bi du cch, v d: ( ) 821 4351 hoc ( ) 896 6027 Ta lm nh sau: Trong ch thit k, nhn chut chn dng PhoneNumber. Tm n dng Input Mask, nhp vo nh sau: !\(999")"000\ 0000
B sung ta (Caption): khi s dng thuc tnh Caption, bn c th dng mt on vn bn khc thay th cho tn trng khi hin th bng. V d: sa ta cho StudentsID thnh "M sinh vin":
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
16
Bi ging Access
n nh gi tr ngm nh: Thuc tnh Default Value cho php bn xc nh mt gi tr trng m Access s t ng nhp vo bng. V d, a s sinh vin H Ni, nn ta c th ngm nh trng StateOrProvince l "H Ni" 17
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
Bi ging Access
Bt buc nhp liu: Thuc tnh Required chuyn thnh Yes. Thuc tnh to ch mc Indexed: gip tm kim v sp xp da trn trng ny nhanh hn. Thuc tnh Validation Rule: quy tc hp l. Thuc tnh Validation Text: vn bn hp l (gi nhc) Thuc tnh Unicode Compression: gim lng b nh cn thit lu tr c s d liu. 2.3. To bng khng s dng thut Xa bng Students i, khng dng thut, to li bng vi cc trng sau: StudentID: m sinh vin, kha chnh. StudentName: tn sinh vin. StudentBirth: ngy thng nm sinh ca sinh vin. StudentAddress: a ch ni ca sinh vin. StudentPhone: s in thoi lin h, theo quy cch !\(999")"000\ 0000 ClassID: m lp, l kha ngoi. Hy to bng Lecturers, Class, Subjects, Learn: Bng Lecturers gm cc trng sau: LecturerID: m ging vin, l kha chnh. LecturerName: tn ging vin. LecturerPhone: in thoi theo quy cch !\(999")"000\ 0000 Faculty: khoa, gm c: Cng ngh thng tin, in t vin thng, ha hc, c kh, kinh t qun l, ngoi ng, ti chc. Bng Class gm c cc trng sau: Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 18
Bi ging Access ClassID: m lp, l kha chnh. ClassName: tn lp. Monitor: trng lp. Bng Subjects gm c cc trng sau: SubjectID: m mn hc, l kha chnh. SubjectName: tn mn hc. Bng Learn gm: LecturerID: m ging vin. ClassID: m lp. SubjectID: m mn hc. Time: thi gian biu hc. Xem mi quan h gia cc bng:
2.4. S dng form (biu mu) nhp v xem d liu 2.4.1. To mt form t ng
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
19
Bi ging Access
Trong tab Tables, chn bng cn to form t ng, sau nhn chn Autoform. Kt qu, ta s c mt form nh sau:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
20
Bi ging Access Ln lt to cc form theo cch trn. 2.4.2. S dng thut biu mu
Chn tab Forms, chn Create form by using Wizard, nhn New. thut xut hin:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
21
Bi ging Access
Chn bng Class v a tt c cc trng trong mc "Available Fields" sang mc "Selected Fields"
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
22
Bi ging Access
Ln lt check vo cc radio button xem giao din ca form khi hnh thnh s nh th no. Nhn Next, hp thoi sau s xut hin:
Ln lt chn cc mc xem skin ca form. Nhn Next, hp thoi cui cng hon tt: Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 23
Bi ging Access
Nhn Finish hon thnh cng vic to form s dng thut. Form ca chng ta c hnh th nh sau:
2.4.3. Hiu chnh giao din ca cc form t ng va to Chuyn sang ch thit k, thm nhn v cn chnh li cc iu khin trn form
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
24
Bi ging Access
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
25
Bi ging Access
Trong ch thit k, ta c th cho hin cc vng Form Header/Footer, Page Header/Footer bng cch kch chut phi trn form ri chn cc mc tng ng:
Form c chia thnh 5 khu vc: Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 26
Bi ging Access Khu vc Form Header (u biu mu) c th cha cc thng tin v d nh mt tiu m bn mun n xut hin phn bn trn ca biu mu (hin thi n ang c trng). Khu vc th hai Detail cha cc hp trng c gi l Control (iu kim) cho cc trng m bn chn cho biu mu ny. Cc iu kim l ni bn c th nhp thng tin. Mi iu kim c th i km vi mt hp mu xm c gi l mt nhn (Label) cha tn hoc ta ca trng. Khu th ba Form Footer, hot ng tng t nh Form Header. Hai khu vc cn li l Page Header v Page Footer, chng c th cha cc phn t m bn mun xut hin trn mi trang, trong trng hp mt biu mu chim nhiu trang giy. Ngoi ra, ca s cn hin th cc ng thc nm ngang v nm dc cng nh cc li gip bn nh v cc iu kim v nhn trong biu mu.
chn nhiu iu kim, ta gi phn SHIFT v dng chut chn iu kim. Nu mun chn tt c cc iu kim trn form, ta nhn Ctrl + A hoc chn Edit/ Select All. xem cc thuc tnh ca iu kim, ta chn iu kim ri nhn chut phi, chn Properties:
Ta c th thay i font ch, mu sc, kch thc,... C th i t ComboBox sang List Box nu s gi tr l nh:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
27
Bi ging Access
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
28
Bi ging Access
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
29
Bi ging Access Chng 3: B hi, bo biu, trang truy cp d liu v bng cng tc
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
30
Bi ging Access Lu : nu ch so khp mt phn gi tr trong mt trng th chn Math l "Any Part of Field" Hng dn sinh vin s dng Replace
Filter
Khi lm vic vi mt bng ln, thng ta s tp trung vo mt tp hp con cc khon tin (record, dng, b) trong bng. l tp hp cha cc khon tin c mt s thuc tnh chung no . lc ra nhm cc khon tin ny, bn c th s dng cc b lc (Filter).
Filter By Selection
Filter By Form
Lm theo cc bc sau: Bc 1: Chn mt gi tr trong mt ct bng cch kch p vo gi tr Bc 2: Nhn Filter By Selection, bn s c kt qu:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
31
Bi ging Access
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
32
Bi ging Access
Hoc chn tab Queries ri nhn chn New Hp thoi sau s xut hin:
Trong hp thoi New Query, nhn chn Simple Query Wizard ri nhn OK, hp thoi Simple Query Wizard xut hin:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
33
Bi ging Access
2. Chn trng trong bng ri nhn phm > chuyn sang danh sch ca b hi
Nhn chn Detail c b hi chi tit, sau nhn phm Next, hp thoi th ba ca Simple Query Wizard xut hin, bao gm ba mc: Yu cu bn t tn cho b hi Bo rng thut thng tin to b hi Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 34
Bi ging Access Hi bn mun m b hi xem thng tin hay m b hi chnh thit k ca b hi.
Kt qu chng ta c nh sau:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
35
Bi ging Access
Bc 2: Chn bng Students, nhn vo nt Add b sung bng ny vo danh sch cc bng d liu nn cho b hi. Sau , nhn nt Close. Kt qu l, trn ca s mn hnh xut hin mt ca s thit k b hi vi thanh ta cho bit y thuc loi b hi chn lc (Select Query). Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 36
Bi ging Access
Na bn trn, ta thy c hp Students lit k tt c cc trng trong bng Students, du hoa th i din cho tt c cc trng. Pha bn di ca ca s l mt bng li, c gi l QBE (Query By Example) tr gip cho bn thit k b hi. Bc 3: a cc trng vo li.
Test th vic hin th cc trng bng cch check vo dng Show, nhn nt Run chy th. Trong ct ClassID, dng Criteria, nhp s 2 vo, chy th xem kt qu
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
37
Bi ging Access
Tiu chun Criteria khng phn bit xu ch hoa v ch thng nn kt qu nh nhau khi ta vit "Phm Ngc Sng" hay "PHm NGc SNg". Khi bn nhp d liu xong, Access t bao gi tr bi mt cp ngoc kp.
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
38
Bi ging Access
Like "CNTT-K4?"
Bi ging Access
>#10/10/1982#
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
40
Bi ging Access
b. Ton t Or
Nu bn nhp nhiu ct, Access hiu rng bn mun lc ra cc khon tin tha mn tt c cc tiu chun . Trong trng hp bn mun a ra im HQTCSDL l 8 hoc 10 th sao?
8 Or 10
Mt trng hp khc: a ra StudentID m im HQTCSDL l 10 hoc im Ha hc l 8 (php hoc trn 2 thuc tnh):
10
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
41
Bi ging Access
3.2.7. Sp xp vi b hi
Quan st li bng Mark, chng ta thy rng, cc bn ghi c sp xp theo StudentID, cn im mn H QTCSDL v Ha hc th khng theo mt trt t no c. By gi chng ta s sp xp theo cc ct ny.
Ascending
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
42
Bi ging Access
3.3.1. To AutoReports
Chng ta bt u to mt bo biu vi bng Lecturers. Trong tab Table, chn bng Lecturers, ri nhn chn AutoReports
Kt qu nh sau:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
43
Nhn Design, hp thoi sau xut hin: Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 44
Bi ging Access
Nhn Next.
Chn Faculty, nhn phm > gom nhm theo thuc tnh ny. Nhn Next.
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
45
Bi ging Access
Ln lt chn tng Layout xem. Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni 46
Bi ging Access
Nhn Finish, chuyn sang ch view xem kt qu (hoc chn Preview the Report ri nhn Finish).
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
47
Bi ging Access Khi nhn chn New to bo biu mi, ta thy c cc la chn sau:
Loi bo biu t ng Columnar to ra cc nhn v cc iu kim c xp hng dc t trn xung di. Loi bo biu t ng Tabular to ra mt bo biu t ng vi cc nhn v iu kim sp xp theo hng ngang.
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
48
Chn Label Wizard, chn ngun d liu l bng Students. Nhn OK. Label Wizard hin th hp thoi u tin ca n, hi xem bn mun to nhn chun hay ty bin, kch c, n v o lng cng cc thng tin tng t:
1. Chn n v o lng
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
49
Bi ging Access
Sau khi la chn cc gi tr cho ph hp, nhn Next. Hp thoi th ba xut hin:
Nhn chn cc mc tng ng, a sang Prototype label. Ch , nu mun xung dng th trc khi a sang, ta nhn Enter. Nhn Next, hp thoi th t xut hin, cho bn bit c th sp xp cc nhn s dng:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
50
Bi ging Access
Sau khi la chn, nhn Next. Hp thoi tip theo xut hin:
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
51
Bi ging Access
Nguyn Hng Phng Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin, H Bch Khoa H Ni
52
4.1.1. To Macro mi
Ti ca s Database, chn Macro, sau chn New. Hp thoi to mi Macro xut hin:
Thc hin Macro bng mt trong ba cch: Khi khi ng c s d liu. Khi kch hot nt lnh hay chn mt mc trong Menu Pull Down. Khi kch hot mt s kin no . Khi ra lnh thc hin Macro cc hnh ng c thc hin t trn xung di.
Bi ging Lp trnh trong Access Thng bo trn dng trng thi (Status Bar Text) Close: ng ca s Form, Report, Table Cc tham s ca hnh ng ny: Kiu i tng (Object Type) Tn i tng (Object Name) Cch ghi (Save) ApplyFilter: S dng b lc trn Form. Cc tham s: Tn truy vn lc (Filter Name) iu kin lc (Where Condition) GotoRecord: chuyn con tr bn ghi n bn ghi trc, sau, u, cui hoc bn ghi c s hiu no . Cc tham s: Kiu i tng (Object Type) Tn i tng (Object Name) Bn ghi (Record) Offset: s hay biu thc ch bn ghi mun chuyn ti. Maximize: phng to cc i ca s hin hnh. Minimize: thu nh cc tiu ca s hin hnh. MoveSize: thay i kch thc ca s hin hnh. MsgBox: hin thng bo ra mn hnh. Cc tham s: Message: ni dung thng bo a ra. Beep: s pht ra ting ku nu l yes, ngc li th khng. Type: kiu icon hin th, gm: None, Critical, Warning?. Warning! v Information. Title: tiu ca ca s thng bo. OpenForm: m form, gm c 6 tham s: Form Name: tn form cn m, chn trong danh sch. View: m form mt trong bn ch : Design, Form (ngm nh), Datasheet, Print. Filter Name: p dng b lc, c th l query hoc mt b lc c lu tr nh l mt query. S dng b lc ny gii hn hoc sp xp cc bn ghi cho form. Where Condition: iu kin lc. Nhp vo mt mnh WHERE hoc mt biu thc (expression) chn ra cc bn ghi cho form. Data Mode: phng thc hin d liu, c th thm (Add), sa (Edit) hay ch c (Read Only). Window Mode: kch thc ca ca s, gm: Normal (ngm nh), Hidden, Icon, Dialog. OpenReport: m bo co. Cc tham s ging nh OpenForm, gm: Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 2
Bi ging Lp trnh trong Access Report Name View Filter Name Where Condition SetValue: t gi tr cho mt trng hoc mt control no . RepaintObject: cp nht li control khi control khc thay i. Requery: thc hin li truy vn ngun ca control cp nht li gi tr. Tham s: Control Name RunApp: thc hin mt ng dng trong Window. Tham s: Command Line: ng dn ti tp .exe RunCode: thc hin chng trnh vit bng VBA RunCommand: thc hin mt mc chn trn menu chnh ca Access. RunMacro: thc hin mt Macro. RunSQL: thc hin lnh SQL. SetWarnings: bt / tt ch hin th thng bo ca h thng ra mn hnh ShowToolbar: bt / tt cc thanh cng c chun ca Access. ShowAllRecords: hy b mi thao tc lc d liu trn form, bng hay kt qu truy vn. TransferDatabase: chuyn d liu gia tp CSDL hin hnh v tp CSDL khc c to bi Excel, Access hay h qun tr CSDL khc thng qua ODBC (tng t chc nng xut nhp khu trn Menu chnh). TransferText: chuyn d liu gia bng v tp vn bn.
Bi ging Lp trnh trong Access Chc nng "Tm kim tng hp" s tm kim theo c ba yu t l chuyn mn, ngoi ng v nm sinh. Trc ht, chng ta to mt s bng cha d liu dng cho vic to v d v Menu. Cc bng cn xy dng nh sau: Bng th nht DSCB (Danh sch cn b) gm cc trng v kiu nh hnh minh ha di y:
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Bo biu: Bo biu In DSCB ly bng DSCB lm nn, dng thc hin chc nng in danh sch cn b. Bo biu c thit k nh sau:
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Bi ging Lp trnh trong Access Cc mu biu: Form [MB DSCB] buc vo bng DSCB, c dng nh mt SubForm ca Form TKCB (s xy dng ngay sau y). Form [MB DSCB] dng th hin cc cn b tha mn cc iu kin v nm sinh, ngoi ng v chuyn mn. Form c thit k nh sau:
Form TKCB (Tm kim cn b) kiu Unbound (khng buc vi mt ngun d liu no) dng nh form chnh, gm bn iu khin: ba iu khin TextBox c t tn l NS, NN, CM v mt iu khin SubForm c dng nh sau:
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
t li hai thuc tnh ca SubForm [MB DSCB] nh sau: Link Child Fields: NAM SINH, NGOAI NGU, CHUYEN MON. Link Master Fields: NS, NN, CM. Form CTQLCB (chng trnh qun l cn b) dng bt u thc hin chng trnh. Chng ta s to Macro [MENU CHINH], sau a vo thuc tnh Menu Bar ca Form ny., khi thc hin mu biu, ta s nhn c h menu ca chng trnh. Form CTQLCB c thit k nh sau:
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Action
Menu Name
AddMenu Nhp s liu SO LIEU AddMenu Khai thc KHAI THAC AddMenu Kt thc chng trnh KET THUC Ta thit k Macro nh sau:
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
10
Table Name
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
11
Macro Name
Theo chuyn mn Theo ngoi ng Theo nm sinh Tm kim tng hp
Action
OpenQuery OpenQuery OpenQuery OpenForm
Query/Form Name
CHUYEN MON NGOAI NGU NAM SINH TKCB
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
12
Chng trnh hot ng nh sau: Khi form CTQLCB hin ln th h menu cng hin theo.
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
13
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
14
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
15
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
16
Bi ging Lp trnh trong Access Timer: S kin xy ra mt cch nh k sau mt khong thi gian xc nh bi thuc tnh Time Interval. Cc s kin trn Report Open: Xy ra m bo co, tng t s kin open ca form. Thch hp thay i mt s im trong thit k bo co, chng hn tiu , ngun d liu. Close: Xy ra khi ng bo co No Data: ngun d liu khng c bn ghi no. C th khng in hoc m bo co bng cch tc ng ln tham s cancel. Cc s kin trn iu khin (control) Change: C nhng iu khin m gi tr c th thay i nh hp vn bn... S kin ny xy ra khi gi tr ca iu khin b thay i. AfterUpdate: Xy ra sau s kin Change, khi ngi dng chp nhn s thay i bng cch nhn enter hoc lm mt con tr. GotFocus, LostFocus: Xy ra khi iu khin c hoc mt con tr. S kin ny cng xy ra trn form cha iu khin.
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
17
Module lp (module ca Form/Report) Cc ty chn: Option Base 0/1: Xc nh cn di ngm nh ca mng l 0 hay 1. Option Explicit: Khng cho php khai bo ngm nh cc bin. Option Compare Text/Binary: Cch so snh xu k t. Khai bo cc hng, bin, mng cp module: dng t kha Dim/Private. Cc th tc x l s kin Cc th tc/hm thng thng
4.3.5 Cu trc ca th tc v hm
Cu trc ca mt th tc thng [Static][Public][Private] Sub<Tn th tc>(<Danh sch cc tham s v kiu>) [Cc cu lnh] [Exit Sub] [Cc cu lnh] End Sub Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 18
Bi ging Lp trnh trong Access Cu trc ca mt hm [Static][Public][Private] Function<Tn hm>(<Danh sch cc tham s>) As Kiu [Cc cu lnh] [Exit Function] [Cc cu lnh] End Function Cu trc mt th tc x l s kin S kin trn Form Private Sub Form_<Tn s kin>(<Danh sch cc tham s v kiu>) [Cc cu lnh] End Sub S kin trn Report Private Sub Report_<Tn s kin>(<Danh sch cc tham s v kiu>) [Cc cu lnh] End Sub S kin trn control Private Sub <Tn iu khin>_<Tn s kin>(<Danh sch cc tham s v kiu>) [Cc cu lnh] End Sub
Bi ging Lp trnh trong Access Th tc x l s kin kch hot s kin Th tc v hm khc c th chy th t ca s Immediate Window (m ca s ny t Menu View hoc nhn t hp phm Ctrl + G). G vo nh sau: <Tn th tc><danh sch cc tham s thc s> ?<Tn hm>(<danh sch cc tham s thc s>)
4.4 Cc kiu d liu, hng, bin, mng dng trong chng trnh
4.4.1 Cc kiu d liu
S nguyn: Integer (%), Long (&), Byte S thc: Single (!), Double (#) Logic: Boolean Tin t: Currency (@) Xu k t: String ($), String*n Ngy/gi: Date Variant: Bin thuc kiu d liu ny c th nhn gi tr l s, xu k t, ngy/gi hoc gi tr Null.
4.4.4 Mng
Cch khai bo Trong hm/th tc Dim/ReDim/Static <Tn_mng>(Ch s 1, ch s 2,..., ch s n) [As <Kiu>] Trong phn khai bo ca n th Form/Report Dim/Private <Tn_mng>(Ch s 1, ch s 2,..., ch s n) [As <Kiu>] Trong phn khai bo ca n th dng chung Dim/Private/Public <Tn_mng>(Ch s 1, ch s 2,..., ch s n) [As <Kiu>] Hai cch xc nh min gi tr ca ch s Cch 1: Dng cu lnh Option base 0/1 vit trong phn khai bo. Theo cch ny, ta quy nh ch s cn di l 0 hoc 1. V d: Option base 0 Dim a(5) Ch s t 0 n 5 Option base 1 Dim b(6) As Integer Ch s t 1 n 6 Cch 2: Dng cch vit Cn_di to Cn_trn V d: Option base 1 Dim a(4,-2 to 5,6) s khai bo mt mng 3 chiu kiu Variant, trong : Ch s th nht chy t 1 n 4 Ch s th hai chy t -2 n 5 Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 21
Bi ging Lp trnh trong Access Ch s th ba chy t 1 n 6 Ch : Cc cn u phi l hng s nguyn v c th nhn gi tr m. Min gi tr ca ch s mng nm trong khong 32768 n 32767. Phm vi s dng ca mng Cp th tc:Khai bo trong th tc Cp n th: Khai bo trong phn khai bo ca n th, dng t kha Private hoc Dim. Cp chng trnh: Khai bo trong phn khai bo ca n th s dng chung, dng t kha Public. Mng ng Ta khai bo nh sau: Dim/Private/Public <Tn_mng> [As <Kiu>] Khi no dng mng ng, ta dng ReDim xc nh chnh xc chiu v kch thc mi chiu. Kch thc mi chiu c th cho bi cc bin hoc biu thc. V d: Redim a(1 to n,m) i l mng: i mng c khai bo theo cch mng ng, v d: Sub Nhap(a()as Double, n as Integer) Function max(a()as Double, n as Integer) As Double Trong li gi: dng tn mng, v d: Dim a(10) as Double, n as Integer, gt as Double Nhap a,n Gi th tc gt = max(a,n) Gi hm
Bi ging Lp trnh trong Access Thnh phn ca kiu t nh ngha c th l mng. C th khai bo cc mng kiu t nh ngha. Mnh TYPE ch c vit trong phn Decleration Section ca n th, do ta c th dng n khai bo cc bin mng trong ton n th. Phm vi s dng Nu dng PUBLIC th phm vi s dng ca kiu t nh ngha l trong ton chng trnh. Nu dng PRIVATE th phm vi s dng ca kiu t nh ngha l trong ton n th cha nh ngha kiu t to. Mc nh l PUBLIC Trong n th ca Form/Report khng cho php nh ngha kiu t to. V d: TYPE Point x AS Double y AS Double END TYPE TYPE Polygon n AS Integer p(1 to 100) AS Point END TYPE
4.5.2 So snh
Bng (=), khc (<>), nh hn (<), ln hn (>), nh hn hoc bng (<=), ln hn hoc bng (>=).
4.5.3 Ghp xu
Php + ch dng ghp xu k t. Php & dng ghp cc kiu d liu khc nhau. V d: Ha + + Noi cho kt qu l chui Ha Noi 1996 & 4 cho kt qu l chui 19964 Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 23
Bi ging Lp trnh trong Access A & 2 cho kt qu l chui A2 5 & 6 cho kt qu l chui 56 A + 4 s sinh ra li
4.5.4 Logic
Not, And, Or, Xor, Imp (Implication), Eqv (Equivalance). Cc php ton trn c th thc hin trn cc gi tr logic (True v False) hoc trn cc gi tr nguyn (s thc hin trn tng bit) theo quy tc trong bng sau:
4.6.2 Hm xu k t
Space(n): xu gm n du cch. Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 24
Bi ging Lp trnh trong Access Left[$](s,n): xu gm n k t tri nht ca xu s. Right[$](s,n): xu gm n k t phi nht ca xu s. Mid(s,i,n): xu gm n k t ca s tnh t k t i. Len(s): di xu s. Instr(n,s,t,[c]): kim tra xem xu t c l xu con ca xu s tnh t k t th n, nu c tr v v tr u tin gp xu t, nu khng th tr v tr 0. Lcase(s): chuyn cc ch ci trong xu s thnh ch thng. Ucase(s): chuyn cc ch ci trong xu s thnh ch hoa. LTrim(s): b khong trng bn tri xu s. RTrim(s): b khong trng bn phi xu s. Trim(s): b khong trng bn tri v bn phi xu s. Str(numeric): i s thnh chui. Format(numeric, chui nh dng): i s thnh chui theo nh dng. Chui nh dng c dng quy nh s ch s thp phn nh sau: 0.00 -> 2 ch s thp phn; 0.000 -> 3 ch s thp phn.
4.6.3 Hm ngy gi
Date(): cho kt qu kiu Variant ch ngy h thng. Date$(): cho kt qu kiu chui ch ngy h thng. Time(): cho kt qu kiu Variant ch gi h thng. Time$(): cho kt qu kiu chui ch gi h thng. Now(): ngy gi hin hnh. Day(d): ngy ca d. Month(d): thng ca d. Year(d): nm ca d. Weekday(d): th ca ngy d.
Bi ging Lp trnh trong Access Format(<Biu thc>,<Khun dng>) Biu din biu thc bng khun dng ch ra. Khun dng c sn nh Long Date, Standard hoc khun dng t xc lp nh DD/MM/YYYY.
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
26
Bi ging Lp trnh trong Access Hm MsgBox C php: MsgBox(<Li nhc>[,<Kiu nt>][,<Tiu >]) Li nhc l mt biu thc chui, ni dung ca n s c a ra hp thoi. Ch : Xung dng dng chr(10). Tiu l mt biu thc chui c hin th trong thanh tiu ca hp thoi. Nu b qua i s ny th tiu s l Microsoft Access. Kiu nt: l mt tng cc s nguyn dng xc nh: cc nt lnh s hin th, cc biu tng, nt mc nh c chn. Nhm cc nt lnh gm c: Gi tr 0 1 2 3 4 5 ngha Hin th nt OK Hin th cc nt OK v Cancel Hin th cc nt Abort, Retry v Ignore Hin th cc nt Yes, No v Cancel Hin th cc nt Yes v No Hin th cc nt Retry v Cancel
Nhm cc biu tng gm c: Gi tr 0 16 32 48 64 ngha Khng hin biu tng Hin biu tng Critical Message Hin biu tng Warning Query Hin biu tng Warrning Message Hin biu tng Information Message
Nhm nt mc nh c chn gm c: Gi tr ngha 0 Nt u tin (tnh t tri sang phi) 256 Nt th hai 512 Nt th ba V d: nu kiu nt = 4 + 16 + 256 th trn hp thoi s hin: Hai nt Yes v No, biu tng Critical Message, nt No c chn sn:
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
27
Kt qu ta nhn c:
Chng ta c th gi hm trn theo cch gi ca th tc, khi ta khng cn nhn gi tr tr v. Nu chng ta s dng hm trn theo cch gi hm th chng ta s nhn c gi tr tr v. Gi tr tr v ca hm tng ng vi cc nt nh sau: Gi tr hm Nt c chn 1 OK 2 Cancel 3 Abort 4 Retry 5 Ignore 6 Yes 7 No
Mt v d v Select Case
Public Function Thu(ts As Date)As String Select Case Weekday(ts) Case 1 Thu = Chu nhat Case 2 Thu = Thu hai Case 3 Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 29
Bi ging Lp trnh trong Access Thu = Thu ba Case 4 Thu = Thu tu Case 5 Thu = Thu nam Case 6 Thu = Thu sau Case 7 Thu = Thu bay End Select End Function
Bi ging Lp trnh trong Access Dng 1: Do [{While/Until}<iu kin>] [<cc lnh>] [Exit Do] [<cc lnh>] Loop Dng 2: Do [<cc lnh>] [Exit Do] [<cc lnh>] Loop[{While/Until}<iu kin>]
Bi ging Lp trnh trong Access Trong BT l biu thc nguyn v tho mn iu kin 0 BT 255 S hot ng: Nu BT = 1 th nhy ti nhn_1 Nu BT = 2 th nhy ti nhn_2 ....... Nu BT = n th nhy ti nhn_n Nu BT = 0 hoc BT > n th b qua On BT Goto/Gosub thc hin lnh tip theo. Nu BT < 0 hoc BT > 255 th c li. Nhy khi c li C php: On Error Goto Label ..... Exit Sub Label: X l li next Resume nhan Hot ng: Khi c li, chng trnh khng dng m chuyn n cu lnh c nhn Label. Cc li c th xy ra: Xa mt bng / truy vn khng tn ti. To mi mt bng / truy vn tn ti. Nhn gi tr Null t mt iu khin ca form / report. Chia cho s 0. V cc li khc... Khi gp cc li ny, chng trnh b ri lon v c th b treo my. Cc hm: Error$: cho bit li g xy ra. Err: cho bit s hiu li. Cu lnh Resume: hng dn s hot ng tip tc ca chng trnh, thng c vit theo hai cch: Resume Next Theo cch ny, chng trnh tip tc t cu lnh ngay sau cu lnh gy li. Resume Tiep_tuc Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 32
Bi ging Lp trnh trong Access Chng trnh tip tc t cu lnh c nhn Tiep_tuc. V d: Th tc xa mt bng c tn nhp vo t bn phm. Li c th gp l bng khng tn ti. Khi c li, chng trnh a ra thng bo v kt thc th tc: Sub DeleteTable() Dim DB As Database Dim tableName As String Set DB = CurrentDB() On Error Goto Xu_li_loi tableName = InputBox("Input the name of the table that will be deleted:") DB.TableDefs.Delete tableName MsgBox Table + tableName + was deleted Exit_Program: Exit Sub Xu_li_loi: MsgBox Table + tableName + is not available MsgBox Error$ Resume Exit_Program End Sub
Input
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Bi ging Lp trnh trong Access Output Append Gi tr Read Write Ghi trn cc tp tun t bng cch s dng mnh Write. Ghi b sung trn cc tp tun t bng cch s dng mnh Write. ngha Ch c quyn c Ch c quyn ghi S_hiu_tp: l mt biu thc nguyn c gi tr t 1 n 255. Sau khi m tp, s hiu tp s gn vi tp cho n khi tp c ng li. Mi thao tc s thc hin thng qua s hiu tp. Reclen: l mt biu thc nguyn c gi tr t 1 n 32767. i ny thc s c tc dng i vi kiu tp Random xc nh ln ca bn ghi (s k t trong mi bn ghi). Gi tr mc nh ca Reclen l 128 byte. V d: Hm kim tra s tn ti ca tp trong th mc hin hnh, i s l tn tp cn kim tra. Hm tr v True nu tp tn ti, ngc li l False. on m c dng hm xc nh mt s hiu t do cha dng FreeFile: Function Ton_tai(Ten_tep As String) As Integer So_hieu As Integer So_hieu = FreeFile Chn mt s hiu cha dng Ton_tai = True On Error Goto Loi OPEN Ten_tep FOR Input AS So_hieu Close So_hieu ng tp Exit Function Loi: Ton_tai = False Resume Next End Function ng tp Mnh Close dng ng 1 hoc tt c cc tp ang m. C php nh sau: Close [[#]S_hiu_tp], [[#]S_hiu_tp].... Nu vit Close khng km theo tham s g th c ngha l ta ng tt c cc tp ang m. Ngoi ra, ta cng c th ng tt c cc tp ang m bng mnh Reset. Ghi ln tp tun t (vn bn) Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 34
Bi ging Lp trnh trong Access Write #<s_hiu_tp>,[<danh sch biu thc>] Mnh ny dng ghi d liu kiu s, chui v kiu DATE/TIME ln mt tp tun t. Mi cu lnh Write s ghi mt dng vn bn ln tp. Dng vn bn gm cc gi tr ng vi cc biu thc c phn cch nhau bi du phy. Mi gi tr chui c bao bc trong 2 du nhy kp. Gi tr kiu DATE c ghi ln tp theo nh dng #2006-11-20# (tc l: nm-thng-ngy). Gi tr kiu TIME c ghi ln tp theo dng #10:27:39# (gi:pht:giy). Mt cu lnh WRITE khng km theo biu thc s ghi mt dng trng ln tp. Kt qu, ta nhn c mt tp vn bn, ni dung ca n c th xem c bng cc h son tho vn bn. V d: Chng ta s vit mt th tc ghi mt s th ln mt file vi tn l test.abc, sau chng ta s kim tra ni dng file ny. Ch : th mc C:\access tn ti.
Dch v chy th chng trnh trong ca s Immediate. M th mc access trong C ra, ta thy c file test.abc. Dng trnh son tho Notepad m file ny, ta c kt qu nh sau:
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
35
c t tp tun t (vn bn) Input #<s_hiu_tp>,[<danh sch cc bin>] Mnh ny dng c d liu kiu s, kiu chui v kiu DATE/TIME t mt tp vn bn v cha vo cc bin tng ng vi ch : d liu trn tp v bin tng ng (bin cha d liu) phi cng kiu. Danh sch cc bin phn cch nhau bi du phy. V d: c tp cha cc s sau:
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
36
Ghi trn tp ngu nhin / nh phn Mnh Put dng ghi gi tr ca mt bin (kiu s, chui v DATE/TIME) ln mt tp ngu nhin / nh phn. Kt qu, ta nhn c mt tp nh phn. C php nh sau: PUT #<s_hiu_tp>, [s_hiu_bn_ghi ,] <tn_bin> trong : s_hiu_bn_ghi: l mt biu thc nguyn dng biu th s hiu bn ghi i vi tp ngu nhin (hoc s hiu byte i vi tp nh phn). Vic ghi s thc hin t bn ghi hoc byte ny.. Nu vng mt, vic ghi s bt u t bn ghi hoc byte hin ti trn tp. Bn ghi (hoc byte) u ng vi s_hiu_bn_ghi = 1. Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 37
Bi ging Lp trnh trong Access Ch v di ca bn ghi: di ca bn ghi c quy nh bi i Len trong mnh OPEN. N ch thc s cn thit i vi tp Random. Cch xc nh di bn ghi: Vi cc bin c di xc nh (mi kiu tr String) th di bn ghi cn ln hn hoc bng di ca bin. Ring i vi bin kiu chui c di bin i cn lng trc di cc i (s k t ti a cn nhp). di bn ghi ( di cc i + 2) (2 byte dng ghi nhn di ca chui). Kt qu thc hin: i vi tp ngu nhin, mi cu lnh PUT s: a ni dung ca bin vo mt phng i c di Len byte, sau ghi c Len byte ca phng i ln tp ti bn ghi th s_hiu_bn_ghi. Nu phng i qu nh khng cha c gi tr ca bin th s thng bo li: Bad Record Length. i vi tp nh phn: Ghi gi tr ca bin ln tp ti byte th s_hiu_bn_ghi. S byte c ghi s bng ln ca bin. c t tp ngu nhin/ nh phn Mnh GET dng c d liu t mt tp Random / Binary v cha vo mt bin. C php nh sau: GET #<s_hiu_tp>,[s_hiu_bn_ghi ,] <tn_bin> trong : s_hiu_bn_ghi: l mt biu thc nguyn dng biu th s hiu bn ghi i vi tp ngu nhin (hoc s hiu byte i vi tp nh phn). Vic c s thc hin t bn ghi hoc byte ny.. Nu vng mt, vic c s bt u t bn ghi hoc byte hin ti trn tp. Bn ghi (hoc byte) u ng vi s_hiu_bn_ghi = 1. Ch : i vi tp Random, i s Len trong mnh OPEN c cn bng di bn ghi trn tp cn c. D liu cha trn tp v bin nhn d liu tng ng phi c cng kiu. Kt qu thc hin: i vi tp ngu nhin, mi cu lnh GET s: c len byte t tp v cha vo phng i (c di Len byte). Ly mt s byte t phng i (bng di ca bin) v gn cho bin. Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 38
Bi ging Lp trnh trong Access i vi tp nh phn, mi cu lnh GET s c mt s byte bng di ca bin t tp v a vo bin. V d:
Kt qu:
Cc hm dng trong thao tc tp: Eof(<s_hiu_tp>): Hm ny tr v gi tr True nu con tr tp t ti cui tp, ngc li, hm tr v tr False. Lof(<s_hiu_tp>): cho bit di ca tp tnh theo byte. V d: xc nh s bn ghi trn mt tp Random, ta chia di tp cho di bn ghi: Open DSTS.xyz For Random As #1 Len = 20 So_ban_ghi = LOF(1)/20
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
39
Bi ging Lp trnh trong Access Seek(<s_hiu_tp>): cho bit v tr hin ti ca con tr tp. l mt gi tr nguyn trong khong t 1 n 2147483647. i vi tp Random, hm cho bit s hiu ca bn ghi tnh t 1 m con tr tp ang nh v. i vi cc tp cn li, hm cho bit s hiu byte tnh t 1 m con tr tp ang nh v. Mnh Seek: SEEK [#]<s_hiu_tp>, V_tr trong , V_tr l s nguyn dng trong khong t 1 n 2147483647 xc nh v tr m con tr tp s di chuyn ti. i vi tp Random, V_tr l s hiu bn ghi tnh t 1. i vi tp Binary, V_tr l s hiu byte tnh t 1. Ch : Nu V_tr = 0 hoc m th s bo li Nu V_tr ln hn s bn ghi hin c (V d: trn tp ch c 6 bn ghi m V_tr = 9) th con tr tp s nh v ti cui tp.
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
40
5.1.2 Tp hp i tng
Tp hp i tng l i tng nh sn ca Access. Cc i tng cng kiu l i tng con ca tp hp i tng. Tn: ta thm s vo ng sau. V d: Forms, TableDefs, QueryDefs... biu din mt i tng trong tp hp, c nhng cch sau: <Tp hp>(i), trong i = 0, 1, 2,... <Tp hp>(<Tn i tng>) <Tp hp>!<Tn i tng> (nu tn i tng khng c du cch) <Tp hp>![Tn i tng] (nu tn i tng c du cch)
5.1.3 i tng khi thu. Cch biu din cc thnh phn ca mt i tng
i tng khi thy khng l i tng con ca bt k i tng no. i tng khi thy ng u trong biu din ca cc thnh phn i tng Cc i tng khi thy thng dng l: Ca Access: Forms, Reports Ca DAO: DbEngine Ca ADO: Connections, Catalog Ca MsOffice: CommandBars Khi biu din thnh phn no ca i tng, phi tun theo quy nh sau: Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
41
Bi ging Lp trnh trong Access Xut pht t i tng khi thy -> Cc i tng trc thuc i tng va c biu din -> Cc thnh phn ca i tng. Nu tn i tng khng theo quy nh v tn trong lp trnh th phi bao bng cp ngoc vung.
Bi ging Lp trnh trong Access Tn ca mt i tng do ngi dng t t nh tn bng, tn Form.... Cc hng chun ca Access. Chng ta s c dp bit n cc tham s ny ngay di y: Phng thc Close DoCmd.Close <Kiu i tng>, <Tn i tng>, <Cch ghi> trong : <Kiu i tng>: xc nh kiu i tng cn ng, chn trong cc hng chun sau: acTable, acQuery, acForm, acReport, acMacro, acModule. <Tn i tng>: xc nh tn ca i tng cn ng. <Cch ghi>: c ghi li cc thay i ca i tng trc khi ng hay khng, chn mt trong cc hng: acSaveNo (khng ghi), acSaveYes (c ghi), acSavePrompt. V d: DoCmd.Close acForm, MainForm, acSaveYes s ng mu biu MainForm v ghi li mi thay i ca mu biu ny trc khi ng. Phng thc OpenForm DoCmd.OpenForm <Tn form>, <View>, <Tn b lc>, <iu kin lc>, <DataMode>, <WindowMode> <Tn form>: chui biu th tn biu thc cn m. <View>: chn trong cc hng sau: acDesign, acForm, acNormal (mc nh), acPreview. <Tn b lc>: chui biu th tn ca mt truy vn dng sp xp v/hoc lc ra cc thng tin cn thit. <iu kin lc>: chui cha iu kin chn lc thng tin. <DataMode>: chn trong cc hng sau: acFormAdd, acFormEdit, acFormPropertySettings (mc nh), acFormReadOnly. <WindowMode>: chn trong cc hng sau: acDialog, acHidden, acIcon, acWindowNormal (mc nh). V d: m form danh sach thi sinh theo dng form View cp nht d liu cho nhng th sinh c tng im ln hn hoc bng 18, ta vit nh sau: DoCmd.OpenForm danh sach thi sinh, acNormal, , [tong diem]>=18, acFormEdit Phng thc OpenTable dng m mt bng, c 3 tham s theo th t sau: Tham s ngha / Gii thch 43
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Bi ging Lp trnh trong Access Table Name View DataMode biu thc chui biu th tn bng cn m. chn trong cc gi tr sau: acViewDesign, acViewNormal (mc nh dng Datasheet View), acViewPreview. chn trong cc gi tr sau: acAdd, acEdit (mc nh), acReadOnly.
V d: m bng danh sach can bo cp nht d liu, ta vit nh sau: DoCmd.OpenTable danh sach can bo, acViewNormal, acEdit Phng thc OpenQuery dng m mt truy vn, c 3 tham s theo trnh t: Tham s Query Name View DataMode ngha / Gii thch chui biu th tn truy vn cn m. chn trong danh sch sau: acViewDesign, acViewNormal (mc nh), acViewPreview. chn trong cc gi tr sau: acAdd, acEdit (mc nh), acReadOnly.
Phng thc OpenReport dng m mt bo biu, c 4 tham s theo th t: Tham s Report Name View Filter Name ngha / Gi tr chui biu th tn bo biu cn m. chn trong danh sch sau: acViewDesign, acViewNormal (mc nh in bo biu), acViewPreview. chui biu th tn ca mt truy vn dng sp xp v/hoc lc ra cc thng tin cn thit.
WhereCondition chui cha iu kin chn lc thng tin. Phng thc Open Module dng m mt n th, c 2 tham s theo th t sau: Tham s ModuleName ngha / Gi tr chui biu th tn n th cn m.
ProcedureName chui xc nh tn th tc ca n th. V d: m n th chuong trinh xem, sa, b sung cc hm, th tc ca n bt u t th tc c tn tinh_toan: DoCmd.OpenModule chuong trinh, tinh_toan Cc phng thc trn cc control Sn li cc i tng
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
44
Bi ging Lp trnh trong Access i tng hin ni dung mi nht m n va thay i, ta dng phng thc RepaintObject c 2 tham s nh sau: Tham s ObjectType ngha / Gii thch chn trong danh sch sau: acDefault, acForm, acMacro, acModule, acQuery, acReport, acTable.
ObjectName chui biu th tn i tng cn sn li. V d: sau khi gn gi tr cho cc iu khin ca mu biu [hoc sinh], ta dng cu lnh sau thy s thay i ca mu biu trn mn hnh: DoCmd.RepaintObject acForm, hoc sinh t con tr chut ti mt iu khin dnh v con tr ti mt iu khin, ta dng cu lnh: DoCmd.GotoControl Tn iu khin V d: DoCmd.GotoControl Noi sinh s nh v con tr ti iu khin [Noi sinh]. Hin ni dung va thay i ca mt iu khin C khi ni dung ca mt iu khin thay i nhng trn mu biu, ta vn ch quan st c ni dung c ca n. iu ny thng xy ra i vi cc hp ComboBox. hin th ni dung mi nht ca mt iu khin, ta dng cu lnh sau: DoCmd.Requery Tn iu khin Di chuyn n mt bn ghi mi di chuyn n mt bn ghi mi, bin n thnh bn ghi hin hnh, ta dng phng thc GotoRecord c 4 tham s: Tham s ObjectType ngha / Gi tr chn trong danh sch sau: acActiveDataObject (mc nh), acDataForm, acDataQuery, acDataTable. chn trong danh sch: acFirst, acGoto, acLast, acNewRec, acNext (mc nh), acPrevious. biu thc nguyn (gi s c gi tr l n). Nu tham s Record l acNext hoc acPrevious th s di chuyn xung pha di hoc ln pha trn n bn ghi. Nu tham s Record l acGoto th s di chuyn n bn ghi c s th t l n (tnh t 1). 45
V d: Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Bi ging Lp trnh trong Access DoCmd.GotoRecord acDataForm, Tim kiem, acGoto, m s di chuyn n bn ghi th m ca mu biu [Tim kiem]. Phng thc SetMenuItem Phng thc ny dng iu khin trng thi ca Menu. C php nh sau: DoCmd.SetMenuItem menuIndex [, CommandIndex / SubMenu] [, Command Index ] [, Flag] Tham s menuIndex CommandIndex SubMenu CommandIndex ngha / Gii thch l mt gi tr nguyn tnh t 0, xc nh ch s ca menu trong h menu. / l mt s nguyn tnh t 0, xc nh ch s ca nt lnh hoc ch s ca menu con ca menu c ch s menuIndex. l mt s nguyn tnh t 0, xc nh ch s ca nt lnh trong menu con c ch s CommandIndex/SubMenu. Tham s ny ch dng khi tham s th hai l ch s ca menu con. Quy nh trng thi mi ca i tng c xc nh bi ba tham s trn, l mt trong cc hng sau: acMenuCheck (nh du). acMenuGray (b xm, khng cho php thc hin nt lnh). acMenuUncheck (khng nh du). acMenuUngray (khng b xm, y l trng thi mc nh). Chng ta s to mt h menu minh ha chc nng ca phng thc SetMenuItem nh sau: File Open V Access V Window trong : Chc nng Open b xm i, cha s dng c do ta cha ci t. Khi form hin ln ln u, "Tam gic" c chn. V "Tam gic" c chn nn chc nng "Tnh di" b xm i (khng s dng c). Ta vit on m trong th tc x l s kin Open ca Form: Chn hnh hc Chc nng Tam gic on thng Tnh din tch Tnh di
Flag
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
46
Bi ging Lp trnh trong Access chiu trn cy phn cp cc i tng ca Access biu din cc i tng trong tp hp. V d: Forms(i), i = 0, 1, ... ch form c m th i. Forms!Form1.Control!Label1 hoc Forms!Form1!Label1 ch nhn Label1 trn Form1 Trong Access c form chnh v form ph. Mun tham chiu n cc iu khin trn form ph, ta s dng c ch phn cp sau: i tng khi thy Forms. Cc form ang m. Cc iu khin trn cc form ang m (trong c subform: m bo s nht qun gia tn ca iu khin subform v tn subform). i tng form l i tng con ca iu khin subform. Mt s thuc tnh hay dng trong Form: Thuc tnh Name Visible Count Tn i tng hin th hay khng hin th ca form hay control xc nh s i tng thnh phn ca tuyn tp. ngha
ControlType xc nh kiu ca cc control trong form/report. Nhn cc gi tr sau: acLabel, acRectangle, acLine, acImage, acCommandButton, acOptionButton, acCheckBox, acTextBox, acListBox, acComboBox, Value biu th gi tr ca cc iu khin TextBox, ListBox, ComboBox. V d 1: In danh sch cc mu biu ang m Cch 1: Sub LietKe() Dim n As Integer, I As Integer n = Forms.Count For i = 0 To n-1 MsgBox "Tn form th" & str(i) & "l:" & Forms(i).Name Next End Sub Cch 2: Sub LietKe() Dim fm As Form, i% i=0 For Each fm In Forms Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 48
Bi ging Lp trnh trong Access MsgBox "Tn form th" & str(i) & "l:" & fm.Name i=i+1 Next End Sub V d 2: dng php gn thay i gi tr ca cc thuc tnh hoc control. Gi s "ho ten" l mt textBox trn form "ho so". Dim f As Form DoCmd.OpenForm "ho so" ' M mu biu [ho so] Set f = Forms![ho so] ' gn bin f vo mu biu f![ho ten] = "Nguyen Van A" ' xut hin dng ch Nguyn Vn A trn [ho ten] f.Visible = True ' hin mu biu f![ho ten].Visible = False ' n iu khin [h ten] Reports Tp hp i tng Reports l i tng sn c ca Access dng tham chiu n cc bo co ang m. Cch biu din cc thnh phn trong tp hp i tng Reports tng t nh tp hp i tng Forms. Mun tham chiu n cc iu khin trn report ph, c th s dng c ch phn cp sau: i tng khi thy Reports. Cc bo co ang m. Cc iu khin trn cc bo co ang m (trong c iu khin subreport: m bo s nht qun gia tn iu khin subreport v tn subreport). i tng report l i tng con ca iu khin subreport. iu khin xut hin trn report ph ca report ang xt. Ch : bo biu cng tng t nh mu biu.
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
49
QueryDefs Parameters
Recordsets Fields
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
50
Bi ging Lp trnh trong Access Set <tn bin QueryDef> = <Tn bin Database>.CreateQueryDef([<tn query>][,<Vn bn SQL>]) Tn truy vn v vn bn SQL u l xu k t. Nu khng ch r trong phng thc, phi gn gi tr cho cc thuc tnh Name v SQL ca bin kiu QueryDef. .Execute: Thc hin truy vn hnh ng (b sung, loi b, thay i), to bng... <Tn bin CSDL>.Execute <Ngun>,<Cch thc> Ngun: Xu k t ch tn hoc vn bn SQL ca truy vn. Cch thc: cho php chn mt s hng ca DAO, c chp nhn mt nht qun d liu khng... .OpenRecordset Set <tn bin kiu Recordset> = <Tn bin CSDL>.OpenRecordset (<Ngun>[,<Kiu>]) Ngun: xu k t ch tn bng, tn truy vn hoc vn bn SQL ca truy vn. Kiu: Kiu ca Recordset. Chn cc hng ca DAO nh: dbOpenTable, dbOpenDynaset, dbOpenSnapshot.
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
Bi ging Lp trnh trong Access s <tn> < rng> <kiu> do ngi dng t theo quy tc. tnh bng byte i vi text. nhn mt trong cc gi tr nguyn sau: dbBoolean, dbByte, dbInteger, dbLong, dbCurrency, dbSingle, dbDouble, dbDate, dbBinary, dbText, dbLongBinary(kiu OLE), dbMemo. .CreateIndex: to ch s mi cho bng Set <bin ch s> = <tn bin TableDef>.CreateIndex(<tn>) .OpenRecordset
c. Tp hp i tng Fields
Phng thc .Append: thm trng mi vo bng <Tn i tng>.Fields.Append <tn bin trng> .Delete: xa mt trng trong bng <Tn i tng>.Fields.Delete <tn trng>
Public Sub CreateTable(name As String, quantityOfColum As Integer) Dim db As Database, tb As TableDef, fd As Field Dim i As Integer, fieldName As String Set db = CurrentDb Set tb = db.CreateTableDef(name) For i = 1 To quantityOfColum fieldName = Colum & i Set fd = tb.CreateField(fieldName, dbInteger) tb.Fields.Append fd Next db.TableDefs.Append tb End Sub
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 52
Bi ging Lp trnh trong Access V d 2: to mt bng mi tn l [Ho so] gm trng [Ho ten] kiu text, trng [Nam sinh] kiu Integer.
Sub TaoBang() Dim DB As Database, TB As TableDef, FD As Field 'DB gn vi CSDL hin hnh Set DB = DBEngine.Workspaces(0).Databases(0) ' To bng [Ho so] v gn vo bin TB Set TB = DB.CreateTableDef("Ho so") ' To trng [Ho ten] kiu Text, rng 25 byte Set FD = TB.CreateField("Ho ten", dbText, 25) ' B sung vo tuyn tp cc trng ca bng TB.Fields.Append FD ' To trng [Nam sinh] kiu Integer Set FD = TB.CreateField("Nam sinh", dbInteger) ' B sung vo tuyn tp cc trng ca bng TB.Fields.Append FD ' B sung bng vo tuyn tp cc bng ca CSDL hin hnh DB.TableDefs.Append TB End Sub e. Tp hp i tng QueryDefs. i tng kiu QueryDef
Tp hp i tng QueryDefs Thuc tnh: .Count: s lng truy vn trong CSDL. Phng thc: .Append: thm truy vn mi vo CSDL. <Tp hp>.Append <tn bin QueryDef> .Delete: xa mt truy vn khi CSDL <Tp hp>.Delete <tn truy vn> (c th l thuc tnh Name) i tng kiu QueryDef Thuc tnh: .Name: Tn truy vn. .SQL: Vn bn SQL ca truy vn. Phng thc: .Execute: thc hin truy vn (hnh ng - to lp CSDL)
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
53
Bi ging Lp trnh trong Access .OpenRecordset: to Recordset, ging phng thc ca i tng Database, khng c tham s ngun. V d: To mt truy vn [DSHS Gioi] gm cc hc sinh c im trung bnh >= 8:
Sub hsGioi() Dim DB As Database Dim QR As QueryDef Dim st As String Set DB = CurrentDB Set QR = DB.CreateQueryDef() QR.Name = "DSHS Gioi" st = "Select distinctrow DSHS.* from DSHS" st = st + "Where [Diem TB]>=8" QR.SQL = st DB.QueryDefs.Append QR ' M truy vn xem DoCmd.OpenQuery "DSHS Gioi" End Sub f. Tp hp i tng Recordsets. i tng kiu Recordset
y l i tng quan trng nht trong cc i tng ca DAO. Chng c dng thc hin cc thao tc trn CSDL nh tm kim, b sung, loi b, thay i,... trong chng trnh. Tp hp i tng Recordsets Thuc tnh: .Count: tng s recordset ang s dng Phng thc: .Refresh: to li cc recordset khi lc CSDL thay i i tng kiu Recordset Dng tham chiu n mt tp hp cc bn ghi trn CSDL. Tp hp ny c th nm trong mt bng hay mt truy vn. C ba loi recordset chnh: Bng, Dynaset, Snapshot. Ngoi ra cn mt s loi khc dng khi nhn d liu t cc ngun khc thng qua ODBC. Phin bn Access 2000 tr ln khng phn bit r s khc nhau gia cc loi recordset. truy nhp n tng trng ca recordset, ngi ta c th dng cc cch thc sau: Qua tp hp i tng Fields: Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 54
Bi ging Lp trnh trong Access <Bin Recordset>.Fields(i) i = 0, 1, 2,... <Bin Recordset>.Fields(<tn>) <Bin Recordset>.Fields!<tn> Truy nhp trc tip vo trng: <Bin Recordset>.(Tn) <Bin Recordset>!<Tn> Thuc tnh ca i tng kiu Recordset: .AbsolutePosition: v tr con tr bn ghi ca Recordset, gi tr : 0, 1, 2,... .BOF (T/F) : ng khi con tr bn tri bn ghi u tin .EOF (T /F) : ng khi con tr bn phi bn ghi cui cng .Filter : xu k t th hin iu kin lc cc bn ghi trong recordset .NoMatch (T/F) : dng khi tm kim bng cc phng thc FindFirst, FindLast, FindNext, FindPrevious. .RecordCount: s bn ghi trong recordset. Phng thc ca i tng kiu Recordset .AddNew: thm bn ghi trng vo recordset. Chng ch c cp nht vo CSDL khi ta gi phng thc Update. .Close: ng recordset. .Delete: xa bn ghi hin hnh trong recordset. .Edit: sa bn ghi hin hnh trong recordset. Chng ch c cp nht vo CSDL khi ta gi phng thc Update. .Update: Cp nht nhng thay i trn recordset. .CancelUpdate: b qua khng cp nht nhng thay i trn recordset. .FindFirst | .FindLast | .FindNext | .FindPrevious <iu kin>: chuyn con tr n bn ghi u tin, cui cng, ngay sau bn ghi hin hnh, ngay trc bn ghi hin hnh tha mn iu kin nu c. Nu khng c, chuyn n EOF. .MoveFirst | .MoveLast | .MoveNext | .MovePrevious: chuyn con tr n bn ghi u tin, cui cng, ngay sau bn ghi hin hnh, ngay trc bn ghi hin hnh. Phng thc OpenRecordset dng to mt bin Recordset. C th dng phng thc ny vi cc i tng: Database, TableDef, QueryDef. Cch vit: Set <bin Recordset> = i_tng.OpenRecordset(Ngun, loi) trong : Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 55
Bi ging Lp trnh trong Access Tham s i_tng Ngun ngha l mt bin i tng kiu Database, TableDef, QueryDef l chui k t biu th tn bng, truy vn hoc cu lnh SQL. Tham s Ngun ch s dng vi i tng Database, cn vi i tng TableDef v QueryDef th ngun chnh l cc i tng ny. l mt trong cc dbOpenSnapshot gi tr sau: dbOpenTable, dbOpenDynaset,
Loi Loi mc nh
Nu b qua tham s loi th Access s dng loi mc nh theo quy tc sau: Vi i tng l bng ca CSDL hin hnh th loi mc nh l dbOpenTable. Vi i tng l truy vn hoc l bng ca CSDL khng hin hnh th loi mc nh l dbOpenDynaset.
V d 1: m s bn ghi ca mt Recordset
Sub Dem_so_ban_ghi() Dim DB As Database, rec As RrecordSet, total Set DB = CurrentDB Set rec = DB.OpenRecordSet("DSCB") total = rec.RecordCount MsgBox "Tong so ban ghi la:" & str(total) rec.Close DB.Close End Sub
V d 2: Xt bng DSCB trong c cc trng Bac_luong v Nam_len_luong. Nu nm ln lng trc 1998 th bc lng s c cng thm 200,000. Th tc c vit nh sau:
Sub Dieu_chinh_luong() Dim DB As database, rec As RecordSet Set DB = CurrentDB Set rec = DB.OpenRecordSet("DSCB") Do Until rec.EOF if rec![Nam_len_luong] <=1998 then rec.Edit rec![Bac_luong] = rec![Bac_luong] + 200000 rec.Update
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 56
Bi ging Lp trnh trong Access Truy nhp CSDL hin hnh: Set <Tn bin Connection> = CurrentProject.Connection Thuc tnh ca i tng kiu Connection .Connection String: nhng thng tin lin quan n kt ni, bao gm c nhng thng tin c ch ra trong dng kt ni, ngoi ra cn c user name, password, mt m ha... V d: Ta vit on th tc sau:
.Mode: xc nh qun c lm i vi CSDL, ngm nh l adModeUnknown Cc gi tr ca thuc tnh ny nh bng sau: Gi tr adModeUnknown ngha Cha thit lp vic phn quyn s dng hoc khng phn quyn s dng. adModeRead Ch c. adModeWrite Ch ghi. adModeReadWrite C th c ghi. adModeShareDenyWrite Ngn cn ngi khc m CSDL ghi. adModeShareDenyRead Ngn cn ngi khc m CSDL c. adModeShareExclusive Ngn cn ngi khc m CSDL. adModeShareDenyNone Ngn cn ngi khc lm mi vic vi CSDL. Cc phng thc ca i tng kiu Connection Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 58
Bi ging Lp trnh trong Access .Open: dng m mt kt ni. .Close: ng kt ni. .Execute: thc hin truy vn trong CSDL c tham chiu, c th thc hin c truy vn chn.
Bi ging Lp trnh trong Access adCmdStoredProc Ngun l th tc. adCmdUnknown Kiu ca ngun cha xc nh, ADO s t xc nh ly. Cc phng thc di chuyn con tr: ging Recordset ca DAO .MoveFirst | .MoveLast | .MoveNext | .MovePrevious
Tm kim: .Find: chuyn con tr n bn ghi u tha mn iu kin (nu c), n cui tp EOF (nu khng c). Cc phng thc: .AddNew, .Delete, .Edit, .Update, .Close ging nh trong DAO. Cc thuc tnh ca i tng kiu Recordset .ActiveConnetion, CursorType, LockType .Filter: b lc ca recordset, c ch khi tm kim vi iu kin phc tp. Khi khng mun lc na, gn <tn bin Recordset>.Filter = adFilterNone. V d: Vit th tc trn form cho php tm kim thng tin nhn vin theo iu kin And
Form trn gm c cc iu khin sau: iu khin Nhn (Label) Hp lit k (ListBox) Thuc tnh Name Caption Name Gi tr ca thuc tnh Label1 Tm kim thng tin nhn vin LstKetqua
RowSourceType Table/Query Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 60
Bi ging Lp trnh trong Access RowSource Hp vn bn (TextBox) Name Hp vn bn Nt lnh Nt lnh Name Name Caption Name Caption trng (s gn trong chng trnh) Text0 Text2 Command4 Tm Command5 Thot
Th tc click chut ca nt Command4: Private Sub Command4_Click() Dim cn As Connection Dim rs As ADODB.Recordset Dim tieuchuan As String Dim dkhoten As String, dkma As String Dim loc As String Set cn = CurrentProject.Recordset Set rs = New ADODB.Recordset With rs .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open "nhan vien", cn, , , adCmdTable End With dkma = IIf(Not IsNull(Text0),"manv like '*" & Text0 & "*","") dkhoten = IIf(Not IsNull(Text2),"hoten like '*" & Text2 & "*","") tieuchuan = IIf(dkma<>"",dkma & IIf(dkhoten<>"","and","")& dkhoten,dkhoten) rs.Filter = tieuchuan If rs.EOF then LstKetqua.RowSource = "" LstKetqua.Requery MsgBox "Khong co nhan vien nao thoa man" Exit Sub End If rs.Close cn.Close loc = "select manv, hoten, luong, diachi from nhanvien where" & tieuchuan LstKetqua.RowSource = loc Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 61
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
62
Private Sub Command5_Click() If IsNull(Text0) Then MsgBox "Nhap vao ma vat tu can thay doi" End If If IsNull(Text2) Then MsgBox "Nhap vao ma vat tu moi" End If Dim cn As Connetion, cm As Command Dim str As String Set cn = CurrentProject.Connection Dim rs As New ADODB.Recordset With rs .ActiveConnection = cn .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open("select * from vattu where mavt = '"& Text0 &"'") If .BOE And .EOF Then MsgBox "Khong ton tai vat tu co ma" & Text0 Exit Sub End If End With Set cm = New ADODB.Command
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni 63
str = "parameters macu text(5), mamoi text(5);" str = str & "update vattu set mavt = mamoi where mavt = macu" With cm .ActiveConnection = cn .CommandText = str .CommandType = adCmdText End With Dim pr1 As Parameter, pr2 As Parameter Set pr1 = cm.CreateParameter("macu", adVarWChar, adParamInput, 5) cm.ParametersAppend pr1 Set pr2 = cm.CreateParameter("mamoi", adVarWChar, adParamInput, 5) cm.ParametersAppend pr2 pr1.Value = Text0 pr2.Value = Text2 cm.Execute End Sub
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
64
Bi ging Lp trnh trong Access To macro Menu chnh. Nu chng trnh khng dng giao din Menu (ch dng giao din nt lnh), th Menu chnh l mt menu rng, khi macro Menu chnh c thit k nh sau: Action: AddMenu Cc tham s: Menu Name Menu Macro Name Tn macro ph Status Bar Text Macro ph ch a vo cho th tc, n s khng gy ra bt k hnh ng no. Ta thit k macro ph nh sau: Action: CancelEvent Bc 3: Mu biu chnh Khi thit k mu biu chnh cn s dng 2 thuc tnh Menu B v On Open ca mu biu: a tn ca macro Menu chnh vo dng thuc tnh Menu Bar: Menu Bar: Tn macro Menu chnh Lp hm x l s kin On Open ca mu biu chnh nh sau: Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdWindowHide End Sub Bc 4: To macro AutoKey chn bt, lm v hiu ha cc phm m Access hay dng nh: F1 phm tr gip F11 tr v ca s Database . lm v hiu ha cc phm F1, F2, F3 v cc t hp phm Ctrl + F1, Shift + Insert, ta to macro Autokeys vi ni dung nh sau: Macro Name Action Comment {F1} CancelEvent {F2} CancelEvent {F3} CancelEvent ^{F1} CancelEvent +{INSERT} CancelEvent Cch vit cc phm v t hp phm trong ct Macro Name nh sau: Phm hoc t hp phm V d cch vit Ctrl + phm ch hoc phm s ^A hoc ^4 Phm chc nng bt k {F1} Ctrl + phm chc nng bt k ^{F1} Shift + phm chc nng bt k +{F1} Insert {Insert} Ctrl + Insert ^{Insert} Shift + Insert +{Insert} Ctrl + Delete ^{Delete} hoc ^{Del} Shift + Delete +{Delete} hoc +{Del}
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
66
6.2.2 G b mt khu
Phi nh mt khu m c s d liu. Trong ca s Database chn menu Tools, chn mc Security, mc Unset Database Password. Hp thoi Unset Database Password m ra. G mt khu ci t vo Password v nhn OK. Nh vy mt khu c g b. Ch : Khi ta m mt c s d liu m chn mc Exclusive th ta kha c s d liu i vi tt c nhng ngi s dng khc trong sut thi gian m n. Mc la chn ny rt hu ch cho nhng my tnh ni mng nhng n li khng quan trng i vi ngi s dng my tnh ring l.
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
68
Nguyn Hng Phng - Email: phuongnh@it-hut.edu.vn Khoa Cng ngh thng tin - H Bch Khoa H Ni
69