You are currently viewing ค่าซ้ำ ใน Microsoft Access

ค่าซ้ำ ใน Microsoft Access

ค่าซ้ำ ใน Microsoft Access สามารถหาได้ด้วยการใช้ Queries ซึ่งเป็นวิธีการที่ง่ายและสะดวก เหมาะสำหรับเวลาที่มีข้อมูลเป็นจำนวนมาก จะว่าไปหาง่ายกว่าการใช้ Excel หาค่าซ้ำในหลายกรณีเสียด้วยซ้ำ

ตัวอย่าง

มีข้อมูลทะเบียนที่ดิน ซึ่งมีข้อมูลของ State, County, title_deeds, Survey_no, Utm_code, Utm_no_p, Utm_no, Utm_page, Utm_ratio, Utm_landno, Nrai, Nnhan, Nwah

ข้อมูลเหล่านี้จะต้องคัดกรองก่อนว่ามีข้อมูลซ้ำอยู่หรือไม่ และข้อมูลใดบ้างที่จะเป็นค่าซ้ำที่เราต้องการค้นหา? เรื่องนี้เป็นพื้นฐานที่ซอฟต์แวร์สำนักงานเช่น Access กับ Excel มีคำสั่งสำหรับค้นหาข้อมูลซ้ำอยู่ใช้งานค่อนข้างง่าย

ค่าซ้ำ ใน Microsoft Access

ลองให้ไมโครซอฟต์แอ็กเซสหาข้อมูลซ้ำให้ โดยใช้แบบสอบถาม (Queries) ตรงนี้ต้องคิดหน่อยว่าอะไรที่ซ้ำ ? สิ่งที่ใช้ในการค้นหาแปลงที่ดินที่ดีที่สุด ไม่ใช่โฉนด หรือ หน้าสำรวจ (ซึ่งซ้ำกันได้หากอยู่ต่างสำนักงานที่ดิน) แต่สิ่งที่ไม่ควรจะมีการซ้ำเกิดขึ้นก็คือ ตำแหน่งที่ตั้งแปลงที่ดิน เพราะถ้าที่ตั้งตำแหน่งแปลงที่ดินซ้ำ แสดงว่ามีปัญหาอะไรบางอย่างเกิดขึ้นแน่นอน ซึ่งตามตัวอย่าง สิ่งที่ระบุตำแหน่งที่ดินก็คือ Utm_code, Utm_no_p, Utm_no, Utm_page, Utm_ratio, Utm_landno

และเมื่อมาพิจารณารายละเอียดพื้นที่ เรามั่นใจว่า Utm_code Utm_no_p ไม่ซ้ำกันแน่นอน และ มาตราส่วนก็มีเพียงมาตราส่วนเดียว ดังนั้นไม่จำเป็นต้องใช้ Utm_ratio  ดังนั้นก็เหลือเพียง  Utm_no, Utm_page, Utm_landno หรือ ระวาง แผ่น เลขที่ดิน เพียงสามอย่างในการหาค่าซ้ำ โดยสร้างแบบสอบถามโดยใช้ตัวช่วยสร้างแบบสอบถาม (Queries Wizard) ตามขั้นตอนดังนี้

ในแท็บด้านบน คลิก Query Wizard

ค่าซ้ำ ใน Microsoft Access

ในหน้าต่างตัวช่วย คลิก Find Duplicates Query Wizard แล้วคลิก OK.

ค่าซ้ำ ใน Microsoft Access

ในหน้าต่างตัวช่วยต่อมา คลิกเลือกตาราง (หรือแบบสอบถาม) ที่ต้องการหาค่าซ้ำ แล้วคลิก Next

ค่าซ้ำ ใน Microsoft Access

ในหน้าต่างตัวช่วยต่อมา เลือกฟิลด์ที่ต้องการจับค่าซ้ำ ในที่นี้เราเลือก UTM_no UTM_Page และ Land_No ทั้งหมด 3 ฟิลด์ซึ่งเป็นสิ่งที่เราคิดว่าตรงนี้ไม่น่าจะมีการซ้ำ กด > ให้เขตข้อมูลไปอยู่ด้านขวา)  แล้วคลิก Next

ในหน้าต่างตัวช่วยต่อมา เลือกเอาฟิลด์ที่ต้องการแสดงมา (ในที่นี้เลือกฟิลด์ที่เหลือทั้งหมด ใช้ >> ให้เขตข้อมูลไปอยู่ด้านขวา) คลิก Next

ในหน้าต่างตัวช่วยต่อมา จะตั้งชื่อแบบสอบถามตามที่ต้องการ หรือจะใช้ชื่อมาตรฐานที่โปรแกรมตั้งมาให้ก็ได้ แล้วคลิก Finish

จะเห็นว่ามีข้อมูล 7 ระเบียนมีค่าซ้ำ

อันนี้คือวิธีการค้นหาระเบียนที่ซ้ำกันแบบง่าย ๆ โดยใช้ Microsoft Access

แต่ในการทำงานกับ database จริงควรคิดถึงเรื่องการเชื่อมโยงข้อมูล หรือที่เรียกว่า index หรือ key อย่างกรณีนี้เราใช้ถึง 3 ฟิลด์ในการค้นหา ซึ่งความจริงควรจะมีอะไรสักอย่างที่ไม่ซ้ำกันในตารางข้อมูลนั้น ซึ่งเป็นสิ่งที่เราจะใช้เป็นตัวหลัก

ปกติเวลาสร้างตารางขึ้นมาใน Access จะเห็นว่า Access สร้างฟิลด์หนึ่งให้เป็น Index โดยอัตโนมัติ ซึ่งบางทีเราก็ไม่จำเป็นต้องใช้ที่ Access สร้างให้ แต่ก็ควรจะต้องมีหนึ่งฟิลด์ (เป็นอย่างน้อย) ใช้เป็น key สำหรับเป็นตัวเชื่อมข้อมูลระหว่างตาราง จากตัวอย่างข้อมูลเป็นที่ดิน สิ่งที่สำคัญที่สุดคือตัวระบุตำแหน่งและชี้แปลงที่ดิน ในตัวอย่างคือ ระวาง-แผ่น-เลขที่ดิน แต่ไม่สามารถตั้ง ระวาง-แผ่น-เลขที่ดิน เป็นคีย์หลัก หรือ คีย์หลัก หรือ ไพรมารีคีย์ (Primary key) ได้ เพราะอาจจะมีข้อมูลซ้ำ แต่ก็ต้องใช้ ระวาง-แผ่น-เลขที่ดิน เป็นคีย์นอก หรือ ฟอร์เรจ์นคีย์ (Foreign Key) เพื่อใช้เป็นตัวเชื่อมข้อมูลและระบุตัวแปลงที่ดิน

ดังนั้น จะแทรกคอลัมน์มาสองคอลัมน์ คือ Key_ID เป็นไพรมารีคีย์ จะเป็นฟิลด์ที่ไม่มีข้อมูลซ้ำในตารางเดียวกันเด็ดขาด และจะเป็นค่าว่าง (Null) ไม่ได้ ในตัวอย่างแทรกเลขเรียงลำดับกันไป เพื่อใช้เรียงลำดับและทำเป็นอินเด็กซ์ไปในตัว ส่วนอีกคอลัมน์จเป็น Fore_ID โดยรวมข้อมูลจาก ระวาง-แผ่น-เลขที่ดิน ซึ่งเป็นการระบุตัวแปลงและใช้เชื่อมต่อกับตารางอื่นต่อไป

ทิ้งท้าย

เรื่องการหาค่าซ้ำ เป็นการจัดการไฟล์ที่ดีอย่างหนึ่ง อย่างเช่น หากเราจะทำ DMS แล้วถ้าเจอข้อมูลซ้ำ จะได้รู้ว่า ซ้ำจริง หรือ ว่ามีอะไรที่แตกต่างกัน