การใช้ฐานข้อมูล Access มีสองส่วนโดยประมาณ ส่วนแรกคือการคำนวณและการประมวลผลข้อมูล ตารางข้อมูล และคิวรีทั้งหมดจะใช้ในการประมวลผลข้อมูลให้เสร็จสิ้น สำหรับการอ้างอิง ประการที่สองคือการผลิตส่วนต่อประสานกับผู้ใช้ (UI) แม้ว่าส่วนนี้จะไม่ใช่ส่วนหลัก แต่ก็มีความสำคัญมากเช่นกัน เนื่องจากสำหรับผู้ใช้ทั่วไป พวกเขาไม่ทราบวิธีสร้างแบบสอบถามและงานอื่นๆ เพียงคลิกปุ่มเพื่อรับข้อมูลที่จำเป็น ดังนั้นเราจึงจำเป็นต้องสร้างแบบฟอร์มจำนวนมากเพื่อเป็นแนวทางให้ผู้ใช้ดำเนินการฐานข้อมูล . เพื่อรับข้อมูลที่ต้องการ ดังนั้นสำหรับระบบแอปพลิเคชันฐานข้อมูลที่ดี ทั้งสองส่วนนี้จึงเป็นสิ่งที่ขาดไม่ได้
ในกระบวนการสร้างแบบฟอร์มและแนะนำผู้ใช้ให้ใช้งาน เรามักพบปัญหานี้ บางครั้งผู้ใช้กดปุ่มคำสั่ง และเมื่อโปรแกรมเริ่มรันโปรแกรมที่เกี่ยวข้องกับปุ่มนั้น เนื่องจากมีงานคำนวณจำนวนมาก ดังนั้นคอมพิวเตอร์จะทำงานช้าลงและหน้าจอจะไม่ตอบสนองใน Access หากใช้เวลานานกว่านี้เล็กน้อยจะทำให้คนรู้สึกว่าเครื่องพัง? ดังนั้นในกรณีนี้จะดีกว่าถ้ามีกล่องแจ้งให้ผู้ใช้ทราบว่าคอมพิวเตอร์กำลังทำอะไรอยู่ในขณะนี้ นอกจากนี้ยังทำให้เวลารู้สึกสั้นลงได้เนื่องจากการรอโดยไม่มีการเปลี่ยนแปลงใด ๆ จะทำให้ผู้คนรู้สึกได้ อีกต่อไป!
เพื่อให้หน้าต่างแสดงข้อมูลทันใจนี้สมบูรณ์ สิ่งแรกที่เราคิดคือการเพิ่มโค้ดบางส่วนลงในบางส่วนของโปรแกรม รหัสนี้จะเปิดหน้าต่างใหม่พร้อมข้อความที่เกี่ยวข้องในหน้าต่าง เช่น "โปรแกรมกำลังทำงาน โปรดรอสักครู่..." "เดี๋ยวก่อน รหัสนั้นง่ายมากเช่นกัน ใน Access เป็นเช่นนั้น
-
DoCmd.OpenForm "รอ"
Forms!Wait!lblwait.Caption = "โปรแกรมกำลังทำงาน กรุณารอสักครู่..."
-
ในหมู่พวกเขา wait คือชื่อของแบบฟอร์ม (Form) lblwait คือชื่อของตัวควบคุมป้ายกำกับ (Label) ในแบบฟอร์ม เมื่อโปรแกรมรันไปที่จุดไข่ปลา หน้าต่างรอจะถูกเปิดขึ้น จากนั้นชื่อของ การควบคุมฉลากจะเปลี่ยนเป็น "The program is running" Running, please wait...".
แต่เมื่อคุณรันโค้ดโปรแกรมนี้จริง ๆ คุณจะพบว่าเอฟเฟกต์นั้นไม่ใช่สิ่งที่คุณจินตนาการไว้ หน้าต่างรอจะปรากฏขึ้น แต่เป็นเพียงพื้นที่สีขาวที่ไม่มีข้อความใด ๆ ในตอนแรกคุณอาจคิดว่าคอมพิวเตอร์ของคุณกำลังทำงานอยู่ ช้าและหน้าจอมันไม่ทำงานแต่ถึงแม้คุณจะสลับไปใช้คอมพิวเตอร์ที่เร็วที่สุดเพื่อรันมันผลลัพธ์ก็ยังเป็นเช่นนี้ไม่หดหู่ใช่ไหม? -
ในเวลานี้ ถึงคราวของวิธีการ Repaint ที่จะแสดงความสามารถของตนแล้ว แก้ไขโค้ดด้านบนเล็กน้อย ดังนี้:
-
DoCmd.OpenForm "รอ"
Forms!Wait!lblwait.Caption = "โปรแกรมกำลังทำงาน กรุณารอสักครู่..."
แบบฟอร์ม!รอสักครู่ทาสีใหม่
-
เรียกใช้อีกครั้งแล้วคุณจะเห็นหน้าต่างแสดงตามปกติและแจ้ง
หลังจากนั้นคุณสามารถเพิ่มโค้ดนี้ได้ทุกที่ที่ต้องการ เปลี่ยนข้อความ และคุณสามารถแจ้งให้ผู้ใช้ทราบแบบเรียลไทม์ว่าโปรแกรมกำลังทำอะไรในขณะที่โปรแกรมกำลังทำงานอยู่!
เหตุผลนั้นง่ายมาก นั่นคือในระหว่างการรันโปรแกรม การแสดงผลหน้าจอจะไม่ได้รับการอัปเดตแบบเรียลไทม์ ซึ่งจะทำให้การทำงานของโปรแกรมเร็วขึ้น ดังนั้น เมื่อมีการออกแบบการคำนวณจำนวนมาก โปรแกรมจะไม่มีการอัพเดตการแสดงผลใด ๆ ราวกับว่ามันขัดข้อง แต่การเพิ่มวิธีการ Repaint จะบังคับให้อัปเดตการแสดงผลหน้าจอทำให้เราสามารถดูสถานะการทำงานของโปรแกรมได้แบบไดนามิก