การลบข้อมูลที่มีข้อมูลซ้ำกับตารางอื่น และนำข้อมูลเข้าตาราง
การลบข้อมูลในตาราง เราใช้การสร้างแบบสอบถามประเภทลบ และระบุในเงื่อนไขว่า ต้องการลบฟิลด์ที่มีข้อมูลชื่ออะไร เช่น ต้องการลบข้อมูลของ สมศักดิ์ ออกจากตาราง Table1 ทั้งหมด สร้างเป็นเงื่อนไข ในช่องเงื่อนไข ของแบบสอบถาม ได้ดังนี้
แต่ในกรณีที่ต้องการลบข้อมูลในตารางหนึ่ง โดยให้ลบเฉพาะรายการที่ซ้ำกันกับตารางอีกตารางหนึ่ง ดังภาพ จะทำอย่างไร
จากภาพ จะเห็นว่า ใน Table2 มีชื่อคนที่ซ้ำกับใน Table1 อยู่ จำนวน 2 คน คือ สมศักดิ์ รักชาติ และ สุดา อารยา เราต้องการลบข้อมูลของคนทั้งสอง ในตาราง Table2 โดยจะลบเฉพาะที่มีชื่อและนามสกุลซ้ำกับข้อมูลในตาราง Table1 จะทำอย่างไร
หลักการ
สร้างแบบสอบถาม ประเภทลบข้อมูล แล้วกำหนดในเงื่อนไข โดยในเงื่อนไขระบุให้ไปเลือกข้อมูลในอีกตารางหนึ่งที่มีเงื่อนไขข้อมูลที่ซ้ำกัน
วิธีการ
วิธีการ
[Table1].[fname]="สมศักดิ์"
แต่ในกรณีที่ต้องการลบข้อมูลในตารางหนึ่ง โดยให้ลบเฉพาะรายการที่ซ้ำกันกับตารางอีกตารางหนึ่ง ดังภาพ จะทำอย่างไร
จากภาพ จะเห็นว่า ใน Table2 มีชื่อคนที่ซ้ำกับใน Table1 อยู่ จำนวน 2 คน คือ สมศักดิ์ รักชาติ และ สุดา อารยา เราต้องการลบข้อมูลของคนทั้งสอง ในตาราง Table2 โดยจะลบเฉพาะที่มีชื่อและนามสกุลซ้ำกับข้อมูลในตาราง Table1 จะทำอย่างไร
หลักการ
สร้างแบบสอบถาม ประเภทลบข้อมูล แล้วกำหนดในเงื่อนไข โดยในเงื่อนไขระบุให้ไปเลือกข้อมูลในอีกตารางหนึ่งที่มีเงื่อนไขข้อมูลที่ซ้ำกัน
วิธีการ
- สร้างแบบสอบถามชนิดลบข้อมูล ไปที่ เมนูสร้าง กลุ่มแบบสอบถาม เลือกออกแบบแบบสอบถาม
- นำเข้าตาราง Table2 และกำหนดชนิดแบบสอบถามเป็นชนิด ลบ
- เลือกฟิลด์ชื่อและนามสกุล เพื่อจะได้ใช้เป็นเงื่อนไข
- ที่ช่องเกณฑ์ ในเขตข้อมูล ชื่อ ให้คลิกขวา และเลือก ย่อ/ขยาย เพื่อเขียนโค้ด
- เขียนโค้ดต่อไปนี้ลงในกรองข้อความ
In (select table1.fname from table1 where table2.ชื่อ = table1.fname) - ที่ช่องเกณฑ์ ของเขตข้อมูล นามสกุล ให้เขียนโค้ด ดังนี้
In (select table1.lname from table1 where table2.นามสกุล = table1.lname) - เป็นอันเสร็จการสร้าง แบบสอบถามสำหรับลบข้อมูลใน Table2 ที่มีข้อมูลชื่อ และนามสกุล ซ้ำกับข้อมูลในเขตข้อมูล fname และ lname ในตาราง Table1
- ถ้าดูโค้ดที่เป็น SQL ซึ่งสามารถจะนำไปใช้ใน VBA ได้ จะเห็นดังนี้
DELETE Table2.[ชื่อ], Table2.[นามสกุล]
FROM Table2
WHERE (((Table2.[ชื่อ]) In (select table1.fname from table1 where table2.ชื่อ = table1.fname)) AND ((Table2.[นามสกุล]) In (select table1.lname from table1 where table2.นามสกุล = table1.lname))); - คลิกปุ่ม เรียกใช้ จะแจ้งให้ทราบว่า มีข้อมูลที่จะลบออก 2 รายการ ตามข้อมูลที่ซ้ำกัน
- เมื่อคลิก ใช่ และกลับไปดูที่ตาราง Table2 จะเห็นว่าข้อมูลที่ซ้ำกัน ได้ถูกลบออกไป เป็นที่เรียบ
วิธีการ
- สร้าง แบบสอบถามชนิด ผนวก และนำเข้าตาราง Table2 ซึ่งมีข้อมูลที่จะนำไปต่อท้ายตาราง Table1 พร้อมทั้งดึงเขตข้อมูลที่ต้องการนำไปรวม
- ที่ช่อง ผนวกไปยัง ของแต่ละเขตข้อมูล ให้คลิกเลือกตาราง และเขตข้อมูลของตารางที่จะนำข้อมูลในต่อท้าย ในตัวอย่างนี้ เขตข้อมูลชื่อ จะไปต่อท้าย เขตข้อมูล fname ในตาราง Table1 และนามสกุล จะไปต่อท้ายเขตข้อมูล lname ในตาราง Table1
- แบบสอบถามที่ได้ จะเป็นดังนี้
- แบบสอบถามพร้อมทำงาน เมื่อคลิกเรียกใช้ โปรแกรมจะแจ้งว่า จะมีการเพิ่มข้อมูลจำนวน 2 แถว
- เมื่อคลิกดูข้อมูลในตาราง Table2 จะเห็นมีข้อมูลเพิ่มตามต้องการ
ความคิดเห็น
แสดงความคิดเห็น