ในบทที่ 1 เราได้กล่าวถึงการสร้างไฟล์ฐานข้อมูลขึ้นมาแล้ว ต่อไปเราจะใช้ Access เริ่มต้นสร้างตารางที่ได้ออกแบบไว้ในบทที่แล้ว เนื่องจากตารางเป็นส่วนประกอบพื้นฐานที่ใช้เก็บข้อมูลที่จะนำมาใช้ในโปรแกรมฐานข้อมูล จึงขอให้ทำความเข้าใจกับการสร้างตารางให้ดี ในการสร้างตาราง เราเข้าสู่มุมมอง Table Design ได้ดังนี้ 1. ให้เราคลิกแท็บ CREATE (สร้าง) จากนั้นคลิกปุ่ม Table Design (ออกแบบตาราง) 2. จะปรากฏมุมมอง Table Design ขึ้นมา หลังจากที่เราได้เข้ามาในมุมมอง Table Design แล้ว จะปรากฏหน้าต่างที่มีส่วนประกอบต่างๆ ดังรูป แท็บ Table Design จะมีคำสั่งต่างๆ ที่ช่วยในการออกแบบตาราง ดังรูป ต่อไปเราจะสร้างฟิลด์ในตารางข้นมาในมุมมอง Table Design โดยใส่ชื่อฟิลด์ และกำหนดคุณสมบัติพื้นฐานของฟิลด์ คือ ชนิดข้อมูล (Data Type) และขนาดของฟิลด์ (Field Size) การกำหนดคุณสมบัติต่างๆ ก็เพื่อจุดประสงค์ดังนี้ เพื่อให้มีประสิทธิภาพในการทำงาน ทั้งด้านเนื้อที่ที่ใช้ในการเก็บข้อมูล และความเร็วในการทำงานกับข้อมูล เช่น ข้อมูลชนิดข้อความโดยทั่วไปจะเสียเนื้อที่ในการเก็บมากกว่าข้อมูลชนิดตัวเลข และเลขจำนวนเต็มจะใช้เวลาในการคำนวณน้อยกว่าเลขทศนิยม เพื่อให้ตรงกับจุดประสงค์ในการใช้ข้อมูล เช่น ฟิลด์ราคาสินค้าจะต้องเป็นข้อมูลชนิดตัวเลขที่ใช้ในการคำนวณได้ ไม่ใช่เป็นข้อมูลชนิดข้อความ ใน Access มีชนิดข้อมูลให้เราเลือกใช้ได้ดังตารางต่อไปนี้
คุณสมบัติ Field Size จำใช้กำหนดขนาดของฟิลด์ ซึ่งอยู่ในส่วนที่ 2 (ที่เราเรียกว่า Field Properties) คุณสมบัตินี้จะมีในข้อมูลชนิด Text และ Number เท่านั้น สำหรับข้อมูลชนิด Text จะเป็นการกำหนดจำนวนตัวอักขระที่สามารถเก็บได้สูงสุด ส่วนข้อมูลชนิด Number จะให้เราเลือกชนิดข้อมูลย่อย ซึ่งมีรายละเอียดดังตารางต่อไปนี้ ถ้าข้อมูลย่อยชนิด Single และ Double
ใช้เก็บเลขทศนิยมได้แล้ว ทำไมจึงมีข้อมูลชนิด Currency อีก เนื่องจากว่าข้อมูลชนิด Single และ Double เมื่อมีการคำนวณบางอย่างอาจจะมีการปัดเศษได้ ซึ่งไม่เหมาะสมกับการเก็บค่าที่เป็นจำนวนเงิน แต่ข้อมูลชนิด Currency จะเก็บเลขทศนิยม 4 ตำแหน่งเสมอ จึงเหมาะสมในการเก็บจำนวนเงินมากกว่า 2. เลือกชนิดข้อมูลที่เหมาะสมจากคอลัมน์ Data Type (ชนิดข้อมูล) 3. ใส่ข้อความอธิบายเพิ่มเติมได้ในคอลัมน์ Description (คำอธิบาย) 4. ในส่วน Field Properties กำหนดคุณสมบัติ Field Size (ขนาดเขตข้อมูล) ให้กับฟิลด์ที่มีชนิดข้อมูลเป็น Text หรือ Number ในตัวอย่างกำหนด Field Size เป็น Long Integer สำหรับชนิดข้อมูลแบบ Numberเราสามารถแทรกฟิลด์ข้อมูลลงไปในตารางในมุมมอง Table Design โดยคลิกแถวที่ต้องการจะแทรกฟิลด์ใหม่ และคลิกปุ่ม Insert Rows (แทรกแถว) จะปรากฏแถวใหม่แทรกอยู่ก่อนหน้าแถวที่เลือกเราสามารถลบฟิลด์ที่ไม่ต้องการออกจากตารางได้จากมุมมอง Table Design โดยเลือกแถวที่ต้องการลบ และคลิกปุ่ม Delete Rows (ลบแถว) การกำหนดคีย์หลัก (Primary Key) หลังจากที่เราได้สร้างตาราง และกำหนดคุณสมบัติเบื้องต้นของฟิลด์ในหัวข้อที่ผ่านมา ต่อไปเราจะป้อนข้อมูลตารางที่เราสร้าง โดยจะทำในมุมมอง Table Datasheet ซึ่งเป็นมุมมองที่เราจะใช้ทำงานกับข้อมูลในตารางได้หลายอย่าง เช่น การเพิ่ม แก้ไข และลบข้อมูลในตาราง เป็นต้น เราจะกล่าวถึงการใช้งานมุมมอง Table Datasheet เบื้องต้นกันในบทนี้ เพื่อให้เรารู้ว่าใน Access จะเก็บข้อมูลของเราในตารางอย่างไร ส่วนในบทต่อๆไป จะเป็นการใช้งานในมุมมองนี้อย่างละเอียด การเข้าสู่มุมมอง Table Datasheet ให้เราทำตามขั้นตอนต่อไปนี้ 2. จะปรากฏมุมมอง Table Datasheet (มุมมองแผ่นข้อมูล) ขึ้นมามุมมอง Table Datasheet จะแสดงข้อมูลในตารางจัดเป็นแถวและคอลัมน์ โดยแถวจะเป็นแต่ละ เรคอร์ด คอลัมน์จะเป็นแต่ละฟิลด์ โดยเรียงลำดับฟิลด์เหมือนกับที่เรากำหนดในมุมมอง Table Datasheet และเราจะเรียกแต่ละช่องในตารางว่า เซลล์ (Cells) Record Selector: ใช้เลือกเรคอร์ดในตาราง เมื่อเราคลิกที่ปุ่มนี้ หัวแถวเป็นแถบสีดำแสดงว่าเรคอร์ดนั้นถูกเลือกอยู่ นอกจากนี้ เรายังสามารถไปยังเรคอร์ดที่ต้องการ โดยกรอกหมายเลขของเรคอร์ดลงในช่อง Record Navigator แล้วกดคีย์ <Enter> การแก้ไขเรคอร์ดในตาราง ให้กดคีย์ลูกศรซ้ายขวาเลื่อนไปมาระหว่างฟิลด์ต่างๆ ในเรคอร์ดและพิมพ์ข้อมูลลงไป ถ้าต้องการไปยังเรคอรดอื่น ให้ใช้คีย์ลูกศรขึ้นลงเลื่อนไปเรคอร์ดอื่น ดังรูป การลบเรคอร์ดในตาราง ให้เราเลือกเรคอร์ดทั้งแถวที่ต้องการลบแล้วกดคีย์ <Delete> และยืนยัน เราได้ศึกษาการสร้างตารางเบื้องต้นจากบทที่แล้ว และได้ใส่ข้อมูลต่างๆมาแล้ว สำหรับในบทนี้ เราจะศึกษาเรื่องการเพิ่มความสามารถให้กับตาราง เช่น การตรวจสอบความถูกต้องของข้อมูลที่ป้อนเข้าไป กำหนดรูปแบบการแสดงผลของข้อมูลให้เป็นไปตามต้องการ เป็นต้น และสุดท้ายเราจะมากำหนดความสัมพันธ์ระหว่างตาราง เพื่อทำให้ข้อมูลต่างๆสามารถเชื่อมกันได้เหมือนเป็นตารางใหญ่ตารางหนึ่ง ถ้าเราต้องการการแสดงผลราคาสินค้าในรูปแบบ 1,234,567.00฿ เราจะใช้คุณสมบัติในการแสดงผลฟิลด์เข้าช่วย เช่น คุณสมบัติ Format, Decimal Places, Caption ซึ่งเราจะกำหนดในมุมมอง Table Design ดังรูป คุณสมบัติต่างๆ
ที่เกี่ยวข้องกับการกำหนดรูปแบบการแสดงผลของฟิลด์ มีดังนี้
- Caption เป็นข้อความที่จะให้แสดงบนหัวคอลัมน์ในมุมมอง Table Datasheet แทนที่ ชื่อฟิลด์ ใช้ในกรณีที่เรารู้สึกว่าฟิลด์เข้าใจยาก และอยากให้แสดงเป็นชื่อที่เข้าใจง่ายขึ้น หรือ อาจต้องการให้แสดงเป็นภาษาไทยแทนชื่อฟิลด์ที่เราใช้เป็นภาษาอังกฤษหากต้องมีการควบคุมข้อมูลที่ผู้ใช้สามารถป้อนเก็บลงฟิลด์ได้ เช่น ฟิลด์นี้ต้องการให้คีย์ค่าได้ไม่เกิน 5 ตัวอักษร และทุกตัวต้องเป็นตัวเลขเท่านั้น ตัวหนังสือไม่ได้ เราจะใช้คุณสมบัติการกำหนดรูปแบบเข้าช่วย ซึ่งคุณสมบัติดังกล่าวมีดังนี้ Input Mask, Default Value, Required, Allow Zero Length, New Values - Input Mask เป็นคุณสมบัติที่บอกว่า จะรับข้อมูลที่ผู้ใช้ป้อนในรูปแบบใดได้บ้าง เช่น - ฟิลด์ ZipCode ใช้เก็บรหัสไปรษณีย์ จะรับข้อมูลที่เป็นตัวเลข (0-9) และรับได้ 5 ตัวเท่านั้น - ฟิลด์ Telephone ใช้เก็บหมายเลขโทรศัพท์จะรับข้อมูลที่อยู่ในรูปแบบตัวเลข (999)9999999 โดยที่ 9 แทนตัวเลข 1 ตัว หรือช่องว่างก็ได้ เช่น (062)4567890 เป็นต้น -Default Value เป็นค่าเริ่มต้นของฟิลด์ ถ้ามีการเพิ่มเรคอร์ดโดยไม่กำหนดค่าให้ฟิลด์ค่านี้จะเป็นค่าที่ถูกกำหนดให้กับฟิลด์ -Required ถ้ากำหนดค่าคุณสมบัติเป็น Yes เราจะต้องใส่ข้อมูลลงไปในฟิลด์นี้ทุกครั้งจะเว้นว่างไม่ได้ -Allow Zero Length ถ้ากำหนดค่าคุณสมบัตินี้เป็น Yes ค่าของฟิลด์นี้จะสามารถเป็นข้อความว่างได้ (มีขนาดเป็น 0) ได้ -New Values เป็นคุณสมบัติที่มีเฉพาะฟิลด์ที่ใช้ชนิดข้อมูล AutoNumber เท่านั้นใช้กำหนดว่าจะให้ค่าที่ถูกกำหนดโดยอัตโนมัตินี้เพิ่มขึ้นทีละหนึ่ง (Increment) หรือใช้ค่าสุ่ม (Random) เราสามารถกำหนดชื่อให้กับหัวข้อคอลัมน์ที่แสดงในมุมมอง Datasheet ได้ที่คุณสมบัติ Caption ซึ่งมักใช้ชื่อที่สื่อความหมายกับคอลัมน์นั้นๆ แทนการแสดงชื่อฟิลด์ข้อมูลโดยตรง ดังตัวอย่างเราจะแทนชื่อฟิลด์ Telephone โดยให้แสดงคำว่า “หมายเลขโทรศัพท์” แทนเพราะเป็นภาษาไทยที่เข้าใจได้ง่ายการตรวจสอบความถูกต้องของข้อมูลที่ผู้ใช้กรอกเข้าไปในตารางนั้นมีความสำคัญ เนื่องจากข้อมูลที่ไม่ถูกต้องจะทำการประมวลผลข้อมูลผิดพลาด ในหัวข้อนี้เราจะมาศึกษาการกำหนดคุณสมบัติของฟิลด์เพื่อตรวจสอบความถูกต้องให้อัตโนมัติ เช่น ในตาราง TblProducts ในฟิลด์ CategoryID
หากเรามีสินค้าเพียงแค่ 4 ประเภท ที่แทนตัวเลข 1, 2, 3 และ 4 การเรียกหน้าต่างคุณสมบัติของตาราง เราเรียกหน้าต่างคุณสมบัติของตาราง ได้ดังนี้ 1. เปิดตารางในมุมมอง Table Design ที่จะดูคุณสมบัติ 2. ในแท็บ DESIGN (ออกแบบ) ให้เราคลิกปุ่ม Property Sheet (แผ่นคุณสมบัติ) หรือ กดปุ่ม <Alt+Enter> จะปรากฏหน้าต่าง Property Sheet ที่ใช้กำหนดคุณสมบัติให้กับตาราง สำหรับการสร้างความสัมพันธ์ระหว่างตาราง เราจึงจำเป็นต้องเข้าใจเรื่อง Enforce Referential Integrity หรือการควบคุมการอ้างอิงค่าระหว่างตาราง ซึ่งมีอยู่ 2 แบบที่เราสามารถกำหนดได้คือ - Cascade Update Related Fields เป็นการกำหนดว่า เมื่อค่าของฟิลด์ที่เชื่อมกันในตารางหลักมีการเปลี่ยนแปลงจะให้เปลี่ยนแปลงค่าในอีกตารางรองที่เชื่อมโยงด้วยหรือไม่ - Cascade Delete Related Fields เป็นการกำหนดว่า เมื่อเรคอร์ดที่เชื่อมกันในตารางหลักถูกลบจะให้ลบค่าในอีกตารางรองที่เชื่อมโยงด้วยหรือไม่ - Note ตารางหลัก หมายถึง ตารางที่ใช้ Primary Key เป็นตัวเชื่อมความสัมพันธ์ ส่วนตารางรอง หมายถึง ตารางที่ใช้ Foreign Key เป็นตัวเชื่อมความสัมพันธ์ แสดงการสร้างความสัมพันธ์ระหว่างตาราง TblProducts กับ TblCategoris เราจะสังเกตได้ว่า ตารางทั้งสองมีความสัมพันธ์กันผ่านทางฟิลด์ CategoryID โดยจะเป็นความสัมพันธ์แบบ One-to-Many ระหว่างตาราง TblCategories (ตารางหลัก) กับ TblProducts (ตารางรอง) การกำหนดความสัมพันธ์ระหว่างตารางทั้งสอง ให้เราทำตามขั้นตอนดังต่อไปนี้ 1. คลิกที่แท็บ DATABASE TOOLS (เครื่องมือฐานข้อมูล) ให้เราคลิกปุ่ม Relationships (ความสัมพันธ์) เพื่อแสดงหน้าต่าง Relationships ขึ้นมา 2. จากแถบเครื่องมือ RELATIONSHIP TOOLS (เครื่องมือการทำความสัมพันธ์) ให้ไปที่แท็บ DESIGN (ออกแบบ) และคลิกปุ่ม Show Table (แสดงตาราง) เพื่อแสดงตารางที่จะเขียนความสัมพันธ์ 3. จะปรากฏรายการตาราง ให้เราเลือกตาราง TblCategories แล้วคลิกปุ่ม Add และ เลือกตาราง TblProducts แล้วคลิกปุ่ม Add อีกครั้งเพื่อเพิ่ม 2 ตาราง (หรือจะกดคีย์ <Ctrl> ค้างไว้แล้วเลือกทั้งสองตารางแล้วคลิกปุ่ม Add เลยก็ได้) จากนั้นคลิกปุ่ม Close เพื่อปิดหน้าต่าง Show Table4. ในหน้าต่าง Relationships จะแสดงตารางและความสัมพันธ์ (เส้นสีดำที่ลากระหว่าง 2 ตาราง) ที่ Access สร้างให้อัตโนมัติ เราสามารถแก้ไขความสัมพันธ์ได้ โดยการดับเบิ้ลคลิกบนเส้นความสัมพันธ์ เราสามารถลบความสัมพันธ์ได้ โดยคลิกเลือกเส้นความสัมพันธ์และกดคีย์ <Delete> เราสามารถสร้างความสัมพันธ์ใหม่เองได้ โดยการเลือกฟิลด์จากตารางหนึ่ง แล้วลากเมาส์ไปยังฟิลด์ที่จะเชื่อมด้วยของอีกตารางหนึ่ เราสามารถซ่อนตารางที่ไม่ต้องการแสดงได้ โดยคลิกเลือกตารางและกดคีย์ <Delete> ในตอนนี้ให้เราดับเบิลคลิกที่เส้นความสัมพันธ์ เพื่อแก้ไขความสัมพันธ์ในหน้าต่าง Edit Relationships5. จะปรากฏหน้าต่าง Edit Relationships (การแก้ไขความสัมพันธ์) ให้เรากำหนดฟิลด์ที่จะใช้เชื่อมความสัมพันธ์จากตารางทั้งสอง และกำหนด Enforce Referential Integrity ซึ่งแต่ละตัวเลือกมีความหมายดังต่อไปนี้ - Cascade Update Related Fields กำหนดว่า เมื่อค่าของฟิลด์ที่เชื่อมกันในตารางหลักถูกเปลี่ยนแปลงจะให้เปลี่ยนแปลงที่ตารางอีกฝั่งด้วยหรือไม่ - Cascade Delete Related Fields กำหนดว่า เมื่อเรคอร์ดที่เชื่อมกันในตารางหลักถูกลบจะให้ลบที่ตารางอีกฝั่งด้วยหรือไม่6. ถ้าต้องการกำหนดรูปแบบการเชื่อม ให้เราคลิกปุ่ม Join Type (ชนิดการรวม) ซึ่งจะมีตัวเลือกต่างๆ ตามลำดับ ที่มีรายละเอียดดังต่อไปนี้ 1: เชื่อมแบบที่นำมาเฉพาะเรคอร์ดที่มีค่าของฟิลด์ตรงกันเท่านั้น 2: เชื่อมแบบที่นำเรคอร์ดของตารางด้าน One ทั้งหมดมา และนำเฉพาะเรคอร์ดของตารางฝั่ง Many ที่มีค่าของฟิลด์ตรงกันกับตารางฝั่ง One เท่านั้น 3: เชื่อมแบบที่นำเรคอร์ดของตารางด้าน Many ทั้งหมดมา และนำเฉพาะเรคอร์ดของตารางฝั่ง One ที่มีค่าของฟิลด์ตรงกันกับตารางฝั่ง Many เท่านั้น ในตัวอย่างนี้ให้เราเลือกข้อ 1 เนื่องจากเราต้องการให้สินค้าทุกชิ้นอยู่ในประเภทสินค้าใดประเภทสินค้าหนึ่งเสมอ 7. เมื่อกำหนดเสร็จแล้ว ให้เราคลิกปุ่ม OK เพื่อแก้ไขความสัมพันธ์ จากนั้นให้เราดูในมุมมอง Table Datasheet ของตาราง TblCategories ซึ่งเป็นตารางหลัก จะเห็นความสัมพันธ์ที่เกี่ยวข้องกับข้อมูลในตาราง TblProducts ดังรูปเมื่อเราเลือกกำหนดความสัมพันธ์ให้กับตาราง จะปรากฏแถบเครื่องมือ RELATIONSHIP TOOLS (เครื่องมือการทำความสัมพันธ์) ซึ่งจะประกอบด้วย แท็บ DESIGN (ออกแบบ) ที่รวมคำสั่งเกี่ยวกับการเชื่อมความสัมพันธ์ระหว่างตาราง ดังรายละเอียดต่อไปนี้
|