สร้างและเรียกใช้คิวรีแบบใช้อัปเดตข้อมูล

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

คุณใช้คิวรีแบบใช้อัปเดตข้อมูลในฐานข้อมูล Access เพื่อเพิ่ม เปลี่ยนแปลง หรือลบข้อมูลในระเบียนที่มีอยู่ คุณสามารถมองว่าคิวรีแบบใช้อัปเดตข้อมูลเป็นฟอร์มที่มีประสิทธิภาพของกล่องโต้ตอบ ค้นหาและแทนที่ คุณไม่สามารถใช้คิวรีแบบใช้อัปเดตข้อมูลเพื่อเพิ่มระเบียนใหม่ลงในฐานข้อมูล หรือลบระเบียนจากฐานข้อมูลได้

ถ้าต้องการเพิ่มระเบียนใหม่ลงในฐานข้อมูล คุณสามารถใช้คิวรีแบบใช้ผนวกข้อมูล และถ้าต้องการลบทั้งระเบียนออกจากฐานข้อมูล คุณสามารถใช้คิวรีแบบใช้ลบข้อมูลได้

ในบทความนี้

ภาพรวม

ต่อไปนี้คือความคล้ายคลึงและความแตกต่างกันระหว่าง การค้นหาและแทนที่ กับ คิวรีแบบใช้อัปเดตข้อมูล

คิวรีแบบใช้อัปเดตข้อมูลมีลักษณะเหมือนกับกล่องโต้ตอบ ค้นหาและแทนที่ ตรงที่ช่วยให้คุณสามารถระบุได้ว่าค่าใดที่จะถูกแทนที่และค่าใหม่นั้นคืออะไร

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

  • ใช้เกณฑ์ที่ไม่ขึ้นกับค่าที่คุณต้องการจะแทนที่
  • อัปเดตหลายระเบียนในคราวเดียว
  • เปลี่ยนแปลงระเบียนที่อยู่ในหลายตารางในเวลาเดียวกัน

ข้อจำกัดบนเขตข้อมูลที่สามารถอัปเดตได้

คิวรีแบบใช้อัปเดตข้อมูลไม่สามารถใช้อัปเดตข้อมูลในเขตข้อมูลที่มีชนิดต่อไปนี้

  • เขตข้อมูลจากการคํานวณ ค่าในเขตข้อมูลจากการคํานวณไม่ได้อยู่ในตารางอย่างถาวร แฟ้มเหล่านี้จะอยู่ในหน่วยความจําชั่วคราวของคอมพิวเตอร์ของคุณหลังจากที่ Access คํานวณค่าเหล่านั้นแล้วเท่านั้น เนื่องจากเขตข้อมูลจากการคํานวณไม่มีตําแหน่งที่เก็บข้อมูลถาวร คุณจึงไม่สามารถอัปเดตได้

  • เขตข้อมูลจากคิวรีแบบใช้หาผลรวม หรือคิวรีแบบตาราง ค่าที่อยู่ในคิวรีเหล่านี้มาจากการคำนวณ ดังนั้นจึงไม่สามารถอัปเดตได้โดยคิวรีแบบใช้อัปเดตข้อมูล

  • เขตข้อมูล AutoNumber ตามการดีไซน์ ค่าที่อยู่ในเขตข้อมูล AutoNumber จะเปลี่ยนแปลงเมื่อคุณเพิ่มระเบียนลงในตารางเท่านั้น

  • เขตข้อมูลในคิวรีแบบค่าไม่ซ้ํากันและคิวรีระเบียนที่ไม่ซ้ํากัน ค่าในคิวรีดังกล่าวจะถูกสรุป ค่าบางค่าแสดงถึงระเบียนเดียว ส่วนค่าอื่นๆ แทนระเบียนมากกว่าหนึ่งระเบียน การดําเนินการปรับปรุงไม่สามารถทําได้ เนื่องจากไม่สามารถระบุได้ว่าระเบียนใดถูกแยกออกจากรายการที่ซ้ํากัน ดังนั้นจึงไม่สามารถอัปเดตระเบียนที่จําเป็นทั้งหมดได้ ข้อจํากัดนี้จะนําไปใช้ไม่ว่าคุณจะใช้คิวรีแบบใช้อัปเดตข้อมูลหรือพยายามอัปเดตข้อมูลด้วยตนเองโดยการใส่ค่าในฟอร์มหรือแผ่นข้อมูล

  • เขตข้อมูลในคิวรีแบบร่วม คุณไม่สามารถอัปเดตข้อมูลจากเขตข้อมูลในคิวรีแบบร่วมได้ เนื่องจากแต่ละระเบียนที่ปรากฏในแหล่งข้อมูลอย่างน้อยสองแหล่งจะปรากฏเพียงครั้งเดียวในผลลัพธ์ของคิวรีแบบร่วม เนื่องจากระเบียนที่ซ้ํากันบางระเบียนถูกเอาออกจากผลลัพธ์ Access จึงไม่สามารถอัปเดตระเบียนที่จําเป็นทั้งหมดได้

  • เขตข้อมูลที่เป็นคีย์หลัก ในบางกรณี เช่น ถ้าเขตข้อมูลที่เป็นคีย์หลักถูกใช้ในความสัมพันธ์ของตาราง คุณจะไม่สามารถอัปเดตเขตข้อมูลดังกล่าวด้วยการใช้คิวรีได้ เว้นแต่ว่าคุณจะตั้งค่าให้ความสัมพันธ์อัปเดตเขตข้อมูลที่เกี่ยวข้องทั้งหมดโดยอัตโนมัติเสียก่อน

    หมายเหตุ

    เมื่อคุณอัปเดตเขตข้อมูลที่เกี่ยวข้อง Access จะอัปเดตค่าของ Foreign Key โดยอัตโนมัติเมื่อคุณเปลี่ยนค่าของคีย์หลักในตารางแม่

ด้านบนของหน้า

การใช้คิวรีแบบใช้อัปเดตข้อมูล

แนวทางปฏิบัติที่ดีที่สุดเมื่อสร้างคิวรีแบบใช้อัปเดตข้อมูล ขั้นแรกให้สร้างคิวรีแบบใช้เลือกข้อมูลที่ระบุระเบียนที่คุณต้องการอัปเดต แล้วแปลงคิวรีนั้นเป็นคิวรีแบบใช้อัปเดตข้อมูลที่คุณสามารถเรียกใช้เพื่ออัปเดตระเบียนได้ เมื่อเลือกข้อมูลก่อน คุณสามารถตรวจสอบว่าคุณกําลังอัปเดตระเบียนที่คุณต้องการก่อนที่คุณจะเปลี่ยนแปลงข้อมูลใดๆ

เคล็ดลับ

สํารองฐานข้อมูลของคุณก่อนที่คุณจะเรียกใช้คิวรีแบบใช้อัปเดตข้อมูล คุณไม่สามารถเลิกทําผลลัพธ์ของคิวรีแบบใช้อัปเดตข้อมูล และการสํารองข้อมูลจะช่วยให้แน่ใจว่าคุณสามารถย้อนกลับการเปลี่ยนแปลงของคุณได้ถ้าคุณเปลี่ยนใจ

วิธีการสำรองฐานข้อมูล

  1. คลิกแท็บ ไฟล์ แล้วเลือก บันทึกเป็น
  2. ทางด้านขวา ภายใต้ ขั้นสูง ให้เลือก สํารองฐานข้อมูล
  3. ในกล่องโต้ตอบ บันทึกการสํารองข้อมูลเป็น ให้ระบุชื่อและตําแหน่งที่ตั้งสําหรับสําเนาสํารอง แล้วเลือก บันทึก
    Access จะปิดไฟล์ต้นฉบับ สร้างไฟล์สำรอง แล้วเปิดไฟล์ต้นฉบับอีกครั้ง
    เมื่อต้องการย้อนกลับไปยังการสํารองข้อมูล ให้ปิดและเปลี่ยนชื่อไฟล์ต้นฉบับเพื่อให้สําเนาสํารองสามารถใช้ชื่อของต้นฉบับเวอร์ชันได้ กําหนดชื่อของต้นฉบับให้กับสําเนาสํารอง แล้วเปิดสําเนาสํารองที่เปลี่ยนชื่อใน Access

ในส่วนนี้

ขั้นตอนที่ 1: สร้างคิวรีแบบใช้เลือกข้อมูลเพื่อระบุระเบียนที่ต้องการอัปเดต

  1. เปิดฐานข้อมูลที่มีระเบียนที่คุณต้องการอัปเดต

  2. บนแท็บ สร้าง ในกลุ่ม คิวรี ให้เลือก ออกแบบคิวรี

  3. เลือกแท็บ ตาราง

  4. เลือกตารางที่มีระเบียนที่คุณต้องการอัปเดต เลือก เพิ่ม แล้วเลือก ปิด
    ตารางจะปรากฏเป็นหน้าต่างอย่างน้อยหนึ่งหน้าต่างในตัวออกแบบคิวรี และหน้าต่างจะแสดงรายการเขตข้อมูลทั้งหมดในแต่ละตาราง รูปนี้แสดงตัวออกแบบคิวรีกับตารางทั่วไป
    ตารางในตัวออกแบบคิวรี
    ตารางที่แสดงในตัวออกแบบคิวรี
    ตารางออกแบบแบบสอบถาม

  5. ดับเบิลคลิกที่เขตข้อมูลที่คุณต้องการอัปเดตในหน้าต่างตาราง เขตข้อมูลที่เลือกจะปรากฏในแถว เขตข้อมูล ในตารางออกแบบคิวรี
    คุณสามารถเพิ่มเขตข้อมูลตารางหนึ่งเขตข้อมูลต่อคอลัมน์ในตารางออกแบบคิวรี
    เมื่อต้องการเพิ่มเขตข้อมูลทั้งหมดในตารางอย่างรวดเร็ว ให้ดับเบิลคลิกที่เครื่องหมายดอกจัน (*) ที่ด้านบนของรายการเขตข้อมูลตารางในหน้าต่างตาราง รูปนี้แสดงตารางออกแบบคิวรีที่มีเขตข้อมูลทั้งหมดที่เพิ่ม
    คิวรีที่มีการเพิ่มเขตข้อมูลตารางทั้งหมดแล้ว

  6. เมื่อต้องการจำกัดผลลัพธ์ของคิวรีตามค่าในเขตข้อมูล ให้ไปที่ตารางออกแบบคิวรี ในแถว เกณฑ์ แล้วใส่เกณฑ์ที่คุณต้องการใช้จำกัดผลลัพธ์
    ตารางตัวอย่างเกณฑ์
    ตารางต่อไปนี้แสดงตัวอย่างเกณฑ์และอธิบายผลของเกณฑ์เหล่านั้นที่มีต่อผลลัพธ์ของคิวรี

    หมายเหตุ

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

    เกณฑ์ เอฟเฟ็กต์
    >234 ส่งกลับตัวเลขทั้งหมดที่มากกว่า 234 เมื่อต้องการค้นหาตัวเลขทั้งหมดที่น้อยกว่า 234 ให้ใช้ < 234
    >="Cajhen" ส่งกลับระเบียนทั้งหมดที่มีคำว่า สิทธิชัย ตั้งแต่อักษรตัวแรกจนถึงตัวสุดท้าย
    Between #2/2/2020# And #1/12/2020# ส่งกลับวันที่ตั้งแต่ 2 ก.พ. 17 ถึง 1 ธ.ค. 17 (ANSI-89) ถ้าฐานข้อมูลของคุณใช้อักขระตัวแทนตาม ANSI-92 ให้ใช้เครื่องหมายอัญระบุเดี่ยว (') แทนเครื่องหมายเลขที่ (#) ตัวอย่าง: Between '2/2/2020' And '1/1/1/2020'
    Not "Germany" ค้นหาระเบียนทั้งหมดที่เนื้อหาจริงของเขตข้อมูลมีคำอื่นร่วมกับคำว่า "Germany" อยู่ด้วย เกณฑ์นี้จะส่งกลับระเบียนที่มีอักขระนอกเหนือจากคำว่า "Germany," เช่น "Germany (euro)" หรือ "Europe (Germany)"
    Not "T*" ค้นหาระเบียนทั้งหมดยกเว้นระเบียนที่ขึ้นต้นด้วย T ถ้าฐานข้อมูลของคุณใช้ชุดอักขระตัวแทนตาม ANSI-92 ให้ใช้เครื่องหมายเปอร์เซ็นต์ (%) แทนเครื่องหมายดอกจัน (*)
    ไม่ใช่ "*t" ค้นหาระเบียนทั้งหมดที่ไม่ลงท้ายด้วย t ถ้าฐานข้อมูลของคุณใช้ชุดอักขระตัวแทนตาม ANSI-92 ให้ใช้เครื่องหมายเปอร์เซ็นต์ (%) แทนเครื่องหมายดอกจัน (*)
    In(Canada,UK) ค้นหาทุกระเบียนที่มีคำว่า Canada หรือ UK ในรายการ
    Like "[A-D]*" ในเขตข้อมูลข้อความ ค้นหาระเบียนทั้งหมดที่ขึ้นต้นด้วยตัวอักษร A ถึง D ถ้าฐานข้อมูลของคุณใช้ชุดอักขระตัวแทนตามมาตรฐาน ANSI-92 ให้ใช้เครื่องหมายเปอร์เซ็นต์ ( % ) แทนเครื่องหมายดอกจัน ( * )
    เช่น "*ar*" ค้นหาระเบียนทั้งหมดที่มีลําดับอักษร "ar" รวมอยู่ด้วย ถ้าฐานข้อมูลของคุณใช้ชุดอักขระตัวแทนตาม ANSI-92 ให้ใช้เครื่องหมายเปอร์เซ็นต์ (%) แทนเครื่องหมายดอกจัน (*)
    Like "Maison Dewe?" ค้นหาระเบียนทั้งหมดที่ขึ้นต้นด้วย "Maison" และมีสตริงที่สองที่มี 5 ตัวอักษร โดยที่ตัวอักษร 4 ตัวแรกคือ "Dewe" และไม่ทราบตัวอักษรตัวสุดท้าย ถ้าฐานข้อมูลของคุณใช้ชุดอักขระตัวแทนตาม ANSI-92 ให้ใช้เครื่องหมายขีดล่าง (_) แทนเครื่องหมายคําถาม (?)
    #2/2/2020# ค้นหาระเบียนทั้งหมดสําหรับวันที่ 2 กุมภาพันธ์ 2020 ถ้าฐานข้อมูลของคุณใช้ชุดอักขระตัวแทนตาม ANSI-92 ให้กํากับวันที่ด้วยเครื่องหมายอัญระบุเดี่ยว (') แทนเครื่องหมายเลขที่ (#) ตัวอย่างเช่น ('2/2/2020')
    < วันที่() - 30 ใช้ฟังก์ชัน Date เพื่อส่งกลับวันที่ทั้งหมดที่เลย 30 วันมาแล้ว
    Date() ใช้ฟังก์ชัน Date เพื่อส่งกลับระเบียนทั้งหมดที่มีวันที่เป็นวันนี้
    Between Date( ) And DateAdd("M", 3, Date( )) ใช้ฟังก์ชัน Date และ DateAdd เพื่อส่งกลับระเบียนทั้งหมดระหว่างวันที่ของวันนี้และอีกสามเดือนถัดไปนับตั้งแต่วันนี้
    Is Null ส่งกลับทุกระเบียนที่มีค่า Null (ว่างหรือไม่ได้ระบุ)
    Is Not Null ส่งกลับทุกระเบียนที่มีค่า
    "" ส่งกลับระเบียนทั้งหมดที่มีสตริงที่มีความยาวเป็นศูนย์ คุณใช้สตริงที่มีความยาวเป็นศูนย์เมื่อคุณต้องการเพิ่มค่าลงในเขตข้อมูลที่ต้องการ แต่คุณยังไม่ทราบว่าค่านั้นคืออะไร ตัวอย่างเช่น เขตข้อมูลอาจต้องการหมายเลขโทรสาร แต่ลูกค้าของคุณบางรายอาจไม่มีเครื่องโทรสาร ในกรณีดังกล่าว ให้คุณใส่เครื่องหมายอัญภาคคู่โดยไม่เว้นวรรคระหว่างเครื่องหมายเหล่านั้น ("") แทนตัวเลข
  7. บนแท็บ ออกแบบคิวรี ในกลุ่ม ผลลัพธ์ ให้เลือก เรียกใช้

  8. ตรวจสอบว่าคิวรีส่งกลับระเบียนที่คุณต้องการอัปเดต

  9. เมื่อต้องการเอาเขตข้อมูลใดๆ ที่คุณไม่ต้องการให้รวมอยู่ในการออกแบบคิวรีออก ให้เลือกเขตข้อมูลนั้น แล้วกด DELETE

  10. เมื่อต้องการเพิ่มเขตข้อมูลใดๆ ที่คุณต้องการให้รวมอยู่ในการออกแบบคิวรี ให้ลากเขตข้อมูลที่ต้องการเพิ่มลงไปในตารางการออกแบบคิวรี

ขั้นตอนที่ 2: อัปเดตระเบียน

  1. บนแท็บ ออกแบบคิวรี ในกลุ่ม ชนิดคิวรี ให้เลือก อัปเดต
    กระบวนงานนี้แสดงวิธีเปลี่ยนคิวรีแบบใช้เลือกข้อมูลเป็นคิวรีแบบใช้อัปเดตข้อมูล เมื่อคุณทําเช่นนี้ Access จะเพิ่มแถว อัปเดตเป็น ในตารางออกแบบคิวรี ภาพประกอบต่อไปนี้แสดงคิวรีแบบใช้อัปเดตข้อมูลที่ส่งกลับสินทรัพย์ทั้งหมดที่ซื้อหลังจากวันที่ 5 มกราคม 2005 และเปลี่ยนตําแหน่งที่ตั้งเป็น "คลังสินค้า 3" สําหรับระเบียนทั้งหมดที่ตรงตามเกณฑ์นั้น
    คิวรีแบบใช้อัปเดตข้อมูลที่มีเกณฑ์การอัปเดตหนึ่งเกณฑ์

  2. ค้นหาตำแหน่งเขตข้อมูลที่มีข้อมูลที่คุณต้องการเปลี่ยนแปลง แล้วพิมพ์นิพจน์ของคุณ (เกณฑ์การเปลี่ยนแปลง) ลงในแถว อัปเดตเป็น ของเขตข้อมูลนั้น
    คุณสามารถใช้นิพจน์ที่ถูกต้องอะไรก็ได้ในแถว อัปเดตเป็น
    ตารางตัวอย่างนิพจน์
    ตารางนี้จะแสดงนิพจน์ตัวอย่างจำนวนหนึ่ง พร้อมอธิบายวิธีที่นิพจน์เหล่านี้เปลี่ยนแปลงข้อมูล

    นิพจน์ ผลลัพธ์
    "พนักงานขาย" ในเขตข้อมูลข้อความสั้น จะเปลี่ยนค่าข้อความเป็น พนักงานขาย
    #8/10/20# ในเขตข้อมูล Date/Time จะเปลี่ยนค่าวันที่เป็น 10-ส.ค.-20
    ใช่ ในเขตข้อมูล Yes/No จะเปลี่ยนค่า No ให้เป็น Yes
    "PN" & [หมายเลขชิ้นส่วน] เพิ่ม "PN" ลงในส่วนเริ่มต้นของแต่ละหมายเลขชิ้นส่วนที่ระบุ
    [ราคาต่อหน่วย] * [ปริมาณ] คูณค่าในเขตข้อมูลที่ชื่อราคาต่อหน่วยและปริมาณ
    [ค่าขนส่งสินค้า] * 1.5 เพิ่มค่าในเขตข้อมูลชื่อค่าขนส่งสินค้าอีก 50 เปอร์เซ็นต์
    DSum("[ปริมาณ] * [ราคาต่อหน่วย]",
    "รายละเอียดคําสั่งซื้อ", "[ProductID]=" & [รหัสผลิตภัณฑ์])
    เมื่อค่า ProductID ในตารางปัจจุบันตรงกับค่า ProductID ในตารางที่ชื่อ รายละเอียดการสั่งซื้อ นิพจน์นี้จะอัปเดตยอดขายรวมทั้งหมดโดยการคูณค่าในเขตข้อมูลที่ชื่อ ปริมาณ ด้วยค่าในเขตข้อมูลที่ชื่อ UnitPrice นิพจน์ใช้ฟังก์ชัน DSum เนื่องจากสามารถดําเนินการกับตารางและเขตข้อมูลตารางได้มากกว่าหนึ่งเขตข้อมูล
    Right([รหัสไปรษณีย์ที่ส่งสินค้า], 5) ตัด (เอาออก) อักขระด้านซ้ายสุดในสตริงข้อความหรือตัวเลข แล้วทิ้งอักขระทางด้านขวาสุดไว้ 5 ตัว
    IIf(IsNull([ราคาต่อหน่วย]), 0, [ราคาต่อหน่วย]) เปลี่ยนค่า Null (ไม่รู้หรือไม่ได้ระบุ) เป็นค่าศูนย์ (0) ในเขตข้อมูลชื่อราคาต่อหน่วย
  3. บนแท็บ ออกแบบคิวรี ในกลุ่ม ผลลัพธ์ ให้เลือก เรียกใช้
    ข้อความแจ้งเตือนจะปรากฏขึ้น

  4. เมื่อต้องการเรียกใช้คิวรีและอัปเดตข้อมูล ให้เลือก ใช่

    หมายเหตุ

    เมื่อคุณเรียกใช้คิวรี คุณอาจสังเกตเห็นว่าบางเขตข้อมูลหายไปจากชุดผลลัพธ์ของคุณ ถ้าคิวรีของคุณมีเขตข้อมูลที่คุณไม่ได้อัปเดต Access จะไม่แสดงเขตข้อมูลเหล่านั้นในผลลัพธ์ตามค่าเริ่มต้น ตัวอย่างเช่น คุณอาจรวมเขตข้อมูล ID จากสองตารางเพื่อช่วยให้แน่ใจว่าคิวรีของคุณระบุและอัปเดตระเบียนที่ถูกต้อง ถ้าคุณไม่อัปเดตเขตข้อมูล ID เหล่านั้น Access จะไม่แสดงในผลลัพธ์

ด้านบนของหน้า

การอัปเดตข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่ง

เมื่อคุณต้องการอัปเดตข้อมูลจากตารางหนึ่งไปอีกตารางหนึ่ง ให้นึกถึงกฎต่อไปนี้ คือ ชนิดข้อมูลของเขตข้อมูลต้นทางและปลายทางต้องตรงกันหรือเข้ากันได้

นอกจากนี้ เมื่อคุณอัปเดตข้อมูลจากตารางหนึ่งไปเป็นอีกตารางหนึ่งและใช้ชนิดข้อมูลที่เข้ากันได้แทนการจับคู่ชนิดข้อมูล Access จะแปลงชนิดข้อมูลของเขตข้อมูลเหล่านั้นในตารางปลายทาง ด้วยเหตุนี้ ข้อมูลบางส่วนในเขตข้อมูลปลายทางอาจถูกตัดทอน (ถูกลบ) ส่วน การจํากัดการแปลงชนิดข้อมูล จะแสดงวิธีที่คุณสามารถและไม่สามารถแปลงชนิดข้อมูลได้ ตารางในส่วนนี้ยังอธิบายว่าเมื่อแปลงชนิดข้อมูลสามารถเปลี่ยนแปลงหรือกําจัดข้อมูลบางส่วนหรือทั้งหมดในเขตข้อมูลและข้อมูลที่อาจถูกตัดออก

กระบวนการอัปเดตข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่งมีขั้นตอนคร่าวๆ ดังนี้

  1. สร้างคิวรีแบบใช้อัปเดตข้อมูลและเพิ่มทั้งตารางต้นทางและตารางปลายทางลงในคิวรี
  2. รวมตารางเหล่านั้นเข้าด้วยกันด้วยเขตข้อมูลที่มีข้อมูลเกี่ยวข้องกัน
  3. เพิ่มชื่อเขตข้อมูลปลายทางของคุณลงในแถว เขตข้อมูล ของตารางออกแบบคิวรี
  4. เพิ่มชื่อของเขตข้อมูลต้นฉบับของคุณลงในแถว อัปเดตเป็น ของตารางออกแบบคิวรีโดยใช้ไวยากรณ์ต่อไปนี้ [source_table] [source_field]

ขั้นตอนในส่วนนี้สมมติว่าใช้ตารางสองตารางที่คล้ายกัน ในตัวอย่างนี้ ตารางไคลเอ็นต์จะอยู่ในฐานข้อมูลที่คุณเพิ่งสืบทอด และมีข้อมูลล่าสุดมากกว่าตารางลูกค้า คุณจะเห็นว่าชื่อผู้จัดการและที่อยู่บางส่วนมีการเปลี่ยนแปลง ด้วยเหตุนี้ คุณจึงตัดสินใจอัปเดตตารางลูกค้าด้วยข้อมูลจากตารางไคลเอ็นต์

ตารางผู้ซื้อ

รหัสผู้ซื้อ ชื่อ ที่อยู่ เมือง จังหวัด รหัสไปรษณีย์ ประเทศ โทรศัพท์ ที่ติดต่อ
1 Baldwin Museum of Science 1 Main St. New York NY 12345 USA (505) 555-2122 Josh Barnhill
2 Blue Yonder Airlines 52 1st St. Boston MA 23456 USA (104) 555-2123 Waleed Heloo
3 Coho Winery 3122 75th Ave. S.W. Seattle WA 34567 USA (206) 555-2124 Pica Guido
4 Contoso Pharmaceuticals 1 Contoso Blvd. London Bucks NS1 EW2 England (171) 555-2125 Zoltan Harmuth
5 Fourth Coffee Calle Smith 2 Mexico City 56789 Mexico (7) 555-2126 Julian Price
6 Consolidated Messenger 3123 75th St. S. Seattle WA 34567 USA (02-) 333-3333 Miles Reid
7 Graphic Design Institute 1587 Office Pkwy Tampa FL 87654 USA (916) 555-2128 Tzipi Butnaru
8 Litware, Inc. 3 Microsoft Way Portland OR 31415 USA (503) 555-2129 Brian Smith
9 Tailspin Toys 4 Microsoft Way Portland OR 31415 USA (503) 555-2233 Phil Gibbins

ตารางลูกค้า

รหัสลูกค้า ชื่อ ที่อยู่ เมือง จังหวัด รหัสไปรษณีย์ ประเทศ โทรศัพท์ ผู้จัดการ
1 Baldwin Museum of Science 1 Main St. New York NY 12345 USA (505) 555-2122 Steve Riley
2 Blue Yonder Airlines 52 1st St. Boston MA 23456 USA (104) 555-2123 Waleed Heloo
3 Coho Winery 3122 75th Ave. S.W. Seattle WA 34567 USA (206) 555-2124 Pica Guido
4 Contoso Pharmaceuticals 1 Contoso Blvd. London Bucks NS1 EW2 England (171) 555-2125 Zoltan Harmuth
5 Fourth Coffee Calle Huevos 134 Mexico City 56789 Mexico (7) 555-2126 Julian Price
6 Consolidated Messenger 3123 75th St. S. Seattle WA 34567 USA (206) 555-2125 Christine Hughes
7 Graphic Design Institute 67 1st St. Tampa FL 87654 USA (916) 555-2128 Dana Birkby
8 Litware, Inc. 3 Microsoft Way Portland OR 31415 USA (503) 555-2129 Jesper Aaberg
9 Tailspin Toys 4 Microsoft Way Portland OR 31415 USA (503) 555-2233 Phil Gibbins

ขณะที่คุณดําเนินการต่อ โปรดจําไว้ว่าแม้ว่าชนิดข้อมูลสําหรับแต่ละเขตข้อมูลตารางไม่จําเป็นต้องตรงกัน แต่ชนิดข้อมูลเหล่านั้นจะต้องเข้ากันได้ Access ต้องสามารถแปลงข้อมูลในตารางต้นฉบับให้เป็นชนิดที่ตารางปลายทางสามารถใช้ได้ ในบางกรณี กระบวนการแปลงอาจลบข้อมูลบางอย่าง สําหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อจํากัดเมื่อคุณแปลงชนิดข้อมูล ให้ดูส่วน ข้อจํากัดในการแปลงชนิดข้อมูล

สร้างและเรียกใช้คิวรีแบบใช้อัปเดตข้อมูล

หมายเหตุ

ขั้นตอนต่อไปนี้จะถือว่าใช้ตารางตัวอย่างสองตารางก่อนหน้า คุณสามารถปรับขั้นตอนให้เหมาะกับข้อมูลของคุณ

  1. บนแท็บ สร้าง ในกลุ่ม คิวรี ให้เลือก ออกแบบคิวรี
  2. เลือก เพิ่มตาราง
  3. ดับเบิลคลิกที่ตารางต้นฉบับและตารางปลายทางของคุณเพื่อเพิ่มตารางเหล่านั้นลงในคิวรี แต่ละตารางจะปรากฏในหน้าต่างในตัวออกแบบคิวรี
  4. ในกรณีส่วนใหญ่ Access จะรวมเขตข้อมูลที่เกี่ยวข้องกันในคิวรีโดยอัตโนมัติ เมื่อต้องการรวมเขตข้อมูลที่มีข้อมูลที่เกี่ยวข้องกันด้วยตนเอง ให้ลากเขตข้อมูลที่เกี่ยวข้องจากตารางหนึ่งไปยังเขตข้อมูลที่เทียบเท่ากันในอีกตารางหนึ่ง
    ตัวอย่างเช่น ถ้าคุณใช้ตารางตัวอย่างที่แสดงก่อนหน้านี้ ให้คุณลากเขตข้อมูล ID ไคลเอ็นต์ไปยังเขตข้อมูล ID ลูกค้า Access จะสร้างความสัมพันธ์ระหว่างเขตข้อมูลเหล่านั้นในตารางสองตารางและใช้ความสัมพันธ์นั้นเพื่อรวมระเบียนใดๆ ที่เกี่ยวข้องกัน
  5. บนแท็บ ออกแบบคิวรี ในกลุ่ม ชนิดคิวรี ให้เลือก อัปเดต
  6. ในตารางปลายทาง ให้ดับเบิลคลิกที่เขตข้อมูลที่คุณต้องการอัปเดต แต่ละเขตข้อมูลจะปรากฏในแถว เขตข้อมูล ในตารางออกแบบคิวรี
    ถ้าคุณใช้ตารางตัวอย่าง ให้คุณเพิ่มเขตข้อมูลทั้งหมด ยกเว้น เขตข้อมูล ID ลูกค้า โปรดสังเกตว่าชื่อของตารางปลายทางจะปรากฏในแถว ตาราง ของตารางออกแบบ
  7. ในแถว อัปเดตเป็น ของคิวรี ในแต่ละคอลัมน์ที่มีเขตข้อมูลปลายทาง ให้เพิ่มชื่อของตารางต้นฉบับและเขตข้อมูลในตารางต้นฉบับที่สอดคล้องกับเขตข้อมูลในตารางปลายทาง และตรวจสอบให้แน่ใจว่าคุณใช้ไวยากรณ์นี้ [ตาราง][ เขตข้อมูล] ที่คุณใส่ชื่อตารางและเขตข้อมูลด้วยวงเล็บเหลี่ยม และคุณแยกชื่อตารางและเขตข้อมูลด้วยจุด
    รูปนี้แสดงส่วนของตารางออกแบบโดยใช้ตารางตัวอย่าง ให้สังเกตไวยากรณ์สําหรับชื่อตารางและชื่อเขตข้อมูลในแถว อัปเดตเป็น
    คิวรีที่อัปเดตตารางหนึ่งด้วยข้อมูลจากอีกตารางหนึ่ง
    ขณะที่คุณดําเนินการต่อ โปรดจําไว้ว่าคุณต้องสะกดชื่อตารางและชื่อเขตข้อมูลในแถว อัปเดตเป็น อย่างถูกต้อง และคุณต้องใช้เครื่องหมายวรรคตอนในชื่อตารางและชื่อเขตข้อมูลเดิม อย่างไรก็ตาม คุณไม่จําเป็นต้องจับคู่ตัวพิมพ์ใหญ่
  8. บนแท็บ ออกแบบคิวรี ในกลุ่ม ผลลัพธ์ ให้เลือก เรียกใช้
  9. เมื่อระบบขอให้ยืนยันการอัปเดต ให้เลือก ใช่

ข้อจำกัดในการแปลงชนิดข้อมูล

ตารางต่อไปนี้จะแสดงชนิดข้อมูลที่ Access มีให้ รวมทั้งอธิบายข้อจำกัดต่างๆ ในการแปลงชนิดข้อมูล และอธิบายอย่างคร่าวๆ เกี่ยวกับการสูญหายของข้อมูลที่อาจเกิดขึ้นในระหว่างการแปลง

แปลงเป็นชนิดนี้ จากชนิดนี้ การเปลี่ยนแปลงหรือข้อจำกัด
ข้อความสั้น ข้อความยาว Access จะลบอักขระทั้งหมดที่เกินจากอักขระ 255 ตัวแรก
ตัวเลข ไม่มีข้อจำกัด
วันที่/เวลา ไม่มีข้อจำกัด
สกุลเงิน ไม่มีข้อจำกัด
AutoNumber ไม่มีข้อจำกัด
ใช่/ไม่ใช่ ค่า -1 (Yes ในเขตข้อมูล Yes/No) จะแปลงเป็น Yes ค่า 0 (No ในเขตข้อมูล Yes/No) จะแปลงเป็น No
ไฮเปอร์ลิงก์ Access จะตัดลิงก์ที่มีอักขระยาวเกิน 255 ตัว
ข้อความยาว ข้อความสั้น ไม่มีข้อจำกัด
ตัวเลข ไม่มีข้อจำกัด
วันที่/เวลา ไม่มีข้อจำกัด
สกุลเงิน ไม่มีข้อจำกัด
AutoNumber ไม่มีข้อจำกัด
ใช่/ไม่ใช่ ค่า -1 (Yes ในเขตข้อมูล Yes/No) จะแปลงเป็น Yes ค่า 0 (No ในเขตข้อมูล Yes/No) จะแปลงเป็น No
ไฮเปอร์ลิงก์ ไม่มีข้อจำกัด
ตัวเลข ข้อความสั้น ข้อความต้องประกอบด้วยตัวเลข สกุลเงินที่ถูกต้อง และตัวคั่นทศนิยม จํานวนอักขระในเขตข้อมูล Text ต้องอยู่ภายในขนาดที่ตั้งค่าไว้สําหรับเขตข้อมูล Number
ข้อความยาว เขตข้อมูลข้อความยาวต้องมีเฉพาะข้อความและสกุลเงินที่ถูกต้องและตัวคั่นทศนิยม จํานวนอักขระในเขตข้อมูลข้อความยาวต้องอยู่ภายในขนาดที่ตั้งค่าไว้สําหรับเขตข้อมูล Number
Number แต่มีขนาดเขตข้อมูลหรือจำนวนทศนิยม (ความแม่นยำ) ต่างกัน ค่าต้องไม่ใหญ่ขึ้นหรือเล็กกว่าที่ขนาดของเขตข้อมูลใหม่สามารถจัดเก็บได้ การเปลี่ยนความแม่นยําอาจทําให้ Access ปัดเศษบางค่า
วันที่/เวลา วันที่ที่คุณสามารถแปลงได้จะขึ้นอยู่กับขนาดของเขตข้อมูลตัวเลข โปรดจําไว้ว่า Access จะเก็บวันที่ทั้งหมดเป็นวันที่อนุกรม และจะเก็บค่าวันที่เป็นจํานวนเต็มลอยตัวที่มีความแม่นยําสูง
Access ใช้วันที่ 30 ธันวาคม 1899 เป็นวันที่ 0 วันที่ที่อยู่นอกช่วง 18 เมษายน 1899 และ 11 กันยายน 1900 มีขนาดเกินเขตข้อมูลไบต์ วันที่ที่อยู่นอกช่วง 13 เมษายน 1810 และ 16 กันยายน 1989 มีขนาดเกินเขตข้อมูลจํานวนเต็ม
เมื่อต้องการให้ครอบคลุมวันที่ทั้งหมดที่เป็นไปได้ ให้ตั้งค่าคุณสมบัติ ขนาดเขตข้อมูล ของเขตข้อมูล Number ของคุณเป็น Long Integer หรือสูงกว่า
สกุลเงิน ค่าต้องไม่เกิน (หรืออยู่ภายใน) ขนาดของเขตข้อมูลที่จํากัดไว้ ตัวอย่างเช่น คุณสามารถแปลงเขตข้อมูลสกุลเงินเป็นเขตข้อมูลจํานวนเต็มได้เฉพาะเมื่อค่าเหล่านั้นมากกว่า 255 และไม่เกิน 32,767
AutoNumber ค่าจะต้องอยู่ภายในขนาดจำกัดของเขตข้อมูล
ใช่/ไม่ใช่ ค่า "Yes" จะแปลงเป็น -1 ค่า "No" จะแปลงเป็น 0
วันที่/เวลา ข้อความสั้น ข้อความต้นฉบับต้องเป็นวันที่หรือวันที่/เวลาที่รู้จัก ตัวอย่างเช่น 18 ม.ค.-2563
ข้อความยาว ข้อความต้นฉบับต้องเป็นวันที่หรือวันที่/เวลาที่รู้จัก ตัวอย่างเช่น 18 ม.ค.-2563
ตัวเลข ค่าจะต้องอยู่ระหว่าง -657,434 และ 2,958,465.99998843
สกุลเงิน ค่าจะต้องอยู่ระหว่าง -$657,434 และ $2,958,465.9999
AutoNumber ค่าจะต้องเกิน -657,434 และต่ำกว่า 2,958,466
ใช่/ไม่ใช่ ค่า -1 (Yes) จะแปลงเป็น 29 ธันวาคม 1899 ค่า 0 (No) จะแปลงเป็นเที่ยงคืน (12:00 AM)
สกุลเงิน ข้อความสั้น ข้อความต้องประกอบด้วยตัวเลขและตัวคั่นที่ถูกต้อง
ข้อความยาว ข้อความต้องประกอบด้วยตัวเลขและตัวคั่นที่ถูกต้อง
ตัวเลข ไม่มีข้อจำกัด
วันที่/เวลา ไม่มีข้อจำกัด แต่ Access อาจปัดเศษให้กับค่า
AutoNumber ไม่มีข้อจำกัด
ใช่/ไม่ใช่ ค่า -1 (Yes) จะแปลงเป็น $1 และค่า 0 (No) จะแปลงเป็น 0$
AutoNumber ข้อความสั้น ไม่อนุญาตถ้าใช้เขตข้อมูล AutoNumber เป็นคีย์หลัก
ข้อความยาว ไม่อนุญาตถ้าใช้เขตข้อมูล AutoNumber เป็นคีย์หลัก
ตัวเลข ไม่อนุญาตถ้าใช้เขตข้อมูล AutoNumber เป็นคีย์หลัก
วันที่/เวลา ไม่อนุญาตถ้าใช้เขตข้อมูล AutoNumber เป็นคีย์หลัก
สกุลเงิน ไม่อนุญาตถ้าใช้เขตข้อมูล AutoNumber เป็นคีย์หลัก
ใช่/ไม่ใช่ ไม่อนุญาตถ้าใช้เขตข้อมูล AutoNumber เป็นคีย์หลัก
ใช่/ไม่ใช่ ข้อความสั้น ข้อความต้นฉบับต้องประกอบด้วย Yes, No, True, False, On หรือ Off เท่านั้น
ข้อความยาว ข้อความต้นฉบับต้องประกอบด้วย Yes, No, True, False, On หรือ Off เท่านั้น
ตัวเลข ค่าศูนย์หรือ Null จะแปลงเป็น No ค่าอื่นๆ ทั้งหมดจะแปลงเป็น Yes
วันที่/เวลา ค่า Null หรือ 12:00:00 AM จะแปลงเป็น No ค่าอื่นๆ ทั้งหมดจะแปลงเป็น Yes
สกุลเงิน ค่าศูนย์หรือ Null จะแปลงเป็น No ค่าอื่นๆ ทั้งหมดจะแปลงเป็น Yes
AutoNumber ทุกๆ ค่าจะแปลงเป็น Yes
ไฮเปอร์ลิงก์ ข้อความสั้น ถ้าข้อความต้นฉบับมีที่อยู่เว็บที่ถูกต้อง เช่น adatum.com www.adatum.com หรือ http://www.adatum.com Access จะแปลงข้อความเป็นไฮเปอร์ลิงก์ Access จะพยายามแปลงค่าอื่นๆ ซึ่งหมายความว่าคุณจะเห็นข้อความที่ขีดเส้นใต้ และเคอร์เซอร์จะเปลี่ยนไปเมื่อคุณชี้ไปที่ลิงก์ แต่ลิงก์จะไม่ทํางาน ข้อความสามารถมีโพรโทคอลเว็บที่ถูกต้องใดๆ ก็ได้ รวมทั้ง http:// gopher:// telnet:// ftp:// และ wais://
ข้อความยาว ดูรายการก่อนหน้า มีการใช้ข้อจํากัดเดียวกัน
ตัวเลข ไม่อนุญาตเมื่อเขตข้อมูลตัวเลขเป็นส่วนหนึ่งของความสัมพันธ์ ถ้าค่าดั้งเดิมอยู่ในรูปแบบของที่อยู่อินเทอร์เน็ตโพรโทคอล (IP) ที่ถูกต้อง (ชุดตัวเลขจํานวนสี่ชุดที่คั่นด้วยจุด: nnn.nnn.nnn.nnn) และตัวเลขเกิดขึ้นพร้อมกับที่อยู่เว็บ การแปลงจะส่งผลให้เกิดลิงก์ที่ถูกต้อง มิฉะนั้น Access จะผนวก http:// ไปยังจุดเริ่มต้นของแต่ละค่า และลิงก์ที่เป็นผลลัพธ์ไม่ถูกต้อง
วัน/เวลา Access จะผนวก http:// ไว้ที่จุดเริ่มต้นของแต่ละที่อยู่ แต่ลิงก์ที่เป็นผลลัพธ์แทบจะใช้งานไม่ได้เลย
สกุลเงิน Access จะผนวก http:// ไปยังจุดเริ่มต้นของแต่ละค่า แต่เช่นเดียวกับวันที่ ลิงก์ที่เป็นผลลัพธ์แทบจะใช้งานไม่ได้เลย
AutoNumber ไม่อนุญาตเมื่อเขตข้อมูล AutoNumber เป็นส่วนหนึ่งของความสัมพันธ์ Access จะผนวก http:// ไปยังจุดเริ่มต้นของแต่ละค่า แต่ลิงก์ที่เป็นผลลัพธ์แทบจะใช้งานไม่ได้เลย
ใช่/ไม่ใช่ Access จะแปลงค่า Yes ทั้งหมดเป็น -1 และค่า No ทั้งหมดเป็น 0 และผนวก http:// ต่อจุดเริ่มต้นของแต่ละค่า ลิงก์ที่เป็นผลลัพธ์ไม่ทํางาน

ด้านบนของหน้า

การหยุดโหมดปิดใช้งานจากการบล็อกคิวรี

ถ้าคุณพยายามเรียกใช้คิวรีแอคชันและดูเหมือนว่าไม่มีสิ่งใดเกิดขึ้น ให้ตรวจสอบข้อความต่อไปนี้บนแถบสถานะ Access

การกระทำหรือเหตุการณ์นี้ถูกบล็อกโดยโหมดปิดใช้งาน

ตามค่าเริ่มต้น Access จะปิดใช้งานคิวรีแอคชันทั้งหมด (คิวรีแบบใช้อัปเดตข้อมูล ผนวกข้อมูล ลบหรือสร้างตาราง) เว้นแต่ว่าฐานข้อมูลของคุณอยู่ในตําแหน่งที่ตั้งที่เชื่อถือได้ หรือฐานข้อมูลถูกเซ็นชื่อและเชื่อถือได้ ถ้าคุณไม่ได้ดําเนินการอย่างใดอย่างหนึ่งต่อไปนี้ คุณยังคงสามารถเปิดใช้งานคิวรีสําหรับเซสชันฐานข้อมูลปัจจุบันได้โดยการคลิก เปิดใช้งานเนื้อหา บนแถบข้อความ

ด้านบนของหน้า

เวอร์ชันของ SQL: คำสั่ง UPDATE

ถ้าคุณคุ้นเคยกับการทํางานกับ SQL คุณยังสามารถเขียนคําสั่ง UPDATE ได้โดยใช้มุมมอง SQL เมื่อต้องการใช้มุมมอง SQL ให้สร้างคิวรีเปล่าใหม่ แล้วสลับมุมมอง SQL

บทความส่วนนี้แสดงตัวอย่างและไวยากรณ์สำหรับคำสั่ง UPDATE

ไวยากรณ์

UPDATE table SET newvalue WHERE criteria;

คำสั่ง อัปเดต มีส่วนต่างๆ ดังนี้

ส่วน คำอธิบาย
ตาราง ชื่อของตารางที่มีข้อมูลที่คุณต้องการจะปรับเปลี่ยน
ค่าใหม่ นิพจน์ที่ระบุค่าที่จะถูกแทรกลงในบางเขตข้อมูลในระเบียนที่มีการอัปเดต
เกณฑ์ นิพจน์ที่กําหนดว่าระเบียนใดจะได้รับการอัปเดต มีเพียงระเบียนที่ตรงกับนิพจน์เท่านั้นที่จะถูกอัปเดต

ข้อสังเกต

คำสั่ง UPDATE มีประโยชน์เป็นพิเศษเมื่อคุณต้องการเปลี่ยนแปลงหลายระเบียนหรือเมื่อมีระเบียนที่คุณต้องการเปลี่ยนแปลงอยู่ในหลายตาราง

คุณสามารถเปลี่ยนแปลงหลายเขตข้อมูลพร้อมกันได้ ตัวอย่างต่อไปนี้จะเพิ่มค่าจํานวนการสั่งซื้อขึ้น 10 เปอร์เซ็นต์และค่าขนส่งสินค้าอีก 3 เปอร์เซ็นต์สําหรับผู้ขนส่งสินค้าในสหราชอาณาจักร

UPDATE Orders

SET OrderAmount = OrderAmount * 1.1,

Freight = Freight * 1.03

WHERE ShipCountry = 'UK';

ด้านบนของหน้า