You are on page 1of 48

Baøi giaûng Heä quaûn trò CSDL Access

CHÖÔNG I: TOÅNG QUAN VEÀ MICROSOFT ACCESS


I. HEÄ QUAÛN TRÒ CSDL MICROSOFT ACCESS
 Laø moät heä quaûn trò CSDL thoâng duïng chaïy treân neàn HÑH
Windows, phuø hôïp vôùi caùc qui moâ quaûn lyù töø nhoû ñeán
lôùn trung bình. Microsoft Access thuoäc boä MicroSoft Office neân
phieân baûn(version) cuûa noù laø phieân baûn cuûa boä Office: 6.0,
97, 2000, XP…Caùc phieân baûn sau coù theå söû duïng toát caùc
öùng duïng phieân baûn tröôùc vaø cho pheùp chuyeån
ñoåi(convert) caùc öùng duïng veà phieân baûn tröôùc.
 Vôùi Microsoft Access coù theå taïo chöông trình quaûn lyù CSDL
möùc ñôn giaûn maø khoâng caàn phaûi laâp trình. Ngoaøi ra
Microsoft Access coù hoã trôï ngoân ngöõ laäp trình Visual Basic for
Application (VBA).
 CSDL Access deã daøng keát noái vôùi caùc öùng duïng CSDL khaùc
nhö: Visual Basic, ASP, JSP, PHP...
 Microsoft Access cho pheùp baûo maät CSDL trong moâi tröôøng
nhieàu ngöôøi duøng.
 Hoã trôï cô cheá toaøn veïn tham chieáu döõ lieäu: töï ñoäng kieåm
tra khoaù chính vaø caùc quan heä.
 Hoã trôï coâng cuï thoâng minh (wizard) cho pheùp thieát keá
nhanh choùng caùc ñoái töôïng.
 Vôùi taäp hôïp ngoân ngöõ SQL ña daïng vaø maïnh giuùp deã
daøng thöïc hieän truy vaán döõ lieäu. Ngoaøi ra, coâng cuï truy
vaán baèng thí duï QBE (Query By Example) cho pheùp thöïc hieän
caùc truy vaán maø khoâng caàn quan taâm ñeán caáu truùc
ngoân ngöõ SQL.
 Hoã trôï kieåu döõ lieäu tröôøng OLE( Object Linking and Embeding)
cho pheùp nhieàu ngöôøi duøng ñöa vaøo CSDL caùc taäp tin: vaên
baûn Word, baûng tính Execel, taäp tin hình aûnh BMP...Coù khaû
naêng keát xuaát trao ñoåi döõ lieäu qua laïi vôùi caùc öùng duïng
khaùc nhö: Word, Excel, Foxpro, HTML...
II. KHÔÛI ÑOÄNG MICROSOFT ACCESS
1. Caùc böôùc thöïc hieän:
 Khôûi ñoäng Windows.
 Click Start/ Programs/ MicroSoft Access. Sau ñoù xuaát hieän
hoäp thoaïi môû hay taïo môùi taäp tin CSDL
2. Hoäp thoaïi môû hay taïo môùi taäp tin CSDL Microsoft
Access
 Nuùt choïn Blank Access database: cho pheùp taïo môùi moät
CSDL Access.
 Nuùt choïn Access database wizard pages and project: cho
pheùp taïo moät öùng duïng Access maãu vôùi söï hoã trôï cuûa
trình thoâng minh wizard.

Trang:1
Baøi giaûng Heä quaûn trò CSDL Access

 Nuùt choïn Open an existing file: cho pheùp môû moät taäp tin
CSDL Access ñaõ toàn taïi treân ñóa. Muïc choïn More file cho
pheùp môû tieáp hoäp thoaïi Open File.
Löu yù: coù theå môû tröïc tieáp taäp tin CSDL Microsoft Access trong
cöûa soå My Computer.
3. Caùc thaønh phaàn trong maøn hình Microsoft Access.
Sau khi khôûi ñoäng Microsoft Access cuûa soå Microsoft Access xuaát
hieän vaø bao goàm coù caùc thaønh phaàn chính sau:
 Thanh thöïc ñôn(Menu bar) vaø thanh coâng cuï(Tool bar).
 Cöûa soå CSDL chöùa caùc ñoái töôïng trong CSDL.
 Thanh traïng thaùi vaø höôùng daãn laøm vieäc ôû döôùi cöûa soå
(Status bar).
4. Thoaùt khoûi Microsoft Access .
File/ Exit = Alt+F4
III. TAÄP TIN CSDL ACCESS.
Toaøn boä caùc ñoái töôïng trong CSDL Access ñöôïc löu tröõ trong
moät taäp tin coù phaàn môû roäng mdb. Caùc thao taùc vôùi taäp tin
CSDL trong cöûa soå Microsoft Access:
1. Môû moät taäp tin CSDL môùi: File/ New = Ctrl+N = Click nuùt
New treân thanh coâng cuï.
Coù theå taïo moät Blank database hay moät database wizard.
2. Môû moät taäp tin CSDL ñaõ coù: File/ Open = Ctrl+O = Click
nuùt Open treân thanh coâng cuï. Tieáp theo choïn nôi löu tröõ taäp
tin CSDL(Lookin) vaø choïn taäp tin, sau ñoù click nuùt Open.
Neáu muoán môû taäp tin CSDL ôû cheá ñoä ñoäc quyeàn( chæ moät
ngöôøi söû duïng) thì choïn tuyø choïn Open exclusive.
IV. CAÙC ÑOÁI TÖÔÏNG BEÂN TRONG TAÄP TIN CÔ SÔÛ DÖÕ
LIEÄU:
1. Tables: chöùa caùc ñoái töôïng laø caùc baûng(Table) löu tröõ döõ
lieäu trong CSDL. Table coù theå laø table trong CSDL hay laø table
lieân keát(link) ñeán table cuûa CSDL khaùc nöõa.
2. Queries: chöùa caùc ñoái töôïng laø caùc truy vaán laø(Query)
ñöôïc taïo ra ñeå thöïc hieän truy vaán döõ lieäu trong CSDL.
3. Forms: chöùa caùc maøn hình caäp nhaät döõ lieäu hay giao dieän
hoäi thoaïi laø caùc bieåu maãu(Form) ñöôïc taïo ra ñeå caäp nhaät
döõ lieäu hay ñeå giao tieáp vôùi ngöôøi söû duïng.
4. Reports: chöùa caùc khuoân daïng keát xuaát döõ lieäu ra maøn
hình hoaëc maùy in laø caùc baùo bieåu(Report) ñöôïc taïo ra ñeå
keát xuaát döõ lieäu.
5. Macros: chöùa caùc taäp leänh(Macro) ñöôïc taïo ra ñeå baåy söï
kieän cho caùc ñoái töôïng: menu, nuùt leänh, textbox…
6. Modules: chöùa caùc Module laø caùc haøm vaø thuû tuïc laäp
trình baèng ngoân ngöõ VBA ñeå thöïc hieän caùc chöùc naêng
caäp nhaät döõ lieäu hay caùc chöùc naêng linh ñoäng khaùc.
Caùc thao taùc cô baûn treân caùc ñoái töôïng:

Trang:2
Baøi giaûng Heä quaûn trò CSDL Access

 Choïn ñoái töôïng: Click ñoái töôïng.


 Ñoåi teân: Edit/ Rename hay aán phím F2.
 Xoaù: Edit/ Delete hay aán phím Delete.
 Môû xem noäi dung: Click nuùt Open hay Preview.
 Chaïy caùc leänh: Click Run
 Thieát keá laïi: Click Design
 Taïo ShortCut: Edit\Create ShortCut
 Sao cheùp ñoái töôïng: Leänh Edit\Copy roài leänh Edit\Paste
 In ñoái töôïng: Leänh File\Print hoaëc aán CTRL+P hoaëc
nhaép nuùt Print Preview in ra maøn hình xem tröôùc.
 Xuaát ñoái töôïng: Leänh File\ Save as or Export
 Ñöa ñoái töôïng trong CSDL beân ngoaøi vaøo: Click
phaûi\Import. Môû CSDL khaùc vaøchoïn caùc ñoái töôïng ñeå
import.
 Link ñeán baûng trong CSDL beân ngoaøi: Click phaûi\Link
Table. . Môû CSDL khaùc vaøchoïn caùc baûng ñeå link.
Coù theå Right Click choïn chöùc naêng töông öùng.

CHÖÔNG II: BAÛNG DÖÕ LIEÄU (TABLE)

Moät CSDL ñöôïc thieát keá toát cho pheùp baïn truy caäp nhanh
choùng ñeán caùc thoâng tin caàn khai thaùc giuùp baïn tieát kieäm
thôøi gian vaø ruùt ra ñöôïc nhöõng keát quaû nhanh choùng hôn vaø
chính xaùc. Quaù trình xaây döïng moät öùng duïng quaûn lyù CSDL
laø quaù trình xaây döïng caùc chieán löôïc, caùc chöông trình quaûn
lyù caùc baûng döõ lieäu(Table). Ñeå coù ñöôïc caáu truùc caùc baûng
nhö theá naøo cho hôïp lyù vaø ñuùng chuaån CSDL, quan heä giöõa
caùc baûng ra sao. Ñieàu ñoù phuï thuoäc vaøo töøng heä thoáng
thoâng tin vaø phuï thuoäc vaøo vieäc “Phaân tích thieát keá heä
thoáng” thoâng tin quaûn lyù.
I. CAÙC KHAÙI NIEÄM
• Baûng(Table):
Baûng laø duøng ñeå bieåu dieãn moät ñoái töôïng thoâng tin
lieân quan ñeán moät chuû ñeà.
Ví duï: Baûng SINHVIEÂN

Masv Ho Ten Ngaysinh Malop


T001 Nguyeãn Bình 20/10/1980 T2001
Thanh
T002 Leâ Thò Dieãm 10/07/1981 T2001
L001 Traàn Vaên Ba 21/01/1982 L2002
… …. … … …

Baûng LÔÙP

Trang:3
Baøi giaûng Heä quaûn trò CSDL Access

Malop Tenlop Makho Hedaotao Namvao


a
T2001 ÑHSP Toaùn TH Chính quy 2001
L2002 ÑHSP Lyù TH Chính quy 2002
A2002 ÑHSP Anh vaên NN Chuyeân tu 2002
… … … … …

Moät baûng ñuôïc trình baøy döôùi hình thöùc haøng – coät. Moãi
haøng laø moät maãu tin, moãi coät laø moät tröôøng thoâng tin.
Moät CSDL coù theå coù nhieàu baûng. Khi taïo moät CSDL môùi,
baûng laø ñoái töôïng ñaàu tieân caàn taïo.
• Tröôøng(Filed): laø teân caùc coät cuûa baûng. Moãi tröôøng
coù teân tröôøng (field name), kieåu döõ lieäu cuûa tröôøng
(data type), vaø caùc quy luaät raøng buoäc veà döõ lieäu: ñieàu
kieän hôïp leä, maët naï nhaäp lieäu, coù baét buoäc nhaäp döõ
lieäu hay khoâng, coù ñöôïc pheùp ñeå troáng hay khoâng, coù
ñöôïc pheùp truøng laëp khoâng… Trong moät baûng khoâng
ñöôïc coù 2 tröôøng truøng teân nhau.
Teân tröôøng coù ñoä daøi toái ña 255 kyù töï, coù theå coù
khoaûng traéng (space). Khuyeán khích , neân ñaët teân tröôøng
khoâng coù khoaûng traéng, khoâng coù daáu tieáng Vieät, khoâng
chöùa caùc kyù hieäu ñaëc bieät ñeå deã daøng söû duïng khi tham
chieáu ñeán teân tröôøng.
• Maãu tin(Record): laø caùc doøng thoâng tin, moãi doøng laø
moät maãu tin. Caùc döõ lieäu cuï theå cuûa moãi tröôøng chính
laø thoâng tin veà moät ñoái töôïng thoâng tin cuï theå trong
baûng. Döõ lieäu cuûa moãi tröôøng yeâu caàu phaûi ñuùng vôùi
kieåu döõ lieäu cuûa tröôøng, coù ñoä daøi nhoû hôn hoaëc
baèng kích thöôùc (size) cuûa tröôøng vaø thoaû taát caû caùc
ñieàu kieän raøng buoäc.
Ví duï: moät record trong baûng sinhvieân laø moät sinh vieân,
moät record trong baûng haønghoaù laø moät haøng hoaù cuï
theå…
• Khoaù chính(Primary Key): khoaù chính laø moät hoaëc nhieàu
tröôøng trong baûng maø treân ñoù caùc maãu tin trong baûng
seõ khoâng ñöôïc coù döõ lieäu truøng nhau, döõ lieäu laø khoaù
seõ khoâng ñöôïc pheùp roãng.
• Khoaù ngoaïi(Foreign key): laø moät hoaëc nhieàu tröôøng noù
laø khoaù chính cuûa moät baûng khaùc. Khoaù ngoaïi laø hieåu
ngaàm vaø ñeå taïo quan heä cho 2 baûng, coøn khoaù chính
ñöôïc thieát laäp luùc thieát keá baûng hay luùc thay ñoåi caáu
truùc baûng.
Ví duï: Trong baûng LOP, khoaù chính laø malop, khoaù ngoaïi
laø makhoa. Trong baûng sinhvien, khoaù chính laø masv, khoaù
ngoaïi laø malop.

Trang:4
Baøi giaûng Heä quaûn trò CSDL Access

Vieäc quy ñònh khoaù chính vaø khoaù ngoaïi cho baûng laø
keát quaû cuûa quaù trình phaân tích thieát keá heä thoáng
thoâng tin.
II. CÔ BAÛN VEÀ PHAÂN TÍCH THIEÁT KEÁ HEÄ THOÁNG
1. Thöïc theå, quan heä, vaø baûn soá.
2. Moâ hình thöïc theå quan heä.
3. Moâ hình vaät lyù.
I. TAÏO BAÛNG BAÈNG DESIGN.
1. Caùc böôùc taïo baûng
 Choïn lôùp Tables.
 Click nuùt leänh New
Datasheet View: Thieát keá baûng theo daïng sheet
(gioáng Excel).
Design View: Töï thieát keá, daïng naøy cho pheùp deã linh
hoaït khi thieát keá.
Table wizard: Thieát keá vôùi söï trôï giuùp cuûa wizard.
Link Table: Lieân keát ñeán table CSDL khaùc.
Import Table: Nhaäp table töø CSDL khaùc.
2. Maøn hình thieát keá baûng
• Field Name: teân tröôøng toái ña laø 255 kyù töï.
• Data Type: Kieåu döõ lieäu cuûa tröôøng. Caùc kieåu Microsoft
Access cung caáp:
Kieåu döõ YÙ nghóa löu tröõ
lieäu
Text Kieåu chuoãi coù ñoä daøi toái ña 255 kyù töï.
Memo Kieåu chuoãi coù ñoä daøi toái ña 65535 kyù
töï.
Number Kieåu soá (soá nguyeân, soá thöïc).
Date/Time Kieåu ngaøy giôø.
Currency Kieåu soá coù ñònh daïng loaïi tieàn teä.
AutoNumber Kieåu soá nguyeân 4 byte töï ñoäng taêng,
Microsoft Access töï ñoäng taêng 1 ñôn vò khi
theâm môùi maãu tin.
Yes/No Kieåu logic Yes/No hoaëc True/False
OLE Object Kieåu ñoái töôïng nhuùng: file Word, Excel,
hình aûnh…
Hyperlink Kieåu chuoãi chæ ñöôøng ñeán moät file hay
moät trang web.
Lookup Taïo moät hoäp keâ thaû ñeå nhaäp döõ lieäu
Wizard choïn töø moät tröôøng cuûa baûng khaùc.
• Description: moâ taû ghi chuù theâm cho teân tröôøng thanh
traïng thaùi seõ hieån thò ghi chuù naøy khi môû baûng ôû
cheá ñoä caäp nhaät döõ lieäu.
• Field Size: ñoä roäng toái ña cuûa tröôøng ñöôïc quy ñònh ñoái
vôùi kieåu soá vaø chuoãi.

Trang:5
Baøi giaûng Heä quaûn trò CSDL Access

Caùc loaïi Number:


Byte: Soá nguyeân döông 1 byte
Integer: soá nguyeân 2 bytes
Long Integer: soá nguyeân 4 bytes
Single: soá thöïc 4 bytes
Double: soá thöïc 8 bytes
Replication ID: soá 16 bytes
• Decimal Places: Vò trí soá thaäp phaân ñoái vôùi soá
thöïc(Single vaø Double).
• Caption: Tieâu ñeà cho coät coù taùc duïng khi môû baûng ôû
cheá ñoä caäp nhaät döõ lieäu. Neáu khoâng coù tieâu ñeà thì
Microsoft Access laáy teân coät laøm tieâu ñeà maëc nhieân.
• Default Value: Giaù trò maëc ñònh cuûa tröôøng khi theâm
maãu tin môùi.
• Validation Rule: qui taéc raøng buoäc döõ lieäu khi nhaäp döõ
lieäu cuûa tröôøng . Ñaây laø moät bieåu thöùc logic.
• Validation Text: Chuoãi thoâng baùo loãi khi nhaäp sai
Validation Rule, neáu khoâng qui ñònh Microsoft Access seõ
thoâng baùo loãi chuaån.
• Required: Coù yeâu caàu baét buoäc phaûi nhaäp döõ lieäu
hay khoâng(Yes/No), maëc ñònh laø No.
• Allow Zero Length: Coù cho pheùp chuoãi roãng hay
khoâng(Yes/No), maëc ñònh laø No.
• Index: quy ñònh chæ muïc, saép xeáp taêng.
No: tröôøng seõ khoâng laø Index.
Yes(Duplicates Ok): tröôøng seõ laø Index vaø ñöôïc pheùp
coù giaù trò truøng laëp.
Yes(No Duplicates ):): tröôøng seõ laø Index vaø khoâng ñöôïc
pheùp coù giaù trò truøng laëp(Khoaù chính).
• Format: qui ñònh chuoãi ñònh daïng cho döõ lieäu cuûa
tröôøng, coù taùc duïng khi in aàn hoaëc hieån thò.
• Input Mask: quy ñònh chuoãimaët naï nhaäp lieäu laøm cho
vieäc nhaäp döõ lieäu chaët cheõ theo khuoân maãu mong
muoán.
3. Taïo khoaù chính cho baûng
 Choïn caùc tröôøng seõ laø khoaù, giöõ Ctrl choïn töøng
tröôøng.
 Edit\Primary Key hay Click bieåu töôïng chìa khoaù treân
thanh coâng cuï.
4. Löu laïi caáu truùc baûng, ñaët teân baûng: File\Save =
Ctrl+S
Löu yù khi baûng khoâng coù khoaù chính Microsoft Access seõ
ñeà nghò taïo moät khoaù chính töï ñoäng. Neáu choïn Yes

Trang:6
Baøi giaûng Heä quaûn trò CSDL Access

baûng seõ coù theâm tröôøng teân ID kieåu Auto Number, neáu
choïn No baûng seõ khoâng coù khoaù chính.
5. Caùc thao taùc khi thieát keá baûng
• Choïn caùc doøng filed: click treân leà traùi teân tröôøng,
neáu choïn nhieàu tröôøng aán giöõ phím Ctrl.
• Sao cheùp doøng filed.
 Choïn tröôøng.
 Edit\Copy
 Edit\Paste
• Xoaù 1 doøng filed: Choïn tröôøng\Right Click\Delete
• Thay ñoåi vò trí doøng filed: duøng chuoät keùo tröôøng ñeán
vò trí mong muoán.
• Cheøn theâm doøng: Insert\Row = Click phaûi choïn Insert row
6. Taïo caùc chæ muïc (index) cho baûng
7. Taïo Lookup cho tröôøng
VI. TAÏO QUAN HEÄ CAÙC BAÛNG.
1. Taïi sao phaûi taïo quan heä
Sau khi taïo caáu truùc caùc baûng, luùc naøy caùc baûng maëc
ñònh chöa coù quan heä gì vôùi nhau caû, böôùc tieáp theo laø
thieát laäp quan heä giöõa baûng. Taïo quan heä cho caùc baûng
laøm cho vieäc nhaäp döõ lieäu vaøo caùc baûng ñöôïc chaët cheõ
vaø thoáng nhaát ñuùng quan heä. Chaúng haïn baûng A coù quan
heä vôùi baûng B thì nhaäp döõ lieäu phaûi ñuùng quan heä ñoù,
hay khi thay ñoåi döõ lieäu baûng A thì döõ lieäu beân caùc baûng
quan heä vôùi noù cuõng ñöôïc Microsoft Access töï ñoäng thay
ñoåi.
2. Caùc loaïi quan heä
• Quan heä 1-1 (One to One)
Moãi maãu tin beân baûng naøy coù quan heä vôùi moät maãu
tin beân baûng kia vaø ngöôïc laïi. Cuï theå laø caû hai tröôøng
ñeàu laø khoaù.
• Quan heä 1-∝ (One to Many)
Moãi maãu tin beân baûng 1 coù quan heä vôùi nhieàu maãu tin
beân baûng ∝ vaø moãi maãu tin beân baûng ∝ coù quan heä
vôùi moät maãu tin beân baûng 1. Cuï theå tröôøng beân baûng
1 laø khoaù chính coøn beân tröôøng beân baûng ∝ laø khoaù
ngoaïi.
3. Caùc böôùc thöïc hieän
 Tools/Relationship
 Choïn caùc Table ñeå ñöa vaøo (Add) cöûa soå quan heä.
Caùch taïo quan heä giöõa 2 baûng:
 Duøng chuoät keùo khoaù chính cuûa baûng naøy thaû vaøo
ngay khoaù ngoaïi cuûa baûng quan heä vôùi noù.
 Xaùc ñònh caùc toaøn veïn tham chieáu döõ lieäu quan heä:

Trang:7
Baøi giaûng Heä quaûn trò CSDL Access

- Enforce Referential Integrity: toaøn veïn tham chieáu quan


heä, khi nhaäp hay caäp nhaät döõ lieäu tröôøng quan heä
baûng ∝ phaûi toàn taïi beân baûng 1.
- Cascade Update Related Fields: Töï ñoäng caäp nhaät döõ
lieäu tröôøng quan heä beân baûng ∝ khi döõ lieäu laø khoaù
baûng 1 thay ñoåi. Neáu khoâng qui ñònh thì khoâng theå
thay ñoåi khoaù cuûa baûng 1 khi coù caùc maãu tin beân
baûng nhieàu quan heä vôùi maãu tin ñoù.
- Cascade Delete Related Records: Töï ñoäng xoaù caùc maãu
tin beân caùc baûng quan heä khi maãu tin beân baûng 1 bò
xoaù. Neáu khoâng qui ñònh thì khoâng theå xoaù maãu tin
beân baûng 1 khi caùc baûng quan heä vôùi noù coù döõ lieäu
quan heä vôùi maãu tin ñoù.
4. Ñieàu chænh laïi quan heä, xoaù boû quan heä:
 Tools/Relationship
 Choïn sôïi daây bieåu töôïng quan heä.
Relationship\ Edit Relationship: ñieàu chænh laïi quan heä.
Edit\ Delete=Del: xoaù boû quan heä
Relationship\Show Table: add theâm baûng.
VII. MÔÛ BAÛNG CAÄP NHAÄT DÖÕ LIEÄU TRÖÏC TIEÁP VAØO
BAÛNG
1. Ñaùnh daáu coät.
2. Xoaù caùc doøng maãu tin.
3. Di chuyeån qua laïi caùc maãu tin.
4. Cheøn ñoái töôïng nhuùng OLE.
 Di chuyeån con troû ñeán tröôøng kieåu OLE
 Insert/Object
 Choïn kieåu file ñoái töôïng nhuùng. Create New laø taïo môùi,
Create from file laø taïo töø file ñaõ coù saün treân ñóa.
5. Caùc loãi thöôøng gaëp khi caäp nhaät hay nhaäp döõ
lieäu
- Truøng khoaù chính hay khoaù chính roãng, loãi khoaù chính.
- Nhaäp khoaù ngoaïi khoâng coù beân baûng 1, loãi quan heä
- Nhaäp sai kieåu döõ lieäu, sai kieåu.
- Nhaäp khoâng ñuùng Validation Rule, Input Mask, caùc quy
ñònh khaùc…
Khi gaëp caùc loãi naøy thì phaûi nhaäp döõ lieäu laïi cho ñuùng
hoaëc laø ñoùng baûng laïi khoâng löu thay doåi treân maãu tin ñoù
(Save).
6. Caùc thao taùc caäp nhaät döõ lieäu.
- Format\Font
- Format\ Free Column
- Format\ UnFree All Columns
- Format\Hide vaø Unhide
- Record\Sort…

Trang:8
Baøi giaûng Heä quaûn trò CSDL Access

VIII. THAY ÑOÅI CAÁU TRUÙC BAÛNG


1. Caùc böôùc thöïc hieän
 Choïn Table
 Click nuùt leänh Design
2. Caùc ñieåm löu yù khi thay ñoåi caáu truùc
• Thay ñoåi ñoä daøi (size).
• Thay ñoåi kieåu döõ lieäu.
• Xoaù boû tröôøng.
• Theâm tröôøng.
• Ñoåi khoaù, ñoåi quan heä tröôùc.
IX. IMPORT, EXPORT VAØ LINK BAÛNG
1. Import: Laø nhaäp caùc baûng töø CSDL khaùc vaøo CSDL hieän
haønh (coù theå laø töø moät .CDSL khaùc hoï vôùi Access:
Foxpro, Excel sheet, ODBC.. ), caùc böôùc.
2. Export: Laø ñöa baûng töø CSDL hieän haønh vaøo CSDL khaùc ,
caùc böôùc.
3. Link: Laø lieân lieân keát ñeán table cuûa CSDL khaùc, caùc
böôùc.

CHÖÔNG III: TRUY VAÁN DÖÕ LIEÄU (QUERY)


I. QUERY TRONG ACCESS:
1. Khaùi nieâm query:
Query laø moät ñoái töôïng chæ moät truy vaán döõ lieäu trong
CSDL (coù theå laø caùc table hay query). Query coù teân (name),
caâu leänh SQL –Structure Query Language, caùc tham soá
(Parameters). Khi Open moät ñoái töôïng query seõ cho moät taäp
keát quaû truy vaán töø CSDL, keát quaû naøy coù caáu truùc gioáng
nhö moät table (coù caùc tröôøng vaø caùc maãu tin). Cho neân, query
coù theå duøng laøm nguoàn xuaát döõ lieäu cho Report, laøm döõ
lieäu neàn cho Form hay laøm nguoàn cho truy vaán khaùc nöõa…
Trong caùc heä quaûn trò CSDL khaùc ñoái töôïng query cuûa Access
goïi laø View.
2. Caùch taïo moät query:
 Choïn lôùp Queries.
 Click new\ Choïn caùc baûng/query laøm nguoàn döõ lieäu ñeå
truy vaán.
 Xaây döïng caâu leänh SQL vaø caùc tham soá.
3. Ñieàu chænh moät query.
 Choïn query caàn thay ñoåi.
 Click Design.
4. Môû xem taäp keát quaû cuûa query hay chaïy query.
 Choïn query.
 Click Open.

Trang:9
Baøi giaûng Heä quaûn trò CSDL Access

5. Xoaù boû, ñoåi teân, import, export truy vaán: gioáng nhö
ñoái töôïng khaùc.
II. CAÙC LOAÏI TRUY VAÁN (SELECT QUERY)
1. Truy vaán löïa choïn:
Laø truy vaán loïc ruùt trích caùc döõ lieäu töø caùc table hay query
khaùc ñeå cho ra keát quaû laø moät baûng döõ lieäu coù caùc coät
(tröôøng) vaø caùc maãu tin mong muoán.
a. Cuù phaùp caâu leänh SQL:
SELECT [tính chaát] field [AS alias] ,field2 [AS
alias] ,field3 [AS alias], field4 [AS alias],bieåu thöùc
[AS alias]…
FROM Table1,Table2, Query [IN MDB khaùc], ….
[WHERE <bieåu thöùc ñieàu kieän>]
[GROUP BY <bieåu thöùc khoaù ñeå nhoùm döõ
lieäu>]
[HAVING <ñieàu kieän ñeå nhoùm>]
[ORDER BY <danh saùch caùc tröôøng laøm index
ñeå saép xeáp>];
b. Giaûi thích caùc thaønh phaàn:
 Tính chaát:
All: taát caû caùc maãu tin.
TOP <n>: n maãu tin ñaàu tieân.
Distinct: loaïi boû caùc coät truøng nhau.
DistinctRow: loaïi boû caùc doøng truøng nhau.
 Field: caùc tröôøng caàn choïn neáu truøng nhau ôû
caùc baûng thì chæ ra baûng teânbaûng.teântröôøng,
neáu muoán ñaët laïi teân coät thì ghi as alias
 Table/Query: laø caùc teân baûng hay query tham gia laøm
nguoàn data cho truy vaán.
 WHERE <bieåu thöùc ñieàu kieän>
 GROUP BY <bieåu thöùc khoaù ñeå nhoùm döõ lieäu>
 HAVING <ñieàu kieän ñeå nhoùm>
 ORDER BY <danh saùch caùc tröôøng laøm index ñeå saép
xeáp>
c. Moät soá ví duï
 Choïn ra caùc sinh vieân lôùp TH1A saép xeáp theo teân
giaûm daàn.
SELECT sinhvien.masv, sinhvien.holot, sinhvien.ten,
sinhvien.malop
FROM sinhvien
WHERE sinhvien.malop='TH1A'
ORDER BY sinhvien.ten;
 Choïn ra caùc sinh vieân nöõ cuûa lôùp TH1A vaø TH1B vaø
saép xeáp taêng theo teân, neáu truøng teân thì saép xeáp
theo hoï.

Trang:10
Baøi giaûng Heä quaûn trò CSDL Access

SELECT sinhvien.masv, sinhvien.holot, sinhvien.ten,


sinhvien.malop
FROM sinhvien
WHERE (sinhvien.malop='TH1A' Or malop=’TH1B’) And Not
phai
ORDER BY sinhvien.ten, sinhvien.holot ;
 Thoáng keâ soá löôïng sinh vieân cuûa caùc lôùp coù sinh
vieân.
SELECT sinhvien.malop, lop.tenlop, lop.namvao,
Count(sinhvien.masv) AS sosinhvien
FROM sinhvien INNER JOIN lop ON sinhvien.malop =
lop.malop
GROUP BY sinhvien.malop, lop.tenlop, lop.namvao;
 Hieån thò thoâng tin cuûa caùc sinh vieân coù thoâng tin veà
lôùp vaø teân khoa cuûa caùc sinh vieân.
SELECT sinhvien.masv, sinhvien.holot, sinhvien.ten,
sinhvien.malop, lop.tenlop, khoa.tenkhoa
FROM (khoa INNER JOIN lop ON khoa.makhoa =
lop.makhoa) INNER JOIN sinhvien ON lop.malop =
sinhvien.malop;
d. Keát noái döõ lieäu 2 baûng quan heä:
 Duøng ñieàu kieän WHERE ñeå keát noái:
table1.field=table2.field AND…
Trong keát noái daïng naøy, taäp keát quaû khoâng
theå caäp nhaät ñöôïc maø chæ ñeå keát xuaát. Ví duï:
 Keát noái daïng INNER JOIN, LEFT JOIN, RIGHT JOIN
Caùc query daïng naøy taäp keát quaû cuûa noù laø coù theå
caäp nhaät ñöôïc -> döõ lieäu caùc table seõ ñöôïc caäp nhaät.
- Daïng INNER JOIN:
From Table1 INNER JOIN Table2 ON Table1.field= Table2 .filed
Trong keát noái daïng naøy keát quaû bao goàm caùc
maãu tin coù quan heä giöõa 2 baûng maø thoâi.
- Daïng LEFT JOIN: Table1 LEFT JOIN Table2 ON
Table1.field= Table2 .filed
Trong keát noái daïng naøy keát quaû bao goàm taát caû caùc
maãu tin baûng1( beân traùi) vaø caùc maãu tin coù quan
heä beân baûng2 .
- Daïng RIGHT JOIN: Table1 RIGHT JOIN Table2 ON
Table.field= Table2 .filed
Trong keát noái daïng naøy keát quaû bao goàm taát caû caùc
maãu tin baûng2( beân phaûi) vaø caùc maãu tin coù quan
heä beân baûng1.
e. Nhoùm döõ lieäu GROUP BY

Trang:11
Baøi giaûng Heä quaûn trò CSDL Access

Khi caàn nhoùm döõ lieäu ta duøng töø khoùa GROUP BY. Khi
ñoù caùc tröôøng khoâng thuoäc khoaù nhoùm seõ aùp duïng
caùc haøm sau ñaây:
Sum(): tính toång trong nhoùm.
Count(): ñeám soá caùc giaù trò trong nhoùm.
Max(): soá lôùn nhaát trong nhoùm.
Min: soá nhoû nhaát trong nhoùm.
Avg(): tính trung bình coäng trong nhoùm.
First(): laáy giaù trò maãu tin ñaàu trong nhoùm.
Last(): laáy giaù trò maãu tin cuoái trong nhoùm.
2. Truy vaán haønh ñoäng (action query):
Caùc truy vaán haønh ñoäng khoâng traû veà taäp caùc maãu tin
maø noù taùc ñoäng aûnh höôûng leân caùc table/query trong CSDL:
taïo baûng môùi, caäp nhaät laïi döõ lieäu, theâm maãu tin, xoaù
caùc maãu tin, xoaù baûng…
a. Truy vaán taïo baûng (Make -Table Query)
Cuù phaùp SQL 1: taïo baûng môùi töø keát quaû cuûa
truy vaán SELECT
SELECT field1, field2,… INTO tablemôùi [IN MDB khaùc]
FROM tablenguoàn……
WHERE….
GROUP BY…. ;
Hay taïo caáu truùc baûng môùi:
CREATE TABLE tblname (fieldname kieåu[(size)],
fieldname kieåu[(size)],fieldname kieåu[(size)],...);
Caùc kieåu:
- Kieåu chuoãi: Text. VD: Text(10), Text(20)...
- Kieåu soá: Byte, Short, Long, Single, Double.
- Kieåu logic: YesNo
- Kieåu ngaøy giôø: DateTime
- Kieåu OLE: LongBinary
b. Truy vaán caäp nhaät (Update Query)
Cuù phaùp SQL:
UPDATE tableNAME
SET field1=bieåu thöùc, field2=bieåu thöùc,…
WHERE ñieàu kieän;
c. Truy vaán theâm maãu tin (Append Query)
Cuù phaùp SQL:
INSERT INTO tablename [(field1, field2, field3,…)]
VALUES (bieåu thöùc1, bieåu thöùc2, bieåu
thöùc3,…);
Hay theâm töø taäp keát quaû
INSERT INTO table ñích [IN MDB khaùc]
SELECT field1, field2,…
FROM tablenguoàn……

Trang:12
Baøi giaûng Heä quaûn trò CSDL Access

WHERE….
GROUP BY…. ;
d. Truy vaán xoaù (Delete Query)
Cuù phaùp SQL:
DELETE FROM tableNAME
WHERE ñieàu kieän xoaù;
e. Truy vaán xoaù baûng(Drop Table): xoaù baûng khoûi
CSDL

DROP TABLE tblname;

3. Truy vaán Crosstab


Truy vaán Crosstab cho pheùp nhoùm döõ lieäu ñoàng thôøi
chuyeån caùc döõ lieäu ôû doøng leân laøm coät.
Cuù phaùp SQL:
TRANSFORM haøm nhoùm(<field döõ lieäu chuyeån>)
SELECT field1, field2….
FROM table nguoàn
GROUP BY <khoaù nhoùm>
PIVOT <filed chuyeån laøm coät>;
- Tröôøng TRANSFORM laø tröôøng tính toaùn döõ lieäu ñeå
chuyeån cho coät Pivot.
- Caùc tröôøng trong SELECT laø caùc doøng thoâng tin
- Tröôøng trong PIVOT laø tröôøng maø taäp caùc döõ lieäu cuûa
noù seõ ñöôïc chuyeån leân laøm caùc coät môùi.
Taäp keát quaû cuûa Crosstab query laø chæ ñeå keát xuaát,
khoâng caäp nhaät ñöôïc.
III. CAÙC LÖU YÙ TRONG CAÂU LEÄNH SQL
1. Ñieàu kieän: ñieàu kieän laø moät bieåu thöùc logic, coù theå
coù caùc pheùp toaùn logic nhö: AND, OR, NOT.
Ví duï: (luong>2000000 and phai=true) or chucvu=’Giaùm ñoác’
2. Caùc haøm VBA thöôøng söû duïng vaø caùc pheùp toaùn.
 Caùc pheùp toaùn:
- So saùnh chuoãi coù söû duïng kyù töï ñaïi dieän *?: Like,
Between
- Gheùp chuoãi: &
- Coäng, tröø, nhaân, chia: + - * / \ Mod
- Caùc pheùp soù saùnh =, >, >=, <, <=, <>, IN, NOT IN
 Caùc haøm VBA thöôøng gaëp:
- Caùc haøm veà chuoãi: LEFT(), RIGHT(), MID(), LEN()
- Caùc haøm ngaøy giôø: now(), DAY(), MONTH(),
YEAR(),date(),weekday()
- Haøm choïn löïa: IIF(ñieàu kieän, value1, value2)

Trang:13
Baøi giaûng Heä quaûn trò CSDL Access

IV. CAÙC THAO TAÙC TAÏO TRUY VAÁN VÔÙI QBE (QUERY BY
EXAMBLE).
V. THAM SOÁ TRONG QUERY, TRUY VAÁN CON
1. Parameters
Tham soá trong truy vaán laø moät ñoái töôïng coù giaù trò thay
ñoåi ñöôïc(nhaäp töø baøn phím hay trong cheá ñoä laäp trình)
gioáng nhö bieán trong ngoân ngöõ laäp trình. Moät query coù taäp
caùc tham soá, caùc tham soá naøy thöôøng laøm giaù trò ñeå so
saùnh trong ñieàu kieän. Töø ñoù ta coù moät query coù caùc yeâu
caàu loïc löïa choïn thay ñoåi ñöôïc tuyø theo giaù trò caùc tham
soá.
Cuù phaùp khai baùo tham soá trong SQL:
PARAMETERS teânts1 kieåu, teânts2 kieåu, teânts3
kieåu, … ;
SELECT….
Ví duï:
PARAMETERS ploai Text, psoluong Short, pngay DateTime;
Ví duï loïc ra caùc sinh vieân cuûa moät lôùp, maõ lôùp nhaäp.
PARAMETERS pmalop Text;
SELECT sinhvien.masv, sinhvien.holot, sinhvien.ten,
sinhvien.ngaysinh, sinhvien.malop
FROM sinhvien
where malop=pmalop;
Caùc kieåu cuûa tham soá:
- Kieåu chuoãi: Text
- Kieåu soá: Byte, Short, Long, Single, Double.
- Kieåu ngaøy giôø: DateTime
- Kieåu OLE: LongBinary
2. Sub Query: Hôïp, giao, tröø
a. Query hôïp: 2 query phaûi khaû hôïp
Cuù phaùp SQL:
SELECT …..
FROM ….
WHERE…
UNION
SELECT …..
FROM ….
WHERE… ;
b. Query giao: söû duïng pheùp toaùn IN
Cuù phaùp SQL:
SELECT….
FROM ….
WHERE… AND khoaù IN (SELECT field FROM….)
c. Query tröø: söû duïng pheùp NOT IN
Cuù phaùp SQL:

Trang:14
Baøi giaûng Heä quaûn trò CSDL Access

SELECT….
FROM ….
WHERE… AND khoaù NOT IN (SELECT field
FROM….WHERE … IN(….))
Thöôøng caâu truy vaán Sub Query neáu phöùc taïp ta neân taïo
rieâng ñeå deã daøng kieåm tra tính ñuùng ñaén cuûa noù, sau ñoù
sau cheùp daùn vaøo.
VI. TAÏO QUERY CROSSTAB VÔÙI TRÌNH WIZARD

CHÖÔNG IV: BIEÅU MAÃU (FORM)


I. KHAÙI NIEÄM BIEÅU MAÃU
1. Ñoái töôïng Form:

Trang:15
Baøi giaûng Heä quaûn trò CSDL Access

Form laø ñoái töôïng cho pheùp giao tieáp vôùi ngöôøi söû
duïng, form ñöôïc thieát keá ñeå caäp nhaät döõ lieäu vaøo caùc
table (form döõ lieäu), hay ñeå thöïc hieän giao tieáp vôùi
ngöôøi söû duïng (form hoäp hoäi thoaïi) .
2. Caùc thaønh phaàn cuûa form
 Form header: Caùc ñieàu khieån naèm trong phaàn naøy seõ
xuaát hieän ôû ñaàu bieåu maãu.
 Detail: theå hieän chi tieát döõ lieäu cuûa bieåu maãu.
 Form Footer:Caùc ñieàu khieån naèm trong phaàn naøy seõ
xuaát hieän ôû cuoái bieåu maãu.
3. Caùc loaïi form thoâng duïng
a. Form döõ lieäu: laø caùc form ñöôïc thieát keá ñeå caäp
nhaät döõ lieäu vaøo caùc table/query. Form loaïi naøy coù
döõ lieäu laø table/query laø nguoàn döõ lieäu döôùi neàn
cuûa noù.
b. Form hoäp hoäi thoaïi: laø caùc form ñöôïc thieát keá ñeå
giao tieáp vôùi ngöôøi söû duïng. Form loaïi naøy coù döõ
lieäu nguoàn döõ lieäu döôùi neàn cuûa noù.
4. Caùc khaùi nieäm trong form
- Tieâu ñeà(Caption): Tieâu ñeà cuûa form seõ xuaát hieän ôû
Title bar khi hieån thò form.
- Caùc ñieàu khieån(Controls): laø caùc ñoái töôïng ñieàu
khieån treân form: text box, combo box, list box, command
button, option group....
- Nuùt di chuyeån qua caùc maãu tin(Navigation Buttons): laø
giaøn nuùt coâng cuï di chuyeån qua caùc maãu tin (First,
Previous, Next, Last, New)
- Maãu tin nguoàn(Record Source): laø table/query laøm nguoàn
döõ lieäu döôùi neàn form.
- Choïn maãu tin (Record Selector): choïn caùc maãu tin ñeå
xoaù.
II. CAÙC DAÏNG FORM
1. Bieåu maãu daïng coät (Column Form): moãi moät luùc chæ
hieån thò thoâng tin moät maãu tin.
2. Bieåu maãu daïng danh saùch (Tabular Form): moãi moät luùc
hieån thò thoâng tin nhieàu maãu tin daïng danh saùch.
3. Bieåu maãu daïng haøng (Justified): moãi moät luùc hieån thò
thoâng tin moät maãu tin, daïng danh saùch.
4. Bieåu maãu daïng döõ lieäu baûng sheet (DataSheet): moãi
moät luùc hieån thò thoâng tin moät maãu tin, daïng sheet cuûa
Excel.
5. Bieåu maãu daïng chính phuï (Main – Sub Form): laø goàm 2
bieåu maãu, moät bieåu maãu chính daïng Column, coøn bieåu
maãu phuï daïng datasheet naèm trong noù. Bieåu maãu daïng
naøy theå hieän moái quan heä 1-nhieàu, bieåu maãu chính laø
baûng 1 coøn bieåu maãu phuï laø baûng nhieàu.

Trang:16
Baøi giaûng Heä quaûn trò CSDL Access

Caùc böôùc thieát keá bieåu maãu Chính – phuï


Böôùc 1:
Taïo bieåu maãu chính (Main)
Döõ lieäu nguoàn (Record source): baûng 1.
Daïng hieån thò (Default View): Single Form
Böôùc 2:
Taïo bieåu maãu phuï (Sub)
Döõ lieäu nguoàn (Record source): baûng nhieàu
Daïng hieån thò (Default View): DataSheet
Böôùc 3:
Keùo thaû bieåu maãu Sub vaøo Main, löu yù quan heä (Link
master field & Link child field) khoaù quan heä giöõa2 baûng.

Trang:17
Baøi giaûng Heä quaûn trò CSDL Access

III. CAÙC THUOÄC TÍNH CÔ BAÛN CUÛA FORM


1. Caùc thuoäc tính ñònh daïng(Format)
• Caption: Chuoãi tieâu ñeà cuûa bieåu maãu.
• Default View: daïng hieån thò cuûa bieåu maãu.
• Views Allowed: cho thay ñoåi caùc daïng hieån thò khi
bieåu maãu môû ôù daïng hieån thò döõ lieäu.
• Scroll bar: caùc thanh cuoän treân bieåu maãu.
• Record Selector: Thanh choïn maãu tin beân traùi form.
• Navigation Buttons: giaøn nuùt di chuyeån caùc maãu tin
döôùi form.
• Dividing Line: caùc ñöôøng phaân caùch giöõa caùc thaønh
phaàn cuûa header, detail vaø footer.
• Auto Resize: töï ñoäng thay ñoåi daïng bieåu maãu khi kích
thöôùc khoâng ñuû.
• Auto Center: töï ñoäng canh maøn hình hieån thò.
• Boder Style: kieåu ñöôøng bieân cuûa bieåu maãu.
• Control box: hoäp Control menu box
• Min/Max Button: nuùt Min/Max
• Close button: nuùt ñoùng bieåu maãu.
• What this button: nuùt trôï giuùp.
• Picture: hình laøm neàn form.
• Picture Type: kieåu nhuùng hình.
• Picture Size Mode: cheá ñoä hieån thò hình.
• Picture Alignment: caên hình treân form.
2. Caùc thuoäc tính döõ lieäu(data)
• Record Source: table/query neàn form.
• Filter: chuoãi ñieàu kieän loïc maãu tin hieån thò.
• Order By: khoaù saép xeáp döõ lieäu.
• Allow Filters: cho pheùp loïc.
• Allow Edits: cho pheùp caäp nhaät.
• Allow Delete: cho pheùp xoaù.
• Allow Additions: cho pheùp theâm.
• Cycle: cho pheùp di chuyeån xoay quanh caùc oâ ñieàu
khieån treân form.
3. Thuoäc tính Event.
• On Load: Khi naïp form.

Trang:18
Baøi giaûng Heä quaûn trò CSDL Access

• On Open: khi môû form.


• On Current: khi laøm vieäc.
• On Close: khi ñoùng
4. Caùc thuoäc tính khaùc:
Popup: luoân naèm treân cuøng caùc cöûa soå khaùc khi môû.
Modal: luoân naèm treân cuøng caùc cöûa soå khaùc khi môû
vaø khoâng theå chuyeån sang caùc cöûa soå khaùc neáu
chöa ñoùng form coù thuoäc tính modal naøy.
Menu bar: teân thanh thöïc ñôn seõ gaén vôùi form
Toolbar: teân thanh coâng cuï seõ gaén vôùi form
IV. TAÏO FORM.
1. Baèng trình wizard.
2. Baèng thieát keá (Design View)

CHÖÔNG V: BAÙO BIEÅU (REPORT)


I. KHAÙI NIEÄM BAÙO BIEÅU
1. Ñoái töôïng Report
Report laø ñoái töôïng ñöôïc thieát keá nhö moät khuoân daïng keát
xuaát döõ lieäu ra maøn hình hoaëc maùy in. Döõ lieäu cuûa report
coù theå laø table hay moät query (Record Source)
2. Caùc thaønh phaàn trong Report
Report header: Caùc ñieàu khieån naèm trong phaàn naøy seõ
xuaát hieän ôû ñaàu baùo bieåu.
Page header: Caùc ñieàu khieån naèm trong phaàn naøy seõ xuaát
hieän ôû ñaàu moãi trang.
Group header: Caùc ñieàu khieån naèm trong phaàn naøy seõ
xuaát hieän ôû ñaàu moãi nhoùm döõ lieäu.
Detail: theå hieän chi tieát döõ lieäu cuûa baùo bieåu, taát caû
caùc maãu tin ñeàu ñöôïc xuaát.
Group footer: Caùc ñieàu khieån naèm trong phaàn naøy seõ
xuaát hieän ôû cuoái moãi nhoùm döõ lieäu.
Page footer: Caùc ñieàu khieån naèm trong phaàn naøy seõ xuaát
hieän ôû cuoái moãi trang.
Report Footer:Caùc ñieàu khieån naèm trong phaàn naøy seõ
xuaát hieän ôû cuoái bieåu maãu.
II. CAÙC DAÏNG BAÙO BIEÅU
1. Danh saùch (tabular)

2. Coät (Columnar)

3. Toång hôïp nhoùm.

III. TAÏO BAÙO BIEÅU BAÈNG WIZARD

Trang:19
Baøi giaûng Heä quaûn trò CSDL Access

IV. MOÄT SOÁ THUOÄC TÍNH CUÛA BAÙO BIEÅU.


1. Thuoäc tính ñònh daïng

2. Thuoäc tính döõ lieäu.

3. Thuoäc tính khaùc.

CHÖÔNG VI: TAÄP LEÄNH (MACRO)


I. ÑOÁI TÖÔÏNG MACRO
1. Macro laø gì?
2. Caùc thao taùc treân ñoái töôïng macro.
II. CAÙC TAÄP LEÄNH THOÂNG DUÏNG
3. Caùc leänh thoâng duïng trong macro.
4. Macro coù ñieàu kieän
III. BAÅY SÖÏ KIEÄN BAÈNG MACRO

CHÖÔNG VII: LAÄP TRÌNH VBA


I. NGOÂN NGÖÕ VBA LAØ GÌ?
Sau khi thieát keá giao dieän, ta caàn thieát keá maõ leänh
cho caùc ñoái töôïng, ñoù laø laäp trình. Hay moãi khi thieát
keá chöông trình ta caàn ñeán moät haøm hay thuû tuïc nhaèm
thöïc hieän moät coâng vieäc mong muoán. Ngoân ngöõ laäp
trình trong Access laø VBA (Visual Basic for Aplication), laäp

Trang:20
Baøi giaûng Heä quaûn trò CSDL Access

trình cho pheùp baåy söï kieän treân form, report..vaø coøn
cho pheùp taïo ra caùc haøm thuû tuïc maø VBA khoâng coù
saün (laäp trình ñôn theå module).
Moät soá chöùc naêng töï ñoäng trong VBA
1. Auto syntax check: töï ñoäng kieåm tra cuù phaùp
leänh.
2. Riquire Variable Declaration: Yeâu caàu bieán phaûi
khai baùo tröôùc khi duøng (khoâng baét buoäc).
Option Explicit
‘ñöôïc theâm tröôùc moãi module.
3. Auto List Member: töï ñoäng hieån thò danh saùch
caùc thuoäc tính, phöông thöùc cuûa ñoái töôïng khi goõ
teân ñoái töôïng.phöông thöùc/thuoäc tính.
4. Auto Data Tip: töï ñoäng hieån thò danh saùch caùc
kieåu döõ lieäu khi khai baùo bieán.
5. Auto Quick Info: töï ñoäng hieån thò danh saùch tham
soá, kieåu tham soá khi söû duïng haøm, keå caû caùc haøm
ngöôøi duøng ñònh nghóa.
II. BIEÁN, HAÈNG, VAØ KIEÅU DÖÕ LIEÄU.
1. Bieán (Variable)
Khai baùo:
Dim <teân bieán> As <Kieåu döõ lieäu>, <teân
bieán> As <Kieåu döõ lieäu>….
Private <teân bieán> As <Kieåu döõ lieäu>,<teân
bieán> As <Kieåu döõ lieäu>…
Static <teân bieán> As <Kieåu döõ lieäu>,<teân
bieán> As <Kieåu döõ lieäu>…
Public <teân bieán> As <Kieåu döõ lieäu>,<teân
bieán> As <Kieåu döõ lieäu>…
 Khai baùo vôùi töø khoùa Dim hay Private bieán chæ toàn taïi
trong thuû tuïc hay haøm, khi thoaùt haøm hay thuû tuïc VB
seõ giaûi phoùng bieán.
 Khai baùo vôùi töø khoùa Public bieán seõ coù taàm hoaït
ñoäng trong toaøn öùng duïng.
 Khai baùo vôùi töø khoùa Static bieán coù taàm hoaït ñoäng
trong thuû tuïc khai baùo, nhöng giaù trò cuûa noù vaãn coøn
löu laïi ñeå tieáp tuïc hoaït ñoäng khi thuû tuïc ñöôïc goïi laàn
sau.
 Ñeå khai baùo taát caû caùc bieán cuïc boä trong moät thuû
tuïc ta ñaët töø khoùa Static vaøo tröôùc teân thuû tuïc.
VD: ’Khai baùo bieán

Trang:21
Baøi giaûng Heä quaûn trò CSDL Access

Dim s1,s2 As String, n, m As Integer, Mydate ‘


Mydate kieåu Variant
Static a As Byte

BAÛNG MOÂ TAÛ TAÀM HOAÏT ÑOÄNG CUÛA BIEÁN


Taàm hoaït Private Public
ñoäng
Thuû tuïc Bieán chæ toàn taïi vaø Khoâng coù
hoaït ñoäng trong thuû
tuïc
Module Bieán chæ toàn taïi vaø Bieán toàn taïi vaø
hoaït ñoäng trong hoaït ñoäng treân
module moïi module

Gaùn giaù trò:


<Bieán> = <bieåu thöùc>
Bieán coù theå ñöôïc khai baùo ngaàm, nghóa laø khoâng
caàn khai baùo töôøng minh tröôùc khi söû duïng, khoâng
coù caâu leänh Option Explicit tröôùc moãi module
(gioáng nhö trong Foxpro, deã gaây sai soùt ).
2. Haèng (Constant)
Haèng laø ñaïi löôïng khoâng thay ñoåi giaù trò. Haèng
coù 2 loaïi: haèng do VB ñònh nghóa vaø haèng do
ngöôøi duøng ñònh nghóa.
Khai baùo haèng:
Public | Private < Const > <Teân haèng> = <bieåu
thöùc>
Coù theå theâm töø khoùa As <Kieåu> sau teân haèng ñeå
chæ roõ kieåu döõ lieäu cuûa haèng.
VD: ‘ Khai baùo haèng.
Private Const Pi As Single =3.1416
Löu yù: taàm hoaït ñoäng cuûa haèng töông töï nhö bieán.
3. Kieåu döõ lieäu:
Kieåu döõ lieäu chæ ra taäp hôïp caùc giaù trò maø bieán
thuoäc kieåu ñoù coù theå nhaän. VB duøng kieåu
Variant laø kieåu maëc ñònh, kieåu naøy coù theå
chuyeån sang moïi kieåu döõ lieäu khaùc do VB töï ñoäng
chuyeån kieåu.
a) Kieåu soá: Byte,Integer, Long, Single, Double, Currency
Kieåu toán ít boä nhôù hôn Variant. Taát caùc caùc bieán
kieåu soá coù theå ñöôïc gaùn cho nhau, VB seõ laøm troøn
tröôùc khi gaùn kieåu lôùn hôn cho kieåu nhoû hôn.

Trang:22
Baøi giaûng Heä quaûn trò CSDL Access

Kieåu Single, Double, vaø Currency laø caùc kieåu soá thöïc
Caùc pheùp toaùn treân kieåu soá:
Soá hoïc: coäng(+), tröø(-), nhaân(*), chia (/), chia
laáy nguyeân(\), chia laáy dö (a mod b ), ^ luûy thöøa
(2^3=8)
So saùnh := < > < <= > >= keát quaû laø kieåu
Boolean
b) Kieåu Byte
Coù giaù trò 0 .. 255.Taát caû caùc thao taùc treân Intger
coù theå thao taùc treân kieåu Byte ngoaïi tröø daáu.
c) Kieåu String
Kieåu String coù chieàu daøi thay ñoåi, coù theå taêng hay
giaûm khi gaùn döõ lieäu
VD: Dim hoten As String
Coù theå khai baùo String coù ñoä daøi coá ñònh:
Dim s As String * 50
S luoân coù ñoä daøi 50, neáu thieáu VB seõ töï ñoäng
theâm vaøo cuoái chuoãi caùc khoaûng traéng (space),
neáu gaùn cho moät chuoãi daøi hôn VB seõ töï ñoäng caét
boû.
Caùc pheùp toaùn treân chuoãi: & gheùp chuoãi, s1=s2,
s1 like s2 so saùnh chuoãi like coù theå duøng kyù töï ñaïi
dieân * vaø ?.
Caùc haøm thoâng duïng treân kieåu String
Haøm Coâng duïng
Len(string ) Laáy chieàu daøi choãi
Left(string, length) Caét length kyù töï beân traùi
chuoãi
Right(string, length) Caét length kyù töï beân phaûi
chuoãi
Replace(expression, find, Thay theá chuoãi f tìm thaáy
replacewith) trong e baèng r.
Lcase(string) Traû veà chuoãi ñoåi chuoãi
sang chöõ thöôøng
Ucase(string) Traû veà chuoãi ñoåi chuoãi
sang chöõ hoa
InStr([start, ]string1, Traû veà vò trí s2 trong s1 baét
string2) ñaàu tìm töø start
Mid(string, start[, length]) Trích chuoãi con trong string
Ltrim(string) Caét boû caùc khoaûng traéng
Rtrim(string) voâ ích beân traùi, phaûi, caû
Trim(string 2 beân vaø beân trong chuoãi

Trang:23
Baøi giaûng Heä quaûn trò CSDL Access

d) Kieåu Boolean
Chæ coù 2 giaù trò True/False. Caùc pheùp toaùn treân
kieåu naøy And, Or, Not, Xor
A b A And a Or b A Xor b Not a
b
Fals Fals False False False True
e e
Fals True False True True True
e
True Fals False True True False
e
True True True True False False
e) Kieåu Date
Löu tröõ ngaøy thaùng naêm, haèng ngaøy ñöôïc ghi
#01/01/1900# , coù theå coäng tröø ngaøy cho soá ñeå
taêng giaûm ngaøy hay tröø 2 ngaøy ñeå ñöôïc soá.
Caùc haøm thoâng duïng treân kieåu ngaøy
Haøm Coâng duïng
Date() Traû veà ngaøy hieän taïi
DateSerial(year, month, Traû veà ngaøy theo caùc giaù
day) trò cung caáp
DateValue(string date) Traû veà giaù trò ngaøy theo
chuoãi bieåu dieãn
Day(date) Laáy thöù ngaøy cuûa ngaøy
MonthName(month) Traû veà teân thaùng cuûa
thaùng
Month(date) Laáy thaùng cuûa ngaøy
Year(date) Laáy naêm cuûa ngaøy
Weekday(date) Traû veà thöù töï Thöù trong
tuaàn:1..7
WeekdayName(weekday) Traû veà teân thöù cuûa thöù
töï Thöù trong tuaàn
Now() Traû veà ngaøy giôø hieän taïi

f) Kieåu Object
Kieåu ñoái töôïng duøng 4 Byte troû ñeán ñoái töôïng trong
öùng duïng hieän haønh hoaëc caùc öùng duïng khaùc,
duøng leänh Set ñeå chæ ra ñoái töôïng thöïc söï.
VD:
Dim objDb As Object
Set objDb = OpenDatabase(“C:\…….
\sinhvien.mdb”)

Trang:24
Baøi giaûng Heä quaûn trò CSDL Access

Khi khai baùo ñoái töôïng neân chæ ra teân lôùp moät
caùch töôøng minh, nhö Textbox, Database thay vì
Object.
g) Kieåu Variant
Coù theå chöùa moïi kieåu döõ lieäu nhö: chuoãi, soá
thaäm chí maûng. Ta khoâng caàn chuyeån ñoåi kieåu döõ
lieäu, VB seõ laøm chuyeän ñoù. Variant thuaän tieän khi
ta khoâng bieát tröôùc kieåu döõ lieäu.
Haøm VarType(bieán) traû veà haèng kieåu döõ lieäu cuûa
bieán.
Giaù trò haøm Giaûi thích
VarType
0 hay vbEmpty Khoâng chöùa gì caû
1 hay vbNull Khoâng coù döõ lieäu hôïp leä
2 hay vbInteger Kieåu töông öùng
3 hay vbLong Kieåu töông öùng
4 hay vbSingle Kieåu töông öùng
5 hay vbDouble Kieåu töông öùng
6 hay vbCurrency Kieåu töông öùng
7 hay vbDate Kieåu töông öùng
8 hay vbString Kieåu töông öùng
9 hay vbObject Kieåu töông öùng
10 hay vbError Coù moät ñoái töôïng loãi
11 hay vbBoolean Kieåu töông öùng
12 hay vbVarriant Kieåu töông öùng
13 hay vbDataObject Kieåu DAO chuaån
14 hay vbDecimal Kieåu töông öùng
17 hay vbByte Kieåu töông öùng
36 hay Kieåu töï ñònh nghóa
UserDefinedType
8192 hay vbArray Kieåu maûng
Giaù trò Empty: khi bieán chöa ñöôïc gaùn giaù trò noù seõ
coù giaù trò ñaëc bieät laø Empty.
Haøm IsEmpty(bieán) seõ kieåm tra ñieàu ñoù.
Giaù trò Null: Bieán Variant chöùa giaù trò Null duøng trong
caùc öùng duïng CSDL theå hieän khoâng coù döõ lieäu
hay döõ lieäu khoâng xaùc ñònh. Haøm IsNull(Variant
name) seõ kieåm tra ñieàu ñoù, khoâng ñöôïc gaùn Null
cho caùc bieán coù kieåu khaùc Variant.

Caùc haøm chuyeån kieåu


Haøm Kieåu chuyeån sang

Trang:25
Baøi giaûng Heä quaûn trò CSDL Access

Cbool(value) ‘value Boolean


laø giaù trò hay
bieán.
Cbyte(value) Byte
Ccur(value) Currency
Cdate(value) Date
CDbl(value) Double
Cint(value) Integer
CLng(value) Long
CSng(value) Single
CStr(value) String
Chr(maõ) Traû kyù töï coù maõ
ASCII
Asc(Kyù töï) Traû veà maõ ASCII cuûa
kyù töï
Cvar(value) Variant
CVErr(value) Error
Giaù trò truyeàn phaûi thuoäc vaøo mieàn giaù trò cuûa
kieåu keát quaû, neáu khoâng VB seõ baùo loãi.
Caùc haøm kieåm tra: IsNumeric(value),
IsDate(value), IsObject(value)
h) Kieåu maûng (Array)
Maûng laø daõy caùc phaàn töû coù cuøng kieåu data. Coù
2 loaïi maûng coù chieàu daøi coá ñònh vaø maûng ñoäng
coù chieàu daøi thay ñoåi khi thi haønh. Maûng coù chieàu
daøi coá ñònh coù theå ñöôïc khai baùo Public trong öùng
duïng, Private trong module hay trong thuû tuïc.
 Maûng coù chieàu daøi coá ñònh
Khai baùo maûng moät chieàu
Dim <bieán maûng> (n) As <Kieåu> ‘ bieân döôùi 0
bieân treân n
Dim <bieán maûng> (n1 To n2) As <Kieåu> ‘bieân
döôùi n1 bieân treân n2 (n1<=n2)
Truy xuaát phaàn töû maûng: Teânmaûng(chæ
soá)
Haøm LBound(Array): traû veà bieân döôùi maûng
moät chieàu.
Haøm UBound(Array): traû veà bieân treân maûng
moät chieàu.
Khai baùo maõng nhieàu chieàu
Dim <bieán maûng> (m,n) As <Kieåu> ‘Khai baùo
maõng 2 chieàu 0..m haøng, 0..n coät.

Trang:26
Baøi giaûng Heä quaûn trò CSDL Access

Dim <bieán maûng> (m1 To m2 ,n1 To n2) As


<Kieåu> ’Khai baùo maûng 2 chieàu m1..m2 haøng,
n1..n2 coät.
Dim <bieán maûng> (n,m,p) As <Kieåu> ‘ Khai
baùo maûng 3 chieàu 0..n,0..m,0..p
Truy xuaát phaàn töû maûng: Teânmaûng(chæ soá
haøng,chæ soá coät)
Maûng nhieàu chieàu seõ raát lôùn, soá phaàn töû
=n*m*p*…neân caân nhaéc, nhaát laø maûng caùc
phaàn töû Variant.
 Maûng coù chieàu daøi ñoäng
Maûng ñoäng laø moät trong nhöõng öu ñieåm cuûa VB,
giuùp quaûn lyù boä nhôù moät caùch hieäu quaû.
Khai baùo maûng ñoäng:
Dim <teân maûng>() As <kieåu> ‘ khoâng coù
soá chieàu
Caáp phaùt soá phaàn töû thöïc söï baèng doøng leänh:
ReDim <teân maûng>(<soá chieàu>)
Ví duï:
Dim DynaM() As Integer
…..
ReDim DynaM(1 To 10, 1 To 10)
Ví duï thuû tuïc sao cheùp maûng:
Sub ByteCopy(old() As Byte, new() As Byte)
Dim I As Integer
ReDim new(Lbound(old) To Ubound(old))
For I= Lbound(old) To Ubound(old)
new(I)=old(I)
Next
End Sub
‘Vôùi VB 6.0
Sub ByteCopy(old() As Byte, new() As Byte)
new=old
End Sub
Haøm coù theå traû veà moät maûng, ví duï:
Function Ham(….) As Integer() ‘Haøm traû veà maûng
Integer
Dim x(..) As Integer
……..
Ham=x ’Traû veà maûng x ñaõ khai baùo trong thaân
haøm
End Function

Trang:27
Baøi giaûng Heä quaûn trò CSDL Access

i) Kieåu töï ñònh nghóa


Type <teân kieåu>
<tröôøng 1> As <Kieåu>
<tröôøng 2> As <Kieåu>
…….
End Type
Gioáng nhö kieåu Record cuûa Pascal, khai baùo kieåu
ñaët trong Module
Ví Duï:
Type Student
Codenum AS String * 9
Name As String*30
Class As String*6
End Type
‘ Su dung
Dim s1 As Student
s1. Codenum=”200110001”
s1. Name=”Ly Truong Tu Duy”
s1.Class=”25K10A”
………..
III. CAÙC CAÁU TRUÙC ÑIEÀU KHIEÅN:
1. Caáu truùc reõ nhaùnh.
If condition Then [statement] [Else elsestatement]
Khi caàn thöïc hieän khoái leänh duøng caáu truùc
If condition Then
[statements]
.....
[ElseIf condition-n Then
[elseifstatements] ...
[ElseIf condition-n Then
[elseifstatements]
[Else
[elsestatements]]
……..
End If
VB seõ kieåm tra ñieàu kieän cuûa IF neáu ñuùng thì thi
haønh khoái leänh sau IF vaø keát thuùc, ngöôïc laïi kieåm
tra ñeán caùc ñieàu kieän ElseIf neáu gaëp moät ñieàu
kieän thoaû thì thi haønh khoái leänh töông öùng vaø keát
thuùc. Neáu khoâng coù ñieàu kieän naøo ñöôïc thoaû thì
khoái leänh sau Else neáu coù seõ ñöôïc thi haønh.
2. Caáu truùc löïa choïn.

Trang:28
Baøi giaûng Heä quaûn trò CSDL Access

Select Case testexpression


Case expressionlist-1
statements-1
[Case expressionlist-2
statements-2]
…..
[Case Else
elsestatements]
End Select
Ñieåm khaùc vôùi If….Then laø Case khoâng chöùa
teân bieán, duøng töø khoaù Is. Case Else neáu coù
seõ ñöôïc thi haønh khi khoâng coù Case naøo ñöôïc
thoaû.
Ví duï:
Select Case index ‘Index laø bieán
Case Is<100, 150 To 200,300,400
………..
Case 500,Is >=1000
……
End Select
3. Caáu truùc laëp
a. Do…Loop
Kieåu 1: Do While <ñieàu kieän>
Khoái leänh
…..
Loop
Kieåu 2: Do
Khoái leänh
…..
Loop While <ñieàu kieän>
Kieåu 3: Do Until <ñieàu kieän>
Khoái leänh
…..
Loop
Kieåu 4: Do
Khoái leänh
…..
Loop Until <ñieàu kieän>
b. For…Next
For <bieán ñeám> = <ñieåm ñaàu> To <ñieåm
cuoái> [ Step <böôùc nhaûy]
Khoái leänh

Trang:29
Baøi giaûng Heä quaûn trò CSDL Access

Next
Neáu böôùc nhaùy döông thì ñieåm ñaàu phaûi nhoû hôn
ñieåm cuoái neáu khoâng khoái leänh seõ khoâng ñöôïc thi
haønh, neáu böôùc nhaùy aâm thì ñieåm ñaàu lôùn hôn ñieåm
cuoái neáu khoâng khoái leänh cuõng seõ khoâng ñöôïc thi
haønh. Böôùc nhaûy coù theå khoâng coù, maëc ñònh laø 1.
c. For Each…. Next
For Each <phaàn töû> In <taäp hôïp/nhoùm>
Khoái leänh
Next
Laëp khoái leänh theo soá phaàn töû coù trong taäp
hôïp hoaëc nhoùm. Phaàn töû trong taäp hôïp chæ coù theå laø
bieán Variant, bieán Object.
d. While….Wend
e. While <ñieàu kieän>
Khoái leänh
Wend
Töông töï nhö Do While….Loop nhöng khoâng theå
thoaùt khoûi voøng laëp baèng Exit Do maø chæ thoaùt
voøng laëp khi ñieàu kieän sai.

Löu yù: Caùc caáu truùc ñieàu khieån coù theå loàng nhau.
Leänh Exit … cho pheùp thoaùt laäp töùc khoûi voøng laëp
For, Do Loop. Exit For thoaùt voøng laëp For , Exit Do
thoaùt voøng laëp Do ….Loop
f. Leänh Go to
Go to <nhaõn>
Nhaûy tôùi nhaõn chæ ra. Khi ñoù VB seõ chuyeån
ñieàu khieån ñeán leänh phía sau nhaõn khai baùo.
Cuù phaùp khai baùo nhaõn:
<Teân nhaõn:>
Thöôøng leänh Go to duøng ñeå baåy loãi, khi coù loãi
xaûy ra nhaûy ñeán nhoùm leänh xöû lyù phía sau
nhaõn.
Cuù phaùp baåy loãi:
On Error Go to <nhaõn>
IV. HAØM VAØ THUÛ TUÏC
Haøm vaø thuû tuïc giuùp chia nhoû chöông trình thaønh
töøng module, deã daøng gôõ roái, söû duïng nhieàu laàn.
1. Haøm (Function)
Haøm nhaän vaøo caùc tham soá vaø traû veà 1 giaù
trò

Trang:30
Baøi giaûng Heä quaûn trò CSDL Access

Private| Static | Public < Function > <Teân haøm> (danh saùch tham
soá) As <Kieåu traû veà>
Khai baùo bieán beân trong haøm
Caùc leänh xöû lyù tham soá vaø tính toaùn keát quaû.
……..
<Teân haøm>=<Keát quaû> ‘Traû veà keát quaû
End Function

2. Thuû tuïc (Sub)


Haøm nhaän vaøo caùc tham soá vaø traû veà
khoâng traû veà giaù trò
Private| Static | Public < Sub > <Teân thuû tuïc>
(danh saùch tham soá)
Khai baùo bieán beân trong Sub
Caùc leänh xöû lyù tham soá vaø tính toaùn keát quaû.
……..
End Sub
VD:
Public Function giaithua(n As Long) As Single
Dim kq As Single
Dim i As Long
kq = 1
For i = 1 To n
kq = kq * i
Next
giaithua = kq 'Tra ve gia tri cho ham
End Function

Public Function sumn(n As Long) As Single


Dim kq As Single
Dim i As Long
kq = 0
For i = 1 To n
kq = kq + i
Next
sumn = kq 'Tra ve gia tri cho ham
End Function

Public Function catten(ht As String) As String


Dim vt1, vt2, i As Long

Trang:31
Baøi giaûng Heä quaûn trò CSDL Access

i = Len(ht)
Do While i > 1 And Mid(ht, i, 1) = Space(1)
i=i-1
Loop
vt2 = i ' vt2 la vi tri cuoi ten
'di tu cuoi ten ve dau ten
Do While i > 1 And Mid(ht, i, 1) <> Space(1)
i=i-1
Loop
vt1 = i + 1 ' vt1 la vi tri dau ten
If i > 1 Then
catten = Mid(ht, vt1, vt2 - vt1 + 1)
Else
catten = ht
End If
End Function

Function xeploaihoctap(dtb As Single) As String


If dtb >= 9 Then
xeploaihoctap = "Xuat sac"
ElseIf dtb >= 8 Then
xeploaihoctap = "Gioi"
ElseIf dtb >= 7 Then
xeploaihoctap = "Kha"
ElseIf dtb >= 6 Then
xeploaihoctap = "TB - Kha"
ElseIf dtb >= 5 Then
xeploaihoctap = "Trung binh"
Else
xeploaihoctap = "Yeu"
End If
End Function

Function WeekName(d As Date) As String


Select Case Weekday(d)
Case 1
WeekName = "Chu Nhat"
Case 2
WeekName = "Thu Hai"
Case 3
WeekName = "Thu Ba"
Case 4

Trang:32
Baøi giaûng Heä quaûn trò CSDL Access

WeekName = "Thu Tu"


Case 5
WeekName = "Thu Nam"
Case 6
WeekName = "Thu Sau"
Case 7
WeekName = "Thu Bay"
End Select
End Function

Function IsNguyento(n As Long) As Boolean


Dim i As Long
If n = 1 Then
IsNguyento = False
Else
i=2
Do While i < n / 2 And n Mod i <> 0
i=i+1
Loop
If i > n / 2 Then
IsNguyento = True
Else
IsNguyento = False
End If
End If
End Function

Goïi haøm vaø thuû tuïc:


Goïi haøm:
bieán=Teânhaøm(danh saùch caùc tham soá
truyeàn)
hay tham gia trong bieåu thöùc cuøng kieåu
Goïi thuû tuïc:
Call Teânthuû tuïc(danh saùch caùc tham soá
truyeàn)
Teânthuûtuïc danh saùch caùc tham soá
truyeàn, khoâng coù ngoaëc
Coù theå chæ ra Module khai baùo haøm hay thuû tuïc baèng
cuù phaùp: Teânmodule.Teânhaøm,
Teânmodule.Teânthuûtuïc. Haøm coù theå tham gia trong

Trang:33
Baøi giaûng Heä quaûn trò CSDL Access

bieåu thöùc cuøng kieåu ñeå traû veà moät giaù trò cho
bieåu thöùc.
Thoaùt khoûi haøm vaø thuû tuïc ñoät ngoät sau moät
leänh baát kyø:
Exit Function ‘Thoaùt haøm
Exit Sub ‘Thoaùt thuû tuïc
Truyeàn tham soá:
Truyeàn tham chieáu (ByRef) laø maëc ñònh
cuûa VB, tham soá kieåu variant. Neáu muoán truyeàn giaù
trò theâm töø khoùa Byval tröôùc teân tham soá hình thöùc.
Duøng tham soá tuøy choïn coù theå coù hay khoâng
khi goïi:
Theâm töø khoùa Optional tröôùc teân tham soá hình
thöùc (tham soá phaûi coù kieåu variant). Coù theå keát
hôïp haøm IsMissing (thamso) trong haøm hay thuû tuïc
ñeå kieåm tra xem tham soá coù maët hay khoâng (true laø
khoâng coù maët, False laø coù maët)
Duøng soá voâ haïn caùc tham soá
Töø khoùa ParamArray cho pheùp haøm hay thuû tuïc
nhaän maûng hay daõy voâ haïn caùc tham soá.
Ví duï:
Function Sum(ParamArray A()) As Single
Dim s As Single, x As Variant
s=0
For Each x In A
s=s+x
Next
Sum = s
End Function
?Sum (1,2,3,4,5,6,7,8,9,10)
V. MOÄT SOÁQUY CAÙCH ÑEÀ NGHÒ KHI LAÄP TRÌNH
1. Ñaët teân: thuû tuïc, bieán, haèng....
Baét ñaàu laø kyù töï, khoâng chöùa daáu chaám, khoâng
daøi quaù 255 kyù töï, khoâng truøng caùc töø khoaù VB.
2. Ñaët teân cho ñoái töôïng: Form, Textbox, Command...
Ba kyù töï ngaén goïn ( taét ) ñeå chæ roõ loaïi ñoái
töôïng vaø sau ñoù laø teân ñaët cho ñoái töôïng. Lôïi
ñieåm laø nhìn teân ñoái töôïng ta coù theå bieát ñoù laø
ñoái töôïng naøo.
3. Chuù thích khi vieát chöông trình

Trang:34
Baøi giaûng Heä quaûn trò CSDL Access

Ñaàu moãi haøm hay thuû tuïc, hay caùc leänh phöùc
taïp neân coù chuù thích ñeå khi ta ñoïc laïi ta naém
ñöôïc yù ñoà, coâng duïng.
Cuù phaùp chuù thích
‘ Daáu nhaùy ñôn sau ñoù laø doøng chuù thích
Caùc doøng chuù thích seõ ñoåi maøu xanh lôït.
4. Canh leà caùc caáu truùc ñieàu khieån loàng nhau:
caùc caáu truùc ñieàu khieån loàng beân trong neân thuït
vaøo trong, leänh keát thuùc ñieàu khieån phaûi thaúng
leà.
Ví duï:
If ..... then
Select Case
Case .....
Case.....
End Select
Else
Do While .....
.......
Loop
End If
5. Vieát nhieàu leänh treân moät doøng
Duøng daáu hai chaám (:) ñeå ngaên caùch.
Leänh 1: Leänh 2: Leänh 3
6. Vieát moät leänh treân nhieàu doøng
Duøng daáu gaïch ngang döôùi (_) ñeå baùo cho VB bieát
leänh coøn tieáp ôû doøng döôùi.
Leänh 1 _
Tieáp leänh 1
7. Cöûa soå DEBUG gôû roái vaø thöû chöông trình
View/ Debug Windows =Ctrl +G
Taïi CS naøy coù theå chaïy thöû caùc haøm vaø thuû tuïc VBA
hay haøm/thuû tuïc töï xaây döïng trong caùc module
VI. CAÙC HOÄP HOÄI THOAÏI MESSAGE BOX & INPUT BOX:
1. Thoâng baùo thoâng ñieäp (Message box)
bieán = MsgBox(prompt[, buttons] [, title] [, helpfile,
context])
Hieån thò hoäp thoâng baùo vaø traû veà nuùt ñöôïc click
 Prompt: chuoãi thoâng baùo.
 Caùc Kieåu button:
vbOKOnly 0 Display OK button only.
vbOKCancel 1 Display OK and Cancel buttons.

Trang:35
Baøi giaûng Heä quaûn trò CSDL Access

vbAbortRetryIgnore 2 Display Abort, Retry, and Ignore


buttons. vbYesNoCancel 3 Display Yes, No, and Cancel
buttons.
vbYesNo 4 Display Yes and No buttons.
vbRetryCancel 5 Display Retry and Cancel buttons.
vbCritical 16 Display Critical Message icon.
vbQuestion 32 Display Warning Query icon.
vbExclamation 48 DisplayWarning Message icon.
vbInformation 64 Display Information Message icon.
vbDefaultButton1 0 First button is default.
vbDefaultButton2 256 Second button is default.
vbDefaultButton3 512 Third button is default.
vbDefaultButton4 768 Fourth button is default.
vbApplicationModal 0 Application modal; the user must
respond to the message box before continuing work in the
current application.
 Title: tieâu ñeà cuûa hoäp thoâng baùo.
Coù theå boû daáu ngoaëc goïi nhö goïi thuû tuïc khi khoâng caàn
bieát button naøo ñöôïc click.
MsgBox prompt[, buttons] [, title] [, helpfile, context]

2. Hoäp nhaäp (Input box)


InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile,
context])
Hieån thò hoäp nhaäp cho pheùp ngöôøi söû duïng nhaäp
thoâng tin vaøo vaø traû veà chuoãi nhaäp.
 Prompt: chuoãi nhaéc nhôû.
 Title: tieâu ñeà.
 Default: chuoãi nhaäp coù saün maëc ñònh.
 xpos, ypos toaï ñoä hieån thò hoäp nhaäp.

CHÖÔNG VIII: CAÙC ÑOÁI TÖÔÏNG, PHÖÔNG THÖÙC


VAØ THUOÄC TÍNH
I. ÑOÁI TÖÔÏNG
1. Ñoái töôïng DOCMD
Ñaây laø ñoái töôïng cho pheùp ra caùc leänh thoâng duïng
trong öùng duïng CSDL hay caùc öùng duïng khaùc. Docmd
chæ coù caùc phöông thöùc maø khoâng coù thuoäc tính.
Caùc phöông thöùc cuûa ñoái töôïng naøy bao goàm ñaày ñuû
taát caû caùc loaïi action cuûa macro.
Cuù phaùp thöïc hieän phöông thöùc:

Trang:36
Baøi giaûng Heä quaûn trò CSDL Access

Docmd.methodname [caùc tham soá tuyø choïn caùch


nhau daáu phaåy]
Caùc phöông thöùc thoâng duïng:

DoCmd.OpenForm "Formname", acNormal


DoCmd.OpenForm "Formname", acNormal, , "where
condition"
DoCmd.OpenQuery "queryname"
DoCmd.OpenReport "Reportname",acViewPreview,,"where
condition"
DoCmd.Close
docmd.RunMacro “MacroName”
DoCmd.Close acForm, "Ojectname"
Docmd.RunSQL “Action SQL”
DoCmd.Quit

2. Caùc truy xuaát caùc ñoái töôïng treân bieåu maãu


• Ñeán moät ñoái töôïng form: Forms!Formname
• Ñeán moät ñoái töôïng ñieàu khieån treân form:
Forms!Formname!Teânñieàukhieån
Forms!Formname!Teânñieàukhieån.thuoäctính
Forms!Formname!Teânñieàukhieån.phöôngthöùc
3. Moâ taû vaø gaùn bieán ñoái töôïng.
Khai baùo vaø gaùn
Dim bieán As kieåu ñoái töôïng
Set bieán =……
Thay ñoåi thuoäc tính:
Bieán.thuoâctính = …
Ra phöông thöùc:
Bieán.phöôngthöùc ….

II. ÑOÁI TÖÔÏNG TRUY CAÄP DÖÕ LIEÄU DAO (Data Access
Object)
1. DAO, ñoái töôïng truy caäp döõ lieäu, laø moâ hình ñeå
thao taùc truy xuaát caùc CSDL thoâng qua VB. Vôùi DAO,
ta coù theå thi haønh caùc caâu truy vaán, caäp nhaät giaù
trò trong caùc baûng. DAO coøn coù theå taïo môùi moät
CDSL, phaân tích caáu truùc cuûa moät CSDL, thay ñoåi
noäi dung truy vaán, duyeät caùc boä maãu tin, caäp nhaät
caùc boä maãu tin… Ñöôïc VBA xaây döïng trong goùi
MicroSoft DAO 3.1
2. Moâ hình ñoái töôïng DAO

Trang:37
Baøi giaûng Heä quaûn trò CSDL Access

DBEgine

Workspace

Database

TableDe QueryDe RecordS Contain Relation


f f et er
Field Field Docume Field
Field
nt

Inde Paramet
x err

Field

User

Group

Group

User
a. WorkSpase
b. Users
Error
c. Groups
d. Databases
 Khai baùo:
Dim db AS Database
‘Lieân keát ñeán moät database, ODBC name.
Set db=Opendatabase(“...\...\*.mdb”)
‘ Hay lieân keát ñeán CSDL hieän haønh trong Access
Set db=Currentdb()
..........
Set db=nothing ‘ Xoùa keát noái cuûa bieán
db.
 Caùc phöông thöùc:
• OpenRecordset(“ Data”, “Kieåu recordset”)

Trang:38
Baøi giaûng Heä quaûn trò CSDL Access

Phöông thöùc duøng ñeå môû moät baûng döõ lieäu,


moät query select.. cuûa ñoái töôïng database.
• Execute “Caâu truy vaán SLQ haønh ñoäng”
Ví duï:
Dim db as Database
Set db= Opendatabase(“....\qlsv.mdb”,
dbOpenDynaset)
Db.Execute “Insert InTo Sinhvien
Values(‘0001’,’Nguyen Minh Ty’)”
Db.Execute “Update Sinhvien Set masv=’00002’,
ten=’Nam’”

e. Tabledefs
f. Indexs
g. Querydefs
h. Fields
i. Parameters
j. Recordsets
k. Relations
l. Containers
m.Documents
n. Properties
3. Caùc loaïi recorset
Kieåu recordset: Chæ ñònh kieåu môû baûng döõ lieäu,
caùc kieåu recordset

Kieåu Haèng Öu ñieåm Nhöôïc


ñieåm
Table DbOpenTable Söûa ñoåi Khoâng lieân
ñöôïc, tìm keát nhieàu
kieám nhanh baûng.
theo chæ muïc
Dynase DbOpenDynas Caäp nhaät Tìm kieám
t et ñöôïc, lieân chaäm
keát nhieàu
baûng.
Snapsh DbOpenSnaps Caäp nhaät Kích thöôùc
ot hot ñöôïc, lieân nhoû, chaäm
keát nhieàu hôn Dynaset
baûng. do taïo ra
baûn sao döõ
lieäu, khoâng

Trang:39
Baøi giaûng Heä quaûn trò CSDL Access

caäp nhaät
ñöôïc vôùi
Microsoft Jet.

a. Ñoái töôïng Recorset: chæ moät taäp keát quaû caùc


maãu tin nhaän ñöôïc.
 Caùc phöông thöùc di chuyeån con troû maãu tin:
MoveFirst: di chuyeån ñeán maãu tin ñaàu tieân.
MoveLast:di chuyeån ñeán maãu tin cuoái cuøng.
MoveNext:di chuyeån ñeán maãu tin keá tieáp.
MovePrevious:di chuyeån ñeán maãu tin keá tröôùc.
 Caùc phöông thöùc tìm kieám:
• FindFirst “SQL ñieàu kieän” : tìm maãu tin ñaàu tieân
thoaû ñieàu kieän. Neáu tìm thaáy thì thuoäc tính
Nomatch=False ngöôïc laïi Nomatch=True, baét ñaàu tìm
kieám töø maãu tin ñaàu tieân tìm xuoáng.
• FindNext “SQL ñieàu kieän” : tìm maãu tin ñaàu tieân
thoaû ñieàu kieän. Neáu tìm thaáy thì thuoäc tính
Nomatch=False ngöôïc laïi Nomatch=True, baét ñaàu tìm
kieám töø maãu tin hieän haønh tìm xuoáng.
• FindPrevious “SQL ñieàu kieän” : tìm maãu tin ñaàu
tieân thoaû ñieàu kieän. Neáu tìm thaáy thì thuoäc tính
Nomatch=False ngöôïc laïi Nomatch=True, baét ñaàu tìm
kieám töø maãu tin hieän haønh tìm leân.
• FindLast “SQL ñieàu kieän” : tìm maãu tin cuoái
cuøng thoaû ñieàu kieän. Neáu tìm thaáy thì thuoäc tính
Nomatch=False ngöôïc laïi Nomatch=True, baét ñaàu tìm
kieám töø maãu tin ñaàu tieân tìm xuoáng.
 Caùc phöông thöùc caäp nhaät maãu tin:
• AddNew :theâm maãu tin.
• Edit :söûa ñoåi giaù trò.
• Update :caäp nhaät söï thay ñoåi sau khi addnew hoaëc
edit
• Delete :xoaù maãu tin hieän taïi
• Close :phöông thöùc ñoùng recorset
 Caùc thuoäc tính:
• EOF: coù giaù trò true neáu con troû maãu tin trong
tình traïng End of File, ngöôïc laïi cho giaù trò False.
• BOF: coù giaù trò true neáu con troû maãu tin trong
tình traïng Begin of File, ngöôïc laïi cho giaù trò False.
• Bookmark: vò trí con maãu tin hieän haønh.

Trang:40
Baøi giaûng Heä quaûn trò CSDL Access

• Nomatch: true khi tìm kieám thaáy(not EOF), ngöôïc


laïi laø false (EOF). Caùc phöông thöùc tìm kieám seõ
aûnh höôûng ñeán Nomatch
• Teântröôøng.Value: truy xuaát giaù trò cuûa tröôøng
chæ ñònh ( hay rs!teântröôøng)
• RecordCount: ñeám toång soá maãu tin
• Sort: chöùa chuoãi khoaù saép xeáp boä maãu tin.
• Filter: chöùa chuoãi ñieàu kieän loïc caùc maãu tin
trong boä maãu tin.
Sau khi thay ñoåi sort hay filter phaûi môû laïi
<bieán.OpenRecordset>
• Index: chöùa chuoãi khoaù saép xeáp boä maãu tin.
• Seek <Bt tìm>: phöông thöùc tìm kieám theo giaù trò
treân index ñoái vôùi kieåu boä maãu tin Table coù
index.

Ví duï Move:
Sub MoveFirstX()

Dim dbsNorthwind As Database


Dim rstEmployees As Recordset
Dim strMessage As String
Dim intCommand As Integer

Set dbsNorthwind = OpenDatabase("Northwind.mdb")


Set rstEmployees = dbsNorthwind.OpenRecordset( _
"SELECT FirstName, LastName FROM Employees " & _
"ORDER BY LastName", dbOpenSnapshot)

With rstEmployees
' Populate Recordset.
.MoveLast
.MoveFirst
Do While True
' Show current record information and get user's
' method choice.
strMessage = "Name: " & !FirstName & " " & _
!LastName & vbCr & "Record " & _
(.AbsolutePosition + 1) & " of " & _
.RecordCount & vbCr & vbCr & _
"[1 - MoveFirst, 2 - MoveLast, " & vbCr & _
"3 - MoveNext, 4 - MovePrevious]"
intCommand = Val(Left(InputBox(strMessage), 1))
If intCommand < 1 Or intCommand > 4 Then Exit Do

' Call method based on user's input.


MoveAny intCommand, rstEmployees
Loop
.Close
End With

Trang:41
Baøi giaûng Heä quaûn trò CSDL Access

dbsNorthwind.Close

End Sub

Sub MoveAny(intChoice As Integer, _


rstTemp As Recordset)

' Use specified method, trapping for BOF and EOF.


With rstTemp
Select Case intChoice
Case 1
.MoveFirst
Case 2
.MoveLast
Case 3
.MoveNext
If .EOF Then
MsgBox "Already at end of recordset!"
.MoveLast
End If
Case 4
.MovePrevious
If .BOF Then
MsgBox "Already at beginning of recordset!"
.MoveFirst
End If
End Select
End With

End Sub

Ví duï Find:
Sub FindFirstX()

Dim dbsNorthwind As Database


Dim rstCustomers As Recordset
Dim strCountry As String
Dim varBookmark As Variant
Dim strMessage As String
Dim intCommand As Integer

Set dbsNorthwind = OpenDatabase("Northwind.mdb")


Set rstCustomers = dbsNorthwind.OpenRecordset( _
"SELECT CompanyName, City, Country " & _
"FROM Customers ORDER BY CompanyName", _
dbOpenSnapshot)

Do While True
' Get user input and build search string.
strCountry = _
Trim(InputBox("Enter country for search."))
If strCountry = "" Then Exit Do
strCountry = "Country = '" & strCountry & "'"

With rstCustomers

Trang:42
Baøi giaûng Heä quaûn trò CSDL Access

' Populate recordset.


.MoveLast
' Find first record satisfying search string. Exit
' loop if no such record exists.
.FindFirst strCountry
If .NoMatch Then
MsgBox "No records found with " & _
strCountry & "."
Exit Do
End If

Do While True
' Store bookmark of current record.
varBookmark = .Bookmark
' Get user choice of which method to use.
strMessage = "Company: " & !CompanyName & _
vbCr & "Location: " & !City & ", " & _
!Country & vbCr & vbCr & _
strCountry & vbCr & vbCr & _
"[1 - FindFirst, 2 - FindLast, " & _
vbCr & "3 - FindNext, " & _
"4 - FindPrevious]"
intCommand = Val(Left(InputBox(strMessage), 1))
If intCommand < 1 Or intCommand > 4 Then Exit Do

' Use selected Find method. If the Find fails,


' return to the last current record.
If FindAny(intCommand, rstCustomers, _
strCountry) = False Then
.Bookmark = varBookmark
MsgBox "No match--returning to " & _
"current record."
End If

Loop

End With

Exit Do
Loop

rstCustomers.Close
dbsNorthwind.Close

End Sub

Function FindAny(intChoice As Integer, _


rstTemp As Recordset, _
strFind As String) As Boolean

' Use Find method based on user input.


Select Case intChoice
Case 1
rstTemp.FindFirst strFind
Case 2
rstTemp.FindLast strFind
Case 3

Trang:43
Baøi giaûng Heä quaûn trò CSDL Access

rstTemp.FindNext strFind
Case 4
rstTemp.FindPrevious strFind
End Select

' Set return value based on NoMatch property.


FindAny = IIf(rstTemp.NoMatch, False, True)
End Function
III. ÑOÁI TÖÔÏNG TRUY CAÄP DÖÕ LIEÄU ADO
1. ADO laø gì? (ActiveX Data Object)
ADO laø lôùp ñoái töôïng cho pheùp giao noái keát ñeán
caùc CSDL thoâng qua OLE DB. OLE DB (OLE Database)
laø lôùp CDSL nhuùng cho pheùp keát noái ñeán caùc
heä CSDL thoâng qua ADO ñöôïc MicroSoft xaây döïng.
Duøng ADO baïn coù theå duøng VBA, Visual Basic hay
ASP (Scrip for Web Server) ñeå keát noái ñeán baát kyø
heä CSDL naøo . Thoâng qua ñoù baïn coù theå thöïc
hieän caùc truy vaán SQL treân CSDL, truy xuaát CSDL,
caäp nhaät CDSL.
2. Taïi sao phaûi söû duïng ADO
Duøng ADO coù theå keát noái ñeán caùc caùc CDSL
thoâng qua OLE DB. Caùc Provider cho pheùp noái keát
ñeán CSDL qua ADO
- Jet OLE DB 4.0: Microsoft Access
- ODBC Driver: heä thoáng keát noái môû ñeán caùc
CSDL môû thoâng qua caàu noái (Open DataBase
Connectivity), ODBC ñöôïc thieát laäp trong Control
Panel cuûa heä ñieàu haønh Windows xx.
- SQL Server
- Oracle
3. Caùc ñoái töôïng cô baûn cuûa ADO
Connection

Command

Parameter

Recordset

Field

Error
a. Ñoái töôïng Connection

Trang:44
Baøi giaûng Heä quaûn trò CSDL Access

Ñaây laø ñoái töôïng ñeå chæ ñeán moät CSDL noái keát
Khai baùo vaø taïo ñoái töôïng:
Dim objcon As New ADODB.Connection
Phöông thöùc Open cho pheùp lieân keát noái ñeán
moät CSDL theo moät Provider.
Objcon.Open (“..\..\..\*.mdb”)
Caùc daïng chuoãi keát noái cô baûn:
- Ñeán MS Access
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source =
D:\qlsinhvien.mdb”
- Ñeán MS Access thoâng qua ODBC
“Driver=Microsoft Access Driver
(*.mdb);DBQ=D:\qlsinhvien.mdb”
- Ñeán SQL Server
“Provider=SQLOLEDB;Data Source=teân_server; Initial
catalog=teân_database;user
ID=teânuser;PWD=maätkhaåu_user ”
Phöông thöùc Execute “SQL String “
Thi haønh caâu SQL
Phöông thöùc BeginTrans
Phöông thöùc CommitTrans
Phöông thöùc RollbackTrans
Phöông thöùc Close
b. Ñoái töôïng Recorset
Laø ñoái töôïng chæ boä maãu tin.
Khai baùo vaø taïo ñoái töôïng
Dim objrst As New ADODB.Recordset
Phöông thöùc Open
objrst.Open "select * from sinhvien", objcon,
adOpenDynamic, adLockOptimistic
Caùc phöông thöùc khaùc:
Find “ñieàu kieän”, , caùch tìm
Caùch tìm: adSearchForward, adSearchBackward
MoveFirst
MoveNext
MovePrevious
MoveLast
AddNew
Edit
Update
Delete

Trang:45
Baøi giaûng Heä quaûn trò CSDL Access

CancelUpdate
Close
Caùc thuoäc tính:
EOF, BOF, Nomatch, BookMark,
AbsolutePosition,RecordCount, !Filedname, Filter,Sort,
AbsolutePage…

Ví duï:
Sub vd()
Dim objcon As New ADODB.Connection
Dim objcmd As New ADODB.Command
Dim objrst As New ADODB.Recordset
Dim objprm As New ADODB.Parameter
Dim constr As String
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=e:\bao\qlsinhvien.mdb"
objcon.Open (constr)
objrst.Open "select * from sinhvien", objcon,
adOpenDynamic, adLockOptimistic
While Not objrst.EOF
Debug.Print objrst!masv, objrst!holot, objrst!ten,
objrst!malop
objrst.MoveNext
Wend
objrst.MoveFirst
objrst.Find "ten='bao'", , adSearchBackward
Debug.Print objrst!masv, objrst!holot, objrst!ten,
objrst!malop
End Sub
c. Ñoái töôïng Command
Laø ñoái töôïng ñeå ra caùc leänh thuoäc caùc kieåu leänh
khaùc nhau: veà table, veà Procedure… Ñaây laø moät ñoái
töôïng toång quaùt cuûa ñoái töôïng docmd
Caùc thuoäc tính:
CommmandType: kieåu leänh.
CommmandText: chuoãi caâu leänh.
Parameters: taäp tham soá.
Name: teân
Caùc phöông thöùc:
Execute: thi haønh caâu leänh
Cancel: huyû leänh
Ví duï

Trang:46
Baøi giaûng Heä quaûn trò CSDL Access

Sub vd2()
Dim objcon As New ADODB.Connection
Dim objcmd As New ADODB.Command
Dim objrst As New ADODB.Recordset
Dim constr As String
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=e:\bao\qlsinhvien.mdb"
objcon.Open (constr)
objcmd.CommandText = "Qsinhvien"
objcmd.ActiveConnection = objcon
objcmd.CommandType = adCmdTable
Set objrst = objcmd.Execute
While Not objrst.EOF
Debug.Print objrst!masv, objrst!holot, objrst!ten,
objrst!malop
objrst.MoveNext
Wend
End Sub

Sub xoasv()
Dim objcon As New ADODB.Connection
Dim objcmd As New ADODB.Command
Dim objrst As New ADODB.Recordset
Dim constr As String
Set objcon = CurrentProject.Connection
objcmd.ActiveConnection = objcon
objcmd.CommandText = "delete * from sv where
malop='25k10A'"
objcmd.CommandType = adCmdText
objcmd.Execute
End Sub
d. Ñoái töôïng Error
Laø ñoái töôïng löu tröõ caùc loãi khi coù loãi xaûy ra.

CHÖÔNG VIII: TUYØ BIEÁN FORM & REPORT – TAÏO


MENU VAØ GIAO DIEÄN CHO ÖÙNG DUÏNG.
I. Tuyø bieán Form
1. Caùc ñoái töôïng ñieàu khieån treân form (Object Control)
2. Moâ hình söï kieän vaø xöû lyù söï kieän.
3. Caùc thuoäc tính Refresh, Requery
4. Form nhieàu Tab Page

Trang:47
Baøi giaûng Heä quaûn trò CSDL Access

5. option, check box, toggle button


6. Frame
7. Form Startup
II. Tuyø bieán Report.
1. Ñaùnh soá thöù töï.
2. Ñaùnh soá trang
3. Phaân trang cho töøng nhoùm.
4. Page Setup
5. Toång hôïp cuoái nhoùm.
6. Söï kieän On No Data
III. Taïo Menu

Trang:48

You might also like