การใส่ Calendar ที่ TextBox ใน Microsoft Access

การใส่ Calendar ที่ TextBox ใน Microsoft Access
ถ้าใครเคยพัฒนาโปรแกรม โดยใช้ MS Access ตั้งแต่ Version 2003 ลงไป จะทราบว่า ถ้าเราต้องการใส่ปฏิทิน (Calendar) เพื่อให้เลือกวันที่ได้ เราจะต้องใช้ ComboBox Control และใช้ Calendar Control ควบคู่กัน ทั้งนี้ถ้าหากใครใช้ MS Access Version 2003 อยู่ สามารถดูวิธีใส่ Calendar ได้ที่ URL นี้ค่ะ https://www.fontstuff.com/access/acctut09.htm แต่สำหรับ MS Access ตั้งแต่ Version 2007 เป็นต้นไป เราสามารถใส่ปฏิทินได้ใน Control TextBox ได้เลย ซึ่งในบทความนี้ จะแสดงให้เห็นวิธีการใส่ปฏิทินที่ TextBox ทั้งในกรณีที่ TextBox เป็น Bound Control และ Unbound Control ค่ะ กรณีที่ TextBox เป็น Bound Control ผูกกับฟิลด์ที่มี Datatype Date/Time ตามตัวอย่างจะเป็นฟิลด์ OrderDate ค่ะ มีการกำหนด Property ของ TextBox ที่สำคัญดังนี้Property Name | Property Value | Description |
Control Source | OrderDate | |
Format | dd-mm-yyyy | หรือปล่อยว่าง ๆ ไม่กำหนดก็ได้ ถ้า Control Source ผูกกับฟิลด์ประเภท DateTime |
Show Date Picker | For dates |
|

เมื่อเราแสดงฟอร์มในมุมมอง Form View จะเห็นว่ามี icon ด้านข้าง TextBox ปรากฏอยู่ และเมื่อคลิกไปที่ icon ดังกล่าว จะเห็นว่า มีปฏิทิน แสดงรายการวันที่ของเดือนปีปัจจุบันปรากฏขึ้นมาให้เลือก ดังรูป

กรณี Bound Control ที่ Control Source ผูกกับฟิลด์ประเภท DateTime อยากให้ผู้อ่าน ลองไม่กำหนด Format ใดๆ ดู จะเห็นว่าอย่างไรปฏิทินก็ยังขึ้นมาให้เลือกอยู่ กรณี ที่ TextBox เป็น unbound control ซึ่งหมายถึง TextBox ดังกล่าวไม่ได้แสดงข้อมูลจากฟิลด์ใดของตารางใดๆ มีการกำหนด Property ของ TextBox ที่สำคัญดังนี้
Property Name | Property Value | Description |
Control Source | ไม่กำหนด | |
Format | dd-mm-yyyy | |
Show Date Picker | For dates |
|

เมื่อเราแสดงฟอร์มในมุมมอง Form View จะเห็นว่ามี icon ข้าง ๆ Textbox ปรากฎอยู่ และเมื่อคลิกไปที่ icon ดังกล่าว จะเห็นว่า มีปฏิทิน แสดงรายการวันที่ของเดือนปีปัจจุบันปรากฏขึ้นมาให้เลือก ดังรูป

แต่ถ้าเราไม่กำหนด Property Format ให้เป็นลักษณะของวันที่ หรือ ไม่กำหนดเลย จะไม่มี icon ให้คลิกเลือกวันที่ในปฏิทินได้ค่ะ แสดงดังรูป

โดยสรุปคือ ถ้า Textbox นั้น เป็น unbound control ต้องกำหนด Format ให้เป็นลักษณะของ DateTime ด้วย ที่ข้าง ๆ TextBox จึงจะมี icon ให้คลิกเพื่อแสดงปฏิทินได้ ถ้าไม่กำหนด Format ให้เป็นลักษณะของ Date Time ถึงแม้จะกำหนด Show Date Picker ให้เป็น For dates ที่ข้าง ๆ TextBox จะไม่มี icon ให้คลิกเพื่อแสดงปฏิทินได้ ส่วน TextBox ที่เป็น bound control ที่ผูกกับฟิดล์ที่ Data Type DateTime นั้น หาก ฟิลด์ที่ Bound อยู่เป็น Data Type datetime ไม่จำเป็นต้องกำหนด format ก็ได้ (ตรง Property Format ปล่อยให้ว่าง ๆ ไว้) แต่ต้องไม่ลืมว่า ต้องกำหนด property Show date picker ให้เป็น For Date ร่วมกันด้วย ที่ข้าง ๆ Textbox จึงจะมี icon ให้คลิกเพื่อแสดงปฏิทินได้ ถ้ากำหนด property Show date picker ให้เป็น Never จะพบว่าไม่สามารถแสดงปฏิทินได้ค่ะ