คุณสามารถใช้แมโครแอคชัน OnError ใน Access เพื่อระบุสิ่งที่ควรเกิดขึ้นเมื่อเกิดข้อผิดพลาดในแมโคร
หมายเหตุ: แมโครแอคชัน OnError ไม่พร้อมใช้งานใน Access Web App
การตั้งค่า
แมโครแอคชัน OnError มีอาร์กิวเมนต์ดังนี้
อาร์กิวเมนต์ของแอคชัน |
คำอธิบาย |
||||||||
ไปที่ |
ระบุลักษณะการทํางานทั่วไปที่ควรเกิดขึ้นเมื่อพบข้อผิดพลาด คลิกลูกศรดรอปดาวน์ แล้วคลิกการตั้งค่าอย่างใดอย่างหนึ่งต่อไปนี้
|
||||||||
ชื่อแมโคร |
ถ้าอาร์กิวเมนต์ ไปที่ ถูกตั้งค่าเป็น ชื่อแมโคร ให้พิมพ์ชื่อของแมโครย่อยที่จะใช้สําหรับการจัดการข้อผิดพลาด ชื่อที่คุณพิมพ์ต้องตรงกับชื่อแมโครย่อยในแมโครปัจจุบัน คุณไม่สามารถใส่ชื่อของวัตถุแมโครอื่นได้ ในตัวอย่างด้านล่าง แมโครย่อย ErrorHandler จะอยู่ในวัตถุแมโครเดียวกันกับแมโครแอคชัน OnError อาร์กิวเมนต์นี้ต้องเว้นว่างไว้ถ้าอาร์กิวเมนต์ ไปที่ ถูกตั้งค่าเป็น ถัดไป หรือ ล้มเหลว |
ข้อสังเกต
-
แมโครแอคชัน OnError มักจะอยู่ที่จุดเริ่มต้นของแมโคร แต่คุณยังสามารถวางแอคชันในแมโครในภายหลังได้ กฎที่สร้างขึ้นโดยการกระทําจะมีผลเมื่อใดก็ตามที่การดําเนินการทํางานอยู่
-
ถ้าคุณตั้งค่าอาร์กิวเมนต์ ไปที่เป็น ล้มเหลว Access จะทํางานแบบเดียวกับที่คุณทําถ้าไม่มีแอคชัน OnError ในแมโคร นั่นคือ ถ้าพบข้อผิดพลาด Access จะหยุดแมโครและแสดงข้อความแสดงข้อผิดพลาดมาตรฐาน การใช้งานหลักสําหรับการตั้งค่า ล้มเหลว คือการปิดการจัดการข้อผิดพลาดที่คุณสร้างไว้ก่อนหน้านี้ในแมโคร
ตัวอย่าง
แมโครต่อไปนี้แสดงการใช้งานแมโครแอคชัน OnError ในตัวอย่างนี้ การดําเนินการ OnError ระบุว่า Access เรียกใช้การจัดการข้อผิดพลาดแบบกําหนดเองจัดการแมโครย่อยที่ชื่อ ErrorHandler เมื่อเกิดข้อผิดพลาด ถ้ามีข้อผิดพลาดเกิดขึ้นในการดําเนินการใดๆ ที่ตามมา Access จะข้ามไปยังแมโครย่อย ErrorHandler แมโครย่อย ErrorHandler จะแสดงกล่องข้อความที่อ้างถึงวัตถุ MacroError เพื่อแสดงข้อมูลเกี่ยวกับข้อผิดพลาด
ชื่อแมโครย่อย |
การดำเนินการ |
อาร์กิวเมนต์ |
OnError |
ไปที่: ชื่อแมโคร ชื่อแมโคร: ErrorHandler |
|
[การดําเนินการ 2] |
||
... |
||
[การดําเนินการ n] |
||
ErrorHandler |
กล่องข้อความ |
ข้อความ: ="Error # " & [MacroError] [หมายเลข] & " บน " & [MacroError] [ActionName] & " action" ส่งเสียงปี๊บ: ใช่ ชนิด: ไม่มี ชื่อเรื่อง: เกิดข้อผิดพลาด |
ต่อไปนี้เป็นสกรีนช็อตของตัวออกแบบแมโคร Access (Access เวอร์ชัน 2010 และใหม่กว่า) ที่มีตัวอย่างก่อนหน้า ในกรณีนี้ นิพจน์ในการดําเนินการ SetLocalVar จะทริกเกอร์ข้อผิดพลาดเนื่องจากกําลังพยายามหารตัวเลขด้วยศูนย์ Access จะย้ายลงไปที่แมโครย่อยที่ชื่อ ErrorHandler และแสดงข้อมูลข้อผิดพลาดในกล่องข้อความ