คุณใช้คิวรีแบบใช้อัปเดตข้อมูลในฐานข้อมูล Access เพื่อเพิ่ม เปลี่ยนแปลง หรือลบข้อมูลในระเบียนที่มีอยู่ คุณสามารถมองว่าคิวรีแบบใช้อัปเดตข้อมูลเป็นฟอร์มที่มีประสิทธิภาพของกล่องโต้ตอบ ค้นหาและแทนที่ คุณไม่สามารถใช้คิวรีแบบใช้อัปเดตข้อมูลเพื่อเพิ่มระเบียนใหม่ลงในฐานข้อมูล หรือลบระเบียนจากฐานข้อมูลได้
ถ้าต้องการเพิ่มระเบียนใหม่ลงในฐานข้อมูล คุณสามารถใช้คิวรีแบบใช้ผนวกข้อมูล และถ้าต้องการลบทั้งระเบียนออกจากฐานข้อมูล คุณสามารถใช้คิวรีแบบใช้ลบข้อมูลได้
ในบทความนี้
ภาพรวม
ต่อไปนี้คือความคล้ายคลึงและความแตกต่างกันระหว่าง การค้นหาและแทนที่ กับ คิวรีแบบใช้อัปเดตข้อมูล
คิวรีแบบใช้อัปเดตข้อมูลมีลักษณะเหมือนกับกล่องโต้ตอบ ค้นหาและแทนที่ ตรงที่ช่วยให้คุณสามารถระบุได้ว่าค่าใดที่จะถูกแทนที่และค่าใหม่นั้นคืออะไร
ส่วนสิ่งที่แตกต่างจากกล่องโต้ตอบ ค้นหาและแทนที่ ก็คือคิวรีแบบใช้อัปเดตข้อมูลนั้นสามารถช่วยให้คุณทำสิ่งต่อไปนี้ได้
-
ใช้เกณฑ์ที่ไม่ขึ้นกับค่าที่คุณต้องการจะแทนที่
-
อัปเดตหลายระเบียนในคราวเดียว
-
เปลี่ยนแปลงระเบียนที่อยู่ในหลายตารางในเวลาเดียวกัน
ข้อจำกัดบนเขตข้อมูลที่สามารถอัปเดตได้
คิวรีแบบใช้อัปเดตข้อมูลไม่สามารถใช้อัปเดตข้อมูลในเขตข้อมูลที่มีชนิดต่อไปนี้
-
เขตข้อมูลจากการคำนวณ ค่าในเขตข้อมูลจากการคํานวณไม่ได้อยู่ในตารางอย่างถาวร แฟ้มเหล่านี้จะอยู่ในหน่วยความจําชั่วคราวของคอมพิวเตอร์ของคุณหลังจากที่ Access คํานวณค่าเหล่านั้นแล้วเท่านั้น เนื่องจากเขตข้อมูลจากการคํานวณไม่มีตําแหน่งที่เก็บข้อมูลถาวร คุณจึงไม่สามารถอัปเดตได้
-
เขตข้อมูลจากคิวรีแบบใช้หาผลรวม หรือคิวรีแบบตาราง ค่าที่อยู่ในคิวรีเหล่านี้มาจากการคำนวณ ดังนั้นจึงไม่สามารถอัปเดตได้โดยคิวรีแบบใช้อัปเดตข้อมูล
-
เขตข้อมูล AutoNumber ตามการดีไซน์ ค่าที่อยู่ในเขตข้อมูล AutoNumber จะเปลี่ยนแปลงเมื่อคุณเพิ่มระเบียนลงในตารางเท่านั้น
-
เขตข้อมูลในคิวรีแบบค่าไม่ซ้ํากันและคิวรีระเบียนที่ไม่ซ้ํากัน ค่าในคิวรีดังกล่าวจะถูกสรุป ค่าบางค่าแสดงถึงระเบียนเดียว ส่วนค่าอื่นๆ แทนระเบียนมากกว่าหนึ่งระเบียน การดําเนินการปรับปรุงไม่สามารถทําได้ เนื่องจากไม่สามารถระบุได้ว่าระเบียนใดถูกแยกออกจากรายการที่ซ้ํากัน ดังนั้นจึงไม่สามารถอัปเดตระเบียนที่จําเป็นทั้งหมดได้ ข้อจํากัดนี้จะนําไปใช้ไม่ว่าคุณจะใช้คิวรีแบบใช้อัปเดตข้อมูลหรือพยายามอัปเดตข้อมูลด้วยตนเองโดยการใส่ค่าในฟอร์มหรือแผ่นข้อมูล
-
เขตข้อมูลในคิวรีแบบร่วม คุณไม่สามารถอัปเดตข้อมูลจากเขตข้อมูลในคิวรีแบบร่วมได้ เนื่องจากแต่ละระเบียนที่ปรากฏในแหล่งข้อมูลอย่างน้อยสองแหล่งจะปรากฏเพียงครั้งเดียวในผลลัพธ์ของคิวรีแบบร่วม เนื่องจากระเบียนที่ซ้ํากันบางระเบียนถูกเอาออกจากผลลัพธ์ Access จึงไม่สามารถอัปเดตระเบียนที่จําเป็นทั้งหมดได้
-
เขตข้อมูลที่เป็นคีย์หลัก ในบางกรณี เช่น ถ้าเขตข้อมูลที่เป็นคีย์หลักถูกใช้ในความสัมพันธ์ของตาราง คุณจะไม่สามารถอัปเดตเขตข้อมูลดังกล่าวด้วยการใช้คิวรีได้ เว้นแต่ว่าคุณจะตั้งค่าให้ความสัมพันธ์อัปเดตเขตข้อมูลที่เกี่ยวข้องทั้งหมดโดยอัตโนมัติเสียก่อน
หมายเหตุ: เมื่อคุณอัปเดตเขตข้อมูลที่เกี่ยวข้อง Access จะอัปเดตค่าของ Foreign Key โดยอัตโนมัติเมื่อคุณเปลี่ยนค่าของคีย์หลักในตารางแม่
การใช้คิวรีแบบใช้อัปเดตข้อมูล
แนวทางปฏิบัติที่ดีที่สุดเมื่อสร้างคิวรีแบบใช้อัปเดตข้อมูล ขั้นแรกให้สร้างคิวรีแบบใช้เลือกข้อมูลที่ระบุระเบียนที่คุณต้องการอัปเดต แล้วแปลงคิวรีนั้นเป็นคิวรีแบบใช้อัปเดตข้อมูลที่คุณสามารถเรียกใช้เพื่ออัปเดตระเบียนได้ เมื่อเลือกข้อมูลก่อน คุณสามารถตรวจสอบว่าคุณกําลังอัปเดตระเบียนที่คุณต้องการก่อนที่คุณจะเปลี่ยนแปลงข้อมูลใดๆ
เคล็ดลับ: สํารองฐานข้อมูลของคุณก่อนที่คุณจะเรียกใช้คิวรีแบบใช้อัปเดตข้อมูล คุณไม่สามารถเลิกทําผลลัพธ์ของคิวรีแบบใช้อัปเดตข้อมูล และการสํารองข้อมูลจะช่วยให้แน่ใจว่าคุณสามารถย้อนกลับการเปลี่ยนแปลงของคุณได้ถ้าคุณเปลี่ยนใจ
วิธีการสำรองฐานข้อมูล
-
คลิกแท็บ ไฟล์ แล้วคลิก บันทึกเป็น
-
ที่ด้านขวา ภายใต้ ขั้นสูง ให้คลิก สำรองฐานข้อมูล
-
ในกล่องโต้ตอบ บันทึกไฟล์สำรองเป็น ให้ระบุชื่อและตำแหน่งที่ตั้งสำหรับสำเนาสำรอง แล้วคลิก บันทึก
Access จะปิดไฟล์ต้นฉบับ สร้างไฟล์สำรอง แล้วเปิดไฟล์ต้นฉบับอีกครั้ง
เมื่อต้องการย้อนกลับไปยังการสํารองข้อมูล ให้ปิดและเปลี่ยนชื่อไฟล์ต้นฉบับเพื่อให้สําเนาสํารองสามารถใช้ชื่อของต้นฉบับเวอร์ชันได้ กําหนดชื่อของต้นฉบับให้กับสําเนาสํารอง แล้วเปิดสําเนาสํารองที่เปลี่ยนชื่อใน Access
ในส่วนนี้
ขั้นตอนที่ 1: สร้างคิวรีแบบใช้เลือกข้อมูลเพื่อระบุระเบียนที่ต้องการอัปเดต
-
เปิดฐานข้อมูลที่มีระเบียนที่คุณต้องการอัปเดต
-
บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก การออกแบบคิวรี
-
คลิกแท็บ ตาราง
-
เลือกตารางที่มีระเบียนที่คุณต้องการอัปเดต จากนั้นคลิก เพิ่ม แล้วคลิก ปิด
ตารางจะปรากฏเป็นหน้าต่างอย่างน้อยหนึ่งหน้าต่างในตัวออกแบบคิวรี และหน้าต่างจะแสดงรายการเขตข้อมูลทั้งหมดในแต่ละตาราง รูปนี้แสดงตัวออกแบบคิวรีกับตารางทั่วไป
1. ตารางแสดงในตัวออกแบบคิวรี
2. ตารางออกแบบคิวรี
-
ดับเบิลคลิกที่เขตข้อมูลที่คุณต้องการอัปเดตในหน้าต่างตาราง เขตข้อมูลที่เลือกจะปรากฏในแถว เขตข้อมูล ในตารางออกแบบคิวรี
คุณสามารถเพิ่มเขตข้อมูลตารางหนึ่งเขตข้อมูลต่อคอลัมน์ในตารางออกแบบคิวรี
เมื่อต้องการเพิ่มเขตข้อมูลทั้งหมดในตารางอย่างรวดเร็ว ให้ดับเบิลคลิกที่เครื่องหมายดอกจัน (*) ที่ด้านบนของรายการเขตข้อมูลตารางในหน้าต่างตาราง รูปนี้แสดงตารางออกแบบคิวรีที่มีเขตข้อมูลทั้งหมดที่เพิ่ม
-
เมื่อต้องการจำกัดผลลัพธ์ของคิวรีตามค่าในเขตข้อมูล ให้ไปที่ตารางออกแบบคิวรี ในแถว เกณฑ์ แล้วใส่เกณฑ์ที่คุณต้องการใช้จำกัดผลลัพธ์
ตารางตัวอย่างเกณฑ์
ตารางต่อไปนี้แสดงตัวอย่างเกณฑ์และอธิบายผลของเกณฑ์เหล่านั้นที่มีต่อผลลัพธ์ของคิวรี
หมายเหตุ: ตัวอย่างจำนวนมากในตารางนี้จะใช้อักขระตัวแทนเพื่อให้คิวรีมีความยืดหยุ่นมากขึ้นหรือมีประสิทธิภาพสูงขึ้น
เกณฑ์
สิ่งที่เกิดขึ้น
>234
ส่งกลับตัวเลขทั้งหมดที่มากกว่า 234 เมื่อต้องการค้นหาตัวเลขทั้งหมดที่น้อยกว่า 234 ให้ใช้ < 234
>="สิทธิชัย"
ส่งกลับระเบียนทั้งหมดที่มีคำว่า สิทธิชัย ตั้งแต่อักษรตัวแรกจนถึงตัวสุดท้าย
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" เกณฑ์จะส่งกลับระเบียนที่มีอักขระนอกเหนือจาก "เยอรมนี" เช่น "เยอรมนี (ยูโร)" หรือ "ยุโรป (เยอรมนี)"
Not "T*"
ค้นหาระเบียนทั้งหมดยกเว้นที่ขึ้นต้นด้วย T ถ้าฐานข้อมูลของคุณใช้ชุดอักขระตัวแทนตามมาตรฐาน ANSI-92 ให้ใช้เครื่องหมายเปอร์เซ็นต์ ( % ) แทนเครื่องหมายดอกจัน ( * )
Not "*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
ส่งกลับทุกระเบียนที่มีค่า
""
ส่งกลับระเบียนทั้งหมดที่มีสตริงที่มีความยาวเป็นศูนย์ คุณใช้สตริงที่มีความยาวเป็นศูนย์เมื่อคุณต้องการเพิ่มค่าลงในเขตข้อมูลที่ต้องการ แต่คุณยังไม่ทราบว่าค่านั้นคืออะไร ตัวอย่างเช่น เขตข้อมูลอาจต้องการหมายเลขโทรสาร แต่ลูกค้าของคุณบางรายอาจไม่มีเครื่องโทรสาร ในกรณีดังกล่าว ให้คุณใส่เครื่องหมายอัญภาคคู่โดยไม่เว้นวรรคระหว่างเครื่องหมายเหล่านั้น ("") แทนตัวเลข
-
บนแท็บ ออกแบบคิวรี ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้
-
ตรวจสอบว่าคิวรีส่งกลับระเบียนที่คุณต้องการอัปเดต
-
เมื่อต้องการเอาเขตข้อมูลใดๆ ที่คุณไม่ต้องการให้รวมอยู่ในการออกแบบคิวรีออก ให้เลือกเขตข้อมูลนั้น แล้วกด DELETE
-
เมื่อต้องการเพิ่มเขตข้อมูลใดๆ ที่คุณต้องการให้รวมอยู่ในการออกแบบคิวรี ให้ลากเขตข้อมูลที่ต้องการเพิ่มลงไปในตารางการออกแบบคิวรี
ขั้นตอนที่ 2: อัปเดตระเบียน
-
บนแท็บ ออกแบบคิวรี ในกลุ่ม ชนิดคิวรี ให้คลิก อัปเดต
กระบวนงานนี้แสดงวิธีเปลี่ยนคิวรีแบบใช้เลือกข้อมูลเป็นคิวรีแบบใช้อัปเดตข้อมูล เมื่อคุณทําเช่นนี้ Access จะเพิ่มแถว อัปเดตเป็น ในตารางออกแบบคิวรี ภาพประกอบต่อไปนี้แสดงคิวรีแบบใช้อัปเดตข้อมูลที่ส่งกลับสินทรัพย์ทั้งหมดที่ซื้อหลังจากวันที่ 5 มกราคม 2005 และเปลี่ยนตําแหน่งที่ตั้งเป็น "คลังสินค้า 3" สําหรับระเบียนทั้งหมดที่ตรงตามเกณฑ์นั้น
-
ค้นหาตำแหน่งเขตข้อมูลที่มีข้อมูลที่คุณต้องการเปลี่ยนแปลง แล้วพิมพ์นิพจน์ของคุณ (เกณฑ์การเปลี่ยนแปลง) ลงในแถว อัปเดตเป็น ของเขตข้อมูลนั้น
คุณสามารถใช้นิพจน์ที่ถูกต้องอะไรก็ได้ในแถว อัปเดตเป็น
ตารางตัวอย่างนิพจน์
ตารางนี้จะแสดงนิพจน์ตัวอย่างจำนวนหนึ่ง พร้อมอธิบายวิธีที่นิพจน์เหล่านี้เปลี่ยนแปลงข้อมูล
นิพจน์
ผลลัพธ์
"พนักงานขาย"
ในเขตข้อมูลข้อความสั้น จะเปลี่ยนค่าข้อความเป็น พนักงานขาย
#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) ในเขตข้อมูลชื่อราคาต่อหน่วย
-
บนแท็บ ออกแบบคิวรี ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้
ข้อความแจ้งเตือนจะปรากฏขึ้น
-
เมื่อต้องการเรียกใช้คิวรีและอัปเดตข้อมูล ให้คลิก ใช่
หมายเหตุ: เมื่อคุณเรียกใช้คิวรี คุณอาจสังเกตเห็นว่าบางเขตข้อมูลหายไปจากชุดผลลัพธ์ของคุณ ถ้าคิวรีของคุณมีเขตข้อมูลที่คุณไม่ได้อัปเดต Access จะไม่แสดงเขตข้อมูลเหล่านั้นในผลลัพธ์ตามค่าเริ่มต้น ตัวอย่างเช่น คุณอาจรวมเขตข้อมูล ID จากสองตารางเพื่อช่วยให้แน่ใจว่าคิวรีของคุณระบุและอัปเดตระเบียนที่ถูกต้อง ถ้าคุณไม่อัปเดตเขตข้อมูล ID เหล่านั้น Access จะไม่แสดงในผลลัพธ์
การอัปเดตข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่ง
เมื่อคุณต้องการอัปเดตข้อมูลจากตารางหนึ่งไปอีกตารางหนึ่ง ให้นึกถึงกฎต่อไปนี้ คือ ชนิดข้อมูลของเขตข้อมูลต้นทางและปลายทางต้องตรงกันหรือเข้ากันได้
นอกจากนี้ เมื่อคุณอัปเดตข้อมูลจากตารางหนึ่งไปเป็นอีกตารางหนึ่งและใช้ชนิดข้อมูลที่เข้ากันได้แทนการจับคู่ชนิดข้อมูล Access จะแปลงชนิดข้อมูลของเขตข้อมูลเหล่านั้นในตารางปลายทาง ด้วยเหตุนี้ ข้อมูลบางส่วนในเขตข้อมูลปลายทางอาจถูกตัดทอน (ถูกลบ) ส่วน การจํากัดการแปลงชนิดข้อมูล จะแสดงวิธีที่คุณสามารถและไม่สามารถแปลงชนิดข้อมูลได้ ตารางในส่วนนี้ยังอธิบายว่าเมื่อแปลงชนิดข้อมูลสามารถเปลี่ยนแปลงหรือกําจัดข้อมูลบางส่วนหรือทั้งหมดในเขตข้อมูลและข้อมูลที่อาจถูกตัดออก
กระบวนการอัปเดตข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่งมีขั้นตอนคร่าวๆ ดังนี้
-
สร้างคิวรีแบบใช้อัปเดตข้อมูลและเพิ่มทั้งตารางต้นทางและตารางปลายทางลงในคิวรี
-
รวมตารางเหล่านั้นเข้าด้วยกันด้วยเขตข้อมูลที่มีข้อมูลเกี่ยวข้องกัน
-
เพิ่มชื่อเขตข้อมูลปลายทางของคุณลงในแถว เขตข้อมูล ของตารางออกแบบคิวรี
-
เพิ่มชื่อเขตข้อมูลต้นทางของคุณลงในแถว อัปเดตเป็น ของตารางออกแบบคิวรีโดยใช้ไวยากรณ์ต่อไปนี้ [ตาราง_ต้นทาง].[เขตข้อมูล_ต้นทาง]
ขั้นตอนในส่วนนี้สมมติว่าใช้ตารางสองตารางที่คล้ายกัน ในตัวอย่างนี้ ตารางไคลเอ็นต์จะอยู่ในฐานข้อมูลที่คุณเพิ่งสืบทอด และมีข้อมูลล่าสุดมากกว่าตารางลูกค้า คุณจะเห็นว่าชื่อผู้จัดการและที่อยู่บางส่วนมีการเปลี่ยนแปลง ด้วยเหตุนี้ คุณจึงตัดสินใจอัปเดตตารางลูกค้าด้วยข้อมูลจากตารางไคลเอ็นต์
ตารางผู้ซื้อ
รหัสผู้ซื้อ |
ชื่อ |
ที่อยู่ |
เมือง |
รัฐ/จังหวัด |
รหัสไปรษณีย์ |
ประเทศ |
โทรศัพท์ |
ที่ติดต่อ |
---|---|---|---|---|---|---|---|---|
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 ต้องสามารถแปลงข้อมูลในตารางต้นฉบับให้เป็นชนิดที่ตารางปลายทางสามารถใช้ได้ ในบางกรณี กระบวนการแปลงอาจลบข้อมูลบางอย่าง สําหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อจํากัดเมื่อคุณแปลงชนิดข้อมูล ให้ดูส่วน ข้อจํากัดในการแปลงชนิดข้อมูล
สร้างและเรียกใช้คิวรีแบบใช้อัปเดตข้อมูล
หมายเหตุ: ขั้นตอนต่อไปนี้จะถือว่าใช้ตารางตัวอย่างสองตารางก่อนหน้า คุณสามารถปรับขั้นตอนให้เหมาะกับข้อมูลของคุณ
-
บนแท็บ สร้าง ในกลุ่ม คิวรี ให้คลิก การออกแบบคิวรี
-
เลือก เพิ่มตาราง
-
ดับเบิลคลิกที่ตารางต้นฉบับและตารางปลายทางของคุณเพื่อเพิ่มตารางเหล่านั้นลงในคิวรี แต่ละตารางจะปรากฏในหน้าต่างในตัวออกแบบคิวรี
-
ในกรณีส่วนใหญ่ Access จะรวมเขตข้อมูลที่เกี่ยวข้องกันในคิวรีโดยอัตโนมัติ เมื่อต้องการรวมเขตข้อมูลที่มีข้อมูลที่เกี่ยวข้องกันด้วยตนเอง ให้ลากเขตข้อมูลที่เกี่ยวข้องจากตารางหนึ่งไปยังเขตข้อมูลที่เทียบเท่ากันในอีกตารางหนึ่ง
ตัวอย่างเช่น ถ้าคุณใช้ตารางตัวอย่างที่แสดงก่อนหน้านี้ ให้คุณลากเขตข้อมูล ID ไคลเอ็นต์ไปยังเขตข้อมูล ID ลูกค้า Access จะสร้างความสัมพันธ์ระหว่างเขตข้อมูลเหล่านั้นในตารางสองตารางและใช้ความสัมพันธ์นั้นเพื่อรวมระเบียนใดๆ ที่เกี่ยวข้องกัน
-
บนแท็บ ออกแบบคิวรี ในกลุ่ม ชนิดคิวรี ให้คลิก อัปเดต
-
ในตารางปลายทาง ให้ดับเบิลคลิกที่เขตข้อมูลที่คุณต้องการอัปเดต แต่ละเขตข้อมูลจะปรากฏในแถว เขตข้อมูล ในตารางออกแบบคิวรี
ถ้าคุณใช้ตารางตัวอย่าง ให้คุณเพิ่มเขตข้อมูลทั้งหมด ยกเว้น เขตข้อมูล ID ลูกค้า โปรดสังเกตว่าชื่อของตารางปลายทางจะปรากฏในแถว ตาราง ของตารางออกแบบ
-
ในแถว อัปเดตเป็น ของคิวรี ในแต่ละคอลัมน์ที่มีเขตข้อมูลปลายทาง ให้เพิ่มชื่อของตารางต้นฉบับและเขตข้อมูลในตารางต้นฉบับที่สัมพันธ์กับเขตข้อมูลในตารางปลายทาง และตรวจสอบให้แน่ใจว่าคุณใช้ไวยากรณ์ต่อไปนี้ [ตาราง].[เขตข้อมูล] โดยให้คุณใส่ชื่อตารางและเขตข้อมูลไว้ในเครื่องหมายวงเล็บเหลี่ยม และแยกชื่อตารางและชื่อเขตข้อมูลด้วยจุด
รูปนี้แสดงส่วนของตารางออกแบบโดยใช้ตารางตัวอย่าง ให้สังเกตไวยากรณ์สําหรับชื่อตารางและชื่อเขตข้อมูลในแถว อัปเดตเป็น
ขณะที่คุณดําเนินการต่อ โปรดจําไว้ว่าคุณต้องสะกดชื่อตารางและชื่อเขตข้อมูลในแถว อัปเดตเป็น อย่างถูกต้อง และคุณต้องใช้เครื่องหมายวรรคตอนในชื่อตารางและชื่อเขตข้อมูลเดิม อย่างไรก็ตาม คุณไม่จําเป็นต้องจับคู่ตัวพิมพ์ใหญ่
-
บนแท็บ ออกแบบคิวรี ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้
-
เมื่อคุณถูกถามให้ยืนยันการอัปเดตข้อมูล ให้คลิก ใช่
ข้อจำกัดในการแปลงชนิดข้อมูล
ตารางต่อไปนี้จะแสดงชนิดข้อมูลที่ 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.comwww.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 ตาราง SET ค่าใหม่ WHERE เกณฑ์;
คำสั่ง อัปเดต มีส่วนต่างๆ ดังนี้
ส่วน |
คำอธิบาย |
---|---|
ตาราง |
ชื่อของตารางที่มีข้อมูลที่คุณต้องการจะปรับเปลี่ยน |
ค่าใหม่ |
นิพจน์ที่ระบุค่าที่จะถูกแทรกลงในบางเขตข้อมูลในระเบียนที่มีการอัปเดต |
เกณฑ์ |
นิพจน์ที่กําหนดว่าระเบียนใดจะได้รับการอัปเดต มีเพียงระเบียนที่ตรงกับนิพจน์เท่านั้นที่จะถูกอัปเดต |
ข้อสังเกต
คำสั่ง UPDATE มีประโยชน์เป็นพิเศษเมื่อคุณต้องการเปลี่ยนแปลงหลายระเบียนหรือเมื่อมีระเบียนที่คุณต้องการเปลี่ยนแปลงอยู่ในหลายตาราง
คุณสามารถเปลี่ยนแปลงหลายเขตข้อมูลพร้อมกันได้ ตัวอย่างต่อไปนี้จะเพิ่มค่าจํานวนการสั่งซื้อขึ้น 10 เปอร์เซ็นต์และค่าขนส่งสินค้าอีก 3 เปอร์เซ็นต์สําหรับผู้ขนส่งสินค้าในสหราชอาณาจักร
UPDATE Orders
SET OrderAmount = OrderAmount * 1.1,
Freight = Freight * 1.03
WHERE ShipCountry = 'UK';