Tài liệu Lập trình Access

pdf 83 trang phuongnguyen 3180
Bạn đang xem 20 trang mẫu của tài liệu "Tài liệu Lập trình Access", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdftai_lieu_lap_trinh_access.pdf

Nội dung text: Tài liệu Lập trình Access

  1. l?p trình Access Baøi 1 THIEÁT KEÁ CÔ SÔÛ DÖÕ LIEÄU (DATABASE) I. QUAÙ TRÌNH THIEÁT KEÁ 1 DATABASE Database laø gì? Theo nghóa roäng, Database laø 1 cô sôû döõ lieäu ñöôïc löu tröõ theo moät caáu truùc nhaát ñònh ñeå coù theå söû duïng, khai thaùc theo muïc ñích cuûa ngöôøi söû duïng. Thí duï: Database cuûa Access coù theå chöùa 6 loaïi ñoái töôïng sau: · Tables · Queries · Forms · Reports · Macros · Modules Quaù trình thieát keá ñoøi hoûi phaûi maát raát nhieàu thôøi gian ñeå coù 1 cô sôû döõ lieäu hôïp lyù, khoa hoïc giuùp ngöôøi söû duïng coù theå khai thaùc vaø môû roäng sau naøy. Theá naøo laø moät cô sôû döõ lieäu ñuùng? Moät cô sôû döõ lieäu thoûa maõn caùc tieâu chuaån döôùi ñaây seõ ñöôïc xem laø phuø hôïp: ¨ Toå chöùc hôïp lyù ¨ Deã söû duïng, khai thaùc ¨ Deã phoái hôïp laøm vieäc vôùi ngöôøi khaùc ¨ Traùnh ñöôïc vieäc söûa ñoåi veà sau Tieán trình thieát keá cô sôû döõ lieäu goàm 5 böôùc sau: 1
  2. l?p trình Access 1. Xaùc ñònh muïc ñích cuûa cô sôû döõ lieäu Ñieàu naøy seõ giuùp xaùc ñònh ñuùng caùc thoâng tin caàn löu tröõ. 2. Xaùc ñònh caùc Baûng (Tables) Löu tröõ thoâng tin theo chuû ñeà rieâng bieät. 3. Xaùc ñònh caùc vuøng/tröôøng (Fields) Moãi loaïi thoâng tin trong Baûng goïi laø 1 Field vaø chieám 1 coät trong Baûng. 4. Xaùc ñònh caùc moái quan heä giöõa caùc Baûng Döõ lieäu trong Baûng naøy quan heä vôùi döõ lieäu trong Baûng khaùc nhö theá naøo? Neáu caàn, coù theå theâm Field(s) môùi vaøo Baûng hoaëc taïo theâm Baûng môùi ñeå laøm roõ moái quan heä naøy. 5. Thöû nghieäm, phaân tích sai laàm, ñieàu chænh laïi thieát keá Taïo Baûng, Truy vaán (Query) vaø Maãu bieåu (Form), nhaäp döõ lieäu vaøo vaø thöû xem keát quaû coù ñuùng khoâng? Chuù yù: Khoâng neân söûa laïi thieát keá sau khi ñaõ nhaäp quaù nhieàu döõ lieäu vaøo caùc Baûng cuõng nhö sau khi hoaøn taát caùc Truy vaán, Maãu bieåu vaø Baùo bieåu. II. VÍ DUÏ VAØ PHAÂN TÍCH 1.Ñaët vaán ñeà vaø xaùc ñònh muïc ñích thieát keá Database: Baøi toaùn minh hoïa ñöôïc söû duïng ôû ñaây laø hoaït ñoäng cuûa Coâng ty aûo ña quoác gia NorthWind kinh doanh caùc maët haøng thöïc phaåm. Database phaûi ñöôïc thieát keá theá naøo ñeå coù theå xöû lyù ñöôïc thoâng tin lieân quan ñeán vieäc kinh doanh. 2
  3. l?p trình Access Muoán vaäy, baïn phaûi: · Ghi ra 1 danh saùch caùc caâu hoûi maø cô sôû döõ lieäu phaûi traû lôøi: Þ Coâng ty ñaõ thöïc hieän ñöôïc doanh soá thaùng tröôùc laø bao nhieâu ñoái vôùi caùc saûn phaåm chính? Þ Nhöõng khaùch haøng “trung thaønh” cuûa coâng ty laø ai vaø soáng ôû ñaâu? Þ Ai laø nhaø cung caáp caùc saûn phaåm baùn chaïy nhaát? Þ · Thu thaäp caùc maãu baùo caùo hieän coù chöùa caùc thoâng tin maø cô sôû döõ lieäu coù theå cung caáp. 2. Xaùc ñònh caùc Baûng Ñaây laø böôùc phöùc taïp nhaát trong tieán trình thieát keá 1 Database. Coù caùc “Chuû ñeà” hay "Thöïc theå" chính sau ñaây lieân quan ñeán baøi toaùn naøy: · Employees · Customers · Suppliers · Products · Orders Caùc “Chuû ñeà” naøy chính laø caùc Baûng. Chuùng caàn chöùa nhöõng thoâng tin naøo? Taïm thôøi noäi dung cuûa chuùng ñöôïc thieát keá sô boä nhö sau: Employees Customers Suppliers EmployeeID CustomerID SupplierID Name CompanyName CompanyName Address Address Address Phone ContactName (Ngöôøi ñaët haøng) Phone 3
  4. l?p trình Access Products Orders ProductID OrderID ProductName OrderDate UnitPrice Shipping Address UnitsInStock UnitsOnOrder CategoryName F Nhöõng sai laàm thöôøng phaïm phaûi khi xaùc ñònh Baûng: ¨ Thoâng tin nhaäp bò truøng laép Thí duï: Neáu gheùp 2 chuû ñeà “Orders” vaø “Customers” thaønh 1 Baûng OrderDate CompanyName Address 10 - Feb - 91 ABCD 268 LTK 5 - Mar - 92 ABCD 278 LTK 22 - Jun - 91 ABCD 68 LTK Trong 3 ñòa chæ treân, ñòa chæ naøo ñuùng? Maët khaùc, vaán ñeà maát thôøi gian, coâng söùc trong vieäc nhaäp lieäu, caäp nhaät, truy tìm, löu tröõ, cuõng phaûi ñöôïc löu yù. Chaúng haïn khi khaùch haøng di chuyeån truï sôû, baïn seõ phaûi khoå sôû theá naøo khi caäp nhaät döõ lieäu. ¨ Vaán ñeà thoâng tin bò xoùa Khaùch haøng ñaët haøng xong nhöng sau ñoù boû hôïp ñoàng (vì lyù do naøo ñoù). Coâng ty muoán giöõ laïi ñòa chæ, teân khaùch haøng ñeå sau naøy coù theå göûi cho hoï Catalogue haøng môùi. Nhö vaäy neáu toå chöùc 1 Baûng nhö noùi treân seõ khoâng thöïc hieän ñöôïc yù ñònh naøy hoaëc neáu ñöôïc seõ vaáp phaûi sai laàm khaùc. 4
  5. l?p trình Access 3. Xaùc ñònh caùc Fields Baïn caàn tuaân theo caùc nguyeân taéc sau: F Ñaûm baûo raèng 1 Field khoâng ñöôïc xuaát hieän trong nhieàu Baûng. F Khoâng taïo caùc Fields coù theå suy ñöôïc töø caùc yeáu toá khaùc. F Khoâng ñöôïc boû soùt thoâng tin coù theå caàn thieát sau naøy. Trong baùo caùo kieåm keâ caàn caùc thoâng tin sau: · ProductName · UnitsInStock · UnitsOnOrder · CompanyName · Phone Ba Fields ñaàu tieân thuoäc Baûng Products. Caâu hoûi ñaët ra laø hai Fields sau cuøng coù neân ñaët trong Baûng Products hay khoâng? Traû lôøi: Khoâng neân vì: Hai Fields naøy ñaõ chöùa trong Baûng Suppliers. F Field(s) ñoùng vai troø KHOÙA (Primary key) YÙ nghóa chính cuûa Primary key laø ñeå phaân bieät caùc maãu tin vôùi nhau. 5
  6. l?p trình Access Öu ñieåm: · Coù theå taïo quan heä giöõa caùc Baûng sao cho Access coù theå töï ñoäng keát hôïp ñuùng caùc döõ lieäu trong caùc Baûng rieâng reõ · Access coù theå tìm vaø truy xuaát thoâng tin töø Baûng nhanh hôn (ñaëc bieät ñuùng trong tröôøng hôïp nhieàu Baûng) · Ngöôøi söû duïng seõ raát linh hoaït khi söûa vaø caäp nhaät döõ lieäu => Giaù trò cuûa vuøng khoùa naøy tuyeät ñoái khoâng ñöôïc truøng nhau. Nhö vaäy, teân cuûa ngöôøi hay vaät coù theå ñöôïc coi nhö Primary key khoâng? ACCESS töï ñoäng taïo Primary key laø soá thöù töï maãu tin. Neáu Primary key do ngöôøi söû duïng taïo ra, phaûi ñaûm baûo: · Khoâng chöùa caùc giaù trò truøng nhau. · Khoâng quaù daøi ñeå deã nhôù vaø deã goõ ñuùng. · Kích thöôùc cuûa Primary key phaûi ngaén nhaát coù theå ñeå khoâng aûnh höôûng ñeán toác ñoä truy xuaát. => Trong phaàn xaùc ñònh Baûng, caùc Fields ñöôïc in nghieâng ñoùng vai troø cuûa caùc Primary key Ñoâi khi phaûi keát hôïp töø 2 Fields trôû leân laøm Primary key. Nhöng caàn löu yù raèng trong 1 Baûng khoâng nhaát thieát phaûi coù Primary key. Vaán ñeà ñaët ra keá tieáp laø: Access laøm theá naøo truy xuaát ñöôïc thoâng tin ñuùng theo yù muoán cuûa ngöôøi söû duïng. 6
  7. l?p trình Access 4. Xaùc ñònh moái quan heä giöõa caùc Baûng. Form trong Hình 2 laø keát quaû nhaän ñöôïc nhôø vieäc thieát laäp ñuùng caùc moái quan heä giöõa caùc Baûng. Access söû duïng caùc moái quan heä naøy ñeå tìm caùc thoâng tin lieân quan chöùa trong caùc Baûng. Baây giôø ta xeùt laïi 2 Baûng Employees vaø Orders vôùi caùc Fields ñaõ bieát: Employees Orders EmployeeID phaûi xuaát EmployeeID OrderID hieän trong Baûng Name - FirstName OrderDate Orders vaø ñoùng vai troø LastName Shipping Address Foreign key Address Phone Giaùm ñoác coâng ty muoán bieát tình hình baùn haøng cuûa nhaân vieân coù EmployeeID laø 05? Anh ta soáng ôû ñaâu? Vaø soá ñieän thoaïi laø bao nhieâu? Nhö vaäy caùc baïn thaáy raèng chuùng ta phaûi söû duïng döõ lieäu cuûa caû 2 Baûng Employees vaø Orders. Nhöng ñeå truy xuaát ñuùng thoâng tin cuûa 2 Baûng naøy, Field EmployeeID phaûi xuaát hieän ñoàng thôøi trong caû 2 Baûng. Nhaän xeùt Trong Baûng Orders, coù 2 Fields khoùa: · Primary key: OrderID · Foreign key: EmployeeID ñeå thieát laäp moái quan heä vôùi Baûng Employees. Giöõa 2 Baûng coù theå toàn taïi 3 hình thöùc quan heä: · Moät - Nhieàu (1-N) · Nhieàu - Nhieàu (N-N) · Moät - Moät (1-1) 7
  8. l?p trình Access · Quan heä 1-N: laø loaïi quan heä phoå bieán nhaát. “Moät maãu tin trong Baûng A coù nhieàu hôn moät maãu tin töông öùng trong Baûng B”, moät maãu tin trong Baûng B coù nhieàu nhaát moät maãu tin töông öùng trong Baûng A”. Do ño,ù quan heä giöõa 2 Baûng Customers vaø Orders laø quan heä 1-N: · Phía 1: Customers (laø Baûng chöùa Primary key) · Phía N: Orders ( laø Baûng chöùa Foreign key) Nghóa laø 1 khaùch haøng coù theå ñaët nhieàu ñôn ñaët haøng, nhöng 1 ñôn ñaët haøng chæ coù theå do 1 khaùch haøng duy nhaát ñaët haøng maø thoâi. Töông tö quan heä giöõa Employees vaø Orders cuõng laø quan heä 1 - N. · Quan heä N-N “Moät maãu tin trong Baûng A coù nhieàu hôn moät maãu tin trong Baûng B vaø ngöôïc laïi”. Do ñoù, quan heä giöõa 2 Baûng Products vaø Orders laø quan heä N - N. Trong tröôøng hôïp naøy vieäc thieát laäp 1 Foreign key cho phía N cuûa Baûng Products hoaëc Orders ñeàu coù nhieàu nhöôïc ñieåm. (Soá löôïng maãu tin taêng raát nhieàu, nhieàu Fields thoâng tin truøng laëp -> sai laàm) Giaûi phaùp: Taïo Baûng thöù ba coù teân Order Details ñeå taùch quan heä N-N thaønh 2 quan heä 1-N. Baûng thöù ba seõ chöùa Foreign key laø 2 Primary key cuûa Baûng Products vaø Orders. 8
  9. l?p trình Access Baûng Order Details OrderID ProductID UnitPrice Quantity Discount 10 12 $ 10 4 0 11 12 $ 10 15 10 11 17 $ 15 20 15 11 25 $ 20 12 5 11 32 $ 05 30 10 12 25 $ 20 11 7 Primary key trong Baûng Produïcts Primary key trong Baûng Orders UnitPrice, Quantity vaø Discount laø caùc thoâng tin lieân quan ñeán caû 2 yeáu toá ñaët haøng vaø saûn phaåm. OrderID vaø ProductID keát hôïp laïi vôùi nhau trong Baûng Order Details luoân luoân cho ta 1 giaù trò duy nhaát ñoái vôùi moãi maãu tin. Vaäy Primary key cuûa Baûng Order Details goàm caû 2 Fields noùi treân vaø quan heä giöõa 3 Baûng laø nhö sau: Orders vaø Order Details: 1-N Products vaø Order Details: 1-N · Quan heä 1-1 “Moät maãu tin trong Baûng A chæ coù duy nhaát 1 maãu tin trong Baûng B vaø ngöôïc laïi”. Ñaây laø quan heä ít thoâng duïng. Veà nguyeân taéc, coù theå keát hôïp hai Baûng laïi thaønh moät, nhöng trong 1 soá tröôøng hôïp khoâng neân laøm nhö vaäy vì nhöõng lyù do sau: 9
  10. l?p trình Access F Thoâng tin trong 1 Baûng ñöôïc söû duïng mang tính thôøi vuï. F Hoaëc coù nhieàu maãu tin khoâng lieân quan ñeán 1 soá Fields caàn quaûn lyù. TD: thoâng tin veà khaû naêng bôi loäi cuûa 1 ngöôøi, teân rieâng khi ñi bôi, teân hoà bôi, khoâng neân ñöa vaøo Baûng “Employees”. F Baûo maät: chia thoâng tin thaønh 2 loaïi: loaïi phoå bieán vaø loaïi caàn giöõ bí maät (tieàn löông chaúng haïn) 5. Thöû nghieäm, ñieàu chænh laïi thieát keá Taïo Form vaø Report sô boä, thöû vôùi moät ít döõ lieäu vaø haõy kieåm tra: · Coù boû soùt Field naøo khoâng? Kieåm tra trong taát caû caùc Baûng, ñieàu chænh cho hôïp lyù hoaëc coù theå taïo theâm Baûng môùi khi caàn thieát. · Coù choïn Primary key hôïp lyù cho moãi Baûng khoâng? Noù coù deã nhôù vaø deã goõ vaøo maùy khoâng? Haõy nhôù tính chaát duy nhaát cuûa noù. · Thoâng tin ñöa vaøo 1 trong caùc Baûng coù bò laëp laïi khoâng? Neáu coù caàn taùch thaønh 2 Baûng vôùi quan heä 1- N (xem laïi ví duï trong phaàn xaùc ñònh caùc Baûng) · Baïn coù nhöõng Baûng coù quaù nhieàu Fields nhöng ít maãu tin hay khoâng? Vaø coù nhieàu Fields troáng trong 1 soá maãu tin? Neáu coù, haõy thieát keá Baûng laïi sao cho giaûm bôùt Fields vaø theâm maãu tin. 10
  11. l?p trình Access Thí duï1 Maët Doanh soá töø ngaøy 1 ñeán 31 thaùng 8 Toång haøng coäng 1 2 3 4 5 6 7 8 9 31 A 5 8 12 4 1 B 2 1 9 2 7 5 . . . Caùch naøy deã ñoïc thöôøng duøng trong 1 Baûng tính (Spread Sheet) nhöng hoaøn toaøn khoâng coù lôïi trong thieát keá Baûng. Thieát keá ñuùng chæ caàn 3 Fields: Maët haøng, Ngaøy baùn, Doanh soá, vaø töø Baûng naøy Access cho pheùp baïn taïo 1 Crosstab Query gioáng maãu treân. Thí duï 2 Chuùng ta haõy nhìn vaøo Baûng Products, Field “CategoryName” coù nhöôïc ñieåm gì? Nhöôïc ñieåm: 1. Coù nhieàu saûn phaåm cuøng 1 teân loaïi vaø teân loaïi coù chieàu daøi nhaát ñònh, 2. Teân loaïi khoâng cho bieát ñaëc ñieåm cuûa saûn phaåm ñoù ra sao? 11
  12. l?p trình Access Caûi tieán: 1. Boå sung theâm Field “Description” vaø “Picture” (giaûi quyeát nhöôïc ñieåm 2) 2. Ñöa 2 Fields môùi naøy vaøo Baûng Products? Khoâng neân (lyù do baïn töï traû lôøi) Vaäy phaûi laøm sao? => Taïo Baûng môùi “Categories” goàm 4 Fields: CategoryID, CategoryName, Decription vaø Picture trong ñoù CategoryID laø Primary key. Töø ñoù, Baûng Products coù söï thay ñoåi: CategoryName -> CategoryID vaø ñaây laø Foreign key ñeå quan heä vôùi Baûng Categories Quan heä giöõa 2 Baûng Categories vaø Products laø: 1-N Hình 1: Moái quan heä giöõa caùc Baûng 12
  13. l?p trình Access Tables – Baûng I. TAÏO MOÄT CÔ SÔÛ DÖÕ LIEÄU II. TAÏO 1 BAÛNG III. LÖU TRÖÕ BAÛNG IV. IN BAÛNG V. MÔÛ VAØ SAO CHEÙP BAÛNG VI. MOÄT SOÁ VAÁN ÑEÀ LIEÂN QUAN ÑEÁN BAÛNG 13
  14. l?p trình Access Baøi 2 Baûng (Table) Trong Access, Baûng laø moät ñoái töôïng cuûa cô sôû döõ lieäu do baïn thieát keá. I. TAÏO 1 CÔ SÔÛ DÖÕ DIEÄU (DATABASE) Database chính laø moät taäp tin cô sôû döõ lieäu trong Access coù phaàn môû roäng laø .MDB. Ñeå taïo 1 cô sôû döõ lieäu môùi, thöïc hieän nhö sau: 1. Choïn File/New Database hoaëc Blank Database 2. Goõ teân Database muoán taïo trong hoäïp File Name 3. Aán OK Cöûa soå Database mang teân do baïn vöøa goõ xuaát hieän. II. TAÏO MOÄT BAÛNG (TABLE) Ñeå taïo 1 Baûng: 1. Choïn Tab Table hoaëc choïn leänh menu /View/Database Objects/Tables. 2. Choïn New hoaëc choïn leänh menu /Insert//Table. 3. Choïn Design View. Xem hình 2 minh hoïa cho 3 böôùc noùi treân. 14
  15. l?p trình Access 15
  16. l?p trình Access Hình 2: Taïo Database vaø Baûng Maøn hình Design View xuaát hieän ñeå thieát keá moät Baûng môùi. Hình 3 trình baøy 1 Baûng coù saün ñeå chuùng ta cuøng nhau tìm hieåu caáu truùc cuûa noù. Hình 3: Thieát keá Baûng Employees · Field Name: Goõ vaøo teân Field (vuøng) TD: EmployeeID Teân vuøng chöùa toái ña 64 kyùù töï goàm kí töï chöõ, soá vaø caû khoaûng traéng · Data Type: Qui ñònh loaïi döõ lieäu cho Field. Text Chöõ vaø soá 255 bytes Memo Chöõ vaø soá 64 000 bytes Number Giaù trò soá 1,2,4,8 bytes Date/Time Ngaøy vaø giôø 8 bytes Currency Giaù trò tieàn teä 8 bytes AutoNumber Access töï taêng leân 1 khi 4 bytes maãu tin môùi ñöôïc theâm vaøo 16
  17. l?p trình Access Yes/No Giaù trò luaän lyù 1bit (On/Off, True/False) Object Hình aûnh 128M F Saép xeáp vaø xoùa Fields · Di chuyeån: - Choïn Field: click Field Selector (vuøng choïn Field) - Click vuøng choïn Field vaø giöõ keùo (Drag) noù ñeán vò trí môùi. · Xoùa: - Choïn Field - Aán phím Del hoaëc duøng leänh /Edit/Delete Row. F Thieát laäp Primary key 1. Choïn moät hay nhieàu Fields baïn muoán laøm Primary key. 2. Choïn nuùt Primary key hoaëc töø leänh /Edit/Set Primary key. YÙ nghóa cuûa Primary key ¨ Taêng toác ñoä vaán tin vaø caùc taùc vuï khaùc ¨ Access trình baøy döõ lieäu theo thöù töï Primary key ¨ Access khoâng cho pheùp nhaäp thoâng tin truøng Primary key ¨ Döõ lieäu cuûa caùc Baûng khaùc nhau seõ ñöôïc caäp nhaät töï ñoäng nhôø Primary key Baïn coù theå thay ñoåi Primary key baèng leänh /View/Indexes III. LÖU TRÖÕ BAÛNG Choïn: 1. Leänh menu /File/Save 17
  18. l?p trình Access 2. Neáu laø Baûng môùi taïo: goõ teân vaøo (toái ña 64 kí töï), xong choïn OK. Luùc naøy Access cho pheùp baïn nhaäp döõ lieäu vaøo töø maøn hình Datasheet View. IV. IN BAÛNG Coù theå in toaøn boä döõ lieäu cuûa Baûng hoaëc chæ moät phaàn. ¨In toaøn boä: - Choïn Baûng trong cöûa soå Database hay môû Baûng trong Datasheet View. - /File/Print - OK ¨In caùc maãu tin ñöôïc choïn: - Choïn caùc maãu tin caàn in - /File/Print - Choïn Selection trong nhoùm Print Range. - OK. V. MÔÛ VAØ SAO CHEÙP BAÛNG 1. Môû Baûng · Choïn nuùt Table töø cöûa soå Database · Nhaáp keùp (Double click) vaøo teân Baûng: - nuùt traùi ñeå môû Baûng trong Datasheet View - nuùt phaûi ñeå môû Baûng trong Design View 2. Sao cheùp a- Choïn nuùt Table töø cöûa soå Database b- Choïn Baûng muoán sao cheùp (Copy) c- Aán Ctrl-C hay choïn leänh menu /Edit/Copy 18
  19. l?p trình Access d- Thöïc hieän böôùc naøy neáu baïn muoán cheùp Baûng naøy vaøo Database khaùc: File/Open Database. e- Aán Ctrl-V hay choïn leänh menu /Edit/ Paste: - Structure and Data - Structure Only - Append Data to Existing Table f- Goõ teân Baûng vaøo vaø aán OK VI. MOÄT SOÁ VAÁN ÑEÀ LIEÂN QUAN ÑEÁN BAÛNG 1. Thieát laäp caùc thuoäc tính cuûa Field Field Size (50) : chieàu daøi cuûa Field loaïi Number (Double 8 bytes) vaø Text (50) Format : trình baøy döõ lieäu kieåu ngaøy vaø soá theo moät soá daïng thöùc Decimal Places : soá soá leû thaäp phaân Caption : ñaët cho Field 1 teân khaùc ñeå söû duïng Default Value : gaùn trò naøy cho Field khi moät maãu tin ñöôïc taïo ra Validation Rule : qui ñònh tính hôïp leä cuûa döõ lieäu Validation Text : thoâng baùo do ngöôøi söû duïng qui ñònh khi döõ lieäu nhaäp khoâng hôïp leä Indexed : Saép xeáp theo thöù töï döïa vaøo Field naøy nhaèm taêng toác ñoä truy tìm Ñoái vôùi loaïi Number, Field Size coù theå ñöôïc choïn töø danh saùch nhö moâ taû döôùi ñaây: Loaïi Phaïm vi theå hieän Soá soá Kích leû thöôùc Byte 0 ñeán 255 0 1 byte 19
  20. l?p trình Access Integer -32 768 ñeán 32 767 0 2 bytes Long -2 147 483 648 ñeán 2 147 483 0 4 bytes Integer 647 Single -3.4 x 1038 ñeán 3,4 x 1038 7 4 bytes Double -1,797 x 10308 ñeán 1,797 x 10308 15 8 bytes 20
  21. l?p trình Access Daïng thöùc theå hieän soá (Number) goàm caùc söï löïa choïn sau: General Number 1234.5 1234.5 Currency 1234.5 $ 1,234.50 Fixed 1234.5 1235 Standard 1234.5 1,234.50 Percent 0.824 82.40% Scientific 1234.5 1.23E+03 Daïng thöùc theå hieän Ngaøy vaø Giôø (Date and Time) goàm caùc söï löïa choïn sau: · General Date · Long Date · Medium Date · Short Date (maëc nhieân) · Long Time · Medium Time · Short Time Ngöôøi söû duïng coù theå ñònh daïng theå hieän soá theo yù rieâng: Ñònh daïng cho soá coù giaù trò >0 #,##0;-#,##0;”Zero”;”Unknown” Ñònh daïng cho giaù trò Null Ñònh daïng cho giaù trò 0 Ñònh daïng cho giaù trò <0 Chuù yù: Caùc thuoäc tính Default Value, Validation Rule, Validation Text chæ coù taùc duïng ñoái vôùi vieäc nhaäp döõ lieäu môùi treân Form hay Datasheet. 21
  22. l?p trình Access Caùc thí duï veà bieåu thöùc coù theå ñöôïc qui ñònh cho thuoäc tính Validation Rule: 0, 0 or > 100, Like “K???”, = #1/1/96# AND = Date(), <= [Order Date] + 30, YÙ nghóa cuûa thuoäc tính Indexed: Coù 3 tröôùng hôïp choïn löïa: · No · Yes (Duplicates OK): Taïo Index treân Field vaø cho pheùp döõ lieäu truøng laëp · Yes (No Duplicate): Taïo Index treân Field vaø khoâng cho pheùp döõ lieäu truøng laëp Öu: Taêng toác ñoä truy tìm Khuyeát: Söûa hay theâm döõ lieäu seõ chaäm hôn Do ñoù, baïn chæ neân thieát laäp thuoäc tính Indexed cho nhöõng Fields coù nhu caàu truy tìm lôùn, khoâng phaûi laø Primary key, vaø noäi dung cuûa chuùng coù nhieàu thay ñoåi. Index nhieàu Fields Leänh menu /View/Indexes hay aán nuùt Indexes Index Name Field Name Sort Order LastName LastName Ascending FirstName FirstName Ascending Primary key EmployeeID Ascending 22
  23. l?p trình Access 2. Thieát laäp quan heä giöõa caùc Baûng Töø cöûa soå Database, baïn choïn leänh /Tools/Relationships. Cöûa soå Add Tables xuaát hieän cho pheùp baïn ñöa caùc Baûng caàn thieát laäp quan heä vaøo cöûa soå Relationships Duøng chuoät Drag Primary key töø “phía 1”sang choàng leân Forein key cuûa “phía N” töông öùng. Baûng phía 1 goïi laø Primary Table vaø Baûng phía N goïi laø Related Table Sau khi ñaõ thieát laäp quan heä: · Khoâng theå xoùa Primary Table · Khoâng theå xoùa hoaëc thay ñoåi loaïi cuûa caùc Fields ñöôïc duøng ñeå thieát laäp quan heä Luaät baûo ñaûm toaøn veïn söï tham chieáu (Enforce Referential Integrity) · Chæ coù theå nhaäp maãu tin môùi vaøo Related Table khi ñaõ coù maãu tin töông öùng trong Primary Table · Khoâng theå xoùa maãu tin trong Primary Table neáu toàn taïi caùc maãu tin töông öùng trong Related Table 23
  24. l?p trình Access Hình 4: Thieát laäp quan heä giöõa 2 Baûng Employees vaø Orders Khi chuùng ta ñöa caû 2 Baûng vaøo Query môùi, Access seõ taïo söï keát noái giöõa 2 Baûng vaø caùc thuoâc tính LinkChildFields vaø LinkMasterFields seõ ñöôïc thieát laäp nhaèm hieãn thò döõ lieäu treân Form (maãu tin cuûa Primary Table) vaø SubForm (Caùc maãu tin cuûa Related Table) Hình 5 minh hoïa ñieàu naøy. 24
  25. l?p trình Access Hình 5: Thoâng tin veà ñôn haøng treân Form Orders 25
  26. l?p trình Access Baøi 3 QUERIES (TRUY VAÁN) Query laø 1 Truy vaán, tuøy theo thieát keá maø ngöôøi söû duïng coù theå truy xuaát thoâng tin töø caùc Baûng theo yù muoán. Vôùi Queries baïn coù theå: · Choïn Fields · Giôùi haïn caùc maãu tin · Saép xeáp maãu tin · Yeâu caàu nhieàu caâu hoûi veà döõ lieäu trong nhieàu Baûng · Tính toaùn döïa treân döõ lieäu cuûa Baûng · Taïo caùc Forms vaø Reports döïa treân Queries · Taïo Queries döïa treân Queries: ñeå coù theå söûa Queries maø vaãn giöõ nguyeân ñöôïc Queries goác · Truy xuaát ñöôïc döõ lieäu cuûa caùc phaàn meàm khaùc nhö Paradox, Dbase, Btrieve Coù caùc loaïi Queries sau: Þ Select Query (maëc nhieân) Þ Crosstab Query Þ Action Query vaø Parameter Query 26
  27. l?p trình Access I. Taïo Query A. Query 1 Baûng Ñeå taïo 1 Query: 1. Click nuùt Query trong cöûa soå Database 2. Choïn nuùt New. Hoäp ñoái thoaïi Add Table xuaát hieän trình baøy taát caû caùc Baûng vaø Queries trong Database 3. Choïn Baûng hay Query chöùa döõ lieäu mong muoán, click nuùt “Add” (laëp laïi böôùc naøy cho Baûng hay Query khaùc neáu caàn) 4. Choïn Close Maøn hình thieát keá Select Query xuaát hieän nhö hình 6. Hình 6: Maøn hình thieát keá Query F Choïn caùc Fields Neáu choïn taát caû caùc Fields, coù 2 caùch: Caùch 1: + Double click vaøo thanh tieâu ñeà cuûa Baûng hoaëc Query nguoàn + Ñònh vò chuoät trong vuøng danh saùch Field ñöôïc highlight vaø keùo vaøo löôùi QBE (Graphical Query By Example) 27
  28. l?p trình Access Caùch 2: Ñònh vò chuoät ngay daáu * vaø keùo noù vaøo löôùi QBE F Saép xeáp, cheøn vaø xoùa Fields trong löôùi QBE. F Doøng “Table” trong löôùi QBE ñeå bieát caùc Fields trong löôùi thuoäc Baûng naøo. Choïn leänh /View/Table Names. F Xem keát quaû cuûa Query AÁn nuùt DataSheet View. Datasheet luoân luoân trình baøy döõ lieäu môùi nhaát. Baïn vaãn coù theå söûa döõ lieäu töø ñaây nhöng thöôøng thì ngöôøi ta thích duøng Form hôn. Chuù yù: Luùc baïn ñang môû Datasheet neáu coù söï thay ñoåi döõ lieäu töø 1 choã khaùc (moâi tröôøng nhieàu ngöôøi söû duïng), ñeå trình baøy döõ lieäu ñöôïc caäp nhaät gaàn nhaát: Aán Shift-F9. F Bí danh Field Trong vuøng teân Field baïn goõ vaøo bí danh Field muoán duøng, ñöôïc theo sau ngay bôûi daáu hai chaám (:) vaø teân Field thaät. Thí duï: Teân field thaät Sales Rep:EmployeeID Bí danh F Tieâu chuaån loïc döõ lieäu (Criteria) Trong vuøng Criteria baïn coù theå söû duïng bieåu thöùc töø ñôn giaûn ñeán phöùc taïp. 28
  29. l?p trình Access Thí duï: Field: OrderDate Criteria: 21-Mar-94 Nghóa laø chæ choïn caùc maãu tin coù ngaøy ñaët haøng laø 21/3/94. Neáu bieåu thöùc quaù daøi, aán Shift-F2, hoäp Zoom cho pheùp baïn laøm vieäc vôùi bieåu thöùc ñaày ñuû. F Moät soá coâng thöùc ví duï coù theå ñöa vaøo vuøng Criteria: · 100, >15000, < = 30-Jan-95, “New York”, · Between 15-Mar-95 And 30-Mar-95, < #1/16/95#, In (France, Germany, Japan) F Qui ñònh thöù töï saép xeáp (Sort) Click treân doøng Sort taïi Field muoán saép xeáp, coù caùc söï löïa choïn sau töø danh saùch saép xeáp (Sort list) · Ascending (0-9 & A-Z) · Descending (9-0 & Z-A) Neáu nhieàu Fields ñöôïc Sort, thöù töï öu tieân thöïc hieän saép xeáp laø töø traùi sang phaûi. Thí duï: Field: Country CompanyName Sort: Ascending Ascending Thöù töï saép xeáp theo Country tröôùc roài môùi ñeán CompanyName sau. F Giaáu hay cho hieän noäi dung cuûa Field trong Datasheet View Show: Giaáu Cho hieän 29
  30. l?p trình Access B. Query chöùa nhieàu Baûng hoaëc Queries khaùc F Boå sung (Add) caùc Baûng vaøo Query Leänh /Query/Show Table, chuù yù raèng neáu giöõa caùc Baûng ñaõ coù thieát laäp quan heä, baïn seõ thaáy caùc ñöôøng thaúng noái giöõa caùc Baûng theå hieän söï quan heä ñoù xuaát hieän. Suppliers Products Supplier ID Product ID SupplierID Join F Xoùa Baûng khoûi query Click vaøo Thanh tieâu ñeà ñeå choïn Baûng muoán xoùa, Aán phím Del. C. Löu tröõ vaø in Queries. F Löu tröõ Leänh /File/Save, goõ vaøo teân Query muoán löu, toái ña 64 kí töï keå caû khoaûng traéng (Query khoâng ñöôïc truøng teân vôùi Baûng). F In caùc maãu tin trong Query Thao taùc gioáng tröôøng hôïp in Baûng. 30
  31. l?p trình Access II. Thieát keá Select Queries A. Söû duïng ñieàu kieän loïc (Criteria) trong Queries ¨ List caùc saûn phaåm coù löôïng toàn kho naèm trong khoaûng 10 ¸ 20 ñôn vò (Söû duïng toaùn töû Between vaø And) ¨ Lieät keâ teân caùc coâng ty baét ñaàu baèng “The” (Toaùn töû *: Like “The*”) ¨ Lieät keâ teân caùc khaùch haøng khoâng baét ñaàu baèng chöõ “T” (Toaùn töû NOT: NOT T*) ¨ Lieät keâ caùc saûn phaåm ñaët haøng tröôùc 1-Mar-95 coù ñôn giaù treân 15USD (Söû duïng phöông phaùp AND) Field: OrderDate UnitPrice Table: Orders Order Details Criteria: 15 ¨ Lieät keâ caùc nhaø cung caáp soáng ôû UK hay Paris (Söû duïng OR) Field: CompanyName Country City Table: Suppliers Suppliers Suppliers Criteria: “UK” Or: “Paris” ¨ Lieät keâ caùc nhaø cung caáp coù teân töø N-Z vaø soáng ôû Anh hay caùc nhaø cung caáp coù teân töø N-Z vaø soáng ôû Paris (Keát hôïp AND, OR). Field: CompanyName Country City Criteria: >=“N” “UK” Or: >=“N” (-> neáu boû ñk naøy thì sao?) “Paris” ¨ Lieät keâ caùc nhaø cung caáp coù chöùa soá fax: Field: CompanyName Fax Criteria: is not Null 31
  32. l?p trình Access ¨ Lieät keâ taát caû nhaân vieân coù ngaøy sinh laø ngaøy ñang xeùt (Söû duïng Function). Field: thu:Datepart(‘m’, [Birth date]) & “ “ & Datepart(‘d’, [Birth date]) Criteria:= Datepart(‘m’, Date()) & “ “ & Datepart(‘d’, Date()) ¨ Tìm taát caû nhöõng ngöôøi coù tuoåi lôùn hôn giaù trò soá baïn ñöa vaøo Form mang teân Students (Söû duïng Control Name trong Form) Criteria: > Forms!{Students}![Age] ¨ Lieät keâ caùc saûn phaåm coù maõ loaïi saûn phaåm (Category ID) laø 4 vôùi giaù môùi baèng giaù ñôn vò x 1.25, saép xeáp theo thöù töï taêng daàn theo teân saûn phaåm (Field tính toaùn) Field: ProductName CategoryID UnitPrice New Price:[UnitPrice]*1.25 Sort: Ascending Criteria: 4 ¨ Lieät keâ danh saùch queâ höông cuûa caùc nhaø cung caáp, danh saùch naøy khoâng ñöôïc laëp laïi (Choïn loïc caùc giaù trò duy nhaát). Choïn cöûa soå Query trong maøn hình thieát keá Query, thöïc hieän Leänh /View/Properties vaø qui ñònh thuoäc tính Unique Values laø Yes. B. Taïo Queries nhieàu Baûng Hình 7: Query nhieàu Baûng 32
  33. l?p trình Access Chuùng ta ñaõ bieát caùch taïo Query nhieàu Baûng, ôû ñaây chæ ñeà caäp nhöõng ñieåm quan troïng. · Neáu 2 Baûng trong Query ñaõ thieát laäp quan heä thì quan heä ñoù ñöôïc duy trì trong Query naøy. Vaãn coù theå taïo moái noái ñoäc laäp vôùi moái quan heä ñaõ coù baèng phöông phaùp drag trong Query. Coù theå xoùa moái noái naøy baèng caùch choïn noù vaø aán phím Del. Khi ñoù, moái quan heä chính vaãn toàn taïi. · Moái quan heä ñöôïc thieát laäp khoâng hôïp lyù seõ daãn ñeán keát quaû döõ lieäu nhaän ñöôïc khoâng ñuùng nhö mong muoán. * Baïn duøng ñeán nhöõng Baûng naøo ñeå truy xuaát döõ lieäu theo yù muoán? · Ñieàu quan troïng tröôùc tieân laø phaûi coù sô ñoà quan heä giöõa caùc Baûng. Customers Employees Shippers Categories Supliers 1 1 1 1 1 N N Orders N N Products N 1 1 Order Details N N · Do ñoù, neáu baïn muoán bieát thoâng tin lieân quan ñeán khaùch haøng vaø nhaân vieân baùn haøng -> phaûi ñöa 3 Baûng Customers, Employees vaø Orders vaøo Query. Töø ñoù suy ra cho moïi tröôøng hôïp khaùc. ( Caâu 2 baøi thöïc haønh soá 3 ) 33
  34. l?p trình Access * Caùc hình thöùc noái keát giöõa caùc Baûng coù moái quan heä trong Query Coù 3 hình thöùc: F Equi join (maëc nhieân): truy xuaát taát caû maãu tin töø 1 Baûng coù caùc maãu tin töông öùng ôû Baûng khaùc F Outer-join: truy xuaát taát caû maãu tin töø 1 Baûng keå caû maãu tin khoâng coù maãu tin töông öùng ôû Baûng khaùc F Self-join: tao quan heä giöõa caùc giaù trò trong chính Baûng ñoù. Ñaây cuõng chính laø Outer-join Thí duï 1: Taïo Query, lieät keâ teân khaùch haøng (CompanyName) baét ñaàu baèng kí töï “P”, maõ ñaët haøng (OrderID) vaø ngaøy ñaët haøng (OrderDate) keå caû caùc khaùch haøng chöa ñaët haøng (Moái noái giöõa 2 Baûng Customers vaø Orders laø Outer join) Company Name Order ID Order Date Parisian Speùcialties Pedro’s Bodega 10322 31-Aug-90 Pedro’s Bodega 10354 11-Oct-90 Fields troáng cho bieát khaùch haøng naøy chöa ñaët haøng Thí duï 2: Trình baøy danh saùch nhaân vieân vaø seáp tröïc tieáp cuûa hoï. Bieát raèng trong Baûng Employees, Field “Reports to” seõ chöùa Maõ cuûa caáp treân nhaân vieân ñoù (Self-join) 34
  35. l?p trình Access C. Tính toaùn trong Query. Coù raát nhieàu keát quaû tính toaùn baïn muoán bieát nhö soá löôïng ñôn ñaët haøng trong thaùng, giaù trung bình cuûa taát caû saûn phaåm, Access cung caáp caùc chöùc naêng tính toaùn sau: SUM, AVG, MIN, MAX, COUNT, STDEV, VAR, FIRST, LAST Thí duï: Field: ProductID UnitPrice Count of Product Avg of Unit price Total: Count Avg 77 $28.87 Baám nuùt Totals treân Toolbar hay choïn leänh /View/Totals, doøng Total xuaát hieän. * Tính toaùn treân nhoùm maãu tin Vaán ñeà: Muoán tìm giaù trò toång coäng cuûa caùc ñôn ñaët haøng ñaõ ñöôïc chuyeån ñeán cho moãi nöôùc. 35
  36. l?p trình Access Field: ShipCountry OrderAmount Total: Group By Sum Ship Country Sum of Order Amount Canada $128,688.63 UK $ 466,279.68 USA $ 930,987.33 Baïn coù theå gheùp nhoùm (Group by) maãu tin theo nhieàu caáp, Access xeùt thöù töï öu tieân gheùp nhoùm töø traùi qua phaûi. Trong thí duï treân baïn coù theå xaùc ñònh giaù trò toång coäng cuûa caùc ñôn ñaët haøng cuûa töøng khaùch haøng ôû töøng nöôùc. -> Ñöa vaøo löôùi QBE Field “CustomerID” vaø choïn Group By cho noù. Thí duï: Xaùc ñònh caùc khaùch haøng töø moãi nöôùc Canada hay UK coù hôn 10 ñôn ñaët haøng. Query ñöôïc thieát keá nhö sau: Field: ShipCountry CustomerID OrderID Total: Group by Group By Count à Tính Count tröôùc Criteria: “Canada“or”UK” >10 à Keát quaû so vôùi 10 Nhaän xeùt: Taát caû caùc maãu tin cuûa Baûng ñeàu tham gia tính toaùn. Caâu hoûi tieáp theo laø baïn muoán giôùi haïn tính toaùn chæ cho caùc maãu tin coù giaù trò ñaët haøng >2000 USD. Vaäy Query phaûi ñöôïc söûa ñoåi nhö theá naøo? -> Ñöa vaøo löôùi QBE Field “OrderAmount”. Taïi doøng Total cuûa Field naøy, baïn choïn WHERE vaø taïi doøng Criteria, goõ vaøo > 2000 36
  37. l?p trình Access * Thöïc hieän tính toaùn theo yù rieâng Xeùt thí duï sau: Field: CustomerID Freight pourcentage:Format (Sum([Freight])/Sum([Order Amount]),“0%”) Table: Orders Total: Group By Expression CustomerID Freight pourcentage Keát quaû trong AL WAO 5% Datasheet AN DRC 7% View III. Query vôùi caùc muïc ñích khaùc A. Crosstab Query YÙ nghóa: laø Query toång hôïp döõ lieäu daïng thu goïn ñeå deã ñoïc hôn vaø seõ deã so saùnh vôùi nhau hôn. Ñaây cuõng chính laø daïng thích hôïp ñeå veõ ñoà thò. Thí duï: Select Query goàm 3 Fields sau: Salesperson CategoryName Total Sales Query naøy seõ khoâng giuùp baïn nhìn thaáy ngay ñöôïc doanh soá baùn haøng cuûa töøng ngöôøi öùng vôùi töøng loaïi haøng. Baây giôø baïn haõy chuyeån Select Query naøy thaønh Crosstab Query goàm caùc Fields nhö trong baûng sau: (ROW HEADING) Salesperson Beverages Condiments Confections Buchanan $ 46,302.10 $ 16,789.97 $ 36,182.15 Callahan $111,047.77 $ 49,516.25 $ 79,959.16 37
  38. l?p trình Access Laø caùc Category Names cuûa Select Query ôû treân (COLUMN HEADING) Caùch thöïc hieän: 1. Taïo Select Query nhö ñaõ bieát 2. Thöïc hieän leänh /Query/Crosstab. Trong löôùi QBE xuaát hieän theâm 2 doøng Total & Crosstab 3. Treân doøng Crosstab choïn Row Heading cho Field(s) muoán duøng ñeå toång hôïp döõ lieäu (Salesperson) 4. Töông töï cho COLUMN HEADING (Field CategoryName) 5. Töông töï choïn VALUE cho Field baïn muoán tính toaùn (Total Sales) vaø caùch tính nhö theá naøo tuøy baïn choïn noäi duïng thích hôïp treân doøng Total (SUM, COUNT ) Chuù yù: Baïn coù theå qui ñònh laïi thöù töï xuaát hieän cuûa caùc Column Headings trong Crosstab Query: ¨ Choïn cöûa soå Query trong maøn hình thieát keá Query ¨ Click nuùt Properties hay choïn /View/Properties ¨ Goõ teân caùc noäi dung cuûa Fields muoán xuaát hieän theo thöù töï qui ñònh laøm Column Heading vaøo doøng thuoäc tính Column Heading, giöõa teân coù caùc kí töï phaân caùch (daáu ;) Laøm theá naøo ñeå baïn coù 1 Select Query goàm 3 Fields treân? Höôùng daãn: ¨ Taïo 1 Select Query cô sôû goàm 5 Baûng: Employees, Products, Orders, Order Details vaø Categories ¨ Treân doøng Field, goõ moãi doøng döôùi ñaây vaøo 1 coät: · Salesperson:LastName · CategoryName · Th:UnitPrice · Tt:Quantity 38
  39. l?p trình Access · Dc:Discount · Total Sales:[Th]*[Tt]*(1-Dc) B. Query vôùi vaán ñeà caäp nhaät döõ lieäu Query ñöôïc thieát keá duøng laøm cô sôû cho Form vaø Report. Baïn coù theå duøng Form ñeå caäp nhaät döõ lieäu tröïc tieáp töø Baûng hoaëc giaùn tieáp thoâng qua Query. Tuy nhieân, ñoái vôùi Query baïn phaûi nhôù roõ nguyeân taéc sau ñaây: “Neáu trong Query coù quan heä 1-N, baïn chæ coù theå caäp nhaät ñöôïc döõ lieäu cuûa Foreign key cuûa Baûng phía N (nhieàu) vaø Query ñoù khoâng phaûi laø loaïi tính toaùn, giaù trò duy nhaát hay laø Crosstab Query” Ñoái vôùi caùc Fields khaùc, Access töï ñoäng caäp nhaät döõ lieäu giöõa 2 Baûng theo moái quan heä ñaõ thieát laäp. C. Query taùc ñoäng ñeán soá löôïng lôùn maãu tin cuûa Baûng (Action Query) Goàm 4 loaïi: F Query taïo Baûng môùi töø taát caû hay 1 phaàn cuûa Baûng khaùc: Make-Table Query F Query xoùa 1 hay nhieàu maãu tin khoûi 1 hay nhieàu Baûng: Delete Query F Query noái nhieàu maãu tin töø Baûng naøy vaøo cuoái Baûng khaùc: Append Query F Query caäp nhaät döõ lieäu vôùi soá löôïng lôùn: Update Query Môû 1 Action Query nghóa laø chaïy (Run) Query ñoù. Access seõ yeâu caàu baïn xaùc nhaän ñieàu ñoù. Ñeå loaïi boû söï xaùc nhaän naøy choïn No cuûa muïc Confirm Action Query trong hoäp ñoái thoaïi Options. 39
  40. l?p trình Access 1. Taïo Baûng môùi: Make Table Query Muïc ñích: · Khi muoán söû duïng chính xaùc döõ lieäu ôû thôøi ñieåm mong muoán (sau thôøi ñieåm naøy döõ lieäu coù theå bò thay ñoåi do 1 nguyeân nhaân naøo ñoù) · Taïo baûn sao cuûa Baûng ñeå ñeà phoøng baát traéc · Taïo Baûng chöùa caùc maãu tin cuõ tröôùc khi xoùa khoûi Baûng hieän haønh · Ñeå cung caáp cho caùc Database khaùc (Taïo 1 Baûng goàm 1 soá Fields cuûa Baûng Employees ñeå cung caáp cho boä phaän nhaân söï chaúng haïn) · Taêng toác ñoä xöû lyù trong caùc Forms vaø Reports so vôùi tröôøng hôïp döïa vaøo Query nhieàu Baûng Caùch thöïc hieän: a- Taïo Select Query nhö ñaõ bieát b- Trong maøn hình Design View choïn /Query/Make Table, xuaát hieän hoäp ñoái thoaïi Query Properties c- Goõ vaøo teân Baûng muoán taïo, vaø qui ñònh Database chöùa noù d- Aán OK. Tieâu ñeà cuûa cöûa soå Query ñoåi thaønh “Make Table Query” e- Aán nuùt Database View ñeå nhìn thaáy noäi dung mong muoán f- AÁn nuùt Run hay thöïc hieän leänh /Query/Run ñeå thaät söï taïo Baûng môùi Chuù yù: Baûng môùi taïo khoâng coù Primary key vaø caùc thuoäc tính cuûa Baûng nguoàn vaø Baûng môùi chæ goàm caùc Fields coù trong löôùi QBE 40
  41. l?p trình Access 2. Delete Query a. Taïo Select Query, ñöa Field laøm ñieàu kieän xoùa vaøo löôùi vaø qui ñònh ñieàu kieän xoùa b. Choïn leänh /Query/Delete c. Aán nuùt Database View ñeå xem döõ lieäu ñònh xoùa d. Aán nuùt Run ñeå xoùa thaät söï. 3. Append Query a. Taïo Select Query chöùa döõ lieäu caàn noái vaøo Baûng ñích b. Choïn leänh /Query/Append c. ÔÛ doøng Append To: ñöa vaøo teân Baûng ñích d. Aán nuùt Database View e. Aán nuùt Run ñeå thöïc hieän Append 4. Update Query a. Taïo Select Query, ñöa Field laøm ñieàu kieän caäp nhaät vaøo löôùi vaø qui ñònh ñieàu kieän caäp nhaät ôû doøng Criteria b. Choïn leänh /Query/Update, ôû doøng Update To, goõ vaøo coâng thöùc mong muoán taïi vuøng Field muoán caäp nhaät c. Aán nuùt Run ñeå thöïc hieän caäp nhaät D. Query chöùa tham soá (Parameter Query) Söû duïng khi Query thöôøng ñöôïc söû duïng nhöng moãi laàn chaïy vôùi 1 tham soá khaùc nhau. Tham soá ñoù thöôøng laø ñieàu kieän ñeå loïc döõ lieäu. Thí duï: Moãi laàn chaïy Query baïn muoán xem öùng vôùi moãi loaïi saûn phaåm, moãi saûn phaåm coù bao nhieâu ñôn ñaët haøng. Hình 8 seõ giuùp baïn traû lôøi caâu hoûi treân. 41
  42. l?p trình Access Caùch thöïc hieän: 1. Taïo Query nhö ñaõ bieát 2. Treân doøng Criteria, döôùi teân Field baïn muoán duøng nhö tham soá, ñöa vaøo teân tham soá ñaët trong daáu moùc vuoâng 3. Choïn leänh /Query/Parameter. Hoäp ñoái thoaïi Query Parameters xuaát hieän 4. Goõ vaøo teân gioáng teân tham soá trong löôùi QBE roài qui ñònh loaïi cho noù (tieáp tuïc böôùc naøy cho caùc tham soá khaùc neáu caàn) 5. Aán OK 6. Click nuùt Datasheet View, hoäp “Enter parameter Value” xuaát hieän 7. Goõ vaøo 1 giaù trò thích hôïp (1 chaúng haïn) Hình 8: Parameter Query 42
  43. l?p trình Access Baøi 4 MAÃU BIEÅU (FORM) Form laø 1 maãu thieát keá saün ñeå nhaäp, xoùa, xem, söûa vaø in döõ lieäu. Öu ñieåm: F Thieát keá theo yù muoán, hình thöùc ñeïp F Tieát kieäm thôøi gian vaø ngaên ngöøa ñöôïc sai soùt khi nhaäp, söûa döõ lieäu Form seõ nhaän Baûng hay Query laøm nguoàn thoâng tin cô sôû (cung caáp döõ lieäu) Baïn coù theå taïo Form baèng 2 caùch: hoaëc laø töï mình thieát keá laáy hoaëc nhôø coâng cuï FormWizards cuûa Access. Töø FormWizards baïn coù theå taïo: · Form 1 coät: trình baøy chæ 1 maãu tin treân 1 coät · Form daïng Baûng: trình baøy nhieàu maãu tin 1 luùc. · Form Chính/Phuï (Main/Form)ï: trình baøy döõ lieäu cuûa 2 Baûng quan heä 1-N - Form chính: chöùa döõ lieäu cuûa Baûng phía 1 - Form phuï: chöùa döõ lieäu cuûa Baûng phía N Caùc baïn xem laïi hình 5 trình baøy Form “Orders” laø loaïi Main/Sub Form · Form ñoà thò: trình baøy 1 ñoà thò 43
  44. l?p trình Access I. Taïo Form 1. Duøng Form Wizards · Trong cöûa soå Database, click nuùt Form hoaëc /View/Forms · Choïn nuùt New hoaëc /File/New/Form · Choïn 1 Baûng hoaëc 1 Query laøm nguoàn thoâng tin cô sôû töø danh saùch · Choïn nuùt FormWizards · Thöïc hieän tieáp theo höôùng daãn cuûa hoäp ñoái thoaïi FormWizards 2. Khoâng duøng Form Wizards Chæ khaùc so vôùi tröôøng hôïp treân ôû böôùc 4: choïn nuùt Blank Form * Giôùi thieäu caùc phaàn töû ñieàu khieån (Controls) trong ToolBox Hình 9 cung caáp bieåu töôïng cuûa caùc Controls. Chuùng goàm: F Pointer: Ñeå choïn Control(s) F Label: Control chöùa text ñoäc laäp vôùi Baûng hay Query F Text box: Chöùa döõ lieäu töø Field hay bieåu thöùc. Baïn coù theå nhaäp, söûa tröïc tieáp töø Text box F Option group: Baïn coù theå ñaët Check box, Option button & Toggle button trong ñoù. Chæ coù 1 nuùt trong Option Group ñöôïc choïn ôû 1 thôøi ñieåm 44
  45. l?p trình Access F Toggle button: Choïn 1 giaù trò töø 1 taäp hôïp caùc giaù trò F Option button: Coøn goïi laø Radio button, choïn 1 giaù trò töø taäp hôïp caùc giaù trò F Check box: Coâng duïng nhö treân F Combo box: Choïn 1 noäi dung töø danh saùch hay ñöa noäi dung môùi vaøo cuoái danh saùch thoâng qua Combo box (danh saùch chæ ñöôïc theå hieän ñaëc tröng bôûi 1 giaù trò) F List box: Choïn 1 noäi dung töø danh saùch ñöôïc trình baøy saün treân maøn hình F Page Break: Ñöa ngaét trang vaøo Form F Command button: Choïn 1 leänh töø taäp hôïp caùc leänh F Tool Lock: Ñeå giöõ coâng cuï ñaõ choïn ñeán khi choïn coâng cuï khaùc thay theá. F Control Wizards: Ñeå söû duïng chöùc naêng Wizards ñoái vôùi 1 soá leänh do Access hoã trôï Hình 9: Caùc coâng cuï trong ToolBox 45
  46. l?p trình Access * Choïn, di chuyeån vaø ñieàu chænh caùc Controls - Choïn 1 Control: choïn Pointer trong hoäp coâng cuï, aán vaøo vò trí baát kyø treân Text box, Check box Text box, Check box, Control ñoù ñöôïc choïn. - Choïn nhieàu Controls lieân tieáp: Aán giöõ nuùt Controls traùi chuoät baét ñaàu töø ñaây õ drag ñeán ñaây roài buoâng ra - Choïn nhieàu Controls rôøi raïc: Keát hôïp aán vaø giöõ phím SHIFT vaø click nuùt traùi chuoät - Di chuyeån vaø thay ñoåi kích thöôùc Controls · Control + label keát hôïp vôùi noù · Control · Label Aán vaø giöõ vaøo hình chöõ nhaät nhoû naøy ñeå di chuyeån Text box ñeå di Product Name chuyeån Product Name: Label Text box Label raøng buoäc vôùi Text box Caùc hình chöõ nhaät nhoû naøy ñeå thay ñoåi kích thöôùc cuûa Control. 46
  47. l?p trình Access * Sao cheùp vaø xoùa controls - Sao cheùp: · Taïo 1 loaït caùc Controls gioáng nhau caùch ñeàu nhau: à Choïn Control muoán taùc ñoäng, thöïc hieän leänh /Edit/Duplicate. Access taïo 1 Control thöù hai ngay saùt Control thöù nhaát. à Chuyeån Control thöù hai ñeán vò trí mong muoán vaø choïn /Edit/Duplicate laàn nöõa. · Coù theå duøng chöùc naêng Cut, Copy vaø Paste ñeå sao cheùp Control trong nhöõng Sections khaùc nhau. - Xoùa: Choïn Control muoán xoùa roài aán Del. * Tinh chænh vò trí (chænh haøng caùc Controls) · Choïn caùc Controls muoán chænh haøng · Thöïc hieän leänh /Format/Align: + To grid: chænh goùc traùi treân cuûa caùc Controls khôùp vôùi löôùi + Left: Canh theo beân traùi Control beân traùi nhaát + Right: Canh theo beân phaûi Control beân phaûi nhaát + Top: Canh theo beân treân Control treân cao nhaát + Bottom: Canh theo beân döôùi Control thaáp nhaát * Löu vaø ñoùng Form: Leänh /File/Close * In Form: Leänh /File/Print * Môû vaø sao cheùp Form 47
  48. l?p trình Access - Môû: Töông töï môû Baûng hay Query - Sao cheùp: + Choïn Form muoán sao cheùp, thöïc hieän leänh: + /Edit/Copy (Ctrl-C) + /Edit/Paste (Ctl-V): goõ vaøo teân baûn sao cuûa Form muoán cheùp Chuù yù: Muoán sao cheùp Form töø/vaøo 1 Database khaùc, ngoaøi phöông phaùp copy, baïn coù theå thöïc hieän leänh /File/Import hay /File/Export. II. Thieát keá Form Caàn phaân bieät 3 loaïi Controls trong Form: · Coù noái vôùi döõ lieäu trong Baûng hay Query: goïi laø Bound Control · Khoâng noái vôùi döõ lieäu trong Baûng hay Query: Unbound Control · Ñöôïc noái vôùi 1 bieåu thöùc: Calculated Control 1. Taïo Control baèng Drag Fields töø danh saùch Field Söû duïng nuùt Field List, choïn Field muoán ñöa vaøo Form vaø Drag noù ñeán vò trí mong muoán. Phöông phaùp naøy coù 2 öu ñieåm: · Khoûi phaûi goõ noäi dung (teân Field) vaøo nhaõn (Label) keøm vôùi Control · Caùc thuoäc tính: Format, Statusbar text, Validation Rule, Validation Text vaø Default Value seõ trôû thaønh thuoäc tính cuûa Control 2. Taïo Control töø hoäp coâng cuï 48
  49. l?p trình Access - Taïo control chöùa giaù trò tính toaùn (Text box) · Choïn coâng cuï Text box trong hoäp coâng cuï · Duøng chuoät ñònh vò trí & kích thöôùc cuûa Text box trong Form · Click vaøo Text box vöøa taïo trong Form. · Goõ bieåu thöùc vaøo baét ñaàu bôûi daáu = - Thieát laäp caùc thuoäc tính cho Control: Caùc thuoäc tính naøy xaùc ñònh caáu truùc vaø dieän maïo cuûa 1 Control cuõng nhö döõ lieäu maø noù chöùa. · Choïn Control · Click nuùt Properties treân Toolbar hay thöïc hieän leänh /View/Properties hoaëc Double click leân Control Baûng lieät keâ caùc thuoäc tính xuaát hieän, baïn coù theå qui ñònh giaù trò môùi cho caùc thuoäc tính cuûa Control trong Form. Chuù yù raèng caùc Controls treân Form ñöôïc taïo töø danh saùch Fields cuûa Baûng seõ mang thuoäc tính cuûa Fields ñoù. Do ñoù, neáu thay ñoåi thuoäc tính caùc Fields trong Baûng sau khi taïo Form, baïn nhôù caäp nhaät thuoäc tính ñoù cho Controls treân Form. Ta coù theå hieåu raèng thuoäc tính cuûa Field trong Baûng mang tính toaøn cuïc; coøn thuoäc tính cuûa Control treân Form mang tính cuïc boä. * Thay ñoåi caùc thuoäc tính maëc nhieân cho 1 loaïi Control · Click nuùt Properties treân Toolbar · Click coâng cuï muoán thay ñoåi: baûng Properties trình baøy caùc thuoäc tính maëc nhieân · Thay ñoåi caùc thuoäc tính theo yù muoán. Hoaëc: 49
  50. l?p trình Access Thay ñoåi thuoäc tính cho 1 Control treân Form, xong thöïc hieän leänh /Format/Change Default Ñeå aùp duïng nhöõng thay ñoåi naøy cho caùc Controls ñaõ coù khaùc, choïn leänh /Format/Apply Default * Meïo (quan troïng) Khi nhaäp döõ lieäu töø Form, muoán döõ lieäu ñöôïc laëp laïi maãu tin ngay tröôùc, baïn dôøi ñeán Control muoán nhaäp vaø aán Ctrl - ” * Ñoái vôùi döõ lieäu coù noäi dung daøi (loaïi memo) Neáu Control laø Text box: ñeå ñieàu khieån vieäc xem döõ lieäu trong Control treân Form, baïn phaûi qui ñònh “Vertical” cho thuoäc tính Scroll Bars Neáu muoán in ñaày ñuû döõ lieäu trong Control ñoù, phaûi qui ñònh thuoäc tính CanGrow & CanShrink laø Yes. *List box vaø Control box List box: coù theå ñöôïc söû duïng döôùi hình thöùc 1 hoaëc nhieàu coät vaø coù tieâu ñeà. Combo box: chæ trình baøy 1 noäi dung duy nhaát khi noù chöa ñöôïc kích hoaït. Ñeå taïo Combo box, baïn thöïc hieän caùc böôùc sau: · Click bieåu töôïng Combo box trong hoäp coâng cuï · Aán nuùt traùi chuoät taïi vò trí muoán Combo box xuaát hieän treân Form · Choïn Baûng/Query cung caáp Field(s) cho Combo box · Qui ñònh beà roäng theå hieän chuùng treân Form · Choïn 1 trong soá caùc Fields chöùa trong Combo box ñònh löu laïi sau ñoù vaø choïn Field cuûa Baûng/Query neàn löu giaù trò naøy qua Control treân Form · Ñaët teân cho Combo box (Label) 50
  51. l?p trình Access Sau khi taïo xong Control, baïn coù theå thay ñoåi caùc thuoäc tính cuûa noù bôûi baûng thuoäc tính cuûa Control ñoù. Caâu 1 baøi thöïc haønh soá 4 seõ giuùp baïn hieåu roõ hôn Combo box. Baïn coù theå boå sung döõ lieäu môùi vaøo danh saùch nhôø thuoäc tính Limit To List. * Check box, Option box, Toggle box Discontinued Discontinued Discontinued X · Check box Option button Toggle button * Choïn traïng thaùi baèng Option Groups Option Groups laø 1 khung nhoùm chöùa Check box button, Option button hay Toggle button. Teân cuûa khung nhoùm Ship via 3 Options trong khung nhoùm, moãi Speedy Option ñöôïc gaùn 1 giaù trò nhôø thuoäc tính Option Value United Khi baïn choïn 1 Option naøo ñoù, Federal giaù trò cuûa Option ñoù ñöôïc gaùn cho teân cuûa khung nhoùm Thí duï: - Speedy ñöôïc gaùn tröôùc giaù trò laø 1 - United ñöôïc gaùn tröôùc giaù trò laø 2 - Federal ñöôïc gaùn tröôùc giaù trò laø 3 Khi ngöôøi söû duïng choïn Speedy, teân khung nhoùm “Ship via” seõ nhaän giaù trò 1. 51
  52. l?p trình Access Caùch thöïc hieän: · Click bieåu töôïng Option Groups trong hoäp coâng cuï · Goõ teân caùc Options trong khung (Speedy, United, Federal) vaø choïn Option maëc nhieân · Qui ñònh teân Field chöùa giaù trò ñöôïc choïn (Ship via cuûa Baûng Orders) · Choïn loaïi vaø hình thöùc theå hieän caùc Options · Goõ vaøo teân Option Group * Söû duïng Command button Hình 10 cho baïn hình aûnh cuûa caùc nuùt leänh. Söû duïng Command button ñeå thöïc hieän 1 taùc vuï khaùc. Hình 10: Minh hoïa veà caùc Command Buttons Thí duï baïn coù theå choïn nuùt leänh Categories ñeå môû Form naøy. Muoán vaäy, thuoäc tính On Click cuûa nuùt leänh naøy phaûi ñöôïc gaùn teân 1 Macro hay teân 1 Haøm (Function). 52
  53. l?p trình Access Ñoái vôùi nuùt leänh, coù caùc thuoäc tính chuû yeáu sau: · Nuùt leänh Default: khi aán (click) nuùt leänh hoaëc aán Enter, taùc ñoäng seõ xaûy ra, taùc ñoäng naøy ñöôïc qui ñònh trong thuoäc tính Default · Nuùt leänh Cancel: Khi aán (click) nuùt leänh hoaëc aán Esc, taùc ñoäng seõ xaûy ra, taùc ñoäng naøy ñöôïc qui ñònh trong thuoäc tính Cancel · Ñaët teân goïi leân treân nuùt leänh nhôø thuoäc tính Caption (chæ coù taùc duïng khi thuoäc tính Picture laø None) · Ñöa hình vaøo xuaát hieän treân nuùt leänh nhôø thuoäc tính Picture: Baïn qui ñònh teân File daïng Bitmap vaø chæ roõ loä trình chöùa noù hay choïn hình do Access cung caáp. * Söû duïng caùc Controls khoâng raøng buoäc vôùi Baûng Chaúng haïn trong Form ñeå choïn 1 trong nhieàu loaïi baùo caùo caàn in, baïn coù theå duøng Option Group khoâng raøng buoäc vôùi Baûng ñeå thöïc hieän 1 taùc vuï in mong muoán. Report to Print Option group Sales by Date Summary of Sales by Quarter Command Summary of Sales by Year button Print Check box * Söû duïng ngaét trang (Page Breaks) Baïn coù theå chia Form laøm nhieàu trang maøn hình nhôø leänh ngaét trang: · Click coâng cuï ngaét trang trong hoäp coâng cuï · Click vaøo Form taïi vò trí muoán ngaét trang Duøng PgUp hay PgDn ñeå dôøi ñeán trang tröôùc hoaëc trang sau. 53
  54. l?p trình Access 3. Thay ñoåi thöù töï caùc Controls trong Form Moãi Control trong Form ñöôïc ñaùnh soá thöù töï. Thöù töï naøy qui ñònh trình töï nhaän söï taùc ñoäng cuûa ngöôøi söû duïng (goõ TAB ñeå chuyeån töø Control naøy ñeán Control khaùc). Coù hai tröôøng hôïp: · Ñeå taïo thöù töï töø traùi sang phaûi, töø treân xuoáng döôùi: leänh /Edit/Tab Order/Auto Order · Ñeå taïo thöù töï theo yù rieâng: leänh /Edit/Tab Order. Trong danh saùch teân caùc Controls, baïn haõy dôøi Control ñeán vò trí mong muoán. 4. Caùc phaàn trong Form (Sections) · Form Header: thöôøng ñeå trình baøy tieâu ñeà Form, höôùng daãn söû duïng Form hay chöùa caùc Command buttons. Khi in Form, noù chæ ñöôïc in ôû ñaàu trang ñaàu tieân · Page Header: chöùa thoâng tin caàn xuaát hieän ôû moãi trang · Detail: trình baøy chi tieát caùc maãu tin · Page Footer: trình baøy thoâng tin veà ngaøy, soá trang, ôû cuoái moãi trang · Form Footer: gioáng Form Header chæ khaùc chuùng xuaát hieän ôû cuoái maøn hình hay trang cuoái cuøng Leänh thöïc hieän: /Format/Form Hdr|Ftr hay /Format/Page Hdr|Ftr Moãi phaàn trong Form ñeàu coù thuoäc tính rieâng. 54
  55. l?p trình Access 5. Caùc thuoäc tính cuûa Form Coù nhieàu thuoäc tính, song ôû ñaây chæ neâu vaøi thuoäc tính quan troïng: · Default View: F Single Form: chæ 1 maãu tin xuaát hieän treân maøn hình taïi 1 thôøi ñieåm F Continuous Form (Default): nhieàu maãu tin xuaát hieän treân maøn hình taïi 1 thôøi ñieåm F Datasheet: caùc maãu tin xuaát hieän theo daïng thöùc haøng - coät (Baûng) · Default Editing: F Data Entry (default): Khi mô,û Form seõ ñeå 1 maãu tin troáng cho pheùp baïn nhaäp môùi F Allow Edits: Khi mô,û Form seõ trình baøy maãu tin ñaàu tieân F Read Only: Form seõ trình baøy maãu tin ñaàu tieân khi ñöôïc môû. Baïn khoâng theå söûa, theâm vaø xoaù maãu tin · Record Source: thay ñoåi Baûng hay Query cô sôû cung caáp döõ lieäu cho Form III. Taïo Form döïa treân nhieàu Baûng A Main Form vaø SubForm Focus naèm treân Main Form (coù nghóa laø baïn chæ thao taùc ñöôïc treân phaàn maøn hình chöùa Main Form) Main Form trình baøy döõ lieäu phía “1” cuûa quan heä vaø SubForm phía “N” cuûa quan heä. SubForm coù theå thuoäc 3 daïng: Form thoâng thöôøng, Datasheet (haøng-coät) hoaëc daïng phöùc taïp coù tính toaùn trong phaàn Footer. 55
  56. l?p trình Access 1. Taïo SubForm · Taïo 1 Form nhö ñaõ bieát: F Ñoái vôùi SubForm baïn muoán xuaát hieän trong Main Form daïng Datasheet, caàn qui ñònh thuoäc tính ViewsAllowed vaø DefaultView cuûa Form thaønh Datasheet. F Ñoái vôùi SubForm baïn muoán xuaát hieän trong Main Form daïng thoâng thöôøng: thuoäc tính ViewsAllowed thaønh Form vaø thuoäc tính DefaultView thaønh Single Form hay Continuous Form F Ñoái vôùi SubForm muoán söû duïng caû 2 daïng theå hieän treân, haõy qui ñònh thuoäc tính ViewsAllowed thaønh Both vaø DefaultView thaønh Single Form, Continuous hay Datasheet tuøy theo yù ñònh cuûa baïn. · Löu vaø ñoùng Form · Nhuùng SubForm vaøo Main Form: F Môû Main Form trong maøn hình Design View baûo ñaûm ñuû choã chöùa SubForm F Chuyeån qua cöûa soå Database roài aán nuùt Form F Drag bieåu töôïng cuûa SubForm töø danh saùch Form trong cöûa soå Database vaøo Main Form F Di chuyeån vaø thay ñoåi kích thöôùc cuûa SubForm neáu caàn F Kieåm tra 2 thuoäc tính LinkChildFields vaø LinkMasterFields * Söûa SubForm: Trong maøn hình Design View cuûa Main Form, Double click vaøo SubForm, maøn hình Design View cuûa SubForm xuaát hieän cho pheùp baïn söûa SubForm. Xong, löu vaø ñoùng SubForm. 56
  57. l?p trình Access * Ñeå chuyeån ñoåi caùch theå hieän trong SubForm: thöïc hieän leänh /View/SubForm Datasheet, sau ñoù baïn choïn caùch theå hieän thích hôïp. * Ñeå chuyeån ñieàu khieån qua laïi giöõa MainForm & SubForm haõy söû duïng chuoät click vaøo MainForm hay SubForm töông öùng Hình 11: MainForm vaø SubForm coù 2 daïng DataSheet vaø Single Form 57
  58. l?p trình Access 2. Taïo Form döïa treân Query a. Loïc caùc maãu tin chöùa caùc Fields tính toaùn Teân caùc Fields tính toaùn coù trong danh saùch Field neân baïn coù theå Drag teân Field tính toaùn vaøo löôùi Filter. Thí duï: 1. Taïo 1 Form thoáng keâ doanh soá, soá löôïng ñôn ñaët haøng moãi nhaân vieân ñaõ thöïc hieän ñöôïc. * Tröôùc tieân, baïn haõy taïo Query nhö döôùi ñaây. Query naøy phaûi döïa treân 1 Query khaùc (“Order Sales” chaúng haïn) Field: Employee ID Name:[First Name}& “ ”[Last Order ID Order Amount Table Orders Name] Order Sales Order Sales : Group By Count Sum Total: Group By * Baây giôø baïn haõy taïo Form döïa treân Query naøy ñeå coù keát quaû nhö hình döôùi ñaây: Nancy Davolio Emp. ID 1 Total Orders: 153 Total Sales: $ 208,726.90 2. Loïc sao cho treân Form chæ trình baøy caùc maãu tin coù Total Sales > $ 250,000 Trong maøn hình Form View, baïn aán nuùt Edit Filter/Sort hoaëc thöïc hieän leänh /Records/Edit Filter|Sort. Löôùi Filter xuaát hieän cho pheùp baïn qui ñònh Field muoán loïc treân doøng Field vaø ñieàu kieän loïc treân doøng Criteria. Cuï theå: 58
  59. l?p trình Access Field: SumofOrderAmount Criteria: >250000 Sau ñoù aán nuùt Apply Filter hoaëc thöïc hieän leänh /Records/Filter/Sort. b. Taïo Form Nhieàu-Moät (N-1) ñeå nhaäp döõ lieäu cho phía N Quan heä giöõa 2 Baûng Products vaø Supliers laø quan heä N-1. Baïn caàn taïo 1 Form nhaäp lieäu cho caùc Fields trong Baûng Products. Khi nhaäp döõ lieäu cho Field SupplierID baïn coù theå tham khaûo thoâng tin trong Baûng Suppliers (duøng Combo box trong Form naøy) c. Taïo SubForm döïa treân Query Ñeå SubForm coù theå trình baøy caùc giaù trò töø nhieàu Baûng hay ñeå döõ lieäu ñöôïc saép xeáp hoaëc ñöôïc giôùi haïn töø 1 hay nhieàu Baûng. Thí duï: Taïo Form trình baøy caùc saûn phaåm ñaõ baùn cho töøng khaùch haøng trong moãi quyù cuûa naêm 95. HD: Main Form: chöùa thoâng tin veà 1 khaùch haøng (Baûng Customers) SubForm: giaù trò ñaët haøng cuûa khaùch haøng trong moãi quyù tuøy theo töøng saûn phaåm. Maãu cuûa SubForm nhö hình sau: SubForm Header Product Name Qtr 1 Qtr 2 Qtr 3 Qtr4 Döõ lieäu döïa Aimiseed syrup $õ 330.00 vaøo Crosstab Chartrase Verte $ 814.50 Query Raclette Courdavault $ 845.80 Total $ $ $ 3,981.50 $ SubForm 0.00 0.00 1,691.60 Footer 59
  60. l?p trình Access Chuù yù: Duøng Haøm DatePart(“q”, [Order Date]) ñeå trích thöù töï cuûa quyù. NullToZero(Sum([Qtr1]) ñeå ñoåi giaù trò Null thaønh 0. IV. Hình aûnh vaø ñoà thò trong Form Coù 2 tröôøng hôïp: · Khoâng raøng buoäc vôùi Baûng: söû duïng coâng cuï Unbound Object Frame nhaèm laøm chöùc naêng trang trí. Veà yù nghóa thì noù gioáng nhö moät nhaõn (Label) · Raøng buoäc vôùi Baûng: söû duïng coâng cuï Bound Object Frame Coù 2 khaùi nieäm: Nhuùng (Embedding) vaø Lieân keát (Linking) · Nhuùng: ñoái töôïng (Object) ñöôïc chöùa trong File cô sôû döõ lieäu cuûa baïn vaø baïn coù theå söûa noù tröïc tieáp töø Form hay Report (Double click leân ñoái töôïng trong Form hoaëc Report) · Lieân keát: ñoái töôïng khoâng ñöôïc chöùa trong File cô sôû döõ lieäu, baïn vaãn coù theå söûa noù tröïc tieáp khi Double click leân ñoái töôïng trong Form, nhöng nhöõng thay ñoåi naøy chæ ñöôïc löu laïi trong File goác taïo ra noù. 60
  61. l?p trình Access 1. Nhuùng hình vaøo Form a. Taïo Bound Object Frames trong Form hay Report F Môû Form hay Report trong maøn hình Design View F Aán nuùt Field List hay thöïc hieän leänh /View/Field List F Drag Field chöùa ñoái töôïng vaøo Form hay Report. Khi ñoù 1 Bound Object Frame chöùa ñoái töôïng ñöôïc taïo treân Form hay Report b. Nhuùng ñoái töôïng coù raøng buoäc vaøo khung (Frame) Caùc thao taùc döôùi ñaây cho pheùp baïn ñöa hình vaøo Baûng thoâng qua Form: F Môû Form trong maøn hình Form View F Chuyeån ñeán maãu tin mong muoán F Choïn Bound Object Frame treân Form F Thöïc hieän leänh /Edit/Insert Object F Trong danh saùch Object Type choïn loaïi ñoái töôïng muoán nhuùng vaø aán OK. Trình öùng duïng töông öùng cho pheùp baïn taïo ñoái töôïng, xong thoaùt khoûi trình öùng duïng naøy. Baïn cuõng coù theå ñöa ñoái töôïng laø File ñaõ taïo saün vaøo khung baèng caùch choïn Create from File vaø qui ñònh teân File ñoù trong hoäp File 61
  62. l?p trình Access c. Taïo vaø nhuùng ñoái töôïng khoâng raøng buoäc F Môû Form trong maøn hình Design View F Click Object Frame treân hoäp coâng cuï F Click vaøo vò trí mong muoán treân Form Trong danh saùch Object Type choïn loaïi ñoái töôïng vaø OK. Access môû trình öùng duïng töông öùng. F Taïo ñoái töôïng baèng trình öùng duïng naøy. d. Ñieàu chænh kích thöôùc cuûa ñoái töôïng trong khung Ñeå laøm cho ñoái töôïng vöøa sít vôùi khung: · Trong maøn hình Design View, ñieàu chænh khung theo kích thöôùc mong muoán · Choïn ñoái töôïng · Click nuùt Properties treân Toolbar · Thieát laäp thuoäc tính Scaling theo: F Clip: Hình khoâng bò meùo, 1 phaàn hình coù theå bò maát F Scale: Hình co daõn theo kích thöôùc khung > Meùo F Zoom: Gioáng treân nhöng duy trì tæ leä > Khoâng meùo Hình 12: Ñoà thò trong Form 62
  63. l?p trình Access 2. Nhuùng ñoà thò Xeùt thí duï: Taïo ñoà thò daïng Line töï ñoäng thay ñoåi khi chuyeån töø maãu tin naøy qua maãu tin khaùc. Baïn thöïc hieän caùc böôùc nhö sau: · Böôùc 1: Taïo Form döïa treân Baûng Products, ñöa Field Product Name vaøo Form vaø löu Form laïi. · Böôùc 2: Taïo Query cung caáp döõ lieäu cho ñoà thò goàm 3 Baûng: Products, Order Details vaø Orders: F Ñöa Field ProductID cuûa Baûng Products vaøo löôùi QBE ñeå lieân keát ñoà thò vôùi Form F Ñöa Field OrderDate cuûa Baûng Orders vaøo löôùi QBE. Field naøy chöùa nhaõn thang ño truïc hoaønh cho ñoà thò F Ñöa Field Order Amount cuûa Baûng Orders vaøo löôùi QBE. Field naøy chöùa döõ lieäu soá baïn muoán veõ ñoà thò · Böôùc 3: Duøng coâng cuï Graph ñöa ñoà thò vaøo Form. Baïn thöïc hieän vieäc cung caáp döõ lieäu nhö sau: F Data Source Teân cuûa Query cung caáp döõ lieäu cho ñoà thò F Loaïi ñoà thò Line graph (ñoà thò daïng ñöôøng thaúng) F Loaïi tính toaùn Sum F Fields ñeå veõ Order Amount, OrderDate vaø duøng laøm nhaõn F Loaïi nhoùm ngaøy Category - Axis Label (nhaõn truïc hoaønh) F Nhoùm Nhoùm döõ lieäu theo thaùng cuûa giai ñoaïn töø 1/1/94 ñeán 12/31/94 F Linking Field ProductID 63
  64. l?p trình Access F Title Sales for 1994 Baøi 5 BAÙO BIEÅU (REPORT) Trong 1 bieåu in, Access cho pheùp baïn: · Toå chöùc vaø trình baøy döõ lieäu theo nhoùm · Tính caùc toång con, toång nhoùm, toång lôùn vaø tæ leä phaàn traêm cuûa chuùng · Bao goàm SubForms, SubReports vaø ñoà thò · Trình baøy döõ lieäu haáp daãn vôùi coâng cuï Font ñaëc bieät, hình aûnh vaø ñoà hoïa I. CAÙC KHAÙI NIEÄM CAÊN BAÛN · Nguoàn döõ lieäu cho Report: laø Baûng hay Query. · Caùc phaàn töû trong Report (Controls): Text box, Frame, Label, 1. Taïo Report baèng Report Wizards Report Wizards cho pheùp baïn taïo baùo caùo 1 coät, baùo caùo coù gheùp nhoùm döõ lieäu vaø tính toång nhoùm, toång con vaø toång lôùn. Caùch thöïc hieän: + Trong cöûa soå Database, click nuùt Report, roài choïn New + Choïn nguoàn döõ lieäu cho Report + Choïn Report Wizards 2. Taïo Report khoâng duøng Report Wizards 64
  65. l?p trình Access Töông töï nhö muïc I.1 chæ khaùc ôû böôùc 3: choïn Blank Report thay cho Report Wizards. 3. Xem 1 baùo bieåu tröôùc khi in Choïn bieåu töôïng Print Preview 4. Löu vaø ñoùng Report · Löu: /File/Save · Ñoùng: /File/Close 5. In Report Môû Report roài choïn /File/Print 6. Sao cheùp Report trong cuøng 1 Database · Trong cöûa soå Database, click nuùt Report · Choïn Report muoán copy · Thöïc hieän leänh /Edit/Copy · Thöïc hieän leänh /Edit/Paste, goõ vaøo teân baûn sao cuûa Report caàn cheùp vaø aán OK II. Taïo thöû 1 baùo caùo Thöïc hieän nhö Hình 13, vaø 14. Ñeå ñöa Report Header vaø Report Footer vaøo maøn hình thieát keá, choïn /View/Report Header|Footer. 65
  66. l?p trình Access Hình 13: Thieát keá moät Report Hình 14: Keát quaû thieát keá report hình 13 III. Thieát keá 1 Report 1. Söû duïng caùc Controls Gaàn gioáng caùch taïo 1 Form. Tuy nhieân, ñoái vôùi Text box coù 2 thuoäc tính quan troïng sau: · Hide Duplicates Property: ñeå giaáu 1 Text box khi giaù trò noù chöùa gioáng vôùi giaù trò cuûa maãu tin tröôùc · RunningSum property: F Over All: tính coäng doàn giaù trò doàn cuûa maãu tin tröôùc vaøo giaù trò cuûa maãu tin sau töø maãu tin ñaàu tieân ñeán maãu tin cuoái cuøng F Over Group: baét ñaàu moãi nhoùm giaù trò ñöôïc reset thaønh 0 66
  67. l?p trình Access Thí Duï: Text box laø Field Freight Company Name Order Freight Running Total ID Federal Shipping 10510 $ 367.63 $ 367.63 10516 $ 62.78 $ 430.41 10517 $ 32.07 $ 462.48 10519 $ 91.76 $ 554.24 Speedy Express 10502 $ 69.32 $ 69.32 10509 $ 0.15 $ 69.47 Thuoäc tính Hide Duplicates cuûa Thuoäc tính RunningSum cuûa Text box Text box naøy laø Yes naøy ñöôïc qui ñònh laø Over Group 2. Caùc phaàn (Sections) trong Report Ngoaøi nhöõng phaàn Report Header, Report Footer gioáng nhö tröôøng hôïp Form, coøn coù Group Header vaø Group Footer trong Report. Group Header xuaát hieän ôû vò trí baét ñaàu cuûa 1 nhoùm maãu tin môùi. Do ñoù, ta duøng noù ñeå trình baøy teân nhoùm trong baùo caùo. Group Footer xuaát hieän ôû vò trí cuoái cuûa nhoùm maãu tin duøng ñeå trình baøy toång nhoùm trong baùo caùo. Force New Page laø 1 thuoäc tính cuûa taát caû Sections (tröø Page Header vaø Page Footer) Before Section: in Section hieän haønh ôû ñaàu trang môùi Force new After Section: in section keá tieáp ôû ñaàu trang môùi page Before & After: Keát hôïp 2 tröôøng hôïp treân 67
  68. l?p trình Access None: in Section taïi trang hieän haønh Chuù yù: Page Header seõ khoâng xuaát hieän ôû trang ñaàu tieân khi ñaõ coù Report Header neáu thuoäc tính Page Header cuûa noù ñöôïc choïn laø Not with Rpt Hdr. 3. Saép xeáp thöù töï (Sort) döõ lieäu trong Report · Môû Report ôû maøn hình Design View · Thöïc hieän leänh /View/Sorting and Grouping · Qui ñònh teân Fields caàn xeáp thöù töï vaø höôùng xeáp thöù töï laø taêng hay giaûm 4. In döõ lieäu theo nhoùm · Trong hoäp ñoái thoaïi “Sorting and Grouping” click Field hay bieåu thöùc (Field/Expression) baïn muoán gheùp nhoùm + Choïn Yes cho Group Header hay Group Footer khi ñoù Group Header hay Group Footer seõ xuaát hieän trong maøn hình thieát keá Report. Choïn No ñeå khoâng gheùp nhoùm in + Ñöa Controls baïn muoán xuaát hieän trong Group Header hay Group Footer + Group On vaø Group Interval ñöôïc qui ñònh tuøy theo loaïi döõ lieäu maø Text box chöùa Chaúng haïng, nhoùm döõ lieäu theo Field ShippedDate, baïn coù theå choïn: · Group On laø: Year, Qtr, Month, Week, Day · Group Interval laø: 1,2,3, hay 1 giaù trò soá naøo ñoù phuø hôïp vôùi muïc ñích cuûa baïn Thí duï: 68
  69. l?p trình Access Laäp 1 Report baùo caùo toång keát kinh doanh theo naêm, trong moãi naêm trình baøy roõ töøng quyù soá löôïng ñôn ñaët haøng vaø soá tieàn thu ñöôïc. Maãu baùo caùo gioáng nhö hình 15. Höôùng daãn: hình 16 laø keát quaû cuûa thieát keá. Hình 15: Doanh soá theo Naêm vaø Quyù Muoán vaäy, baïn haõy laøm nhö sau: 1. Trong cöûa soå Database, nhaán nuùt Report vaø choïn New 2. Choïn Query “Summary of Sales by Year” laøm nguoàn döõ lieäu cho Report vaø choïn Blank Report 3. Choïn /View/Report Header|Footer ñeå ñöa 2 phaàn Report Header veà Report Footer vaøo maøn hình thieát keá 4. Choïn /View/Sorting and Grouping ñeå saép xeáp vaø gheùp nhoùm döõ lieäu 69
  70. l?p trình Access Cuï theå, thöïc hieän nhö baûng döôùi ñaây: Field/ Sort Group Group Group Group Together Expression Order Heade Foote On Interval r r ShippedDat Ascendin Yes Yes Year 1 Whole e g No Yes Qtr 1 Group ShippedDat Ascendin No e g 5. Ñöa caùc Controls vaøo caùc Sections nhö hình 16: · Report Header: Line, Label vaø Text box. Text box coù Control Source laø haøm Date() · ShippedDate Header: Text box coù Control Source: =[Year] vaø caùc Labels nhö Quarter, · ShippedDate Footer (möùc 2): caùc Text boxes: F Ñaët teân “Quarter” coù Control Source laø =Format([ShippedDate],“q”) F Ñaët teân “Löôïng ñôn” coù Control Source laø =Count ([OrderID]) F Ñaët teân “Giaù trò theo quyù” coù Control Source laø =Sum([Subtotal]) · ShippedDate Footer (möùc 1) chöùa 1 TextBox coù Control Source laø “Totals for ” & [year]&":" vaø 2 Text boxes khaùc 70
  71. l?p trình Access · Page Footer: chöùa Text box laø = Page Hình 16: Maøn hình thieát Report hình 15 * Query “Summary of Sales by Year” goàm Baûng Orders vaø Query “Order Subtotals” Field: Shipped Date OrderID Subtotal Year:Format([ShippedDate], “yyyy”) Criteria:Between [Beginning Date] and [End Date] * Query “Order Subtotals” chæ goàm 1 Baûng “Order Details” deå taïo danh saùch ñôn ñaët haøng vaø giaù trò ñaët haøng cuûa moãi ñôn ñaët haøng. 71
  72. l?p trình Access Field: OrderID Subtotal:Sum(Clng([UnitPrice]*[Quantity]*(1- [Discount])*100)/100)) Total: Group by Expression Ghi chuù: Haøm: · Format([ShippedDate],“yyyy”) ñeå trích 4 chöõ soá bieåu thò naêm cuûa Field [ShippedDate] · Clng () ñeå ñoåi loaïi baát kyø thaønh Long (giaù trò soá, daøi 4bytes) 5. Keát hôïp 2 hay nhieàu Reports Main Report coù theå laø loaïi coù noái keát hoaëc khoâng vôùi nguoàn cung caáp döõ lieäu cho noù. Nguoàn naøy laø 1 Baûng hay 1 Query. Main Report coù noái keát thöôøng duøng ñeå chöùa caùc SubReport chöùa thoâng tin lieân quan ñeán döõ lieäu trong Main Report. Main Report khoâng noái keát duøng khi in hai hay nhieàu SubReports khoâng lieân quan vôùi nhau. Thí duï veà Main Report coù noái keát Baïn coù theå söûa thieát keá Report ôû baøi taäp cuûa muïc III.4 sao cho döôùi phaàn in Baûng toång keát doanh soá theo naêm vaø quyù treân hình 15, xuaát hieän chi tieát doanh soá baùn töøng ngaøy. Muoán vaäy thieát keá seõ ñöôïc ñieàu chænh vaø keát quaû seõ ñaït ñöôïc nhö yù muoán. Taát caû ñöôïc trình baøy treân hình 17. 72
  73. l?p trình Access Hình 17: Ví duï veà Main Report vaø SubReport coù noái keát Caùch thöïc hieän töông töï phaàn MainForm vaø SubForm IV. Söû duïng bieåu thöùc trong Reports Bieåu thöùc ñöôïc ñaët trong Text box vaø luoân luoân baét ñaàu baèng daáu = F Gheùp 3 Field(s) vaøo 1 Text box: =“ï[City]ï ï[Region]ï ï[Postal Code]ï” Keát thuùc chuoãi Teân Field Khoaûng traéng Daáu bao quanh Field Baét ñaàu chuoãi F Haøm IIf(Expr, TruePart, FalsePart): Haøm IIf traû veà TruePart neáu Expr ñuùng hoaëc traû veà FalsePart neáu Expr sai. 73
  74. l?p trình Access F Haøm Left(String Expr, n): Haøm Left traû veà n kí töï beân traùi cuûa chuoãi String Expr. Thí duï: Left(“Hung Vuong”, 4) > “Hung” F Haøm Right(String Expr,n): Haøm Right traû veà n kí töï beân phaûi cuûa chuoãi String Expr. Thí duï: Right(“Hung Vuong”, 5) > “Vuong” 74
  75. l?p trình Access Baøi 6 MACROS Söû duïng Macro ñeå caùc Forms, Reports vaø caùc ñoái töôïng CSDL khaùc laøm vieäc chung vôùi nhau moät caùch thoâng minh hôn. Macro töï ñoäng thöïc hieän 1 hay nhieàu nhieäm vuï nhaèm ñaït ñöôïc caùc muïc ñích: · Cho pheùp Forms vaø Reports laøm vieäc chung vôùi nhau: Ñaët 1 nuùt vaøo Form vaø khi aán nuùt naøy 1 baùo caùo naøo ñoù ñöôïc in ra · Tìm vaø loïc thoâng tin töï ñoäng · Thieát laäp caùc giaù trò cho Control treân Form, thí duï khi baïn nhaäp 1 saûn phaåm vaøo Form “Order” baïn coù theå duøng Macro ñeå tìm ñôn giaù hieän haønh cuûa saûn phaåm vaø ñaët giaù trò ñoù vaøo Control treân Form · Töï ñoäng chuyeån ñoåi döõ lieäu giöõa caùc daïng thöùc löu tröõ khaùc nhau nhö Excel, Paradox, Dbase · Taïo moâi tröôøng laøm vieäc thaân thuoäc vôùi thoùi quen cuûa baïn. Thí duï baïn coù theå duøng Macro ñeå taïo Menu Bar keát hôïp vôùi Forms laøm cho öùng duïng cuûa baïn trôû neân loâi cuoán vaø deã söû duïng hôn 75
  76. l?p trình Access I. Khaùi nieäm caên baûn Macro goàm 4 thaønh phaàn chính: 1. Macro names (teân Macro): Macro seõ ñöôïc thöïc hieän khi teân naøy ñöôïc goïi. 2. Conditions (ñieàu kieän): ñieàu kieän ñeå 1 leänh hay nhieàu leänh cuûa Macro ñöôïc thöïc hieän. 3. Action (leänh): Access cung caáp 1 soá chöông trình con thoâng qua caùc leänh nhö: Open Form, Open Report, Beep, Close, DomenuItem Ngöôøi söû duïng coù theå choïn 1 leänh hoaëc 1 toå hôïp caùc leänh naøy phuïc vuï muïc ñích öùng duïng cuûa mình. Öùng vôùi moãi leänh baïn phaûi thieát laäp caùc ñoái soá cuûa leänh (Action Argument). 4. Comment (chuù thích): ñeå moâ taû toùm taét noäi dung, muïc ñích cuûa leänh. Baïn haõy xem hình 18 ñeå hieåu roõ söï noái keát giöõa Macro vaø Form cuõng nhö cô cheá hoaït ñoäng cuûa noù. Hình 18: Thieát keá Macro vaø moái quan heä vôùi Form 76
  77. l?p trình Access Khi baïn thieát keá 1 Macro môùi, luùc ñaàu chæ coù 1 thaønh phaàn Action vaø Comment treân maøn hình. Ñeå ñöa 2 thaønh phaàn Macro Names vaø Conditions (neáu caàn) vaøo maøn hình thieát keá, baïn coù theå söû duïng leänh Menu /View/Macro Names vaø /View/Conditions. Chaïy 1 Macro: + Aán nuùt Run sau khi choïn teân Macro muoán thöïc hieän trong cöûa soå Database. Baïn cuõng coù theå thöïc hieän 1 Macro trong khi thieát keá noù baèng caùch aán nuùt Run. + Chaïy 1 Macro töø 1 Macro khaùc: F Ñöa leänh Runmacro vaøo Macro cuûa baïn F Qui ñònh teân cuûa Macro muoán chaïy trong ñoái soá Macro Name Söû duïng ñieàu kieän (Condition) trong Macro Condition laø 1 bieåu thöùc logic. Neáu ñieàu kieän ñuùng, leänh Macro cuûa doøøng ñoù ñöôïc thöïc hieän. Thí duï: Trong coät Condition baïn goõ vaøo: Forms!Customers!Country=“USA”. Neáu Text box coù teân “Country” cuûa Form “Customers” laø “USA” thì leänh treân doøøng naøy seõ ñöôïc thöïc hieän. Neáu muoán 1 loaït leänh thöïc hieän khi ñieàu kieän ñuùng, baïn phaûi goõ “ ” (3 chaám) ngay coät ñieàu kieän cuûa taát caû caùc leänh sau leänh coù chöùa ñieàu kieän. Condition Action Is Null([SupplierID]) MsgBox StopMacro OpenForm MoveSize Hai leänh naøy chaïy baát 3 chaám ñeå 2 leänh MsgBox vaø StopMacro chaáp ñieàu kieän thöïc hieän khi ñieàu kieän ñuùng:77 field [SupplierID] troáng.
  78. l?p trình Access Noùi caùch khaùc, neáu khoâng coù daáu 3 chaám thì leänh StopMacro seõ luoân luoân thöïc hieän baát chaáp ñieàu kieän ñuùng hay sai. II. Söû duïng Macros vôùi Forms Caùc baïn haõy nhìn vaøo hình 10, chuùng ta phaûi laøm gì ñeå khi ngöôøi söû duïng aán nuùt leänh “Products” treân Forms Switchboard thì Form “Products” seõ hieän ra? Trình töï thöïc hieän nhö sau: 1. Taïo Form “Products” 2. Taïo Macro coù teân Products (coù theå taïo 1 Macro ñoäc laäp hoaëc 1 macro thaønh vieân naèm trong 1 Macro nhoùm) Ngoaøi phöông phaùp thoâng thöôøng, baïn coù theå duøng phöông phaùp Drag chuoät ñeå taïo 1 leänh “Open Form” cho Macro “Products”: F Môû cöûa soå Database, choïn nuùt Form, danh saùch Form xuaát hieän F Choïn Form “Products” vaø drag noù vaøo coät “Action”, taïi ñaây coù teân macro laø Products trong maøn hình thieát keá Macro, xong buoâng ra, Access seõ thieát laäp ñoái soá cuûa macro coù teân Form laø Products naøy giuøm baïn 3. Löu Macro vöøa taïo, ñaët teân “Forms Switchboard Button” 4. Môû Form “Forms Switchboard” trong maøn hình thieát keá Form 5. Trong cöûa soå Database, choïn nuùt Macro, choïn Macro “Forms Switchboard Button vaø Drag noù vaøo phaàn Detail cuûa Form. Access seõ taïo 1 nuùt leänh cho baïn treân Form naøy 78
  79. l?p trình Access 6. Söûa 2 thuoäc tính cuûa nuùt leänh treân: F Caption: goõ vaøo teân “Products” thay cho Forms Switchboard Button F On Click: goõ boå sung “Products” treân doøøng naøy Söï ñoàng boä giöõa 2 Forms Hình 19 cho baïn 1 caùch trình baøy 2 Forms ñoàng thôøi khaùc: moãi khi Form “Suppliers” thay ñoåi sang maãu tin khaùc thì Form “Product List” seõ trình baøy danh saùch saûn phaåm do nhaø cung caáp baùn cho coâng ty NorthWind. Ñieàu naøy ñöôïc thöïc hieän nhôø vieäc Macro trình baøy danh saùch saûn phaåm töông öùng (“Show Related Products" trong macro nhoùm "Suppliers") chaïy moãi khi moät maãu tin môùi treân Form “Suppliers” trôû thaønh hieän haønh. Muoán vaäy, baïn haõy “coät” macro naøy vaøo thuoäc tính “On Current” cuûa Form “Suppliers” Hình 19: Söï ñoàng boä giöõa hai Forms nhôø thuoäc tính On Current treân Form "Suppliers" goïi macro "Show related Products" môû Form "Product List" 79
  80. l?p trình Access Baây giôø baïn haõy nhìn laïi hình 11 (MainForm vaø SubForm). Vaäy baïn coù thaáy söï khaùc nhau naøo giöõa caùch theå hieän trong hình 11 vaø ôû hình 19 khoâng? Phöông phaùp ñoàng boä 2 Forms ôû hình 19 cho baïn khaû naêng “Taét/Môû” Form phía N (Products List ) khi ñang laøm vieäc vôùi Form phía 1 (Suppliers). Trong khi ñoù, neáu baïn söû duïng Main Form vaø SubForm, döõ lieäu trong SubForm (Products) seõ luoân gaén chaët vaøo Main Form (Categories) Duøng Macro ñeå loïc thoâng tin Trong Form “Customer Phone List”, phaàn Form Footer chöùa “Option Group” goàm caùc Toggle buttons A -> Z, All ñeå loïc teân caùc coâng ty khaùch haøng (CompanyName) theo Alphabet. Thí duï khi baïn aán nuùt A, Form “Customer Phone List” chæ trình baøy thoâng tin cuûa Customers baét ñaàu baèng kí töï A. Töông töï cho caùc nuùt kí töï khaùc. Muoán vaäy, phaàn töû “Option Group” (teân “CompanyName Filters”) phaûi ñöôïc gaùn teân Macro “Customer Phone List” cho thuoäc tính After Update. Ñoàng thôøi baïn phaûi thieát keá Macro nhoùm “Alpha Buttons” coù noäi dung nhö treân hình 20. Hình 20: Minh hoïa cho Macro Group loïc döï lieäu 80
  81. l?p trình Access III. Taïo Menu Bar cho 1 Form Hình 21 cho baïn 1 öùng duïng veà Menu Bar cho Form “Order Review”. Menu Bar naøy goàm 2 Items File vaø Edit. Muoán vaäy, baïn phaûi gaùn teân 1 Macro (Order Review Custom Menu) taïo Menu Bar naøy cho thuoäc tính “Menu Bar” cuûa Form “Order Review” Trong Macro “Order Review Custom Menu” duøng 2 leänh AddMenu ñeå ñöa 2 Items File vaø Edit vaøo thanh Menu. Trong phaàn Action Arguments, baïn phaûi gaùn teân 1 Macro khaùc (Macro nhoùm “Custom File Menu”) vaøo muïc “Menu Macro Name” ñeå qui ñònh caùc Items con trong töøng thanh Menu File vaø Edit. Cuï theå, trong Macro nhoùm “Custom File Menu” 2 teân Macro con “Print Current Record” vaø “Close” chính laø 2 Items con trong thanh Menu File. Töông töï cho thanh Menu Edit, Macro con “Find” seõ thuoäc Macro nhoùm “Custom Edit Menu”. Caùc leänh cuûa caùc Macro con ñöôïc theå hieän treân hình 21. 81
  82. l?p trình Access 82
  83. l?p trình Access 83