尽管一些用户发现宏易于使用,但使用它们仍有一些主要限制。 尽管您可以使用宏来执行任务,但是对于何时以及如何执行这些任务的控制有限,并且设置条件可能很困难。 但是,还有一个更强烈的理由不使用宏,那就是当在宏的执行过程中引发错误时,很难捕获错误,因此很难调试。

一些简单的VBA编程技能可以替代宏中可用的所有功能,并且随着您变得更加熟练,可以执行更多的任务,而宏则无法实现。 逐项列出,使用VBA而不是宏的优点如下:


VBA提供了比宏更多的功能


使用VBA可以对您要执行的任务施加更复杂的导航和条件。 您可以编写宏无法实现的功能。


VBA允许您捕获和处理错误


由于无法预料的情况,所有任务都可能产生意外错误。 重要的是要准确地识别并捕获这些错误的发生时间和地点,以识别问题并处理后果。 使用VBA时这很简单。


VBA比宏执行得更快


尽管使用简单宏可能不会注意到速度上的差异,但是当使用VBA代替复杂宏时会发现很大的差异。


使用VBA使您的数据库更易于维护


宏不会以它们设计为操作的形式保存,而是作为单独的对象保存,而您的VBA代码则以其所属的形式保存。 如果您尝试更改表单上的功能,则显然不需要更改哪个宏,而很容易找到合适的VBA事件进行更改。 VBA也更易于阅读和遵循。


使用VBA可以连接到其他应用程序


这是一种称为自动化的技术。 使用VBA,可以在仍处于Access状态的情况下直接在Word和Excel等应用程序上工作。 您可以通过编程方式控制这些应用程序。


使用VBA可以使用公共变量


通过在模块中声明变量,您可以在窗体或数据库中公开声明变量。 这意味着您可以将值传递给这些变量,并使其保留该值以用于各种对象(报表,表单等)。

一些程序员仍将宏用于AutoExec之类的东西,而AutoExec在VBA中没有直接可比的功能。 打开数据库后,将执行此宏命令。 但是,可以将其替换为“启动”表单中的代码。 这是设置为在打开数据库时打开的表单(请参阅工具/启动...)。


通过访问,您可以将现有的宏转换为VBA。


在宏选项卡中,选择要转换的宏。 然后选择文件/另存为...。出现“另存为...”对话框时,请更改


从宏模块。

在下一个对话框中,勾选“添加错误处理”和“包含宏注释”。 Access将打开“ Visual Basic编辑器”窗口,并将宏转换为VBA代码。 完成后,它将提示一个消息框,只需单击“确定”即可。

这是开始学习VBA的有用方法。 您可以看到Access VBA如何编码您的宏。