วันพฤหัสบดีที่ 25 กรกฎาคม พ.ศ. 2556

การหาข้อมูลที่ซ้ำกันในตาราง 2 ตาราง ของ Access2010

การหาข้อมูลใน Field ที่ซ้ำกันในตารางเดียวกัน เป็นเรื่องไม่ยาก เพราะมี แบบสอบถาม หรือ Query ที่ใช้สำหรับค้นหาข้อมูลที่ซ้ำกันอยู่แล้ว คือ ตัวช่วยสร้างแบบสอบถามเพื่อค้นหารายการที่ซ้ำ (Find Duplicate Query Wizard) (ไปที่แถบสร้าง กลุ่มแบบสอบถาม เลือก ตัวช่วยสร้างแบบสอบถามเพื่อค้นหารายการที่ซ้ำ)

และถ้าเป็นการหาข้อมูลที่ซ้ำกันใน 2 ตาราง แต่ต้องการหาเพียงฟิลด์เดียว ก็ไม่ยากเท่าไร เพราะสามารถใช้ ตัวช่วยสร้างแบบสอบถามการค้นหาข้อมูลที่ไม่ตรงกัน (Find Unmatched Query Wizard) ได้ เพียงเปลี่ยนเงื่อนไข จาก is Null เป็น Not is Null ก็ใช้ได้

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

จากภาพ จะเห็นว่า ในตารางที่ 1 และตารางที่ 2 มีข้อมูลที่ซ้ำกันคือ สมศักดิ์ รักชาติ และ สุดา อารยา ส่วนประสิทธิ์ ชื่อเหมือนกัน แต่นามสกุลต่างกัน จึงเป็นคนละคนกัน

การค้นหารายชื่อที่ซ้ำกัน ใน 2 ตาราง โดยมีเงื่อนไขหลายฟิลด์ มีดังนี้
  1. สร้างแบบสอบถามใหม่ โดยไปที่แถบสร้าง กลุ่มแบบสอบถาม เลือกออกแบบแบสอบถาม Query
  2. เลือกตารางที่มีข้อมูลที่ต้องการเปรียบเทียบเข้าสู่แบบสอบถาม ในที่นี้คือ Table1 และ Table2
  3. นำฟิลด์ที่ต้องการให้แสดง และฟิลด์ที่ต้องการใช้เป็นเงื่อนไขมาวาง ดังภาพ
  4. คลิกที่เครื่องหมาย ผลรวม
  5. เลือก Where เป็นในฟิลด์ที่ต้องการ พร้อมทั้งกำหนดเงื่อนไขในช่องเกณฑ์ โดยระบุชื่อฟิลด์ในอีกตารางหนึ่ง ดังภาพ
  6. เมื่อคลิก เรียกใช้ จะเห็นชื่อของผู้ทีมีชื่อซ้ำกัน ดังนี้
  7. ถ้าดูโค้ดที่ Query สร้างขึ้น  จะเห็นดังนี้

    SELECT Table2.[ชื่อ], Table2.[นามสกุล]
    FROM Table1, Table2
    WHERE (((Table2.[ชื่อ])=[Table1].[fname]) AND ((Table2.[นามสกุล])=[Table1].[lname]))
    GROUP BY Table2.[ชื่อ], Table2.[นามสกุล];
ถ้าต้องการลบฟิลด์ที่ซ้ำกันออกจากตารางนี้ ต้องสร้างแบบสอบถามประเภทลบข้อมูล จึงจะสามารถลบข้อมูลออกไปจากตารางได้



1 ความคิดเห็น: