Microsoft Access 改善了模塊加載和編譯的性能,使代碼能夠以更快的速度編譯并執(zhí)行。
在 Microsoft Access 2002 或更高版本中創(chuàng)建窗體或報表時,窗體或報表并非自動地具有相關(guān)模塊。當(dāng)單擊工具欄上的“代碼” 查看窗體或報表的模塊時,模塊得以創(chuàng)建。也可以在窗體或報表位于“設(shè)計(jì)”視圖中時,從 Visual Basic 中通過引用窗體的 Module 屬性或?qū)?HasModule 屬性設(shè)為 True (-1) 來創(chuàng)建模塊。
HasModule 屬性設(shè)置表明窗體或報表當(dāng)前是否帶有相關(guān)模塊。
因?yàn)橹挥斜仨毾虼绑w或報表模塊中添加代碼時才會創(chuàng)建模塊,所以一個項(xiàng)目只有少數(shù)模塊需要編譯,因而改善了編譯的性能。比起含有模塊的窗體和報表,不帶模塊的窗體和報表加載更快。
建議通過使用上述命令,顯式地編譯項(xiàng)目中的模塊,但這并不是必須的。如果模塊尚未編譯,Microsoft Access 會在運(yùn)行模塊中的過程之前對其進(jìn)行編譯。
當(dāng)模塊被加載并執(zhí)行時,Microsoft Access 先檢查模塊是否已經(jīng)編譯。如果尚未編譯,Microsoft Access 會在執(zhí)行其中的程序之前,立即編譯模塊。編譯過程會減慢代碼的運(yùn)行速度,因此在以已編譯狀態(tài)保存的模塊中,代碼的運(yùn)行速度較快。
請注意,在 Microsoft Access 95 中,當(dāng)運(yùn)行模塊中的過程時,所有位于潛在的調(diào)用樹中的模塊都會被加載,雖然在默認(rèn)情況下,只有在它們所包含的過程被調(diào)用時,才對它們進(jìn)行編譯。而在 Microsoft Access 97(或以后版本)中,只根據(jù)需要來加載模塊,因此許多情況下代碼將運(yùn)行得更快。
通過對模塊中的過程進(jìn)行分組以減少不必要的編譯,可以進(jìn)一步提高執(zhí)行的性能。應(yīng)該盡可能地將模塊中的過程與它們所調(diào)用的其他過程組織在一起,而不是與其他不相關(guān)的過程放在一起。