除手动打开MDB外,哪些场景可触发MS Access的AutoExec VBA宏
除手动打开外,触发Access AutoExec宏的场景
除了用户手动双击打开.mdb文件,这些情况也会触发AutoExec宏运行:
- ODBC DSN关联的应用启动Access实例:如果有其他程序(比如Excel、Power BI或者自定义工具)通过指向该数据库的DSN建立连接,当连接需要启动完整的Access实例(不是仅用ODBC驱动后台访问)时,AutoExec就会运行。比如在Excel里用DSN导入Access数据,要是Access实例被初始化了,宏就会触发。
- 代码自动化调用打开数据库:不管是VB脚本、PowerShell,还是另一个Access文件的VBA代码,只要用
OpenCurrentDatabase或者OpenDatabase这类方法打开这个.mdb,默认情况下AutoExec都会自动运行——除非调用时特意加了禁用宏的参数。 - 快捷方式/批处理启动数据库:如果有指向该.mdb的快捷方式,或者批处理文件里写了
msaccess.exe "你的数据库路径.mdb"这种命令,用户点快捷方式或者运行批处理,哪怕没直接碰原文件,也会触发AutoExec。 - 设为Access默认启动数据库:要是这个.mdb被设成了Access启动时自动打开的默认库,用户只要打开Access程序,就会自动加载它,宏也跟着跑了。
- 通过最近文件列表打开:用户在Access的“最近使用的文件”里点这个.mdb,虽然不是双击原文件,但本质也是启动数据库,AutoExec照样触发。
- 合并/导入操作加载数据库:当别的Access数据库要合并、导入这个.mdb里的对象(比如表、查询),如果操作需要完整加载目标库,AutoExec也可能被触发。
内容的提问来源于stack exchange,提问作者MAW74656
相关产品推荐
相关产品推荐

