Microsoft Access 改善了模块加载和编译的性能,使代码能够以更快的速度编译并执行。
在 Microsoft Access 2002 或更高版本中创建窗体或报表时,窗体或报表并非自动地具有相关模块。当单击工具栏上的“代码” 查看窗体或报表的模块时,模块得以创建。也可以在窗体或报表位于“设计”视图中时,从 Visual Basic 中通过引用窗体的 Module 属性或将 HasModule 属性设为 True (-1) 来创建模块。
HasModule 属性设置表明窗体或报表当前是否带有相关模块。
因为只有必须向窗体或报表模块中添加代码时才会创建模块,所以一个项目只有少数模块需要编译,因而改善了编译的性能。比起含有模块的窗体和报表,不带模块的窗体和报表加载更快。
建议通过使用上述命令,显式地编译项目中的模块,但这并不是必须的。如果模块尚未编译,Microsoft Access 会在运行模块中的过程之前对其进行编译。
当模块被加载并执行时,Microsoft Access 先检查模块是否已经编译。如果尚未编译,Microsoft Access 会在执行其中的程序之前,立即编译模块。编译过程会减慢代码的运行速度,因此在以已编译状态保存的模块中,代码的运行速度较快。
请注意,在 Microsoft Access 95 中,当运行模块中的过程时,所有位于潜在的调用树中的模块都会被加载,虽然在默认情况下,只有在它们所包含的过程被调用时,才对它们进行编译。而在 Microsoft Access 97(或以后版本)中,只根据需要来加载模块,因此许多情况下代码将运行得更快。
通过对模块中的过程进行分组以减少不必要的编译,可以进一步提高执行的性能。应该尽可能地将模块中的过程与它们所调用的其他过程组织在一起,而不是与其他不相关的过程放在一起。