เปลี่ยนชื่อเดือนภาษาไทยให้เป็นชื่อเดือนภาษาอังกฤษใน Microsoft Access ด้วยฟังก์ชัน Choose

กลุ่มฟังก์ชัน Program Flow นั้นมี 3 ฟังก์ชันในหมวดหมู่นี้ ได้แก่ 1. ฟังก์ชัน IIF แนวทางการใช้เหมือนฟังก์ชัน IF ใน MS Excel 2. ฟังก์ชัน Switch 3. ฟังก์ชัน Choose จะกล่าวถึงกันในบทความนี้ค่ะ
ภาพหน้าปกบทความ เปลี่ยนชื่อเดือนภาษาไทยให้เป็นชื่อเดือนภาษาอังกฤษใน Microsoft Access ด้วยฟังก์ชัน Choose
ทักษะ (ระบุได้หลายทักษะ)

ตัวอย่างการใช้ฟังก์ชัน Choose ใน Microsoft Access

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

Function ในหมวดหมู่ Program Flow ของ Microsoft Access

จากรูปแสดงฟังก์ชันในกลุ่ม Program Flow
Expression Builder  =>  Functions => Build-In Functions => Program Flow

จากรูปจะเห็นว่า กลุ่มฟังก์ชัน Program Flow นั้นมี 3 ฟังก์ชันในหมวดหมู่นี้ ได้แก่

  1. ฟังก์ชัน IIF  แนวทางการใช้เหมือนฟังก์ชัน IF ใน MS Excel
  2. ฟังก์ชัน Switch วิธีใช้ฟังก์ชัน อยู่ในบทความ ลองเปลี่ยนจากการใช้ฟังก์ชัน IIF ซ้อน IIF มาใช้ฟังก์ชัน Switch กันดีกว่า
  3. ฟังก์ชัน Choose จะกล่าวถึงกันในบทความนี้ค่ะ



ฟังก์ชัน Choose เป็นฟังก์ชันที่มีการคืนค่าออกมาเป็นตัวเลือก (choice) ตามดัชนี (Index)  หรือ เลขลำดับ ที่กำหนด

รูปแบบของฟังก์ชัน Choose จาก Website ของ Microsoft

Syntax : Choose( index , choice-1 [, choice-2] ... [, choice-n] )

 

ArgumentDescription
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")

ตัวอย่างการใช้ฟังก์ชัน Choose  ให้สังเกต เลข Index ว่า ตรงกับ ลำดับของตัวเลือกที่คืนค่าออกมา

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

จากรูปข้างล่าง เป็น ตัวอย่างการใช้ฟังก์ชัน Choose ใน Query ด้วย Expression Builder 

ตัวอย่างการใช้ฟังก์ชัน Choose ใน Query ด้วย Expression Builder

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

ผลลัพธ์การใช้ฟังก์ชัน Choose ใน Query

ถ้าเปลี่ยนจากเลข 3 เป็น เลข 10

Choose(10,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

ผลลัพธ์ที่ได้จะเป็น Oct ค่ะ
 
พอมองภาพออกแล้วใช่ไหมคะว่า ฟังก์ชัน Choose ใช้งานอย่างไร

ถ้าเราจะเปลี่ยนจากการระบุค่าคงที่ที่เป็นตัวเลขตรง ๆ  เป็น Expression  อื่นๆ ดูบ้างก็ได้นะคะ ลองดูตัวอย่างนี้ค่ะ

ตัวอย่างผลลัพธ์การประยุกต์ใช้ฟังก์ชัน Choose

เนื่องจากมีการตั้งค่าให้ 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 ก็ไม่ซับซ้อนเกินไปที่เราจะนำไปใช้ค่ะ