ความสัมพันธ์ใน Access ช่วยคุณรวมข้อมูลจากสองตารางที่แตกต่างกัน ความสัมพันธ์หนึ่งรายการประกอบด้วยเขตข้อมูลในตารางสองตารางที่มีข้อมูลที่สอดคล้องกัน ตัวอย่างเช่น คุณอาจมีเขตข้อมูลรหัสผลิตภัณฑ์ในตารางผลิตภัณฑ์ และตารางรายละเอียดใบสั่งซื้อ ระเบียนแต่ละระเบียนในตารางรายละเอียดใบสั่งซื้อมีรหัสผลิตภัณฑ์ที่สอดคล้องกับระเบียนในตารางผลิตภัณฑ์ที่มีรหัสผลิตภัณฑ์เดียวกัน
เมื่อคุณใช้ตารางที่เกี่ยวข้องในคิวรี ความสัมพันธ์ช่วยให้ Access กำหนดรายการระเบียนที่จะรวมในชุดผลลัพธ์จากแต่ละตาราง ความสัมพันธ์ยังสามารถช่วยป้องกันไม่ให้ข้อมูลขาดหายไปด้วยการเก็บข้อมูลที่ถูกลบจากการซิงค์ ซึ่งการดำเนินการนี้เรียกว่า Referential Integrity
คุณต้องมีความเข้าใจในแนวคิดเบื้องหลังก่อนที่จะทำงานกับความสัมพันธ์ สำหรับข้อมูลเพิ่มเติม ให้ดูส่วน คำแนะนำเกี่ยวกับความสัมพันธ์ของตาราง และ การเริ่มต้นกับความสัมพันธ์ของตาราง
ในบทความนี้
ภาพรวม
ในฐานข้อมูล Access คุณสร้างความสัมพันธ์ของตารางโดยใช้วิธีหนึ่งวิธีใดดังต่อไปนี้:
-
ในหน้าต่างความสัมพันธ์ ให้เพิ่มตารางที่คุณต้องการเชื่อมโยง จากนั้นลากเขตข้อมูลเพื่อเชื่อมโยงจากตาราหนึ่งไปยังอีกตารางหนึ่ง
-
ลากเขตข้อมูลไปบนแผ่นข้อมูลของตารางจากบานหน้าต่าง รายการเขตข้อมูล
เมื่อคุณสร้างความสัมพันธ์ระหว่างตาราง เขตข้อมูลร่วมที่ไม่จำเป็นต้องมีชื่อเดียวกัน แม้ว่าจะมีการใข้ลักษณะนี้เกิดขึ้นบ่อยก็ตาม เขตข้อมูลร่วมจะต้องมีประเภทข้อมูลเดียวกัน แต่ถ้าเขตข้อมูลคีย์หลักเป็นเขตข้อมูล AutoNumber แล้ว เขตข้อมูล Foreign Key ยังสามารถเป็นเขตข้อมูลตัวเลขได้ ถ้าคุณสมบัติ ขนาดเขตข้อมูล ของเขตข้อมูลทั้งสองเหมือนกัน ตัวอย่างเช่น คุณสามารถจับคู่เขตข้อมูล AutoNumber และเขตข้อมูลตัวเลขได้ ถ้าคุณสมบัติ ขนาดเขตข้อมูล ของเขตข้อมูลทั้งสองเป็น Long Integer เมื่อเขตข้อมูลร่วมทั้งสองเป็นเขตข้อมูลตัวเลข เขตข้อมูลเหล่านั้นจะต้องมีการตั้งค่าคุณสมบัติขนาดเขตข้อมูลเหมือนกัน
การสร้างความสัมพันธ์ของตารางโดยใช้บานหน้าต่างความสัมพันธ์
-
บนแท็บ เครื่องมือฐานข้อมูล ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์
-
บนแท็บ ออกแบบความสัมพันธ์ ในกลุ่ม ความสัมพันธ์ ให้คลิก เพิ่มตาราง
-
เลือกอย่างน้อยหนึ่งตารางหรือคิวรี แล้วคลิก เพิ่ม หลังจากที่คุณเสร็จสิ้นการเพิ่มตารางและคิวรีไปยังแท็บเอกสารความสัมพันธ์ ให้คลิก ปิด
-
ลากเขตข้อมูล (โดยทั่วไปคือคีย์หลัก) จากตารางหนึ่งไปยังเขตข้อมูลทั่วไป (Foreign Key) ในอีกตารางหนึ่ง เมื่อต้องการลากหลายเขตข้อมูล ให้กดแป้น CTRL คลิกเขตข้อมูลแต่ละรายการ จากนั้นลาก
กล่องโต้ตอบ แก้ไขความสัมพันธ์ จะปรากฎขึ้น -
ตรวจสอบว่า ชื่อเขตข้อมูลที่แสดงเป็นเขตข้อมูลร่วมสำหรับความสัมพันธ์ ถ้าชื่อเขตข้อมูลไม่ถูกต้อง ให้คลิกชื่อเขตข้อมูล แล้วเลือกเขตข้อมูลที่ถูกต้องจากรายการบังคับให้มี Referential Integrity
เมื่อต้องการบังคับให้มี Referential Integrity สำหรับความสัมพันธ์นี้ ให้เลือกกล่องกาเครื่องหมาย บังคับให้มี Referential Integrity สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Referential Integrity ให้ดูในส่วน -
คลิก สร้าง
Access จะสร้างเส้นความสัมพันธ์ระหว่างทั้งสองตาราง ถ้าคุณเลือกกล่องกาเครื่องหมาย บังคับให้มี Referential Integrity เส้นความสัมพันธ์นี้จะปรากฏหนาขึ้นที่ปลายแต่ละด้าน นอกจากนี้ ถ้าคุณเลือกกล่องกาเครื่องหมาย บังคับให้มี Referential Integrity แล้ว ตัวเลข 1 จะปรากฏบนส่วนหนาที่ด้านหนึ่งของเส้นความสัมพันธ์ และสัญลักษณ์อนันต์ (∞) จะปรากฏบนส่วนหนาที่อีกด้านหนึ่งของเส้น ตามที่แสดงในภาพประกอบต่อไปนี้
หมายเหตุ:
-
เมื่อต้องการสร้างความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่ง เขตข้อมูลร่วมทั้งสองเขตข้อมูล (โดยทั่วไปคือเขตข้อมูลคีย์หลักและ Foreign Key) ต้องมีดัชนีที่ไม่ซ้ํากัน ซึ่งหมายความว่าคุณสมบัติ ดัชนี สําหรับเขตข้อมูลเหล่านี้ควรถูกตั้งค่าเป็น ใช่ (ไม่มีค่าซ้ํากัน) ถ้าเขตข้อมูลทั้งสองมีดัชนีที่ไม่ซ้ํากัน Access จะสร้างความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่ง
-
เมื่อต้องการสร้างความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม เขตข้อมูลบนด้านหนึ่ง (โดยทั่วไปคือคีย์หลัก) ของความสัมพันธ์ต้องมีดัชนีที่ไม่ซ้ํากัน ซึ่งหมายความว่าคุณสมบัติ ดัชนี สําหรับเขตข้อมูลนี้ควรถูกตั้งค่าเป็น ใช่ (ไม่มีค่าซ้ํากัน) ฟิลด์ในหลายด้าน ไม่ควร มีดัชนีที่ไม่ซ้ํากัน โดยสามารถมีดัชนีได้ แต่ดัชนีต้องอนุญาตให้มีรายการที่ซ้ํากันได้ ซึ่งหมายความว่าคุณสมบัติ ดัชนี สําหรับเขตข้อมูลนี้ควรถูกตั้งค่าเป็น ไม่ใช่ หรือ ใช่ (มีค่าซ้ํากันได้) เมื่อเขตข้อมูลหนึ่งมีดัชนีที่ไม่ซ้ํากัน และอีกเขตข้อมูลหนึ่งไม่มีค่าที่ไม่ซ้ํากัน Access จะสร้างความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม
-
การสร้างความสัมพันธ์ของตารางโดยใช้บานหน้าต่างรายการเขตข้อมูลเพื่อเพิ่มเขตข้อมูล
คุณสามารถเพิ่มเขตข้อมูลลงในตารางที่มีอยู่ที่เปิดไว้ในมุมมองแผ่นข้อมูล โดยการลากจากบานหน้าต่าง รายการเขตข้อมูล บานหน้าต่าง รายการเขตข้อมูล แสดงเขตข้อมูลที่มีอยู่ในตารางที่เกี่ยวข้อง รวมถึงเขตข้อมูลที่มีอยู่ในตารางอื่นๆ ภายในในฐานข้อมูลอีกด้วย
เมื่อคุณลากเขตข้อมูลจากตาราง "อื่นๆ" (ที่ไม่สัมพันธ์กัน) จากนั้นดำเนินการตามตัวช่วยสร้างการค้นหาจนเสร็จสมบูรณ์ ความสัมพันธ์ใหม่แบบหนึ่ง-ต่อ-กลุ่มจะถูกสร้างขึ้นโดยอัตโนมัติระหว่างตารางในบานหน้าต่าง รายการเขตข้อมูล และตารางที่คุณลากมา ความสัมพันธ์นี้ซึ่งสร้างโดย Access ไม่ได้บังคับให้มี Referential Integrity ตามค่าเริ่มต้น เมื่อต้องการบังคับให้มี Referential Integrity คุณจะต้องแก้ไขความสัมพันธ์ ดูข้อมูลเพิ่มเติมได้ในส่วน แก้ไขความสัมพันธ์
เปิดตารางในมุมมองแผ่นข้อมูล
-
ในบานหน้าต่างนำทาง ให้ดับเบิลคลิกที่ตาราง
เปิดบานหน้าต่างรายการเขตข้อมูล
-
กด ALT+F8 บานหน้าต่าง รายการเขตข้อมูล ปรากฏขึ้น
บานหน้าต่าง รายการเขตข้อมูล แสดงตารางอื่นๆ ทั้งหมดในฐานข้อมูลของคุณโดยถูกจัดกลุ่มเป็นประเภท เมื่อคุณทำงานกับตารางในมุมมองแผ่นข้อมูล Access จะแสดงเขตข้อมูลเป็นประเภทหนึ่งใดจากทั้งสองในบานหน้าต่าง รายการเขตข้อมูล: เขตข้อมูลที่มีอยู่ในตารางที่สัมพันธ์กัน และ เขตข้อมูลที่มีอยู่ในตารางอื่นๆ ประเภทแรกแสดงรายการตารางทั้งหมดที่มีความสัมพันธ์กับตารางที่คุณกำลังทำงาน ประเภทที่สองแสดงรายการตารางทั้งหมดที่ไม่มีความสัมพันธ์กับตารางที่คุณกำลังทำงาน
ในบานหน้าต่าง รายการเขตข้อมูล เมื่อคุณคลิกเครื่องหมายบวก (+) ถัดจากชื่อตาราง คุณจะเห็นรายการของเขตข้อมูลทั้งหมดที่พร้อมใช้งานในตารางนั้น เมื่อต้องการเพิ่มเขตข้อมูลลงในตารางของคุณ ให้ลากเขตข้อมูลที่คุณต้องการจากบานหน้าต่าง รายการเขตข้อมูล ไปยังตารางในมุมมองแผ่นข้อมูล
เพิ่มเขตข้อมูลและสร้างความสัมพันธ์จากบานหน้าต่างรายการเขตข้อมูล
-
เมื่อตารางเปิดขึ้นในมุมมองแผ่นข้อมูล ให้กดแป้น ALT + F8 บานหน้าต่าง รายการเขตข้อมูล ปรากฏขึ้น
-
ในบานหน้าต่าง เขตข้อมูลที่มีอยู่ในตารางอื่นๆ ให้คลิกเครื่องหมายบวก (+) ถัดจากชื่อตารางเพื่อแสดงรายการของเขตข้อมูลในตารางนั้น
-
ลากเขตข้อมูลที่คุณต้องการจากบานหน้าต่าง รายการเขตข้อมูล ไปยังตารางที่เปิดอยู่ในมุมมองแผ่นข้อมูล
-
เมื่อเส้นการแทรกปรากฏ ให้วางเขตข้อมูลในตำแหน่งที่ต้องการ
ตัวช่วยสร้างการค้นหา เริ่มทำงาน
-
ปฏิบัติตามคำแนะนำของ ตัวช่วยสร้างการค้นหา จนเสร็จสมบูรณ์
เขตข้อมูลนั้นจะปรากฏอยู่ในตารางในมุมมองแผ่นข้อมูล
เมื่อคุณลากเขตข้อมูลจากตาราง "อื่นๆ" (ที่ไม่สัมพันธ์กัน) จากนั้นดำเนินการตามตัวช่วยสร้างการค้นหาจนเสร็จสมบูรณ์ ความสัมพันธ์ใหม่แบบหนึ่ง-ต่อ-กลุ่มจะถูกสร้างขึ้นโดยอัตโนมัติระหว่างตารางในบานหน้าต่าง รายการเขตข้อมูล และตารางที่คุณลากมา ความสัมพันธ์นี้ซึ่งสร้างโดย Access ไม่ได้บังคับให้มี Referential Integrity ตามค่าเริ่มต้น เมื่อต้องการบังคับให้มี Referential Integrity คุณจะต้องแก้ไขความสัมพันธ์ ดูข้อมูลเพิ่มเติมได้ในส่วน แก้ไขความสัมพันธ์
การแก้ไขความสัมพันธ์
คุณสามารถเปลี่ยนแปลงความสัมพันธ์ได้ด้วยการเลือกความสัมพันธ์ในหน้าต่าง ความสัมพันธ์ แล้วทำการแก้ไข
-
วางเคอร์เซอร์อย่างระมัดระวังเพื่อที่จะให้ชี้ไปที่เส้นความสัมพันธ์ที่ต้องการ จากนั้นคลิกที่เส้นดังกล่าวเพื่อเลือก
เส้นของความสัมพันธ์จะหนาขึ้นเมื่อถูกเลือก
-
เมื่อเส้นความสัมพันธ์ถูกเลือก ให้ดับเบิลคลิกที่เส้นดังกล่าว
หรือ
บนแท็บ ออกแบบความสัมพันธ์ ในกลุ่ม เครื่องมือ ให้คลิก แก้ไขความสัมพันธ์
กล่องโต้ตอบ แก้ไขความสัมพันธ์ จะปรากฎขึ้น
เปิดกล่องโต้ตอบ แก้ไขความสัมพันธ์
-
บนแท็บ เครื่องมือฐานข้อมูล ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์
-
บนแท็บ ออกแบบความสัมพันธ์ ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์ทั้งหมด
ตารางทั้งหมดที่มีความสัมพันธ์จะปรากฏขึ้น โดยแสดงให้เห็นเส้นความสัมพันธ์ โปรดสังเกตว่าตารางที่ซ่อนอยู่ (ตารางที่มีการเลือกกล่องกาเครื่องหมาย ซ่อน ในกล่องโต้ตอบ คุณสมบัติ ของตาราง) และความสัมพันธ์ของตารางดังกล่าวจะไม่แสดงให้เห็นเว้นแต่ว่าจะมีการเลือก แสดงวัตถุที่ซ่อน ในกล่องโต้ตอบ ตัวเลือกการนำทาง
-
คลิกที่เส้นความสัมพันธ์สำหรับความสัมพันธ์ที่คุณต้องการแก้ไข เส้นของความสัมพันธ์จะหนาขึ้นเมื่อถูกเลือก
-
ดับเบิลคลิกที่เส้นของความสัมพันธ์
หรือ
บนแท็บ ออกแบบความสัมพันธ์ ในกลุ่ม เครื่องมือ ให้คลิก แก้ไขความสัมพันธ์
กล่องโต้ตอบ การแก้ไขความสัมพันธ์ จะปรากฏ
-
ทำการเปลี่ยนแปลงของคุณ แล้วคลิก ตกลง
กล่องโต้ตอบ แก้ไขความสัมพันธ์ ช่วยให้คุณสามารถเปลี่ยนความสัมพันธ์ของตารางได้ โดยเฉพาะอย่างยิ่ง คุณสามารถเปลี่ยนตารางหรือคิวรีบนด้านใดด้านหนึ่งของความสัมพันธ์ หรือเขตข้อมูลบนด้านใดด้านหนึ่ง คุณยังสามารถตั้งค่าชนิดการรวม หรือบังคับให้มี Referential Integrity และเลือกตัวเลือกที่เกี่ยวข้องกันทั้งหมดได้ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับชนิดการรวมและวิธีการตั้งค่า ให้ดูที่ส่วน ตั้งค่าชนิดการรวม สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีบังคับให้มี Referential Integrity และเลือกตัวเลือกที่เกี่ยวข้อง ให้ดูส่วน บังคับให้มี Referential Integrity
การตั้งค่าชนิดการรวม
เมื่อคุณกำหนดความสัมพันธ์ของตาราง ข้อเท็จจริงเกี่ยวกับความสัมพันธ์จะแจ้งการออกแบบคิวรีของคุณ ตัวอย่างเช่น ถ้าคุณกำหนดความสัมพันธ์ระหว่างสองตาราง จากนั้นสร้างคิวรีที่ใช้ตารางทั้งสองนั้น Access จะเลือกการจับคู่เขตข้อมูลเริ่มต้นโดยอัตโนมัติซึ่งอิงตามเขตข้อมูลที่ระบุไว้ในความสัมพันธ์ คุณสามารถเขียนทับค่าเริ่มต้นเหล่านี้ในคิวรีของคุณได้ แต่ค่าที่ดึงมาจากความสัมพันธ์มักจะพิสูจน์ให้เห็นว่าเป็นค่าที่ถูกต้อง เนื่องจากโดยส่วนใหญ่คุณจะทำการจับคู่ และรวมเข้าด้วยกันข้อมูลจากตารางมากกว่าหนึ่งตาราง แต่สำหรับฐานข้อมูลอย่างง่ายที่สุดนั้น การตั้งค่าเริ่มต้นด้วยการสร้างความสัมพันธ์จะช่วยประหยัดเวลาและให้ประโยชน์ดีกว่า
คิวรีของหลายตารางจะรวมข้อมูลจากตารางมากกว่าหนึ่งตารางโดยการจับคู่ค่าในเขตข้อมูลร่วม การดำเนินการของการจับคู่และการรวมข้อมูลเรียกว่า การรวม ตัวอย่างเช่น สมมติว่าคุณต้องการแสดงใบสั่งซื้อของลูกค้า คุณสร้างคิวรีที่รวมตารางลูกค้าและตารางใบสั่งซื้อบนเขตข้อมูลรหัสลูกค้า ผลลัพธ์ของคิวรีจะรวมข้อมูลของลูกค้าและข้อมูลใบสั่งซื้อสำหรับแถวที่ตรวจพบการจับคู่ที่สอดคล้องกันเท่านั้น
หนึ่งในค่าที่คุณสามารถระบุให้กับความสัมพันธ์แต่ละรายการคือ ชนิดการรวม ชนิดการรวมเป็นตัวบอกให้ Access ทราบรายการระเบียนที่จะรวมในผลลัพธ์ของคิวรี ตัวอย่างเช่น พิจารณาคิวรีที่รวมตารางลูกค้าและตารางใบสั่งซื้อบนเขตข้อมูลร่วมที่แทนถึงรหัสลูกค้า เมื่อใช้ชนิดการรวมเริ่มต้น (เรียกว่าการรวมภายใน) คิวรีจะให้ผลลัพธ์เป็นรายการแถวลูกค้าและแถวใบสั่งซื้อที่มีเขตข้อมูลร่วม (หรือเรียกว่าเขตข้อมูลที่ร่วมกัน) เท่ากัน
อย่างไรก็ตาม สมมติว่าคุณต้องการรวมลูกค้าทั้งหมด แม้กระทั่งลูกค้าที่ยังไม่มีใบสั่งซื้อใดๆ ก็ตาม ในการทำการรวมนี้ให้สำเร็จ คุณต้องเปลี่ยนชนิดการรวมจากการรวมภายในไปเป็นสิ่งที่เรียกว่าการรวมภายนอกด้านซ้าย การรวมภายนอกด้านซ้ายจะให้ผลลัพธ์เป็นแถวทั้งหมดในตารางทางด้านซ้ายของความสัมพันธ์และเป็นแถวที่ตรงกันในตารางทางด้านขวาเท่านั้น การรวมภายนอกด้านขวาจะให้ผลลัพธ์เป็นแถวทั้งหมดทางด้านขวาและเป็นแถวที่ตรงกันในตารางทางด้านซ้ายเท่านั้น
หมายเหตุ: ในกรณีนี้ "ซ้าย" และ "ขวา" หมายถึงตำแหน่งของตารางในกล่องโต้ตอบ แก้ไขความสัมพันธ์ ไม่ใช่ในหน้าต่างความสัมพันธ์
คุณควรพิจารณาถึงผลลัพธ์ที่คุณจะต้องการบ่อยที่สุดจากคิวรีที่รวมตารางในความสัมพันธ์นี้ จากนั้นตั้งค่าชนิดการรวมให้สอดคล้องกัน
การตั้งค่าชนิดการรวม
-
ในกล่องโต้ตอบ การแก้ไขความสัมพันธ์ ให้คลิก ชนิดการรวม
กล่องโต้ตอบ คุณสมบัติการรวม จะปรากฏขึ้น
-
เลือกตัวเลือกของคุณ แล้วคลิก ตกลง
ตารางต่อไปนี้ (ซึ่งใช้ตารางลูกค้าและตารางใบสั่งซื้อ) จะแสดงให้เห็นสามตัวเลือกในกล่องโต้ตอบ คุณสมบัติการรวม ชนิดของการรวมที่ใช้ และแถวทั้งหมดหรือแถวที่ตรงกันที่แสดงผลลัพธ์ไว้สำหรับแต่ละตาราง
ตัวเลือก |
การรวมเชิงสัมพันธ์ |
ตารางด้านซ้าย |
ตารางด้านขวา |
---|---|---|---|
1. รวมเฉพาะแถวซึ่งเขตข้อมูลที่นำมาใช้ในการรวมจากทั้งสองตารางต้องมีค่าเท่ากันเท่านั้น |
การรวมภายใน |
แถวที่ตรงกัน |
แถวที่ตรงกัน |
2. รวมระเบียนทั้งหมดจาก 'ลูกค้า' และเฉพาะระเบียนจาก 'ใบสั่งซื้อ' ซึ่งมีเขตข้อมูลที่ใช้ในการรวมเท่ากัน |
การรวมภายนอกด้านซ้าย |
แถวทั้งหมด |
แถวที่ตรงกัน |
3. รวมระเบียนทั้งหมดจาก 'ใบสั่งซื้อ' และเฉพาะระเบียนจาก 'ลูกค้า' ซึ่งมีเขตข้อมูลที่ใช้ในการรวมเท่ากัน |
การรวมภายนอกด้านขวา |
แถวที่ตรงกัน |
แถวทั้งหมด |
เมื่อคุณเลือกตัวเลือก 2 หรือตัวเลือกที่ 3 ลูกศรจะแสดงบนเส้นความสัมพันธ์ ลูกศรนี้ชี้ไปที่ด้านข้างของความสัมพันธ์ที่แสดงเฉพาะแถวที่ตรงกันเท่านั้น
ทำการเปลี่ยนแปลงในกล่องโต้ตอบ คุณสมบัติการรวม
-
บนแท็บ เครื่องมือฐานข้อมูล ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์
-
บนแท็บ ออกแบบความสัมพันธ์ ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์ทั้งหมด
ตารางทั้งหมดที่มีความสัมพันธ์จะปรากฏ พร้อมทั้งแสดงให้เห็นเส้นของความสัมพันธ์ด้วย โปรดสังเกตว่าตารางที่ซ่อนอยู่ (ตารางที่มีการเลือกกล่องกาเครื่องหมาย ซ่อน ในกล่องโต้ตอบ คุณสมบัติ ของตาราง) และความสัมพันธ์ของตารางดังกล่าวจะไม่แสดงให้เห็นเว้นแต่ว่าจะมีการเลือก แสดงวัตถุที่ซ่อน ในกล่องโต้ตอบ ตัวเลือกการนำทาง -
คลิกที่เส้นความสัมพันธ์สำหรับความสัมพันธ์ที่คุณต้องการแก้ไข เส้นของความสัมพันธ์จะหนาขึ้นเมื่อถูกเลือก
-
ดับเบิลคลิกที่เส้นของความสัมพันธ์ กล่องโต้ตอบ การแก้ไขความสัมพันธ์ จะปรากฏ
-
คลิก ชนิดการรวม
-
ในกล่องโต้ตอบ คุณสมบัติการรวม ให้เลือกตัวเลือก แล้วคลิก ตกลง
-
ทำการเปลี่ยนแปลงเพิ่มเติมใดๆ กับความสัมพันธ์นั้น แล้วคลิก ตกลง
การบังคับให้มี Referential Integrity
วัตถุประสงค์ของ Referential Integrity คือการป้องกันระเบียนที่ไม่มีการเชื่อมโยง ซึ่งเป็นระเบียนที่อ้างถึงระเบียนอื่นๆ ที่ไม่มีอยู่อีกต่อไป คุณบังคับให้มี Referential Integrity ได้โดยการเปิดใช้งานตัวเลือกดังกล่าวสำหรับความสัมพันธ์ของตาราง เมื่อบังคับแล้ว Access จะปฏิเสธการดำเนินการใดๆ ที่จะละเมิดต่อ Referential Integrity สำหรับความสัมพันธ์ของตารางนั้น ซึ่งหมายความว่า Access จะปฏิเสธการอัปเดตทั้งสองอย่างที่เปลี่ยนแปลงเป้าหมายของการอ้างอิงและการลบที่จะลบเป้าหมายของการอ้างอิง เมื่อต้องการให้ Access เผยแพร่การอัปเดตและการลบเกี่ยวกับการอ้างอิงเพื่อให้แถวที่เกี่ยวข้องทั้งหมดเปลี่ยนแปลงตามที่ดำเนินการ ให้ดูที่ส่วน ตั้งค่าตัวเลือกที่เกี่ยวข้องทั้งหมด
การเปิดหรือปิดใช้งาน Referential Integrity
-
บนแท็บ เครื่องมือฐานข้อมูล ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์
-
บนแท็บ ออกแบบความสัมพันธ์ ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์ทั้งหมด
ตารางทั้งหมดที่มีความสัมพันธ์จะปรากฏขึ้น โดยแสดงให้เห็นเส้นความสัมพันธ์ โปรดสังเกตว่าตารางที่ซ่อนอยู่ (ตารางที่มีการเลือกกล่องกาเครื่องหมาย ซ่อน ในกล่องโต้ตอบ คุณสมบัติ ของตาราง) และความสัมพันธ์ของตารางดังกล่าวจะไม่แสดงให้เห็นเว้นแต่ว่าจะมีการเลือก แสดงวัตถุที่ซ่อน ในกล่องโต้ตอบ ตัวเลือกการนำทาง -
คลิกที่เส้นความสัมพันธ์สำหรับความสัมพันธ์ที่คุณต้องการแก้ไข เส้นของความสัมพันธ์จะหนาขึ้นเมื่อถูกเลือก
-
ดับเบิลคลิกที่เส้นของความสัมพันธ์ กล่องโต้ตอบ แก้ไขความสัมพันธ์ จะปรากฏขึ้น
-
เลือกหรือยกเลิกเลือก บังคับให้มี Referential Integrity
-
ทำการเปลี่ยนแปลงเพิ่มเติมใดๆ กับความสัมพันธ์นั้น แล้วคลิก ตกลง
ถ้าคุณบังคับให้มี Referential Integrity จะมีการนำกฎต่อไปนี้ไปใช้:
-
คุณไม่สามารถป้อนค่าในเขตข้อมูล Foreign Key ของตารางที่เกี่ยวข้องได้ ถ้าค่าดังกล่าวไม่มีอยู่ในเขตข้อมูลคีย์หลักของตารางหลัก การทำเช่นนี้จะเป็นการสร้างระเบียนที่ไม่มีการเชื่อมโยง
-
คุณไม่สามารถลบระเบียนจากตารางหลักได้ ถ้ามีระเบียนที่ตรงกันในตารางที่เกี่ยวข้อง ตัวอย่างเช่น คุณไม่สามารถลบระเบียนพนักงานจากตารางพนักงานได้ ถ้ามีใบสั่งซื้อถูกกำหนดให้กับพนักงานคนนั้นในตารางใบสั่งซื้อ แต่ คุณสามารถเลือกที่จะลบระเบียนหลัก และ ระเบียนที่เกี่ยวข้องทั้งหมดได้ในการดำเนินการคราวเดียว โดยการเลือกกล่องกาเครื่องหมาย ลบระเบียนที่เกี่ยวข้องทั้งหมด
-
คุณไม่สามารถเปลี่ยนค่าคีย์หลักในตารางหลักได้ ซึ่งถ้าคุณทำเช่นนั้น จะก่อให้เกิดระเบียนที่ไม่มีการเชื่อมโยงขึ้นมา ตัวอย่างเช่น คุณไม่สามารถเปลี่ยนหมายเลขคำสั่งซื้อในตารางใบสั่งซื้อได้ ถ้ามีสินค้าในรายการถูกกำหนดให้กับคำสั่งซื้อนั้นในตารางรายละเอียดใบสั่งซื้อ แต่ คุณสามารถเลือกที่จะอัปเดตระเบียนหลัก และ ระเบียนที่เกี่ยวข้องทั้งหมดได้ในการดำเนินการคราวเดียว โดยการเลือกกล่องกาเครื่องหมาย อัปเดตเขตข้อมูลที่เกี่ยวข้องทั้งหมด
หมายเหตุ: ถ้าคุณประสบความยุ่งยากในการเปิดใช้งาน Referential Integrity ให้สังเกตว่าเงื่อนไขต่อไปนี้ต้องการบังคับให้มี Referential Integrity ดังนี้
-
เขตข้อมูลร่วมจากตารางหลักจะต้องเป็นคีย์หลักหรือมีดัชนีที่ค่าไม่ซ้ำกัน
-
เขตข้อมูลร่วมจะต้องมีประเภทข้อมูลเดียวกัน มีข้อยกเว้นหนึ่งข้อคือ เขตข้อมูล AutoNumber สามารถสัมพันธ์กับเขตข้อมูลตัวเลขที่มีการตั้งค่าคุณสมบัติ ขนาดเขตข้อมูล เป็น Long Integer ได้
-
ทั้งสองตารางมีอยู่ในฐานข้อมูล Access เดียวกัน คุณไม่สามารถบังคับให้มี Referential Integrity บนตารางที่ถูกเชื่อมโยง แต่ถ้าตารางแหล่งข้อมูลอยู่ในรูปแบบ Access คุณสามารถเปิดฐานข้อมูลที่จะจัดเก็บตารางเหล่านั้นและเปิดใช้งาน Referential Integrity ในฐานข้อมูลนั้น
-
การตั้งค่าตัวเลือกที่เกี่ยวข้องทั้งหมด
คุณอาจพบสถานการณ์ที่คุณจำเป็นต้องเปลี่ยนแปลงค่าบนด้าน "หนึ่ง" ของความสัมพันธ์ ในกรณีนี้ คุณต้องให้ Access อัปเดตแถวที่ได้รับผลกระทบทั้งหมดโดยอัตโนมัติโดยเป็นส่วนหนึ่งของการดำเนินการแบบคราวเดียว วิธีดังกล่าวจะเป็นการอัปเดตอย่างสมบูรณ์เพื่อไม่ให้ฐานข้อมูลของคุณตกอยู่ในสถานะไม่สอดคล้องกัน นั่นคือบางแถวได้รับการอัปเดตแต่บางแถวไม่มีการอัปเดต Access ช่วยให้คุณหลีกเลี่ยงปัญหานี้โดยการสนับสนุนตัวเลือกอัปเดตเขตข้อมูลที่เกี่ยวข้องทั้งหมด เมื่อคุณบังคับใช้ Referential Integrity แล้วเลือกตัวเลือกอัปเดตเขตข้อมูลที่เกี่ยวข้องทั้งหมด จากนั้นอัปเดตคีย์หลัก Access ก็จะอัปเดตเขตข้อมูลทั้งหมดที่อ้างอิงคีย์หลัก
นอกจากนี้คุณยังอาจต้องการลบแถวและระเบียนที่เกี่ยวข้องทั้งหมด ตัวอย่างเช่น ระเบียนผู้จัดส่งและคำสั่งซื้อที่เกี่ยวข้องทั้งหมดสำหรับผู้จัดส่งรายนั้น ด้วยเหตุผลนี้ Access จึงสนับสนุนตัวเลือกลบระเบียนที่เกี่ยวข้องทั้งหมด เมื่อคุณบังคับใช้ Referential Integrity และเลือกกล่องกาเครื่องหมาย ลบระเบียนที่เกี่ยวข้องทั้งหมด Access จะลบระเบียนทั้งหมดที่อ้างอิงคีย์หลักโดยอัตโนมัติเมื่อคุณลบระเบียนที่ประกอบด้วยคีย์หลัก
การเปิดหรือปิดอัปเดตทั้งหมดที่เกี่ยวข้องและ/หรือการลบทั้งหมดที่เกี่ยวข้อง
-
บนแท็บ เครื่องมือฐานข้อมูล ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์
-
บนแท็บ ออกแบบความสัมพันธ์ ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์ทั้งหมด
ตารางทั้งหมดที่มีความสัมพันธ์จะปรากฏขึ้น โดยแสดงให้เห็นเส้นความสัมพันธ์ โปรดสังเกตว่าตารางที่ซ่อนอยู่ (ตารางที่มีการเลือกกล่องกาเครื่องหมาย ซ่อน ในกล่องโต้ตอบ คุณสมบัติ ของตาราง) และความสัมพันธ์ของตารางดังกล่าวจะไม่แสดงให้เห็นเว้นแต่ว่าจะมีการเลือก แสดงวัตถุที่ซ่อน ในกล่องโต้ตอบ ตัวเลือกการนำทาง -
คลิกที่เส้นความสัมพันธ์สำหรับความสัมพันธ์ที่คุณต้องการแก้ไข เส้นของความสัมพันธ์จะหนาขึ้นเมื่อถูกเลือก
-
ดับเบิลคลิกที่เส้นของความสัมพันธ์
กล่องโต้ตอบ แก้ไขความสัมพันธ์ จะปรากฎขึ้น -
เลือกกล่องกาเครื่องหมาย บังคับให้มี Referential Integrity
-
เลือกกล่องกาเครื่องหมาย อัปเดตเขตข้อมูลที่เกี่ยวข้องทั้งหมด หรือ ลบระเบียนที่เกี่ยวข้องทั้งหมด หรือเลือกทั้งสองตัวเลือก
-
ทำการเปลี่ยนแปลงเพิ่มเติมใดๆ กับความสัมพันธ์นั้น แล้วคลิก ตกลง
หมายเหตุ: ถ้าคีย์หลักคือเขตข้อมูล AutoNumber การเลือกกล่องกาเครื่องหมาย อัปเดตเขตข้อมูลที่เกี่ยวข้องทั้งหมด จะไม่มีผลกระทบ เนื่องจากคุณไม่สามารถเปลี่ยนแปลงค่าในเขตข้อมูล AutoNumber ได้
การลบความสัมพันธ์ของตาราง
สิ่งสำคัญ: เมื่อคุณลบความสัมพันธ์ คุณจะลบการสนับสนุน Referential Integrity สำหรับความสัมพันธ์นั้นออกด้วย ถ้าเปิดใช้งานไว้ ผลที่ตามมาคือ Access จะไม่ป้องกันการสร้างระเบียนที่ไม่มีการเชื่อมโยงบน "หลาย" ด้านของความสัมพันธ์โดยอัตโนมัติอีกต่อไป
เมื่อต้องการลบความสัมพันธ์ของตาราง คุณจะต้องลบเส้นความสัมพันธ์ในหน้าต่างความสัมพันธ์ วางเคอร์เซอร์เพื่อที่จะให้ชี้ไปที่เส้นความสัมพันธ์ที่ต้องการ จากนั้นคลิกที่เส้นดังกล่าว เส้นของความสัมพันธ์จะหนาขึ้นเมื่อถูกเลือก เมื่อเส้นความสัมพันธ์ถูกเลือก ให้กดแป้น ลบ
-
บนแท็บ เครื่องมือฐานข้อมูล ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์
-
บนแท็บ ออกแบบความสัมพันธ์ ในกลุ่ม ความสัมพันธ์ ให้คลิก ความสัมพันธ์ทั้งหมด
ตารางทั้งหมดที่มีความสัมพันธ์จะปรากฏขึ้น โดยแสดงให้เห็นเส้นความสัมพันธ์ โปรดสังเกตว่าตารางที่ซ่อนอยู่ (ตารางที่มีการเลือกกล่องกาเครื่องหมาย ซ่อน ในกล่องโต้ตอบ คุณสมบัติ ของตาราง) และความสัมพันธ์ของตารางดังกล่าวจะไม่แสดงให้เห็นเว้นแต่ว่าจะมีการเลือก แสดงวัตถุที่ซ่อน ในกล่องโต้ตอบ ตัวเลือกการนำทาง -
คลิกเส้นความสัมพันธ์สําหรับความสัมพันธ์ที่คุณต้องการลบ เส้นของความสัมพันธ์จะหนาขึ้นเมื่อถูกเลือก
-
กดแป้น DELETE
-
Access อาจแสดงข้อความ คุณแน่ใจหรือไม่ว่าคุณต้องการที่จะลบความสัมพันธ์ที่คุณได้เลือกออกจากฐานข้อมูลของคุณอย่างถาวร ถ้าข้อความยืนยันนี้ปรากฎขึ้น ให้คลิก ใช่
หมายเหตุ: ถ้ากำลังมีการใช้ตารางใดตารางหนึ่งที่เกี่ยวข้องกับความสัมพันธ์ของตาราง ซึ่งอาจจะเป็นโดยบุคคลอื่น หรือโดยกระบวนการอื่น หรือในวัตถุฐานข้อมูลที่เปิดอยู่ (เช่น ฟอร์ม) คุณจะไม่สามารถลบความสัมพันธ์ดังกล่าวได้ คุณต้องปิดวัตถุใดๆ ที่ใช้ตารางเหล่านี้ก่อน จากนั้นคุณจึงจะสามารถลบความสัมพันธ์นี้ออกได้