Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Microsoft Access
เนณภา สภเวชย
Nenuphar Supavej
Department of Library Science
Faculty of Arts, Chulalongkorn University
เนณภา สภเวชย Microsoft Access 2013 - สารบญ
Table of Contents
หนา Introduction ................................................................................................................................................... 1 การออกแบบฐานขอมล ................................................................................................................................... 2 เรมตนสรางฐานขอมล ..................................................................................................................................... 5 ศกษาโครงสรางฐานขอมลจากฐานขอมลตวอยาง ............................................................................................ 6 เรมตนสราง Table ........................................................................................................................................ 11 การ Key ขอมลใน Table .............................................................................................................................. 15 การ Input ขอมล / Import / Export ............................................................................................................... 30 การสราง Query ........................................................................................................................................... 36 จดท า Query ค านวณ ................................................................................................................................... 45 Report ......................................................................................................................................................... 49
เนณภา สภเวชย Microsoft Access 2013 - 1
Microsoft Access Introduction Microsoft Access เปนโปรแกรมจดการฐานขอมลเชงสมพนธ ขอมลทจดเกบ จะแยกเกบเปนสวนๆในตาราง เปนอสระจากกน
แตมความสมพนธกน เชน Order 1 Order สงโดยลกคา 1 คน Order 1 Order สงสนคาไดหลาย Item ขอมลจะโยงถงกนได ท าใหไมตองบนทกขอมลซ าซอน เชน ในการออกใบเสรจ ไมจ าเปนตองบนทกขอมลทอยลกคาใหมทกครง แตจะโยงไปยงตารางลกคาโดยใชรหสอางอง เปนตน
เนณภา สภเวชย Microsoft Access 2013 - 2
การออกแบบฐานขอมล จะเหนไดวา ขอมลถกจดเกบโดยแบงเปนตารางๆ เนองจากจดมงหมายของการออกแบบและจดท าฐานขอมล คอเพอ
ขจดความซ าซอนของขอมล เราไมควรตองบนทกขอมลซ าซอน เชน ในการสงซอสนคาและตองออกใบเสรจ เราไมควรตองพมพชอทอยลกคาใหมทกครง แตควรจดเกบขอมลลกคาไวเปน Table Customer เมอมการเปด Order และตองใชขอมลลกคา ใหเรยกใชขอมลจาก Table Customer ดงน น ในการออกแบบฐานขอมล จงไมควรมขอมลซ าซอนกนในหลาย Table Table หรอตารางแตละตารางถอเปนแตละสง ตารางแตละตารางจะมขอมลเกยวกบสงนนๆเทานน โดยในแตละตาราง จะม Field หนงทใช identify แตละ record ออกจากกน เรยกวา Key ซงจะเปนขอมลท Unique หรอมคาไมซ ากนเลย เชน เลขบตรประชาชน รหสนสต รหสพนกงาน Key น ในบางตารางเปน Key ทเปน Field เดยว กสามารถใช Identify record ไดแลว (เชน เลขบตรประชาชน รหสนสต ฯลฯ) ตารางทม Key เดยวน Key จะเรยกวา Primary Key แตในบางตาราง จะม Key มากกวา 1 Field จะเรยกวา Compound Key หรอคยรวม ซงอาจเปน 2 Field 3 Field รวมกนถงจะใช Identify record แตละ Record กได ตารางตางๆ จะมความสมพนธกนในรปแบบตางๆคอ
One-to-One เชน Order 1 Order สงโดย Customer 1 Customer เทานน One-to-Many เชน ในการสงซอสนคา 1 Order สามารถสงซอสนคาไดหลายรายการ Many-to-One เชน Order หลาย Order รบ Order โดย Employee คนเดยวกนได / Order หลาย Order ถกสงโดย
Custermer 1 Customer ได โดยสรปแลว โครงสรางฐานขอมลประกอบไปดวยตารางขอมล แตละตารางประกอบดวย Field ตางๆ และจะม Field ท
ท าหนาทเปน Primary Key หรอ Compound Key โดยรปแบบความสมพนธของตาราง จะมได 3 รปแบบ คอ One-to-One One-to-Many และ Many-to-One เทานน การออกแบบฐานขอมล ม 2 วธการ คอ
แบบบนลงลาง(Top-Down) คดวาควรมอะไรบาง (table) และแตละ Table ควรม field อะไรบาง แลวจด relationship ใชเมอออกแบบ database ใหม เมอยงไมมขอมลจากแบบฟอรมหรอหนาจอระบบฐานขอมลเดม
แบบลางไปบน (Bottom-Up) รวบรวม field มาทงหมดกอน แลวมาวเคราะหวาแตละ field ควรจดอยใน Table อะไรโดยใชวธการ
Normalization ใชเมอมขอมลอยบางแลว อาจน ามาจากแบบกรอกขอมลหรอดหนาจอของระบบเดม = น ามาจากระบบ
manual / electronic
เนณภา สภเวชย Microsoft Access 2013 - 3
Top-Down นก/คดวาควรมตารางอะไรบาง คดวาแตละตาราง ควรม field อะไรบาง โดยทแตละตาราง ตองม Field ทเกยวกบตารางนนเทานน คด key ใหแตละตาราง คดตาราง คด Field แลว มาคด relationship ของ Table
แตวธการน หากไมมประสบการณหรอไมรจกธรรมชาตของขอมล อาจจะยงออกแบบไดไมดนก เบองตน ทคดๆไว อาจหนาตาแบบน ... แตยงไมถกตอง ... เนองจากใน 1 Record ของ Order มรายการทส งซอหลายรายการได ดงนน ตองแยกออกมาเปน Table ตางหาก หากลองปรบใหมเปน ...
แตโครงสรางน ยงไมด เนองจากม Field ซ าซอน และยงก าหนด Primary Key/Compound Key ไมถกตอง ...
Order OrderID OrderDate CustomerName Address รายการทสงซอ
Customer CustomerID CustomerName Address
Product ProductID Product Price
Order OrderID OrderDate CustomerName Address
Customer CustomerID CustomerName Address
Product ProductID Product Price
OrderDetail ID Product Price Quantity
เนณภา สภเวชย Microsoft Access 2013 - 4
Bottom-Up รวบรวม field จากแบบฟอรม/รายงาน หนาจอ หรอหา requirement เพม วาผใชฐานขอมลตองการคนจากอะไร
เพมเตมอกบาง list ชอ field ทงหมด การท า normalization ซงมไดถง 5 แตในระดบท 3 กจดวาเพยงพอส าหรบการออกแบบฐานขอมล มข นตอนดงน
จาก Unnormalized form ก าหนด Primary Key 1st Normal Form: ก าจด repeating group (ก าจดกลมของขอมลทมความซ าซอน)
แยก repeating group ออกมา น า Primary Key มาใสเพอให link ขอมลไปแลว แลวหา key รวมอก 1 2nd Normal Form: ก าจด partial dependency (ก าจดการขนตอกนบางสวนของคย)
เชค field กบ key ใน table ทม key>1 ถา field นนพงพา key แตตวเดยว ใหแยกออกมา 3rd Normal Form: ก าจด transitive dependency (ก าจดการขนตอกนของแอตทรบวททไมใชคยหลก)
เชค field กบ field ใน table ถาเกยวของกน ใหแยก table ออกมา โดยทง Field ทเปนตวแทนไว UN 1 NF 2 NF 3 NF OrderID OrderDate CustomerName Address No Product Quantity Price Total GrandTotal
OrderID OrderDate CustomerName Address GrandTotal OrderID No Product Quantity Price Total
OrderID OrderDate CustomerName Address GrandTotal OrderID No Product Quantity Price Total
OrderID OrderDate CustomerID* GrandTotal CustomerID CustomerName Address OrderID No ProductID* Quantity Total ProductID Product Price
OrderID OrderDate CustomerID* GrandTotal CustomerID CustomerName Address OrderID No ProductID* Quantity Total ProductID Product Price
Order ID ______ Order Date __/__/____ Customer Name ________________ Address _______________________ ______________________________
No Product Qty Price Total
Grand Total ______
Repeating Group
Order
Customer
OrderDetail
Product
Order OrderID OrderDate CustomerID* GrandTotal
Customer CustomerID CustomerName Address
OrderDetail OrderID No ProductID* Quantity Total
Product ProductID Product Price Foreign Key* เปน Field
ธรรมดาแตขอมลใน Field เปนรหส เอาไวโยงไป Table ทมขอมลเตม
เนณภา สภเวชย Microsoft Access 2013 - 5
เรมตนสรางฐานขอมล สรางฐานขอมลเปลาจาก Blank Database
ตงชอฐานขอมล แลวกดป ม Create ไฟลฐานขอมล Access จะมนามสกลเปน .accdb หากเปนฐานขอมล Access รนกอนๆ จะมนามสกลเปน .mdb เมอสรางฐานขอมลแลว จะไดผลดงภาพ ใหเราสราง Table
เนณภา สภเวชย Microsoft Access 2013 - 6
ศกษาโครงสรางฐานขอมลจากฐานขอมลตวอยาง เปดไฟล ABC Company.accdb จะเหนวา มการสราง Table ตางๆไวแลว ลอง Double click ทชอตารางเพอเปดดตวอยางขอมลในแตละตารางด
ไปท Ribbon Database Tools > Relationship เพอศกษาความสมพนธ
เนณภา สภเวชย Microsoft Access 2013 - 7
จาก Table Customer มาท Design View เพอเขาไปยงโครงสรางของ Table
เนณภา สภเวชย Microsoft Access 2013 - 8
จะเหนไดวาขอมลม Data type หลายประเภท Field แรก ทมสญลกษณ คอ Field ท
เปน Primary Key ซงเปน Field ทใช identify รายการแตละรายการออกจากกน จงตองเปนขอมลทไมซ ากนเลย เชน เลขบตรประชาชน รหสนสต ฯลฯ ซงเมอก าหนดเปน Primary
Key แลว Access จะก าหนดใหท า field นเปน Indexed โดยอตโนมต และเนองจากเปน
Primary Key ซงมขอมลซ าไมได จงก าหนดเปน Yes (No Duplicate)
ส าหรบ Table Order จะเหนวาม field CustomerID เชนกน เนองจากลกคาเปด order หลายใบได ซอของหลายครงได เพอความรวดเรวในการคนหาขอมล เราควรสงให Access จดท าดรรชนเตรยมไว เวลาคนหาจะไดเรวขน ใหก าหนด Field ลกษณะเชนนเปน Yes (Duplicate OK)
เนณภา สภเวชย Microsoft Access 2013 - 9
ลองเปดด Form ตางๆ
เนณภา สภเวชย Microsoft Access 2013 - 10
ลองเปดด Report ตางๆ
เนณภา สภเวชย Microsoft Access 2013 - 11
เรมตนสราง Table ไฟล MyCompany.accdb ใหสรางตารางตามโครงสรางทก าหนดไวดานลางน
Customer Product
CustomerID Text 5 ProductID Text 5 Title Text 5 ProductName Text 30 CustomerName Text 30 Price Number Long Interger Address Text 100 Photo OLE
Province Text 20
ZipCode Text 5
Email Text 50
PhoneNo Text 10
Order OrderDetail OrderID Text 5 OrderID Text 5 OrderDate Date ItemNo Number Long Interger CustomerID* Text 5 ProductID* Text 5 Rush Y/N Quantity Number Long Interger
Field หมายถง Primary Key Field* หมายถง ใหตงคา index เปน Yes (Duplicate OK) ***ค าแนะน าในการตงชอ Table, Field เพอใหงายในการเขยนสตร ไมควรตงชอมเคาะวรรค*** ก าหนด Primary Key ให High light แถวทตองการก าหนด แลวกดป ม Primary Key
หากตองการใหระบบ run เลข orderID ให ใหเลอก Order.OrderID เปน Auto Number และให OrderDetail.OrderID เปน Number
เนณภา สภเวชย Microsoft Access 2013 - 12
กดป ม Save เพอตงชอ Table
เมอสรางตาราง ก าหนด Primary Key ครบทก Table แลว จะไดผลดงภาพ จะเหนไดวา เปนตารางเปลาๆ ยงไมมขอมล
เนณภา สภเวชย Microsoft Access 2013 - 13
โดยปกตแลว ตารางจะมความสมพนธกน สามารถก าหนด Relationship ของตารางตางๆได จากค าสง Relationship
Click ขวา เลอก Table เพอใหแสดง Table ทงหมด ในขนแรก ก าหนด Relationship ของ Table Order กบ Customer กอน โดยลากจาก Order.CustomerID ไปยง Customer.CustomerID เมอปลอย Mouse จะแสดงหนาตาง Edit Relationship ตรวจสอบความถกตอง วา Customer เปน One-to-Many กบ Order (Customer 1 คน ซอ Order ไดหลายครง)
เมอกด Create จะไดเสน Relationship ดงภาพ 1 หมายถง 1 Customer สวนเครองหมาย infinity หมายถง Many Order
เนณภา สภเวชย Microsoft Access 2013 - 14
ท า Relationship ใหกบ Order (one) ไปยง OrderDetail (Many)
และ Product กบ OrderDetail
เนณภา สภเวชย Microsoft Access 2013 - 15
การ Key ขอมลใน Table เราสามารถกรอกขอมลลงไปใน Table ไดเลย
แตแนะน าใหสราง Form เพอกรอกขอมล โดยใช Form Wizard
เลอก Table Customer เลอกทก Field
เนณภา สภเวชย Microsoft Access 2013 - 16
กรอกขอมล Record ใหม
กดเพอสราง record ใหม
เนณภา สภเวชย Microsoft Access 2013 - 17
สราง Form ใหกบ Table Product
แทรกภาพโดยลากไฟลเขามา
เนณภา สภเวชย Microsoft Access 2013 - 18
ส าหรบ Table Order ทเมอมการสงสนคาแลว อยาก link ขอมลกบ Table Customer ใหท า Lookup Wizard โดยท าจาก Design View เลอก Lookup Wizard
หากตองการกดลงมาแลวเลอกจาก Drop Down List เลอก option น
หากขอมลมมาก อยากพมพเองแทนทการกดลงมาแลวเลอก ใหใช option น
เลอก Table Customer
หมายเหต เนองจากการท า lookup wizard จะไปสราง relationship ไปยง Table ทจะ lookup ขอมลไป ในเมอเราไดสราง Relationship ไปแลว ระบบจะไมสามารถท า lookup ได ใหไปลบ Relationship กอน
เนณภา สภเวชย Microsoft Access 2013 - 19
เลอก Field ตามภาพ หรออาจเลอกแค CustomerID กบ CustomerName กได กด Next
เลอกวาตองการให Sort ขอมลใน Drop Down List ตามอะไร กด Next
Access จะแสดงรายการทจะปรากฏใน Drop Down List อาจเลอกให Hide key column หรอไมกได กด Next
เนณภา สภเวชย Microsoft Access 2013 - 20
จะเหนไดวาเมอท า Lookup wizard เสรจ จะเกดเสน relationship ดงภาพ
หากตองการแกไข Lookup ทท าไว ใหท าใน Design View
กด Finish
กด Yes
เนณภา สภเวชย Microsoft Access 2013 - 21
ใหท ากบ Table Order Detail ท Field ProductID ใหไป lookup ท Table Product
โดยเลอก Field ทจะ lookup ดงน
เนณภา สภเวชย Microsoft Access 2013 - 22
ขนตอนตอไป เราจะสรางหนาจอส าหรบรบ Order ทมหนาตาเชนน จะเหนไดวา ขอมลหลกสวนบนมาจาก Table Order สวนขอมลการสงซอ มาจาก Table Order Detail เปนหลก
เราจะสราง Form กบ SubForm ได Table ตองมความสมพนธกน ดงนน ใหไปท า Relationship ท Order กบ OrderDetail โดยใหเลอก Enforce Referential Integrity ดวย
เสน Relationship ท Enforce ไว จะมลกษณะตางจากเสน Relationship ทเกดจากการท า lookup ไว
เนณภา สภเวชย Microsoft Access 2013 - 23
สราง Form – SubForm จาก Form Wizard โดยเลอก Table และ Field ตามภาพ
เนณภา สภเวชย Microsoft Access 2013 - 24
เนณภา สภเวชย Microsoft Access 2013 - 25
จะไดผลดงภาพ
ลองกรอกขอมลสวนหว Form เลอกลกคาจาก Drop Down List
จะสงเกตไดวา เมอคยขอมลสวนหวฟอรมแลว ดาน SubForm จะขน OrderID ดวย นเปนผลจากการก าหนด Enforce Referential Integrity ใน Relationship
หากตอนท า lookup ไมได Hide Key Column ตรงนจะแสดงเปน ID
เนณภา สภเวชย Microsoft Access 2013 - 26
กรอกขอมลการสงซอใน SubForm
หากตองการปรบขนาด ความกวางของ Form หรอใส Logo ใหท าจาก Design View
หากตอนท า lookup ไมได Hide Key Column ตรงนจะแสดงเปน ID
เนณภา สภเวชย Microsoft Access 2013 - 27
ใส Logo ได
ปรบความกวางของ SubForm ไดโดยลากขยายออกไป
เนณภา สภเวชย Microsoft Access 2013 - 28
อาจใสกลองขอความเพออธบายการคยขอมล
จะไดผลดงภาพ
เนณภา สภเวชย Microsoft Access 2013 - 29
ตวอยางขอมล Customer ท Key จาก Form Customer
แมจะ Key ขอมลผาน Form แตขอมลจะจดเกบใน Table เมอเปดด Table จะเหน Data ซงหากม Relationship กบ Table อน จะ link ดขอมลไดเลย
ตวอยางขอมลจาก Table OrderDetail ทเกดจากการ key ขอมลจากใบ Order ตางๆ
เนณภา สภเวชย Microsoft Access 2013 - 30
การ Input ขอมล / Import / Export เราสามารถ Input ขอมล จากการ Import ขอมลจากไฟลขอมลทมอยแลวได หรอ Export ขอมลออกไปได ในทน จากขอมลลกคา ซงมรหสลกคา 2 แบบ ขนอยกบประเภทของลกคา คอ Gold (G-xxx) และ Platinum (P-xxx) เราจะ Export ขอมลไปยง Excel เพอชวยในการ Run รหส จากนนจงจะ Import กลบเขามาใหม ไปทค าสง External Data > Export Excel แลวตงชอไฟล Excel
เมอเปดด จะไดขอมลดงภาพ
เนณภา สภเวชย Microsoft Access 2013 - 31
ลองแทรกแถว แลว F4 เพอใชค าสงแทรกแถวซ า แลวรดเพอ Run รหส
เตมขอมล แลว Save
เนณภา สภเวชย Microsoft Access 2013 - 32
เลอกไฟล Excel ทท าไว (เพอความสะดวก ใหใชไฟลทเตรยมให) แลวเลอกค าสง Append
Import กลบเขามา ใชค าสง External Data > Import Excel หรอจะ Click ขวาท Table กได
ในไฟลทเตรยมใหม 2 sheet เลอก sheet customer แลว Next
เนณภา สภเวชย Microsoft Access 2013 - 33
Append คอสงใหเตมขอมลตอทาย เนองจากเรามขอมลเดมอย แลวขอมลใหมทจะน ามาใสมขอมลซ า จงไมสามารถใสขอมลได เนองจาก จะมลกคารหสเดยวกนซ า
เนณภา สภเวชย Microsoft Access 2013 - 34
ดงนน ใหลบรายการเกาทงกอน แลว Import ใหม
จะไดผลดงภาพ
เนณภา สภเวชย Microsoft Access 2013 - 35
คราวนให import จาก sheet customer2 ซงมแตขอมลใหม รหสลกคาไมซ ากบทมอยใน Table
จงด าเนนการไดส าเรจเรยบรอย
ขอมลเดมทเคย Link เอาไวกยงอย แมวาจะ ลบขอมลเกาทงไปแลว Import เขามาใหม
เนณภา สภเวชย Microsoft Access 2013 - 36
การสราง Query เพอใหคนหาไดเหมอนกบใน Sheet น ใหใชไฟล MyCompany-Training.accdb ทเตรยมมาให ขอมลใน Table จะแสดง Data ทงหมดทม หากเราตองการคนหาขอมล หรอใหแสดงเฉพาะขอมลตามเงอนไขบางอยาง ใหใช Query ในการสราง ในเบองตน ใหใช Query Wizard
เลอกทก Field
เนณภา สภเวชย Microsoft Access 2013 - 37
ในเบองตน จะแสดงขอมลทก Field จงเหมอนกน Table เลย
มาก าหนดเงอนไขไดจาก Design View
อาจตงชอใหมได ถาตองการ
เนณภา สภเวชย Microsoft Access 2013 - 38
ลองพมพค าคน แลวกด Run
ผลคอไมมขอมลเลย ใหลองกลบมาท Design View ใหม
เปลยนค าคน แลว Run
ผลทได ...
พญาไท
like “*พญาไท*”
เนณภา สภเวชย Microsoft Access 2013 - 39
จาก Table Order จงหาวา สรคม ซอสนคาไปกคร ง
ใหสราง Query โดยใช Field จาก Table ตอไปน
เนณภา สภเวชย Microsoft Access 2013 - 40
ผลคอไมมขอมล ??? เพราะเราท า lookup ไว แมเหนเปนชอ แต Data จรงๆเกบเปนรหส ดงนน ตองไปคนท Field อน
ไปท Design View แลวพมพค าคน ท CustomerID
like “*สรคม*”
like “*สรคม*”
เนณภา สภเวชย Microsoft Access 2013 - 41
สบเนองจาก Query ขางตน หากตองการทราบรายละเอยดเพมเตม วา สรคม ซออะไรบาง เราสามารถสราง Query จาก Query เดมตอยอดไปได ขอมลทเราตองการ หนาตาเชนน
Query Order Query Table OrderDetail Table Product Table OrderDetail ใหสราง Query ตามรปแบบขางตนน โดยตงชอ Query น เปน Order and Details
Query Order Query ใสเงอนไข สรคม ไว เมอน ามาสราง Query ใหม จงแสดงแตขอมลของ สรคม
ถาไปเอาเงอนไขออกท Query เดม กจะเหนขอมลครบ
เนณภา สภเวชย Microsoft Access 2013 - 42
ฝกการคนหาใน Query คนหารายการทมชอ สรคม จาก Field CustomerName คนหารายการทลกคาชอสรคม จาก Field CustomerID คนหารายการทสนคามค าวา หมก คนหารายการทมชอ สรคม จาก Field CustomerName และรายการทสนคามค าวา หมก
คนหา Field Date คนหารายการทส งซอวนท 8/16/2018
เนณภา สภเวชย Microsoft Access 2013 - 43
คนหาเปน Range field Text/Number
“0005”
>“0005”
>=“0005”
เนณภา สภเวชย Microsoft Access 2013 - 44
>=“0005”
>=“0005” And <=“0007”
>=“0005” And <=“0007”
เนณภา สภเวชย Microsoft Access 2013 - 45
จดท า Query ค านวณ เราสามารถใช Query สราง Field ค านวณได
ใช Query Wizard สราง ดงน
ผลคณราคา X จ านวน
เนณภา สภเวชย Microsoft Access 2013 - 46
เนณภา สภเวชย Microsoft Access 2013 - 47
เมอได Query แลว เขา Design View
Total: [Price]*[Quantity]
พมพสตรตามน
ผลทได ...
เนณภา สภเวชย Microsoft Access 2013 - 48
ใหลองสราง Form ใหม โดยดานลาง ในสวน SubForm ใหใชขอมลจาก Query OrderDetail with Total
Form เดม
Form ใหม
เนณภา สภเวชย Microsoft Access 2013 - 49
Report จากขอมลทบนทกผาน Form หรอบนทกโดยตรงลง Table เราสามารถน าขอมลมาออก Report ได โดยใช Report Wizard
เลอกขอมล และด าเนนการตามขนตอนดงน
เนณภา สภเวชย Microsoft Access 2013 - 50
ผลทได ...
เนณภา สภเวชย Microsoft Access 2013 - 51
หากตองการออก Report เชน สรปผลยอดขาย สามารถท าไดดงน
เนณภา สภเวชย Microsoft Access 2013 - 52
ผลทได ...