AutoExec宏Run Code动作无法找到Opening函数,更换模块仍未解决
解决AutoExec宏无法找到Opening函数的问题
- 确认模块类型:必须将函数放在标准模块中,窗体/报表的类模块里的Public函数无法被宏直接调用,因为类模块函数需要依附对象实例。
- 避免名称冲突:存放函数的模块名称不能和函数名
Opening重复,比如把模块改名为modStartup,否则Access无法区分模块与函数。 - 检查模块声明:模块顶部不能存在
Option Private Module语句,这条声明会限制模块内的Public函数被外部宏访问。 - 核对宏的调用设置:Run Code动作里的函数名需写为
Opening(),不要添加模块前缀或引号,错误的格式会导致函数无法被识别。 - 修复数据库关联:若上述配置都正确仍报错,尝试使用Access的「压缩和修复数据库」功能(路径:文件→信息→压缩和修复数据库),数据库损坏可能导致宏与模块的关联失效。
- 测试函数独立性:打开VBA编辑器,在立即窗口输入
?Opening()回车,若能正常执行隐藏窗口和功能区的操作,说明函数本身无问题,问题集中在宏的调用或数据库配置上。
你的函数代码本身逻辑正确,可保留:
Public Function Opening() DoCmd.RunCommand acCmdWindowHide DoCmd.ShowToolbar "Ribbon", acToolbarNo End Function
内容的提问来源于stack exchange,提问作者Chester
相关产品推荐
相关产品推荐

