編譯性能的改善

此頁(yè)沒(méi)有內(nèi)容條目
內(nèi)容

expandtri全部顯示

Microsoft Access 改善了模塊加載和編譯的性能,使代碼能夠以更快的速度編譯并執(zhí)行。

根據(jù)需要?jiǎng)?chuàng)建窗體和報(bào)表模塊

在 Microsoft Access 2002 或更高版本中創(chuàng)建窗體或報(bào)表時(shí),窗體或報(bào)表并非自動(dòng)地具有相關(guān)模塊。當(dāng)單擊工具欄上的“代碼” 查看窗體或報(bào)表的模塊時(shí),模塊得以創(chuàng)建。也可以在窗體或報(bào)表位于“設(shè)計(jì)”視圖中時(shí),從 Visual Basic 中通過(guò)引用窗體的 Module 屬性或?qū)?HasModule 屬性設(shè)為 True (-1) 來(lái)創(chuàng)建模塊。

HasModule 屬性設(shè)置表明窗體或報(bào)表當(dāng)前是否帶有相關(guān)模塊。

因?yàn)橹挥斜仨毾虼绑w或報(bào)表模塊中添加代碼時(shí)才會(huì)創(chuàng)建模塊,所以一個(gè)項(xiàng)目只有少數(shù)模塊需要編譯,因而改善了編譯的性能。比起含有模塊的窗體和報(bào)表,不帶模塊的窗體和報(bào)表加載更快。

根據(jù)需要進(jìn)行編譯

建議通過(guò)使用上述命令,顯式地編譯項(xiàng)目中的模塊,但這并不是必須的。如果模塊尚未編譯,Microsoft Access 會(huì)在運(yùn)行模塊中的過(guò)程之前對(duì)其進(jìn)行編譯。

當(dāng)模塊被加載并執(zhí)行時(shí),Microsoft Access 先檢查模塊是否已經(jīng)編譯。如果尚未編譯,Microsoft Access 會(huì)在執(zhí)行其中的程序之前,立即編譯模塊。編譯過(guò)程會(huì)減慢代碼的運(yùn)行速度,因此在以已編譯狀態(tài)保存的模塊中,代碼的運(yùn)行速度較快。

請(qǐng)注意,在 Microsoft Access 95 中,當(dāng)運(yùn)行模塊中的過(guò)程時(shí),所有位于潛在的調(diào)用樹(shù)中的模塊都會(huì)被加載,雖然在默認(rèn)情況下,只有在它們所包含的過(guò)程被調(diào)用時(shí),才對(duì)它們進(jìn)行編譯。而在 Microsoft Access 97(或以后版本)中,只根據(jù)需要來(lái)加載模塊,因此許多情況下代碼將運(yùn)行得更快。

通過(guò)對(duì)模塊中的過(guò)程進(jìn)行分組以減少不必要的編譯,可以進(jìn)一步提高執(zhí)行的性能。應(yīng)該盡可能地將模塊中的過(guò)程與它們所調(diào)用的其他過(guò)程組織在一起,而不是與其他不相關(guān)的過(guò)程放在一起。