Tài liệu gồm:
- Giáo trình giảng dạy tín chỉ tin học trình độ B phần Query- Report- Form và lập trình VBA.
- Giáo trình bài tập mẫu (có bài giải)
Giúp các bạn có sự đam mê có thể tự học một cách dễ dàng mà không cần học trong các trung tâm tin học
Biên soạn dễ hiểu và đơn giản.
Chúc Thành Công!!
76 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2937 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Tài liệu hướng dẫn học tin học trình độ B phần Query - Report - Form và lập trình VBA (lý thuyết lẫn bài tập), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
00.
Söû duïng caâu truy vaán treân laøm truy vaán con vôùi töø khoaù SOME ñeå loïc nhöõng hoïc boång lôùn
hôn moät trong caùc hoïc boång cuûa sinh vieân khoa Anh vaên:
SELECT HocBong
FROM SINHVIEN
WHERE HocBong > SOME ( SELECT HocBong
FROM SINHVIEN
WHERE MaKH = ‘AV’ )
ORDER BY HocBong
Keát quûa nhaän ñöôïc seõ laø (150000, 150000, 170000, 180000).
150000 xuaát hieän do thoaû ñieàu kieän lôùn hôn moät giaù trò trong taäp keát quaû cuûa truy vaán con.
Trong tröôøng hôïp söû duïng ALL thay cho SOME thì keát quaû nhaän ñöôïc seõ mang yù nghóa loïc
nhöõng hoïc boång lôùn hôn taát caû hoïc boång cuûa khoa Anh vaên, caâu truy vaán nhö sau:
SELECT HocBong
FROM SINHVIEN
WHERE HocBong > ALL ( SELECT HocBong
FROM SINHVIEN
WHERE MaKH = ‘AV’ )
ORDER BY HocBong
Keát quûa seõ laø (170000, 180000).
Trong tröôøng hôïp taäp keát quaû cuûa truy vaán con traû veà toái ña moät doøng thì ta coù theå khoâng caàn
söû duïng SOME vaø ALL. Giaû söû laáy danh saùch nhöõng hoïc boång lôùn hôn hoïc boång cuûa sinh
vieân A01, caâu truy vaán seõ ñöôïc vieát nhö sau:
SELECT HocBong
FROM SINHVIEN
WHERE HocBong > ( SELECT HocBong
FROM SINHVIEN
WHERE MaSV = ‘A01’ )
ORDER BY HocBong
Vôùi caùch vieát nhö treân thì truy vaán con phaûi ñaûm baûo traû veà ñuùng moät doøng döõ lieäu, neáu coù
nhieàu hôn moät doøng trong taäp keát quaû thì caâu truy vaán seõ bò loãi.
VI.2. Söû duïng IN, NOT IN
Ñaây laø hai pheùp toaùn duøng ñeå taïo bieåu thöùc ñieàu kieän loïc döïa treân taäp hôïp nhieàu giaù trò (thay
cho nhöõng pheùp toaùn >, < … chæ söû duïng giaù trò ñôn).
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 49/75
Keát quaû cuûa pheùp toaùn IN laø nhöõng phaàn töû toàn taïi ñoàng thôøi trong hai taäp hôïp, coøn NOT IN
seõ laáy nhöõng phaàn töû coù trong taäp hôïp X maø khoâng coù trong taäp hôïp Y.
Giaø söû lieät keâ danh saùch nhöõng sinh vieân chöa thi moân Ñoà Hoaï.
Tröôùc tieân ta vieát moät truy vaán laáy nhöõng sinh vieân ñaõ thi moân Ñoà Hoaï (nhöõng sinh
vieân coù trong table KETQUA vaø MaMH laø 04)ï nhö sau:
SELECT MaSV
FROM KETQUA
WHERE MaMH = ‘04’
Söû duïng truy vaán treân laøm subquery vôùi pheùp toaùn NOT IN ñeå coù ñöôïc nhöõng sinh
vieân chöa thi moân Ñoà Hoaï nhö sau:
SELECT MaSV
FROM SINHVIEN
WHERE MaSV NOT IN ( SELECT MaSV
FROM KETQUA
WHERE MaMH = ‘04’ )
VI.3. Tham chieáu döõ lieäu trong truy vaán con
Xeùt yeâu caàu lieät keâ danh saùch sinh vieân coù hoïc boång cao nhaát cuûa moãi khoa, thoâng tin goàm:
Hoï teân sinh vieân, Maõ khoa, Hoïc boång.
Vôùi daïng yeâu caàu naøy thì ta khoâng theå söû duïng haøm Max ñeå laáy hoïc boång cao nhaát cuûa sinh
vieân trong töøng khoa ñöôïc. Neáu söû duïng Max(HocBong) ta phaûi nhoùm döõ lieäu theo hai thoâng
tin laø Hoï teân sinh vieân vaø Maõ khoa, nhoùm nhö vaäy thì khoâng coù yù nghóa gì.
Do ñoù, ta phaûi vieát truy vaán vôùi ñieàu kieän laø subquery nhö sau:
SELECT HoSV & ‘ ‘ & TenSV As HoTen, MaKH, HocBong
FROM SINHVIEN sv
WHERE HocBong >= ALL ( SELECT HocBong
FROM SINHVIEN
WHERE MaKH = sv.MaKH )
Vôùi truy vaán treân ta caàn löu yù bieåu thöùc ñieàu kieän cuûa truy vaán con duøng ñeå xaùc ñònh moái quan
heä giöõa subquery vaø truy vaán ôû beân ngoaøi laø theo töøng khoa.
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 50/75
Coù theå giaûi thích yù nghóa cuûa vieäc so saùnh nhö sau: caâu truy vaán seõ choïn ra sinh vieân naøo coù
hoïc boång lôùn hôn hay baèng taát caû hoïc boång cuûa nhöõng sinh vieân cuøng khoa.
Kinh nghieäm giaûng daïy:
Qua nhöõng ví duï treân ta thaáy raèng truy vaán con luoân choïn ra ñuùng moät field caàn thieát cho vieäc
so saùnh vaø field ñöoïc choïn trong truy vaán con cuõng chính laø field duøng ñeå taïo neân bieåu thöùc
ñieàu kieän loïc cuûa meänh ñeà WHERE.
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 51/75
Baøi 5
NGOÂN NGÖÕ SQL – ACTION QUERY
Toùm taét
Lyù thuyeát 5 tieát - Thöïc haønh 10 tieát
Muïc tieâu Caùc muïc chính Baøi taäp baét
buoäc
Baøi taäp laøm
theâm
Baøi hoïc naøy seõ cung caáp
cho hoïc vieân khaùi nieäm veà
caäp nhaät thoâng tin trong cô
sôû döõ lieäu baèng truy vaán.
Hoïc vieân seõ hoïc veà cuù
phaùp vaø caùch söû duïng caùc
loaïi truy vaán trong ngoân
ngöõ SQL duøng ñeå thay ñoåi
döõ lieäu.
Keát thuùc baøi hoïc, hoïc vieân
coù theå:
9 Thöïc hieän caäp nhaät döõ
lieäu baèng truy vaán.
I. Append query
II. Delete query
III. Update query
5.1, 5.2,
5.3
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 52/75
I. Append query
Thao taùc theâm môùi thoâng tin vaøo cô sôû döõ lieäu coù theå ñöôïc thöïc hieän tröïc tieáp treân caùc table
hoaëc thoâng qua caâu truy vaán.
Söû duïng truy vaán ñeå theâm môùi thoâng tin giuùp thao taùc quaûn lyù döõ lieäu ñöôïc nhanh choùng vaø
thuaän tieän hôn nhieàu döïa vaøo caùc tính chaát nhö truy vaán coù theå duøng laïi nhieàu laàn, thöïc hieän
theâm cuøng luùc nhieàu doøng döõ lieäu vaøo table, coù theå goïi thöïc thi töø moâi tröôøng laøm vieäc cuûa
Form, söû duïng trong caùc ngoân ngöõ laäp trình nhö Visual Basic, …
Trong moâi tröôøng laøm vieäc Access, truy vaán duøng ñeå theâm môùi döõ lieäu vaøo table laø Append
query. Append query coù 2 daïng vôùi yù nghóa söû duïng khaùc nhau: daïng theâm laàn löôït 1 doøng döõ
lieäu vaø daïng theâm nhieàu doøng döõ lieäu töø caùc baûng khaùc.
Ñieåm caàn löu yù ñoái vôùi truy vaán Append laø moãi caâu leänh Append chæ taùc ñoäng treân moät table
vaø döõ lieäu theâm vaøo table seõ theo töøng doøng.
I.1. Cuù phaùp - Daïng 1: Theâm 1 doøng döõ lieäu
Coù theå vieát theo 2 caùch sau:
INSERT INTO Teân_Table
VALUES (Danh saùch giaù trò cho taát caû caùc coät cuûa table)
hay
INSERT INTO Teân_Table (Teân_field_1, Teân_field_2, …)
VALUES (Danh saùch giaù trò öùng vôùi thöù töï caùc field ñöôïc chæ ñònh)
Moâ taû
INSERT INTO
Cho bieát table hieän coù trong cô sôû döõ lieäu seõ nhaän thoâng tin theâm môùi(Teân_Table). Teân
table baét buoäc phaûi ñöôïc chæ ra trong meänh ñeà INSERT INTO.
Tieáp theo laø danh saùch caùc field cuûa table. Trong caùch vieát thöù nhaát, ta coù theå khoâng
caàn chæ ñònh cuï theå caùc field, khi ñoù caâu truy vaán seõ theâm döõ lieäu cho taát cuûa caùc field
coù trong table treân moät doøng.
Vôùi caùch vieát thöù hai thì ta choïn ra caùc field cuûa table seõ ñöôïc theâm döõ lieäu, nhöõng
field coøn laïi cuûa table seõ coù giaù trò maëc ñònh hoaëc NULL.
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 53/75
VALUES
Meänh ñeà naøy duøng ñeå xaùc ñònh giaù trò cuûa doøng döõ lieäu ñöôïc theâm töông öùng vôùi caùc
field cuûa table.
Moät soá ñieåm caàn löu yù khi xaây döïng meänh ñeà VALUES:
+ Danh saùch caùc giaù trò trong VALUES phaûi coù soá löôïng baèng vôùi soá field coù trong
meänh ñeà INSERT INTO, moãi giaù trò ñöôïc phaân caùch bôûi daáu phaåy (,). Trong tröôøng
hôïp khoâng chæ ñònh cuï theå caùc field thì soá löôïng giaù trò phaûi baèng vôùi soá field coù
trong table ñang theâm döõ lieäu.
+ Caùc giaù trò trong danh saùch cuûa meänh ñeà VALUES truyeàn vaøo field trong INSERT
INTO seõ theo thöù töï töø traùi qua phaûi. Trong tröôøng hôïp khoâng chæ ñònh cuï theå caùc
field thì caâu truy vaán seõ döïa vaøo thöù töï cuûa field khi taïo caáu truùc table.
+ Khi duøng meänh ñeà VALUES phaûi ñaûm baûo giaù trò truyeàn vaøo töông öùng vôùi kieåu döõ
lieäu cuûa field nhaän, quan troïng laø caùc daáu duøng ñeå xaùc ñònh kieåu döõ lieäu chuoãi (caëp
daáu nhaùy ñoâi " ") vaø ngaøy (caëp daáu raøo # #).
Ví duï:
Theâm vaøo baûng SINHVIEN moät sinh vieân môùi vôùi nhöõng thoâng tin sau:
Maõ sinh vieân: C02
Hoï sinh vieân: Leâ Thanh
Teân sinh vieân: Hoaø
Caâu leänh truy vaán ñöôïc vieát nhö sau:
INSERT INTO SINHVIEN(MaSV, HoSV, TenSV)
VALUES ("C02","Leâ Thanh", "Hoaø")
Truy vaán coù theå vieát caùch khaùc:
INSERT INTO SINHVIEN
VALUES ("C02","Leâ Thanh", "Hoaø")
I.2. Cuù phaùp - Daïng 2: Theâm nhieàu doøng döõ lieäu
Coù theå vieát theo 2 caùch sau:
INSERT INTO Teân_Table
SELECT teân_field, giaù trò, bieåu thöùc
FROM …
hay
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 54/75
INSERT INTO Teân_Table (Teân_field_1, Teân_field_2, …)
SELECT teân_field, giaù trò, bieåu thöùc
FROM …
Cuù phaùp daïng 2 seõ duøng meänh ñeà SELECT ñeå taïo taäp giaù trò cho caùc field cuûa table caàn
theâm môùi döõ lieäu.
Keát quaû cuûa meänh ñeà SELECT seõ traû veà töø 0 ñeán nhieàu doøng, khi thöïc thi truy vaán Append thì
taát caû nhöõng doøng döõ lieäu cuûa SELECT seõ ñöôïc theâm vaøo table treân meänh ñeà INSERT INTO.
Söû duïng SELECT trong truy vaán Append hoaøn toaøn gioáng vôùi cuù phaùp cuûa Select query ñaõ
trình baøy trong phaàn treân. Löu yù laø soá field (hay soá giaù trò) trong meänh ñeà SELECT phaûi baèng
vôùi soá field ñöôïc chæ ñònh trong meänh ñeà INSERT INTO (hay baèng soá field cuûa table ñang
theâm môùi)
Ví duï:
Theâm vaøo baûng KETQUA danh saùch caùc sinh vieân khoa AV, maõ moân hoïc laø "03" vaø ñieåm 0
Caâu leänh truy vaán ñöôïc vieát nhö sau:
INSERT INTO KETQUA(MaSV, MaMH, Diem)
SELECT MaSV, "03", 0
FROM SINHVIEN
WHERE MaKH = "AV"
I.3. Moät soá löu yù khi theâm môùi
Thi thöïc hieän theâm môùi döõ lieäu cho baûng thì phaûi ñaûm baûo giaù trò cuûa nhöõng field laø
khoaù chính khoâng ñöôïc roãng vaø khoâng truøng, tröø nhöõng field laø khoaù chính coù kieåu
Autonumber thì khoâng ñöôïc gaùn giaù trò khi theâm môùi.
Giaû söû field STT cuûa SINHVIEN treân coù kieåu laø Autonumber vaø cuõng laø khoaù chính cuûa
table, ñeå theâm môùi moät sinh vieân vaøo ta chæ cung caáp giaù trò cho 3 field MaSV, HoSV vaø
TenSV. Truy vaán coù daïng sau:
INSERT INTO SINHVIEN(MaSV, HoSV, TenSV)
VALUES ("B01", "Traàn Nam", "Nguyeân")
Khi thöïc thi truy vaán, giaù trò cuûa field STT seõ töï ñoäng teân leân, giaù trò naøy do Access
quaûn lyù vaø ta khoâng theå thay ñoåi ñöôïc.
Vôùi nhöõng table coù field thuoäc kieåu döõ lieäu Autonumber thì ta phaûi luoân chæ ñònh danh
saùch field trong meänh ñeà INSERT INTO, tröø field kieåu Autonumber.
Vôùi nhöõng field laø khoùa ngoaïi thì giaù trò cuûa field phaûi toàn taïi trong baûng lieân quan.
Ñeå thöïc thi truy vaán Append thì ta phaûi choïn chöùc naêng Run (bieåu töôïng treân thanh
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 55/75
coâng cuï). Sau khi thöïc thi, môû table theâm môùi döõ lieäu ñeå xem keát quaû thöïc thi cuûa truy
vaán.
Kinh nghieäm giaûng daïy:
Vôùi loaïi truy vaán theâm döõ lieäu, giaùo vieân caàn löu yù hoïc vieân veà kieåu döõ lieäu cuûa field trong
table nhaän giaù trò theâm môùi, thöù töï gaùn giaù trò töø traùi qua phaûi vaø danh saùch giaù trò phaûi töông
öùng vôùi danh saùch field.
II. Delete query
Ta coù theå thöïc hieän vieäc xoaù döõ lieäu baèng truy vaán thay cho vieäc môû table vaø choïn töøng doøng
caàn xoaù.
Truy vaán xoaù giuùp ngöôøi söû duïng coù theå thöïc hieän vieäc loaïi boû thoâng tin trong table moät caùch
nhanh choùng vaø deã daøng, ñaëc bieät ñoái vôùi nhöõng yeâu caàu huyû döõ lieäu theo nhöõng ñieàu kieän
phöùc taïp.
Moãi Delete query chæ xoaù döõ lieäu treân moät table vaø coù aûnh höôûng treân caùc doøng cuûa table ñoù.
Khi thöïc thi caâu truy vaán thì caùc doøng bò huyû seõ khoâng theå phuïc hoài laïi ñöôïc, do ñoù caàn suy
nghó vaø vieát chính xaùc caâu leänh Delete ñeå khoâng xaûy ra tình huoáng xoaù nhaàm döõ lieäu.
II.1. Cuù phaùp – Söû duïng
Cuù phaùp ñôn giaûn nhaát ñeå xoaù döõ lieäu cuûa moät baûng coù daïng sau:
DELETE *
FROM Teân_table
WHERE Ñieàu kieän xoaù
Ñieåm quan troïng nhaát trong cuù phaùp Delete query naèm ôû meänh ñeà WHERE, duøng ñeå xaùc
ñònh ñieàu kieän xoaù cho caâu truy vaán.
Trong cuù phaùp treân thì meän ñeà WHERE khoâng baét buoäc phaûi coù, neáu boû qua WHERE thì caâu
leänh Delete seõ xoaù heát caùc doøng döõ lieäu coù trong table ôû meänh ñeà FROM, tröôøng hôïp naøy ít
khi ñöôïc söû duïng vaø phaûi caân nhaéc thaät kyõ tröôùc khi thöïc thi caâu truy vaán.
Phaàn lôùn caùc tröôøng hôïp thì caâu leänh xoaù luoân keøm theo ñieàu kieän khi thöïc thi. Ñieàu kieän xoaù
trong truy vaán Delete hoaøn toaøn gioáng vôùi WHERE cuûa Select query, duøng ñeå loïc ra nhöõng
doøng döõ lieäu coù trong baûng thoaû maõn moät hay nhieàu yeâu caàu cuûa ngöôøi söû duïng.
Ví duï:
Trong table SINHVIEN, muoán xoaù thoâng tin cuûa nhöõng sinh vieân cuûa khoa Anh vaên, maõ khoa
laø AV, caâu truy vaán seõ ñöôïc vieát nhö sau:
DELETE *
FROM SINHVIEN
WHERE MaKH = "AV"
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 56/75
Trong tröôøng hôïp ñieàu kieän xoaù thoâng tin cuûa moät table coù lieân quan ñeán nhöõng table khaùc thì
meänh ñeà FROM seõ lieät keâ danh saùch caùc table caàn thieát thoâng qua pheùp keát töông töï nhö
Select query. Cuù phaùp coù daïng sau:
DELETE Table caàn xoaù.*
FROM Table 1 [Inner Join | Left Join | … ] Table 2 On Table 1 …
WHERE Ñieàu kieän xoaù
Vôùi cuù phaùp treân thì ôû meänh ñeà DELETE ta caàn phaûi chæ roõ table naøo seõ bò xoaù döõ lieäu theo cuù
phaùp Table.*, vôùi Table laø moät trong nhöõng table coù trong meänh ñeà FROM.
Ví duï:
Xeùt caáu truùc baûng döõ lieäu treân, thöïc hieän yeâu caàu xoaù nhöõng keát cuûa cuûa sinh vieân (xoaù döõ
lieäu table KETQUA) khoa Anh vaên, caâu truy vaán seõ ñöôïc vieát nhö sau:
DELETE KETQUA.*
FROM SINHVIEN Inner Join KETQUA On SINHVIEN.MaSV = KETQUA.MaSV
WHERE MaKH = "AV"
Ñeå thöïc thi Delete query phaûi choïn chöùc naêng Run vaø xem keát quaû thöïc thi baèng caùch môû
table bò xoaù döõ lieäu sau khi thöïc hieän truy vaán.
Kinh nghieäm giaûng daïy:
Loaïi truy vaán xoaù caàn löu yù hoïc vieân phaûi xaùc ñònh ñieàu kieän xoaù ñuùng tröôùc khi thöïc thi.
Giaùo vieân coù theå nhaéc laïi tính chaát cuûa moái quan heä giöõa caùc talbe ñeå chæ ra nhöõng tröôøng
hôïp xoaù döõ lieäu treân table: khi naøo khoâng xoaù ñöôïc vaø khi naøo xoaù nhöõng doøng döõ lieäu cuûa
table lieân quan.
III. Update query
Thao taùc thay ñoåi döõ lieäu treân table coù theå ñöôïc thöïc hieän vôùi Update query. Caâu truy vaán seõ
taùc ñoäng leân moät hay nhieàu field treân nhöõng doøng coù trong table ñöôïc caäp nhaät.
Vôùi Update query ta coù theå thöïc hieän vieäc caäp nhaät döõ lieäu ñoàng thôøi treân nhieàu table khaùc
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 57/75
nhau theo ñieàu kieän caàn thieát.
III.1. Cuù phaùp - Söû duïng
Cuù phaùp caâu truy vaán caäp nhaät döõ lieäu treân moät table:
UPDATE table
SET field = giaù trò, …
WHERE Ñieàu kieän caäp nhaät
Meänh ñeà SET trong cuù phaùp treân duøng ñeå chæ ñònh field cuûa table treân meänh ñeà UPDATE seõ
ñöôïc caäp nhaät giaù trò. Ta coù theå caäp nhaät cuøng luùc nhieàu field, moãi field ñöôïc phaân caùch bôûi
daáu phaûy (,).
Ví duï:
Trong table SINHVIEN, muoán söûa teân cuûa sinh vieân A03 thaønh Haân, caâu truy vaán seõ ñöôïc vieát
nhö sau:
UPDATE SINHVIEN
SET TenSV = "Haân"
WHERE MaSV = "A03"
Chuù yù:
Löu yù giaù trò gaùn trong SET phaûi ñuùng vôùi kieåu döõ lieäu cuûa field.
Field kieåu ngaøy thì giaù trò phaûi ñaët trong caëp daáu raøo (# #), field kieåu chuoãi thì giaù trò naèm
trong caëp daáu nhaùy ñoâi (" "), field kieåu Boolean giaù trò seõ nhaän laø Yes (True, -1) hoaëc No
(False, 0).
Tröôøng hôïp caäp nhaät döõ lieäu cho nhieàu table hay thoâng tin caàn söû duïng lieân quan ñeán caùc
table khaùc nhau thì ta söû duïng cuù phaùp sau:
UPDATE table1 Inner Join table2 On …
SET field = giaù trò, table1.field = giaù tri, …
WHERE Ñieàu kieän caäp nhaät
Vôùi cuù phaùp treân, meänh ñeà Update seõ chæ ra nhöõng table caàn söû duïng, caùch vieát hoaøn toaøn
gioáng vôùi meänh ñeà FROM cuûa Select query.
Caùch vieát meänh ñeà SET trong tröôøng hôïp naøy gioáng ôû treân, tuy nhieân neáu teân cuûa field caàn
caäp nhaät xuaát hieän ôû caû 2 table thì phaûi chæ ñònh seõ gaùn giaù trò cho field naøo cuù phaùp: [ten
table].[ten field].
0
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 58/75
Ví duï:
Xeùt caáu truùc baûng döõ lieäu treân, thöïc hieän yeâu caàu caäp nhaät ñieåm moân Truyeàn Tin (MaMH = 1)
nhöõng sinh vieân khoa Anh vaên thaønh 5, caâu truy vaán seõ ñöôïc vieát nhö sau:
UPDATE KETQUA kq Inner Join SINHVIEN sv On kq.MaSV = sv.MaSV
SET Diem = 5
WHERE MaMH = 1 And MaKH = "AV"
III.2. Moät soá löu yù khi caäp nhaät döõ lieäu
Treân meänh ñeà SET cuûa Update query khoâng ñöôïc söû duïng caùc haøm thoáng keâ (sum, count,
max, min, avg) moät caùc tröïc tieáp (hay qua giaùn tieáp bôûi caâu truy vaán con).
Nhö vaäy, khi gaëp yeâu caàu caäp nhaät maø döõ lieäu coù ñöôïc töø vieäc tính toaùn thoáng keâ treân caùc
table thì ta phaûi xöû lyù nhö theá naøo?
Xeùt caáu truùc baûng sau:
Vôùi caáu truùc döõ lieäu nhö treân, moät hoaù ñôn (table HOADON) thì seõ coù nhieàu chi tieát hoaù ñôn
(table CTHOADON), moãi chi tieát duøng ñeå ghi nhaän thoâng tin nhaäp moät maët haøng vôùi soá löôïng
vaø ñôn giaù nhaäp töông öùng.
Vaäy thì giaù trò cuûa field TriGia trong table HOADON seõ ñöôïc tính theo coâng thöùc:
TriGia = Toång(SoLuong*DonGia)
Khi naøy, meänh ñeà SET seõ coù daïng sau: SET TriGia = Sum(SoLuong * DonGia)
Nhöng trong Update query thì tuyeät ñoái khoâng ñöôïc söû duïng haøm thoáng keâ, do ñoù ñeå giaûi
quyeát baøi toaùn naøy ta coù 2 caùch.
Caùch thöù nhaát: thoáng keâ döõ lieäu vaø xuaát ra table taïm
Ñaàu tieân, ta vieát moät caâu Make table query ñeå tính toång trò giaù cuûa moãi hoaù ñôn, döõ lieäu
laáy töø table CTHOADON, caâu truy vaán sau:
SELECT SoHoaDon, Sum(SoLuong*DonGia) As Tong INTO TriGiaHoaDon
FROM CTHOADON
GROUP BY SoHoaDon
Thöïc thi caâu truy vaán treân ta seõ coù theâm moät table trong cô sôû döõ lieäu, hình döôùi, chöùa
thoâng tin goàm danh saùch caùc hoaù ñôn vaø Toång(SoLuong*DonGia) moãi hoaù ñôn.
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 59/75
Tieáp theo, vieát caâu leänh caäp nhaät field TriGia cuûa table HoaDon döïa vaøo giaù trò Tong
cuûa table TriGiaHoaDon öùng vôùi moãi soá hoa ñôn (SoHoaDon), cau truy vaán:
UPDATE HoaDon hd Inner Join TriGiaHoaDon tg On hd.SoHoaDon = tg.SoHoaDon
SET TriGia = Tong
Caùch thöù hai: söû duïng pheùp toaùn coäng doàn
Thay vì phaûi vieát theâm truy vaán ñeå taïo table taïm tröôùc khi caäp nhaät thì ta coù theå thöïc
hieän thao taùc caäp nhaät cho trò giaù baèng coâng thöùc coäng doàn nhö sau:
UPDATE HoaDon hd Inner Join CTHoaDon ct On hd.SoHoaDon = ct.SoHoaDon
SET TriGia = TriGia + (SoLuong * DonGia)
Tröôùc khi thöïc hieän caâu truy vaán treân ta phaûi gaùn laïi giaù trò ban ñaàu cho TriGia cuûa taát
caû caùc hoaù ñôn laø 0.
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 60/75
Baøi 6
THIEÁT KEÁ BAÙO CAÙO
Toùm taét
Lyù thuyeát 2 tieát - Thöïc haønh 4 tieát
Muïc tieâu Caùc muïc chính Baøi taäp baét
buoäc
Baøi taäp laøm
theâm
Baøi hoïc giuùp hoïc vieân hieåu
ñöôïc yù nghóa cuûa vieäc thieát
keá baùo caùo. Trình baøy moät
soá hình thöùc theå hieän thoâng
thöôøng cuûa baùo caùo.
Keát thuùc baøi hoïc, hoïc vieân
coù theå:
9 Phaân bieät ñöôïc baùo
caùo caàn thieát keá thuoäc
daïng theå hieän naøo .
9 Söû duïng ñoái töôïng
Report ñeå thieát keá caùc
baùo caùo giaûn ñôn baèng
Wizard.
I. Giôùi thieäu
II. Daïng hieån thò thoâng thöôøng
cuûa baùo caùo
III. Moâi tröôøng thieát keá baùo caùo
6.1
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 61/75
I. Giôùi thieäu
I.1. Ñoái töôïng thieát keá baùo caùo trong MS-Access
Microsoft Access cung caáp ñoái töôïng Report giuùp ngöôøi söû duïng coù theå trình baøy thoâng tin löu
tröõ trong table döôùi hình thöùc cuûa moät bieåu maãu (coù theå thay ñoåi nhieàu daïng khaùc nhau).
Ngoaøi ra, Report coøn hoã trôï khaû naêng xuaát döõ lieäu ra nhieàu ñònh daïng khaùc, nhö maùy tin, taäp
tin, maøn hình.
I.2. Thaønh phaàn cuûa baùo caùo
Goàm 5 thaønh phaàn:
Report Header – Tieâu ñeà cuûa baùo caùo: Caùc thoâng tin ñöôïc ñaët trong phaàn naøy seõ
xuaát hieän ôû ñaàu baùo caùo (chæ xuaát hieän moät laàn ôû trang ñaàu tieân cuûa baùo caùo).
Page Header – Tieâu ñeà cuûa trang: Caùc thoâng tin ñöôïc ñaët trong phaàn naøy seõ xuaát
hieän ôû ñaàu moãi trang cuûa baùo caùo.
Detail – Chi tieát: Theå hieän caùc thoâng tin chi tieát (thoâng tin chính) cuûa baùo caùo.
Page Footer – Cuoái trang: Caùc thoâng tin ñöôïc ñaët trong thaønh phaàn naøy seõ xuaát hieän
ôû cuoái moãi trang cuûa baùo caùo.
Report Footer – Cuoái baùo caùo: Caùc thoâng tin ñöôïc ñaët trong thaønh naøy seõ xuaát hieän ôû
cuoái baùo caùo (chæ xuaát hieän moät laàn ôû trang cuoái cuøng cuûa baùo caùo).
Ngoaøi caùc thaønh phaàn cô baûn ñaõ giôùi thieäu ôû treân, coøn coù 2 thaønh phaàn sau:
Group Header – Ñaàu nhoùm: Caùc thoâng tin ñöôïc ñaët trong phaàn naøy seõ xuaát hieän ôû
ñaàu moãi nhoùm döõ lieäu cuûa baùo caùo.
Group Footer – Cuoái nhoùm: Caùc thoâng tin ñöôïc ñaët trong phaàn naøy seõ xuaát hieän ôû
cuoái moãi nhoùm döõ lieäu cuûa baùo caùo.
II. Daïng hieån thò thoâng thöôøng cuûa baùo caùo
Thoâng tin töø moät hay nhieàu table ñöôïc theå hieän döôùi nhieàu hình thöùc khaùc nhau thoâng qua
vieäc saép xeáp nhöõng field döõ lieäu treân caùc vuøng laøm vieäc cuûa ñoái töôïng report.
Ñoái töôïng report cuûa Access coù hai daïng theå hieän thöôøng ñöôïc söû duïng laø Tabular vaø
Columnar.
II.1. Tabular
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 62/75
Baùo caùo theå hieän theo daïng Tabular thì caùc field seõ ñöôïc saép xeáp thaønh töøng coät vaø döõ lieäu
hieån thò treân töøng doøng, gaàn gioáng vôùi daïng theå hieän cuûa table.
Ñieåm maïnh cuûa daïng theå hieän naøy laø ngöôøi söû duïng coù theå theo doõi ñöôïc nhieàu doøng döõ lieäu
trong table ñoàng thôøi vaø moät caùch toång quaùt.
II.2. Columnar
Vôùi daïng Columnar thì caùc doøng döõ lieäu seõ ñöôïc theå hieän theo töøng nhoùm, khi naøy field cuûa
table saép xeáp treân nhöõng doøng khaùc nhau.
Baùo caùo daïng Columnar ngöôøi xem coù theå taäp trung vaøo thoâng tin treân töøng nhoùm döõ lieäu tuy
nhieân khoâng xem ñöôïc thoâng tin moät caùch toång quaùt nhö daïng Tabular.
Daïng theå hieän hoaøn toaøn gioáng vôùi baùo caùo ñôn tuy nhieân thoâng tin coøn ñöôïc tính toaùn thoáng
keâ. Thoâng tin thoáng keâ döïa vaøo vieäc phaân nhoùm döõ lieäu treân baùo caùo.
Phoái hôïp vôùi hai daïng treân, baùo caùo coøn coù theâm thaønh phaàn phaân nhoùm döõ lieäu. YÙ nghóa cuûa
vieäc phaân nhoùm treân baùo caùo cuõng gioáng nhö treân query, cho pheùp ta theå hieän thoâng tin vaø
thöïc hieän thao taùc tính toaùn thoáng keâ theo nhoùm.
III. Moâi tröôøng thieát keá baùo caùo
III.1. Giôùi thieäu coâng cuï Report Wizard
Coâng cuï naøy giuùp chuùng ta taïo nhanh moät ñoái töôïng Report thoâng qua moät soá böôùc thöïc
hieän. Chæ caàn thöïc hieän theo nhöõng höôùng daãn qua caùc böôùc thöïc hieän thì seõ taïo ñöôïc moät soá
daïng trình baøy döõ lieäu ñôn giaûn.
III.2. Thieát keá baùo caùo baèng coâng cuï Report Wizard
Field sắp
theo cột
Field saép
theo coät
Field sắp
theo dòng
Field saép
theo doøng
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 63/75
III.2.1. Chuaån bò tröôùc khi taïo baùo caùo
Tröôùc khi tieán haønh taïo baùo caùo, chuùng ta caàn thöïc hieän caùc böôùc chuaån bò sau:
Böôùc 1: Xaùc ñònh baùo caùo caàn thieát keá theå hieän ôû daïng naøo, Tabular hay Columnar?
Baùo caùo coù phaân nhoùm hay khoâng?. Khi baùo caùo coù phaân nhoùm thì ta caàn xaùc ñònh
theâm caùc yeáu toá sau:
+ Baùo caùo söû duïng bao nhieâu nhoùm ñeå hieän thò döõ lieäu?
+ Nhoùm theo thoâng tin naøo (field naøo cuûa nguoàn döõ lieäu seõ ñöôïc choïn ñeå phaân
nhoùm)?
Böôùc 2: Döïa vaøo thoâng tin caàn trình baøy treân baùo caùo, choïn caùc table chöùa thoâng tin
caàn hieån thò, goïi laø nguoàn döõ lieäu cuûa baùo caùo.
Nguoàn cuûa baùo caùo coù theå laø moät hay nhieàu table, hoaëc caâu query loïc thoâng tin caàn
hieån thò.
III.2.2. Caùc böôùc thieát keá baùo caùo
Böôùc 1 - Taïo môùi moät baùo caùo
Chuùng ta coù theå taïo môùi baùo caùo baèng ñoái töôïng Report thoâng qua moät trong hai caùch sau:
Choïn thöïc ñôn Insert Æ Report
Treân cöûa soå Database Window, choïn nuùt Reports (ôû phaàn Objects) roài choïn nuùt New
Hoäp thoaïi New Report cung caáp moät soá caùch thieát keá baùo caùo nhö sau:
Design View taïo ra moät ñoái töôïng Report troáng (chöa coù gì) ñeå baïn töï thieát keá
Report Wizard giuùp taïo môùi moät ñoái töôïng Report baèng coâng cuï Report Wizard
AutoReport: Columnar giuùp taïo ra baùo caùo coù hình thöùc trình baøy laø Columnar
AutoReport: Tabular giuùp taïo ra baùo caùo coù hình thöùc trình baøy laø Tabular
Chart Wizard giuùp taïo ra baùo caùo coù hình thöùc trình laø daïng Bieåu ñoà
Label Wizard giuùp taïo ra baùo caùo coù daïng moät laù thö
ÔÛ böôùc naøy, baïn seõ choïn caùch thieát keá Report Wizard
Böôùc 2 – Taïo nguoàn döõ lieäu
Choïn caùc table hay query chöùa field caàn laáy döõ lieäu cho nguoàn. Löu yù chæ choïn nhöõng table,
query chöùa thoâng tin caàn thieát ñeå trình baøy baùo caùo, neáu laáy dö table thì keát quaû thieát keá seõ
khoâng theo ñuùng yeâu caàu.
Böôùc 3 – Phaân nhoùm döõ lieäu
Choïn field duøng ñeå nhoùm döõ lieäu neáu baùo caùo coù phaân nhoùm. Moät baùo caùo coù theå ñöôïc nhoùm
theo nhieàu thoâng tin khaùc nhau, thöù töï cuûa nhoùm cuõng coù aûnh höôûng ñeán keát quaû theå hieän
cuûa baùo caùo.
Böôùc 4 – Saép xeáp vaø thoáng keâ döõ lieäu
Choïn field coù trong nguoàn ñeå saép xeáp thoâng tin hieån thò treân baùo caùo. Döõ lieäu treân baùo
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 64/75
caùo coù theå saép taêng hay giaûm theo moät hoaëc nhieàu field.
Ñeå thoáng keâ thoâng tin trong baùo caùo thì choïn nuùt Summary Options.
Böôùc 5 – Choïn hình thöùc trình baøy
Report Wizard cung caáp cho chuùng ta 6 hình thöùc trình baøy khaùc nhau. ÖÙng vôùi moãi hình thöùc
Report Wizard ñeàu coù phaàn moâ taû töông öùng beân traùi
Böôùc 6 – Ñaët teân vaø keát thuùc thieát keá
ÔÛ böôùc naøy, chuùng ta seõ ñaët teân cho baùo caùo. Teân cuûa baùo caùo seõ ñöôïc Wizard söû duïng ñeå
laøm tieâu ñeà cuûa baùo caùo, tieâu ñeà naøy coù theå thay ñoåi trong cöûa soå thieát keá report.
Sau ñoù chuùng ta seõ choïn nuùt Finish ñeå keát thuùc quaù trình thieát keá baùo caùo baèng coâng cuï
Report Wizard.
Kinh nghieäm giaûng daïy:
Trong baøi naøy, giaùo vieân taäp trung phaân tích vaø giôùi thieäu cho hoïc vieân nhöõng daïng theå hieän
cuøa baùo caùo, xaùc ñònh caùc nhoùm coù treân baùo caùo. Döïa vaøo thoâng tin vaø daïng theå hieän ñeå choïn
nguoàn döõ lieäu thích hôïp cho baùo caùo, löu yù hoïc vieân khoâng laáy dö field, table khi choïn nguoàn.
Höôùng daãn hoïc vieân thay ñoåi thuoäc tính cuûa nhöõng ñoái töôïng trong cöûa soå thieát keá report sau
khi ñaõ taïo baèng Wizard, nhö Font chöõ, maøu chöõ, …, thay ñoåi tieâu ñeà cuûa report, label.
III.3. Giôùi thieäu moâi tröôøng Design View
Moâi tröôøng Design View cho pheùp chuùng ta töï thieát keá môùi baùo caùo hay chænh söûa baùo caùo ñaõ
coù saün theo moät phong caùch rieâng.
Trong moâi tröôøng naøy, chuùng ta ñöôïc cung caáp moät soá coâng cuï ñeå thieát keá baùo caùo ñöôïc
thuaän tieän hôn.
III.3.1. Thanh coâng cuï Report Design
Ngoaøi nhöõng chöùc naêng cô baûn (nhö löu, caét daùn, sao cheùp, …), thanh coâng cuï naøy coøn cho
pheùp chuùng ta goïi caùc coâng cuï hoã trôï khaùc (nhö coâng cuï Toolbox, cöûa soå thuoäc tính
Properties, …) trong quaù trình thieát keá baùo caùo.
III.3.2. Thanh coâng cuï Toolbox
Cung caáp cho chuùng ta caùc ñieàu khieån duøng ñeå hieån thò döõ lieäu leân baùo caùo.
Caùc ñieàu khieån naøy seõ ñöôïc giôùi thieäu ôû phaàn sau.
III.3.3. Thanh coâng cuï Formatting Form/Report
Cho pheùp chuùng ta ñònh daïng thoâng tin trình baøy treân baùo caùo ñöôïc nhanh choùng (chaúng haïn
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 65/75
nhö ñònh daïng veà font chöõ, maøu neàn, khung vieàn, canh leà, …).
III.3.4. Cöûa soå thuoäc tính – Properties Window
Lieät keâ taát caû caùc thuoäc tính lieân quan ñeán ñoái töôïng ñöôïc choïn.
Cöûa soå naøy chia thuoäc tính cuûa moät ñoái töôïng thaønh 3 nhoùm:
Nhoùm Format thì lieät keâ nhöõng thuoäc tính veà hình thöùc trình baøy cuûa ñoái töôïng.
Nhoùm Data thì lieät keâ caùc thuoäc tính lieân quan ñeán thoâng tin hieån thò cuûa ñieàu khieån
Nhöõng thoâng tin coøn laïi thì ñöôïc lieät keâ trong nhoùm Other
Ngoaøi ra coøn coù trang All ñöôïc duøng ñeå lieät keâ taát caû caùc thuoäc tính cuûa ñoái töôïng.
Khi caàn xem hay hieäu chænh giaù trò cuûa moät thuoäc tính naøo ñoù cuûa ñieàu khieån, ta chæ caàn choïn
trang töông öùng coù chöùa thuoäc tính caàn chænh söûa coøn neáu khoâng bieát thuoäc tính ñoù thuoäc
trang naøo thì coù theå choïn trang All.
Thuoäc tính ñöôïc trình baøy trong cöûa soå Properties luoân coù 2 phaàn:
Teân thuoäc tính: ñöôïc trình baøy ôû vuøng xaùm naèm beân traùi. Teân thuoäc tính ñöôïc duøng
ñeå phaân bieät giöõa caùc thuoäc tính khaùc nhau coù trong ñoái töôïng
Giaù trò cuûa thuoäc tính: ñöôïc hieån thò ôû vuøng beân phaûi. Giaù trò cuûa thuoäc tính seõ cho
bieát traïng thaùi vaø noäi dung cuûa ñoái töôïng. Giaù trò ñöôïc löu tröõ trong phaàn naøy ñöôïc chia
thaønh caùc daïng sau:
+ String: Nhöõng thuoäc tính maø giaù trò cuûa noù laø moät töø hay moät nhoùm töø, töø hay nhoùm
töø naøy goïi laø String. Ta coù thay ñoåi giaù trò cuûa thuoäc tính baèng caùch Click vaøo teân
thuoäc tính sau ñoù nhaäp giaù trò caàn thieát vuøng giaù trò cuûa thuoäc tính
+ Boolean: Coù moät soá thuoäc tính maø giaù trò cuûa noù gioáng nhö keát quaû cuûa moät caâu
hoûi vaø keát quaû ñoù chæ coù theå laø moät trong hai giaù trò laø Ñuùng hay Sai. Coù 3 nhoùm giaù
trò ñöôïc söû duïng laø: Yes/No, True/False hay On/Off.
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 66/75
+ Enumerated: Ñaây laø taäp hôïp moät soá giaù trò ñònh saün cho thuoäc tính cuûa ñoái töôïng.
Nghóa laø thuoäc tính chæ coù theå nhaän moät trong nhöõng giaù trò naøy vaø soá giaù trò laø coá
ñònh, khoâng theâm hay bôùt ñöôïc, vaø caùc giaù trò ñöôïc chöùa trong moät ComboBox giaù
trò cuûa thuoäc tính.
+ Numeric: Thuoäc tính coù kieåu soá cho pheùp ta nhaäp vaøo nhöõng giaù trò soá, coù hai loaïi
soá maø ta caàn chuù yù khi nhaäp cho thuoäc tính laø soá thöïc vaø soá nguyeân tuyø theo töøng
thuoäc tính.
Chuù yù:
Vôùi baøi naøy giaùo vieân höôùng daãn hoïc vieân tìm caùc caùc coâng cuï trong moâi tröôøng
thieát keá cuûa ñoái töôïng report.
Thoâng qua caùc coâng cuï naøy hoïc vieân coù theå thay ñoåi laïi moät soá thaønh phaàn hieän
thò cuûa nhöõng baùo caùo ñaõ taïo baèng Report Wizard neáu caàn.
0
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 67/75
Baøi 7
ÑOÁI TÖÔÏNG REPORT
Toùm taét
Lyù thuyeát 6 tieát - Thöïc haønh 12 tieát
Muïc tieâu Caùc muïc chính Baøi taäp baét
buoäc
Baøi taäp laøm
theâm
Baøi hoïc cung caáp cho hoïc
vieân kieán thöùc vaø nhöõng kyõ
thuaät caàn thieát trong quaù
trình xaây döïng baùo caùo,
thao taùc treân ñoái töôïng
Report cuûa Microsoft
Access.
Keát thuùc baøi hoïc, hoïc vieân
coù theå:
9 Hieåu vaø söû duïng toát
nhöõng thaønh phaàn
trong moâi tröôøng laøm
vieäc cuûa ñoái töôïng
Report.
9 Trình baøy thoâng tin
trong table leân baùo caùo
theo nhieàu daïng theå
hieän khaùc nhau.
I. Thuoäc tính thieát keá cuûa ñoái
töôïng
II. Ñieàu khieån thöôøng duøng trong
moâi tröôøng thieát keá
III. Caùc böôùc taïo baùo caùo
IV. Moät soá kyõ thuaät thöôøng duøng
trong thieát keá
7.1, 7. 2
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 68/75
I. Thuoäc tính thieát keá cuûa ñoái töôïng
I.1. Record Source
Ñaây laø thuoäc tính cuûa ñoái töôïng Report, duøng ñeå khai baùo nguoàn döõ lieäu cuûa baùo caùo.
Thuoäc tính naøy coù theå nhaän 3 loaïi giaù trò sau:
Teân cuûa moät Table
Teân cuûa moät Query
Noäi dung cuûa caâu truy vaán döõ lieäu Select query
Sau khi xaùc ñònh giaù trò cho thuoäc tính Record Source cuûa Report ta coù theå söû duïng caùc thaønh
phaàn trong taäp hôïp FieldList cuûa Report ñeå thieát keá daïng hieån thò cuûa baùo caùo, caùch söû duïng
FieldList seõ ñöôïc trình baøy ôû phaàn döôùi.
I.2. Control Source
Ñaây laø thuoäc tính cuûa caùc ñieàu khieån, nhöõng ñieàu khieån cuûa ñoái töôïng Report duøng trong vieäc
thieát keá baùo caùo.
Thuoäc tính duøng hieån thò döõ lieäu cuûa moät field (hay coâng thöùc tính giöõa caùc field) coù trong
FieldList cuûa Report.
Thuoäc tính naøy coù theå chöùa 2 loaïi giaù trò sau:
Teân field coù trong nguoàn döõ lieäu cuûa baùo caùo
Coâng thöùc tính toaùn hay coâng thöùc thoáng keâ. Löu yù: trong tröôøng hôïp naøy thì coâng thöùc
phaûi luoân baét ñaàu baèng daáu ‘=’
I.3. Format
Thuoäc tính ñöôïc duøng ñeå thay ñoåi caùch theå hieän döõ lieäu treân ñieàu khieån thi ngöôøi söû duïng xem
baùo caùo.
Giaù trò cuûa thuoäc tính ôû daïng chuoãi, chuoãi ñònh daïng hoaøn toaøn gioáng vôùi caùch söû duïng cuûa
haøm Format trong Query.
Ví duï muoán hieån thò giaù trò 19873 ôû daïng 19,873 ta seõ duøng chuoãi ñònh daïng sau: #,##0. Vôùi
kieåu ngaøy thì ta coù ñònh daïng: dd/mm/yyyy, …
I.4. Visible
Thuoäc tính duøng ñeå hieån thò hoaëc aån ñieàu khieån ñaõ ñöôïc thieát keá treân vuøng laøm vieäc cuûa
Report, giaù trò cuûa thuoäc tính coù theå laø Yes hay No:
Visible = Yes: ñieàu khieån seõ hieån thò treân baùo caùo.
Visible = No: ñieàu khieån seõ khoâng hieån thò (aån ñi) treân baùo caùo.
Khi baùo caùo ñöôïc hieån thò cho ngöôøi söû duïng xem thì nhöõng ñieàu khieån coù thuoäc tính Visible
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 69/75
seõ bò aån ñi, ñieàu naøy ñoâi khi caàn thieát trong moät soá thao taùc tính toaùn thoáng keâ döõ lieäu treân baùo
caùo.
I.5. Thuoäc tính ñònh daïng
Ñònh daïng Font chöõ: bao goàm Font Name (Teân cuûa font chöõ), Font Size (Kích thöôùc
cuûa chöõ), Fore Color (Maøu chöõ), Font Weight (Chöõ ñaäm), Font Italic (Chöõ nghieâng),
Font Underline (Chöõ gaïch döôùi), …
Ñònh daïng neàn: bao goàm Back Color (Maøu neàn), Back Style (Kieåu toâ cuûa neàn)
Ñònh daïng khung vieàn: bao goàm Border Color (Maøu khung vieàn), Border Style (Kieåu
khung vieàn), Special Effect (Hình thöùc ñaëc bieät), …
Söû duïng caùc thuoäc tính ñònh daïng cuûa ñieàu khieån nhaèm taïo nhöõng baùo caùo coù theå hieän ñeïp
vaø deã xem hôn cho ngöôøi söû duïng.
Chuù yù:
Trong phaàn naøy, giaùo vieân caàn lieân heä ñeán cöûa soå thuoäc tính cuûa ñieàu khieån trong
moâi tröôøng thieát keát giuùp hoïc vieân deã hình dung vò trí caùc thuoäc tính cuûa ñieàu khieån.
II. Ñieàu khieån thöôøng duøng trong moâi tröôøng thieát keá
Label
Ñieàu khieån duøng ñeå hieån thò caùc thoâng tin tónh (khoâng thay ñoåi) treân baùo caùo,
chaúng haïn nhö Tieâu ñeà cuûa baùo caùo, Tieâu ñeà cuûa caùc coät trong baùo caùo, …
TextBox
Khi caàn hieån thò giaù trò cuûa moät field, moät coâng thöùc tính toaùn hay cuûa moät bieåu
thöùc thoáng keâ ngöôøi ta seõ duøng ñieàu khieån TextBox.
Moãi Text Box thöôøng duøng ñeå hieån thò döõ lieäu cuûa moät field, neáu nhieàu field khi
ñoù seõ laø coâng thöùc tính toaùn.
Line
Ñöôïc söû duïng ñeå veõ caùc ñöôøng thaúng nhaèm trang trí cho baùo caùo. Giuùp caùc thoâng tin treân
baùo caùo ñöôïc trình baøy roõ raøng hôn
Rectangle
Duøng ñeå veõ caùc khung hình chöõ nhaät nhaèm trang trí cho baùo caùo.
Page Break
Laø ñieàu khieån coù nhieäm vuï ngaét trang baùo caùo taïi vò trí ñaët ñieàu khieån.
0
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 70/75
Chuù yù:
Phaàn naøy giaùo vieân seõ höôùng daãn cuï theå hoïc vieân thao taùc treân caùc ñieàu khieån
thöôøng söû duïng nhaát ñeå thieát keá baùo caùo, coù theå phoái hôïp vôùi baøi treân ñeå chæ ra
caùc thuoäc tính cuûa ñieàu khieån.
Moät soá thao taùc chung treân ñieàu khieån
Taïo ñieàu khieån
Ñeå laøm vieäc vôùi ñieàu khieån tröôùc heát ta phaûi taïo ñieàu khieån leân vuøng laøm vieäc cuûa Report.
Trong cöûa soå Design View, nhöõng ñieàu khieån coù theå söû duïng ñeå thieát keá naèm treân thanh
Toolbox. Muoán taïo moät ñieàu khieån ta chæ caàn click choïn ñieàu khieån treân Toolbox sau ñoù click
vaøo vuøng thieát keá cuûa Report. Khi ñoù, treân vuøng laøm vieäc seõ xuaát hieän moät ñoái töôïng ñoà hoaï
öùng vôùi ñieàu khieån vöøa ñöôïc choïn treân Toolbox.
Ta cuõng coù theå taïo ñoái töôïng baèng caùch sao cheùp töø moät ñoái töôïng ñaõ coù baèng chöùc naêng
Copy (Ctrl + C) vaø Paste (Ctrl + V) trong cöûa soå thieát keá. Ñoái töôïng môùi ñöôïc sao cheùp seõ coù
ñaày ñuû nhöõng thuoäc tính cuûa ñoái töôïng goác.
Choïn caùc ñieàu khieån
Sau khi taïo ñieàu khieån, ta phaûi choïn ñieàu khieån caàn xöû lyù. Khi moät ñieàu khieån ñöôïc choïn thì ta
coù theå thöïc hieän nhieàu thao taùc ñònh daïng cho ñieàu khieån, nhö Font, Maøu chöõ, daïng hieån thò,…
Ta coù theå söû duïng chuoät hay baøn phím ñeå choïn moät hay nhieàu ñieàu khieån. Ñieàu
khieån ñang ñöôïc choïn seõ coù 8 oâ hình vuoâng maøu ñen bao quanh.
Choïn ñieàu khieån baèng chuoät ta coù theå thöïc hieän moät trong nhöõng caùch sau:
Click vaøo ñieàu khieån caàn choïn.
Thöïc hieän thao taùc click vaø keùo chuoät ñeå taïo moät khung hình chöõ nhaät, nhöõng ñieàu
khieån bò caét hoaëc naèm trong khung naøy seõ ñöôïc choïn.
Di chuyeån chuoät veá phía beân traùi hay phía treân cuøng cuûa Report ñang thieát keá, khi bieåu
töôïng cuûa chuoät chuyeån thaønh hình ¨ hoaëc ª thì click chuoät. Khi ñoù, treân Report seõ
xuaát hieän moät ñöôøng thaúng caét ngang hay doïc vuøng laøm vieäc cuûa Report, nhöõng ñieàu
khieån naèm treân ñöôøng thaúng seõ ñöôïc choïn.
Trong tröôøng hôïp muoán choïn taát caû caùc ñieàu khieån coù treân Report cuøng luùc ta coù theå nhaán toå
hôïp phím Ctrl + A. Ta cuõng coù theå nhaát giöõ phím Shift hay Ctrl trong khi click chuoät choïn ñieàu
khieån.
Ngoaøi ra, khi ñang choïn moät ñieàu khieån ta coù theå nhaán phím Tab ñeå di chuyeån qua caùc ñieàu
khieån coøn laïi treân Report.
Di chuyeån caùc ñieàu khieån
Ñieàu khieån coù theå naèm ôû nhöõng vò trí khaùc nhau treân vuøng thieát keá cuûa Report. Ta deã daøng
thay ñoåi vò trí cuûa ñieàu khieån baèng caùch choïn ñieàu khieån vaø duøng chuoät keùo thaû noù ñeán vò trí
caàn thieát. Ngoaøi ra ta coøn coù theå söû duïng caùc phím muõi teân ñeå di chuyeån ñieàu khieån ñang
ñöôïc choïn.
0
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 71/75
Khi ta reâ chuoät qua caùc ñieàu khieån ñang ñöôïc choïn, bieåu töôïng cuûa chuoät seõ thay ñoåi sang
moät trong hai daïng sau, moãi daïng coù yù nghóa yù di chuyeån khaùc nhau:
Di chuyeån moät ñieàu khieån ñöôïc choïn
Di chuyeån ñieàu khieån vaø thaønh phaàn thaønh lieân keát vôùi noù neáu coù
Di chuyeån nhoùm caùc phaàn töû ñang ñöôïc choïn
Thay ñoåi kích thöôùc cuûa ñieàu khieån
Khi ñieàu khieån ñöôïc choïn thì xung quanh noù xuaát hieän 8 oâ hình vuoâng maøu ñen. Ñeå thay ñoåi
kích thöôùc cuûa ñieàu khieån ta di chuyeån chuoät ñeán vò trí cuûa caùc oâ vuoâng, khi ñoù bieåu töôïng
cuûa chuoät seõ ñoåi thaønh daïng ñöôøng thaúng hai ñaàu coù hai muõi teân ( ), click vaø reâ chuoät ñeå
thay ñoåi kích thöôùc cuûa ñieàu khieån.
Ngoaøi ra, ta cuõng coù theå söû duïng toå hoäp phím Shift vaø caùc phím muõi teân ñeå thay ñoåi kích
thöôùc cuûa ñieàu khieån.
III. Caùc böôùc taïo baùo caùo
Vieäc thieát keá baùo caùo baèng Design View hay baèng coâng cuï Wizard thì keát quaû cuoái cuøng cuõng
laø moät baûn baùo caùo hoaøn chænh theo yeâu caàu cuûa ngöôøi söû duïng. Do vaäy caùc böôùc chuaån bò
tröôùc khi xaây döïng baùo caùo ôû caû 2 caùch naøy ñeàu gioáng nhau.
Sau khi chuaån bò ñaày ñuû caùc thoâng tin caàn thieát, chuùng ta seõ baét ñaàu thieát keá baùo caùo.
Böôùc 1 - Taïo môùi baùo caùo
Choïn thöïc ñôn Insert > Report
Choïn doøng Design View trong hoäp thoaïi New Report roài choïn OK
Böôùc 2 – Xaây döïng nguoàn döõ lieäu cho baùo caùo
Döïa vaøo thuoäc tính Record Source cuûa baùo caùo ñeå xaây döïng nguoàn döõ lieäu cho baùo caùo.
Hieån thò cöûa soå Properties cuûa baùo caùo.
Vaøo trang Data, choïn doøng Record Source ñeå choïn moät Table hay moät Query ñeå laøm
nguoàn döõ lieäu cho baùo caùo.
Trong tröôøng hôïp nguoàn döõ lieäu caàn söû duïng nhieàu baûng thì ta coù theå click vaøo nuùt ñeå môû
tieän tích QBE (caùch söû duïng hoaøn toaùn gioáng vôùi thao taùc treân Query), sau ñoù choïn ñaày ñuû
caùc thoâng tin caàn thieát roài ñoùng cöûa soå QBE laïi, nhôù choïn Yes khi ñöôïc hoûi.
Böôùc 3 – Hieån thò caùc thaønh phaàn cuûa baùo caùo
Söû duïng kyõ thuaät “AÅn hieän caùc thaønh phaàn cuûa baùo caùo” ñöôïc trình baøy trong phaàn döôùi.
Böôùc 4 – Trình baøy caùc thoâng tin caàn hieån thò
Söû duïng caùc kyõ thuaät ôû phaàn sau ñeå trình baøy baùo caùo theo ñuùng yeâu caàu.
Böôùc 5 – Hieäu chænh hình thöùc trình baøy
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 72/75
Thoâng qua thanh coâng cuï Formatting (Form/Report) ñeå ñònh daïng laïi hình thöùc theå hieän cuûa
caùc thoâng tin seõ hieån thò treân baùo caùo
Böôùc 6 - Keát thuùc thieát keá
Sau khi thöïc hieän xong caùc böôùc treân chuùng ta seõ löu baùo caùo vôùi teân caàn thieát. Teân cuûa ñoái
töôïng Report naøy phaûi laø duy nhaát (khoâng truøng laép).
Trong quaù trình thieát keá, chuùng ta coù theå xem keát quaû thöïc hieän qua caùc böôùc baèng caùch
chuyeån qua maøn hình Print Preview.
IV. Moät soá kyõ thuaät thöôøng duøng trong thieát keá
IV.1. AÅn hieän caùc thaønh phaàn cuûa baùo caùo
Ñoái vôùi Report Header/Footer vaø Page Header/Footer
Choïn thöïc ñôn View
Choïn hoaëc boû choïn doøng Report Header/Footer neáu muoán hieån thò hoaëc aån ñi 2 thaønh
phaàn Report Header vaø Report Footer.
Choïn hoaëc boû choïn doøng Page Header/Footer neáu muoán hieån thò hoaëc aån ñi 2 thaønh
phaàn Page Header vaø Page Footer
Ñoái vôùi Group Header/Footer
Choïn thöïc ñôn View > Sorting and Grouping ñeå hieån thò cöûa soå Sorting and Grouping
Ñeå hieån thò thaønh phaàn Group Header cuûa thoâng tin töông öùng thì Choïn doøng Group
Header sau ñoù ñoåi giaù trò cuûa doøng naøy thaønh Yes, coøn muoán daáu thaønh phaàn Group
Header cuûa thoâng tin töông öùng thì giaù trò cuûa doøng Group Header laø No.
Töông töï nhö vaäy vôùi thaønh phaàn Group Footer cuûa thoâng tin töông öùng.
IV.2. Ñaët thoâng tin hieån thò vaøo baùo caùo
Ñoái vôùi caùc thoâng tin ñöôïc laáy töø moät field coù trong nguoàn döõ lieäu cuûa baùo caùo, chuùng ta seõ
thöïc hieän nhö sau:
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 73/75
Hieån thò cöûa soå Field List. Ñaây laø cöûa soå ñöôïc duøng ñeå lieät keâ taát caû caùc field coù trong
nguoàn döõ lieäu cuûa baùo caùo.
+ Caùch 1: Choïn thöïc ñôn View > Field List
+ Caùch 2: Choïn nuùt Field List treân thanh coâng cuï Report Design
Töø cöûa soå Field List, choïn nhöõng field naøo caàn hieån thò roài keùo thaû vaøo thaønh phaàn
töông öùng treân baùo caùo.
Ñoái vôùi caùc thoâng tin tính toaùn hay thoáng keâ, ta seõ thöïc hieän nhö sau:
Veõ ñieàu khieån TextBox vaøo vò trí töông öùng treân baùo caùo.
Thoâng qua thuoäc tính Control Source cuûa TextBox ñeå nhaäp coâng thöùc tính toaùn hay
thoáng keâ vaøo TextBox. (Löu yù: trong tröôøng hôïp naøy thì caùc coâng thöùc tính toaùn hay
thoáng keâ phaûi luoân ñöôïc baét ñaàu baèng daáu ‘=’)
Ví duï 1:
Hieån thò toång soá sinh vieân coù trong töøng khoa.
Veõ moät TextBox vaøo thaønh phaàn Group Footer cuûa Maõ khoa
Nhaäp coâng thöùc thoáng keâ soá sinh vieân theo töøng khoa vaøo thuoäc tính Control Source cuûa
TextBox naøy:
Control Source: =Count(MaSV)
Ví duï 2:
Hieån thò thoâng tin Hoï teân sinh vieân bieát raèng Hoï teân sinh vieân laø söï keát hôïp giöõa 2 thoâng tin
Hoï sinh vieân vaø Teân sinh vieân.
Veõ moät TextBox vaøo thaønh phaàn Detail
Nhaäp coâng thöùc ñeå noái 2 thoâng tin Hoï sinh vieân vaø Teân sinh vieân laïi vôùi nhau:
Control Source: =HoSV & " " & TenSV
Chuù yù:
Ñoái vôùi caùc thoâng tin thoáng keâ, khi chuùng ta ñaët vaøo thaønh phaàn naøo cuûa baùo caùo
thì MS Access seõ döïa vaøo thöù töï phaân nhoùm ñöôïc lieät keâ trong cöûa soå Sorting and
Grouping ñeå thoáng keâ döõ lieäu.
Ví duï:
Thoâng tin trong baùo caùo ñöôïc phaân laøm 2 nhoùm laàn löôït: Maõ khoa, Maõ sinh vieân.
Neáu thoâng tin thoáng keâ ñieåm trung bình cuûa sinh vieân ñöôïc ñaët ôû Group Footer cuûa Maõ khoa
thì keát quaû coù ñöôïc seõ khoâng phaûi laø ñieåm trung bình cuûa töøng sinh vieân maø laø ñieåm trung
bình cuûa töøng khoa. Nhö vaäy laø sai vôùi yeâu caàu cuûa baùo caùo.
IV.3. Saép xeáp thoâng tin hieån thò treân baùo caùo
Ñeå saép xeáp döõ lieäu treân baùo caùo, chuùng ta coù theå laøm moät trong caùc caùch sau:
Trong cöûa soå Properties cuûa Report coù lieät keâ 2 thuoäc tính laø Order By On vaø Order by
ñeå giuùp cho vieäc saép xeáp döõ lieäu treân baùo caùo. Khi caàn saép xeáp thì
+ Order By On: phaûi baèng Yes
0
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 74/75
+ Order By: chuoãi saép xeáp (vieát töông töï nhö ôû meänh ñeà Order By cuûa caâu truy vaán
choïn döõ lieäu Select query)
Ví duï:
Saép xeáp taêng daàn theo Teân sinh vieân, neáu truøng thì saép giaûm daàn theo Ngaøy sinh:
Order By On = Yes
Order By = TenSV, NgaySinh DESC
Thoâng qua cöûa soå Sorting and Grouping ñeå saép xeáp:
+ Lieät keâ caùc thoâng tin caàn saép xeáp theo thöù töï töø treân xuoáng (töông töï nhö töø traùi
qua phaûi ôû meänh ñeà Order By cuûa caâu truy vaán choïn döõ lieäu Select query)
+ Beân coät Sort Order choïn moät trong 2 giaù trò Ascending hay Descending ñeå saép taêng
hay giaûm cho thoâng tin töông öùng
Ví duï:
Saép xeáp taêng daàn theo Teân sinh vieân, neáu truøng laép thì saép giaûm daàn theo Ngaøy sinh thì:
IV.4. Daáu caùc thoâng tin truøng laép
Trong moät soá baùo caùo, do thoâng tin trình baøy treân baùo caùo quaù nhieàu vaø daøy ñaëc. Ñeå coù theå
giuùp ngöôøi xem khoâng bò roái ngoaøi caùch söû duïng caùc thuoäc tính ñònh daïng ñeå laøm noåi baät
thoâng tin caàn hieån thò thì chuùng ta coøn coù theå söû duïng phöông phaùp daáu bôùt caùc thoâng tin
truøng laép khoâng caàn thieát maø ngöôøi xem vaãn coù theå hieåu ñöôïc.
Ñeå daáu caùc thoâng tin truøng laép, chuùng ta seõ laøm nhö sau:
Thoâng qua cöûa soå Sorting and Grouping ñeå saép xeáp laïi döõ lieäu cuûa baùo caùo sao cho
caùc thoâng tin truøng laép ñöôïc trình baøy lieân tieáp nhau trong baùo caùo.
Gaùn giaù trò Yes cho thuoäc tính Hide Duplicates cuûa caùc ñieàu khieån töông öùng ñeå daáu
caùc thoâng tin truøng laép töông öùng vôùi ñieàu khieån.
IV.5. Taïo soá thöù töï
Ñoái vôùi baùo caùo, soá thöù töï ñoùng moät vai troø quan troïng trong vieäc giuùp ngöôøi xem deã daøng
theo doõi thoâng tin treân baùo caùo.
Taøi lieäu höôùng daãn giaûng daïy
Chöùng chæ B Tin Hoïc Quoác Gia Trang 75/75
Ñeå taïo ñöôïc soá thöù töï treân baùo caùo, chuùng ta laàn löôït laøm nhö sau:
Veõ TextBox vaøo vò trí töông öùng treân baùo caùo
Trong thuoäc tính Control Source cuûa TextBox naøy ta gaùn: =1
Trong thuoäc tính Running Sum cuûa TextBox naøy ta choïn moät trong 3 giaù trò sau:
+ None: Khoâng töï ñoäng laøm taêng giaù trò cuûa TextBox khi sang maãu tin tieáp theo
+ Over Group: Töï ñoäng taêng giaù trò cuûa TextBox khi sang maãu tin tieáp theo. Tuy
nhieân, neáu chuyeån sang moät nhoùm thoâng tin khaùc thì giaù trò cuûa TextBox naøy seõ
ñöôïc khôûi ñoäng laïi baèng vôùi giaù trò ban ñaàu gaùn cho Control Source.
+ Over All: Töï ñoäng taêng giaù trò cuûa TextBox khi sang maãu tin tieáp theo, khoâng gaùn laïi
giaù trò khi qua nhoùm khaùc.
Ñaây chæ laø caùch ñôn giaûn ñeå taïo ra soá thöù töï ñöôïc ñaùnh soá theo daïng 1, 2, 3, ...
IV.6. Ñaùnh soá trang
Ñaùnh soá trang cuõng laø moät phaàn quan troïng cuûa baùo caùo. Ñeå ñaùnh soá trang ta caàn phaûi bieát
ñeán moät soá haøm ñöôïc MS Access cung caáp saün ñeå phuïc vuï cho vieäc ñaùnh soá trang
Haøm Page(): cho bieát trang hieän haønh treân baùo caùo
Haøm Pages(): cho bieát toång soá trang seõ ñöôïc trình baøy treân baùo caùo
Sau khi bieát ñeán 2 haøm treân ta coù theå tieán haønh nhö sau:
Veõ ñieàu khieån TextBox vaøo vò trí töông öùng treân baùo caùo
Ñieàn coâng thöùc vaøo thuoäc tính Control Source cuûa TextBox ñeå taïo soá trang mong
muoán.
Ví duï:
Soá trang daïng: Trang 1/3 Æ Control Source = “Trang “ & Page() & “/” & Pages()
Soá trang daïng: Trang 1 Æ Control Source = “Trang “ & Page()
IV.7. Ngaét trang
Ñeå phaân trang cho nhöõng thaønh phaàn döõ lieäu treân baùo caùo ta coù theå söû duïng ñieàu khieån Page
Break treân Toolbox.
Ñaët ñieàu khieån Page Break vaøo vò trí caàn phaân trang, khi baùo caùo ñöôïc xem ôû cheá ñoä Preview
thì thoâng tin seõ töï ñoäng ñöôïc phaân trang theo vò trí ñaët ñieàu khieån.
Chuù yù:
Trong baøi hoïc naøy, giaùo vieân caàn höôùng daãn hoïc vieân phöông phaùp phaân nhoùm vaø ñaët caùc
ñieàu khieån vaøo ñuùng vò trí phaân nhoùm treân baùo caùo.
0