ตัวอย่างการใช้ฟังก์ชัน Choose ใน Microsoft Access
หากท่านใดเคยใช้ฟังก์ชันใน Microsoft Access โดยใช้ Expression Builder ช่วยในการสร้าง Expression
จะเห็นว่า กลุ่มฟังก์ชัน Program Flow ซึ่งเป็นหมวดหมู่ลักษณะของฟังก์ชันที่คืนค่าผลลัพธ์ตามเงื่อนไขทางเลือก
ใน Expression Builder ของ Microsoft Access ดังรูป

จากรูปแสดงฟังก์ชันในกลุ่ม Program Flow
Expression Builder => Functions => Build-In Functions => Program Flow
จากรูปจะเห็นว่า กลุ่มฟังก์ชัน Program Flow นั้นมี 3 ฟังก์ชันในหมวดหมู่นี้ ได้แก่
ฟังก์ชัน IIF แนวทางการใช้เหมือนฟังก์ชัน IF ใน MS Excel
ฟังก์ชัน Switch วิธีใช้ฟังก์ชัน อยู่ในบทความ ลองเปลี่ยนจากการใช้ฟังก์ชัน IIF ซ้อน IIF มาใช้ฟังก์ชัน Switch กันดีกว่า
ฟังก์ชัน Choose จะกล่าวถึงกันในบทความนี้ค่ะ
ฟังก์ชัน Choose เป็นฟังก์ชันที่มีการคืนค่าออกมาเป็นตัวเลือก (choice) ตามดัชนี (Index) หรือ เลขลำดับ ที่กำหนด
รูปแบบของฟังก์ชัน Choose จาก Website ของ Microsoft
Syntax : Choose( index , choice-1 [, choice-2] ... [, choice-n] )
Argument | Description |
|---|---|
index | Required. Numeric expression or field that results in a value between 1 and the number of available choices. |
choice | Required. Variant expression containing one of the possible choices. |
จากข้อกำหนดของ Argument ดังตารางข้างบนนั้น
Index และ choice เป็น Argument ต้องใส่ไปในฟังก์ชัน
โดยที่
Index จะต้องเป็นตัวเลขลำดับ ที่มีค่าตั้งแต่ 1 ถึง จำนวนตัวเลือกที่มีอยู่
ทั้งนี้ ตัวเลขดังกล่าวอาจจะเป็นค่าคงที่ หรือเป็นค่าที่ได้มาจากฟิลด์ก็ได้
Choice เป็นตัวเลือกต่างๆ แล้วแต่กำหนด ซึ่งจะมีลำดับของตัวเลือกเริ่มต้นที่ลำดับ 1
ตามรูปแบบของฟังก์ชัน
Choice(เลขลำดับ,ตัวเลือกลำดับที่1, ตัวเลือกลำดับที่ 2,ตัวเลือกลำดับที่3 , …. , ลำดับที่ N)
เพื่อความชัดเจนลองดูที่ตัวอย่างนี้กันค่ะ
Example :
Choose(3,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

จากตัวอย่าง ตัวเลือก (Choice) จะเป็นชื่อย่อของเดือนที่เป็นภาษาอังกฤษ ซึ่งมี 12 ค่าให้เลือก
Index เป็น 3 ดังนั้นจะคืนค่า Mar กลับมา
จากรูปข้างล่าง เป็น ตัวอย่างการใช้ฟังก์ชัน Choose ใน Query ด้วย Expression Builder

ผลลัพธ์ที่ได้หลังจาก Run Query

ถ้าเปลี่ยนจากเลข 3 เป็น เลข 10
Choose(10,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
ผลลัพธ์ที่ได้จะเป็น Oct ค่ะ
พอมองภาพออกแล้วใช่ไหมคะว่า ฟังก์ชัน Choose ใช้งานอย่างไร
ถ้าเราจะเปลี่ยนจากการระบุค่าคงที่ที่เป็นตัวเลขตรง ๆ เป็น Expression อื่นๆ ดูบ้างก็ได้นะคะ ลองดูตัวอย่างนี้ค่ะ

เนื่องจากมีการตั้งค่าให้ Windows Regional and Language ให้ Format เป็นภาษาไทย
ส่งผลให้ข้อมูลรูปแบบวันที่ในฟิลด์ OrderDate เป็นชื่อเดือนภาษาไทย และ เลขปี เป็น พ.ศ.
แต่ถ้าเราต้องการให้ข้อมูลรูปแบบวันที่เหมือนในคอลัมภ์ Orderdate2
เราสามารถใช้ฟังก์ชัน Choose มาช่วยเปลี่ยนจากเลขเดือนที่ได้จากฟังก์ชัน Month เป็น ชื่อย่อของเดือนภาษาอังกฤษได้
โดยที่ แต่ละคอลัมภ์มีการเขียน Expression ดังนี้
จากรูปข้างบน Expression ของแต่ละคอลัมภ์เป็นดังนี้
Day: Day([orderdate])
MonthNo: Month([orderdate])
Year: Year([orderdate])
MonthName: Choose([MonthNo],"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
Orderdate2: [Day] & "-" & [MonthName] & "-" & [Year]
จากตัวอย่างข้างต้น ท่านผู้อ่านน่าจะได้แนวทางการใช้ฟังก์ชัน Choose ไปปรับใช้กับงานตัวเองกันบ้างแล้ว
จะเห็นว่า ถ้ามีค่า Index และ จำนวนตัวเลือกที่ชัดเจน ฟังก์ชัน Choose ก็ไม่ซับซ้อนเกินไปที่เราจะนำไปใช้ค่ะ









