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

นำไปใช้กับ
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
    >="คาเชน" ส่งกลับระเบียนทั้งหมดที่มีคำว่า สิทธิชัย ตั้งแต่อักษรตัวแรกจนถึงตัวสุดท้าย
    Between #2/2/2020# And #1/12/2020# ส่งกลับวันตั้งแต่ 2 ก.พ. 17 ถึง 1 ธ.ค. 17 (ANSI-89) ถ้าฐานข้อมูลของคุณใช้อักขระตัวแทนตามมาตรฐาน ANSI-92 ให้ใช้เครื่องหมายอัญประกาศเดี่ยว (') แทนเครื่องหมายเลขที่ (#) ตัวอย่าง: ระหว่าง '2/2/2020' และ '1/12/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')
    < Date( ) - 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 มกราคม 2548 และเปลี่ยนตําแหน่งที่ตั้งในทุกระเบียนที่ตรงตามเกณฑ์เป็น "คลังสินค้า 3"
    คิวรีแบบใช้อัปเดตข้อมูลที่มีเกณฑ์การอัปเดตหนึ่งเกณฑ์

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

    นิพจน์ ผลลัพธ์
    "พนักงานขาย" ในเขตข้อมูล ข้อความสั้น จะเปลี่ยนค่าข้อความให้เป็นคําว่า พนักงานขาย
    #8/10/20# ในเขตข้อมูล Date/Time จะเปลี่ยนค่าวันที่ให้เป็น 10-ส.ค.-20
    ใช่ ในเขตข้อมูล Yes/No จะเปลี่ยนค่า No ให้เป็น Yes
    "PN" & [หมายเลขชิ้นส่วน] เพิ่ม "PN" ลงในส่วนเริ่มต้นของแต่ละหมายเลขชิ้นส่วนที่ระบุ
    [ราคาต่อหน่วย] * [ปริมาณ] คูณค่าในเขตข้อมูลที่ชื่อราคาต่อหน่วยและปริมาณ
    [ค่าขนส่งสินค้า] * 1.5 เพิ่มค่าในเขตข้อมูลชื่อค่าขนส่งสินค้าอีก 50 เปอร์เซ็นต์
    DSum("[ปริมาณ] * [ราคาต่อหน่วย]",
    "รายละเอียดใบสั่งซื้อ", "[หมายเลขผลิตภัณฑ์]=" & [หมายเลขผลิตภัณฑ์])
    เมื่อค่าหมายเลขผลิตภัณฑ์ในตารางปัจจุบันมีค่าตรงกับค่าหมายเลขผลิตภัณฑ์ในตารางชื่อรายละเอียดใบสั่งซื้อ นิพจน์นี้จะอัปเดตยอดขายรวมทั้งหมดโดยการคูณค่าในเขตข้อมูลชื่อ จํานวน ด้วยค่าในเขตข้อมูลชื่อ ราคาต่อหน่วย นิพจน์นี้ใช้ฟังก์ชัน 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 จะรวมเขตข้อมูลที่เกี่ยวข้องกันไว้ในคิวรีโดยอัตโนมัติ ถ้าต้องการรวมเขตข้อมูลที่มีข้อมูลที่เกี่ยวข้องกันด้วยตนเอง ให้ลากเขตข้อมูลที่เกี่ยวข้องกันจากตารางหนึ่งไปยังเขตข้อมูลที่สอดคล้องกันในอีกตารางหนึ่ง
    ตัวอย่างเช่น ถ้าคุณใช้ตารางตัวอย่างที่แสดงก่อนหน้านี้ คุณจะลากเขตข้อมูล รหัสผู้ซื้อ ไปยังเขตข้อมูล รหัสลูกค้า Access จะสร้างความสัมพันธ์ระหว่างเขตข้อมูลเหล่านั้นในตารางทั้งสอง และใช้ความสัมพันธ์นั้นในการรวมระเบียนใดๆ ที่เกี่ยวข้อง
  5. บนแท็บ ออกแบบคิวรี ในกลุ่ม ชนิดคิวรี ให้เลือก อัปเดต
  6. ในตารางปลายทาง ให้ดับเบิลคลิกที่เขตข้อมูลที่คุณต้องการอัปเดต แต่ละเขตข้อมูลจะปรากฏในแถว เขตข้อมูล ในตารางออกแบบคิวรี
    ถ้าคุณใช้ตารางตัวอย่าง ให้คุณเพิ่มเขตข้อมูลทั้งหมด ยกเว้น เขตข้อมูล ID ลูกค้า ให้สังเกตว่าชื่อของตารางปลายทางจะปรากฏในแถว ตาราง ของตารางออกแบบ
  7. ในแถว อัปเดตเป็น ของคิวรี ในแต่ละคอลัมน์ที่มีเขตข้อมูลปลายทาง ให้เพิ่มชื่อของตารางต้นฉบับและเขตข้อมูลในตารางต้นฉบับที่สัมพันธ์กับเขตข้อมูลในตารางปลายทาง และตรวจสอบให้แน่ใจว่าคุณใช้ไวยากรณ์ต่อไปนี้ [ตาราง].[ Field] ซึ่งคุณจะใส่ชื่อตารางและเขตข้อมูลไว้ในเครื่องหมายวงเล็บเหลี่ยม และแยกชื่อตารางและชื่อเขตข้อมูลด้วยจุด
    รูปนี้แสดงให้เห็นส่วนของตารางออกแบบ โดยใช้ตารางตัวอย่าง ให้สังเกตไวยากรณ์ของชื่อตารางและเขตข้อมูลในแถว อัปเดตเป็น
    คิวรีที่อัปเดตตารางหนึ่งด้วยข้อมูลจากอีกตารางหนึ่ง
    ในขณะดําเนินการ โปรดทราบว่า คุณจะต้องสะกดชื่อตารางและชื่อเขตข้อมูลในแถว อัปเดตเป็น ให้ถูกต้อง และคุณต้องใส่เครื่องหมายวรรคตอนให้ตรงกับชื่อตารางและเขตข้อมูลดั้งเดิมด้วย อย่างไรก็ตาม คุณไม่จําเป็นต้องจับคู่ตัวพิมพ์ใหญ่
  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 แต่มีขนาดเขตข้อมูลหรือจำนวนทศนิยม (ความแม่นยำ) ต่างกัน ค่าจะต้องไม่มากหรือน้อยไปกว่าที่ขนาดของเขตข้อมูลใหม่จะจัดเก็บได้ การเปลี่ยนจํานวนทศนิยมอาจทําให้ Access ต้องปัดเศษบางค่า
วันที่/เวลา วันที่ที่คุณสามารถแปลงได้จะขึ้นอยู่กับขนาดของเขตข้อมูลตัวเลข โปรดจําไว้ว่า Access เก็บวันทั้งหมดในรูปวันที่อนุกรม และเก็บค่าของวันเป็นจํานวนเต็มของเลขทศนิยมลอยตัวที่มีความแม่นยําสูง
Access ใช้วันที่ 30 ธันวาคม 1899 เป็นวันที่ 0 วันที่นอกเหนือจากช่วง 18 เมษายน 1899 ถึง 11 กันยายน 1900 จะมีขนาดเกินเขตข้อมูลชนิด Byte วันที่นอกเหนือจากช่วง 13 เมษายน 1810 ถึง 16 กันยายน 1989 จะมีขนาดเกินเขตข้อมูลชนิด จํานวนเต็ม
เมื่อต้องการให้ครอบคลุมวันที่ทั้งหมดที่เป็นไปได้ ให้ตั้งค่าคุณสมบัติ ขนาดเขตข้อมูล ของเขตข้อมูล Number ของคุณเป็น Long Integer หรือสูงกว่า
สกุลเงิน ค่าจะต้องไม่เกิน (หรืออยู่ภายใน) ขนาดของเขตข้อมูลที่จํากัดไว้ ตัวอย่างเช่น คุณสามารถแปลงเขตข้อมูล Currency ไปเป็นเขตข้อมูล Integer ได้ก็ต่อเมื่อค่าเหล่านั้นมากกว่า 255 และไม่เกิน 32,767
AutoNumber ค่าจะต้องอยู่ภายในขนาดจำกัดของเขตข้อมูล
ใช่/ไม่ใช่ ค่า "Yes" แปลงเป็น -1 ค่า "No" แปลงเป็น 0
วันที่/เวลา ข้อความสั้น ข้อความดั้งเดิมต้องเป็นวันที่หรือวันที่/เวลาที่รู้จัก ตัวอย่างเช่น 18 ม.ค. 2020
ข้อความยาว ข้อความดั้งเดิมต้องเป็นวันที่หรือวันที่/เวลาที่รู้จัก ตัวอย่างเช่น 18 ม.ค. 2020
ตัวเลข ค่าจะต้องอยู่ระหว่าง -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 น.)
สกุลเงิน ข้อความสั้น ข้อความต้องประกอบด้วยตัวเลขและตัวคั่นที่ถูกต้อง
ข้อความยาว ข้อความต้องประกอบด้วยตัวเลขและตัวคั่นที่ถูกต้อง
ตัวเลข ไม่มีข้อจำกัด
วันที่/เวลา ไม่มีข้อจำกัด แต่ 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://
ข้อความยาว ดูรายการก่อนหน้า ใช้ข้อจํากัดเดิม
ตัวเลข ไม่ได้รับอนุญาตเมื่อเขตข้อมูล Number เป็นส่วนหนึ่งของความสัมพันธ์ ถ้าค่าดั้งเดิมมีรูปแบบเป็นที่อยู่อินเทอร์เน็ตโพรโทคอล (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';

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