宏是多个操作的组合,而操作是ACCESS所定义,无法自定义,所以读者只要在宏设计窗口中选取操作即可;VBA则是Basic形式的程序语言,保存在各个模块(包括窗体及报表)内。就某方面而言,宏及模块可达到相同功能(即同一功能可使用宏或模块),但不是全部,即宏可完成者,只有少数几项在VBA内没有替代方案,这些项目如下:
● 自定义下拉式菜单:也就是使用“AddMenu”宏操作,但只常用在ACCESS早期版本,自ACCESS97以后,自定义菜单多使用“视图”→“工具栏”→“自定义”选项,且操作上较为方便,所以“AddMenu”已是为与旧版兼容而保留的操作。
● AUTOEXEC宏:启动ACCESS时,立即执行的宏,如何在此宏内设定自动打开某一对象或执行指定功能。
● AUTOKEYS宏:定义在现用数据库使用的快捷键。
除以上所述外,其他所有宏可完成的应用,也可使用VBA,使用VBA的灵活度是宏所不及,即大部分的VBA应用都无法使用宏,如宏无法打开另一数据库及进行记录存取的操作,但可使用VBA。
所以要完全发挥ACCESS数据库的功能,仍需使用VBA,宏只能解决部分需求。在尚未对VBA熟悉时,使用宏也未尝不可,且有时使用宏也较为简单,但这只限于宏及VBA均有解决方案时。
◎ 说明:当然VBA较不易学习,可是多数应用又离不开VBA。宏的最大问题是无法变量化,例如OpenForm宏操作菜单打开窗体,就必须明确指定打开那一个窗体,问题是明确指定窗体名称后,此宏的功能就只有一个,无法在不同条件或环境下,打开其他窗体。