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)

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

pdf76 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2947 | Lượt tải: 2download
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 

Các file đính kèm theo tài liệu này:

  • pdfTai lieu giang day - Chung chi B - Query Report.pdf
  • pdfBai tap - Chung chi B - Form.pdf
  • pdfVBA.pdf
  • pdfBai tap - Chung chi B - Query Report.pdf
Tài liệu liên quan