ในกรณีที่มีกล่องข้อความ (text box) ให้เติมข้อความ แต่ไม่ต้องการให้คนพิมพ์เข้าโดยตรง ให้คลิกปุ่มเพื่อเลือกวันที่ จากปฏิทิน เท่านั้น เมือผู้ใช้กดแป้นที่กล่องข้อความเพื่อจะพิมพ์ข้อความ ก็ให้แสดง Message และยกเลิกตัวอักษรที่เพิ่งพิมพ์ไปในกล่องข้อความ
ให้เลือกเขียน event procedure ที่ on keypress ของกล่องข้อความนั้น (ไม่ใช้ on keyDown เพราะ on keypress จะเกิดเมื่อกดแป้นและปล่อย ภายในเวลาประมาณ 500 ms แต่ถ้ากดค้างไว้จะเกิด on keyDown event)
การยกเลิก keyPress event ไม่สามารถทำได้ใน event procedure ต้องสร้าง macro และเลือก cancelEvent ใน Macro ที่สร้างขึ้น จากนั้น จึงมาเรียกใช้ใน Event procedure อีกครั้งหนึ่ง
ตัวอย่าง
สมมตว่า text box ชื่อ txtCalendar บนฟอร์ม frmMyForm และไม่ต้องการให้พิมพ์ ถ้ากดแป้นให้มี Message ขึ้น และให้ยกเลิกตัวอักษรใด ๆ ที่พิมพ์ลงไป ทำดังนี้
1. สร้าง Macro โดยไปที่ Objects Macro > New
2. ที่ Action เลือก CancelEvent และปิด Macro โดยตั้งชื่อ เช่น myCancelEvent
3. กลับมาที่ฟอร์ม frmMyForm และคลิกที่ txtCalendar และเปิด property
4. เลือก Event และเลือก on keypress และสร้าง Code ดังนี้
Private Sub txtCalendar_KeyPress(KeyAscii As Integer)
MsgBox "กรุณาใช้ปุ่มเลือกวันที่", vbInformation, "โปรแกรมธนาคารโรงเรียน"
DoCmd.RunMacro "myCancelEvent"
End Sub