เปลี่ยนชื่อเดือนภาษาไทยให้เป็นชื่อเดือนภาษาอังกฤษใน Microsoft Access ด้วยฟังก์ชัน Choose
ตัวอย่างการใช้ฟังก์ชัน 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 ฟังก์ชันในหมวดหมู่นี้ ได้แก่
ฟังก์ชัน Choose เป็นฟังก์ชันที่มีการคืนค่าออกมาเป็นตัวเลือก (choice) ตามดัชนี (Index) หรือ เลขลำดับ ที่กำหนด
รูปแบบของฟังก์ชัน Choose จาก Website ของ Microsoft
Syntax : Choose( index , choice-1 [, choice-2] ... [, choice-n] )
จากข้อกำหนดของ 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")
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
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 อื่นๆ ดูบ้างก็ได้นะคะ ลองดูตัวอย่างนี้ค่ะ
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 ก็ไม่ซับซ้อนเกินไปที่เราจะนำไปใช้ค่ะ
ส่งผลให้ข้อมูลรูปแบบวันที่ในฟิลด์ 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 ก็ไม่ซับซ้อนเกินไปที่เราจะนำไปใช้ค่ะ