我应该使用宏还是 VBA 代码?
决定使用宏、VBA,或者两者均使用,主要取决于你计划如何部署或分发数据库。 例如,如果数据库存储在你的计算机上,并且你是唯一的用户;如果你喜欢使用 VBA 代码,则可能会用 VBA 执行大部分编程任务。 但是,如果想要将数据库放置到文件服务器上以便与其他人共享,出于安全考虑,可能需要避免使用 VBA。
应根据以下两个因素来决定使用宏还是 VBA 代码:安全性和所需的功能。 安全性是一个考虑因素,因为 VBA 可以用来创建代码,这些代码可能会危害数据安全性或损害计算机上的文件。 使用其他人创建的数据库时,仅当你知道数据库具有可信来源后,才启用 VBA 代码。 当创建供其他人使用的数据库时,应尽量避免包含需要用户专门向数据库授予信任状态的编程工具。 本节后面部分中会介绍免除用户信任数据库的必要性的通用技术。
为帮助确保数据库的安全性,应尽量使用宏(当你能够使用宏时),并仅将 VBA 编程用于无法使用宏操作执行的操作。 此外,应尽量只使用无需向数据库授予信任状态以便运行的宏操作。 以这种方式限制宏操作的使用,可以让用户确信数据库没有任何可能损害其计算机数据或其他文件的编程。
宏的注意事项
从 Access 2010 版开始,Access 包含许多新的宏操作,用户构建的宏比使用早期版本的 Access 构建的宏更强大。 例如,现在可以通过宏操作来创建并使用全局临时变量,并且可以通过新的错误处理宏操作更轻松地处理错误。 在 Access 的早期版本中,只有通过 VBA 才能使用这些功能。 此外,可以将宏直接嵌入到对象或控件的事件属性中。 嵌入的宏将成为对象或控件的一部分,如果移动或复制,也与对象或控件绑定在一起。
宏可提供处理许多编程任务的简便方法,例如打开和关闭窗体以及运行报表。 可以快捷地将创建的数据库对象(窗体、报表等)绑定在一起,因为只需记住极少的语法。 每个操作的参数均显示在宏生成器中。
宏可提高安全性和易用性,除此之外,还必须使用宏来执行以下任务:
为键分配一个操作或一组操作。 这需要创建一个名为 AutoKeys 的宏组。
在数据库首次打开时,执行一个操作或一系列操作。 这需要创建一个名为 AutoExec 的宏。
注意: AutoExec 宏可在任何其他宏或 VBA 代码之前运行,即使已在“Access 选项”对话框中指定了启动窗体,并已将宏或 VBA 代码附加到该窗体的 OnOpen或 OnLoad 事件中,也是如此。
有关如何构建宏的详细信息,请参阅了解宏部分。
VBA 的注意事项
如果要执行以下任何操作,应使用 VBA 编程而不是宏:
使用内置函数或创建自己的函数 Access 中包含许多内置函数,例如可以计算利息支付的 IPmt 函数。 可使用这些内置函数来执行计算,而无需创建复杂的表达式。 通过使用 VBA 代码,还可创建自己的函数,用于执行超出表达式功能的计算或替代复杂的表达式。 此外,可以使用表达式中创建的函数,将常见操作应用于多个对象。
创建或操作对象 在大多数情况下,你会发现在该对象的设计视图中创建和修改对象最简单。 但是,在某些情况下,你可能想要在代码中操作对象的定义。 使用 VBA,可以操作数据库中除数据库本身之外的所有对象。
执行系统级操作 可以在宏中执行 RunApp 操作,以从 Access (运行其他程序 (如 Microsoft Excel) ,但不能使用宏在 Access 外部执行其他操作。 通过使用 VBA,可以检查计算机上是否存在文件、使用自动化或动态数据交换 (DDE) 与其他基于 Microsoft Windows 的程序(如 Excel)进行通信,以及调用 Windows 动态链接库中的函数 (DLL) 。
一次处理一条记录 可以使用 VBA 逐步执行一组记录,一次一条记录,并针对每条记录执行一项操作。 相比之下,宏一次处理整个记录集。
在Access数据库中,选择使用宏还是VBA主要取决于安全性和功能需求。宏更适合单用户环境和基础操作,而VBA则适用于复杂计算、对象操作和系统级任务。安全方面,宏通常更安全,尤其是在共享数据库时。宏可以执行自动操作,如AutoKeys和AutoExec宏,而VBA能实现更高级的功能,如自定义函数、操作对象和系统级交互。在构建数据库时,应权衡宏和VBA的优缺点,确保用户安全和功能实现。
2万+

被折叠的 条评论
为什么被折叠?



