微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用批处理文件运行MS Access模块​​时出现“找不到对象”错误的原因是什么?

如何解决使用批处理文件运行MS Access模块​​时出现“找不到对象”错误的原因是什么?

我正在使用以下批处理文件打开我的访问数据库,并尝试从数据库内部运行模块(宏)。

批处理文件

@echo off
start "" "C:\Program Files (x86)\Microsoft Office\Office\MSACCESS.EXE" "C:\Users\%Username%\OneDrive - Colony Brands\Desktop\CID FE v3.1.accdb" /x MasterRun

模块(BuildFileAutoRun):

Public Sub MasterRun()
    DoCmd.OpenForm "frmAutoBuild",acnormal,"",acEdit,acnormal
    
Item:     [Forms]![frmAutoBuild]![cboYear] = "2020"
          [Forms]![frmAutoBuild]![cboBrand] = "Ashro"
          [Forms]![frmAutoBuild]![cboSeason] = "S21"
          
Forms!frmAutoBuild.cmdCreate_Click
End Sub

问题是我不断收到 Microsoft Access 和消息框显示的以下错误

Microsoft Access找不到对象“ MasterRun”。
如果“ MasterRun”是新的宏或宏组,请确保已保存并正确键入了其名称

我不确定我缺少什么。任何帮助将不胜感激!

解决方法

命令行开关需要宏对象的名称。 MasterRun不是宏,而是VBA过程。 Access中的宏不是VBA代码(Excel中的宏实际上只是VBA过程)。三种类型的宏:常规,嵌入式,数据。使用功能区“创建”选项卡上的“宏”构建器按钮创建常规宏,嵌入式宏位于表单和报表中,数据宏与表相关联。

宏可以调用VBA函数,而不是Sub过程。因此,要么使用等效的宏命令来完成打开表单并填充控件,要么构建可以被宏调用的功能。

打开数据库时,将自动执行一个名为AutoExec的常规宏-无需在开关中引用。

另一个选项是在数据库选项(或AutoExec宏)中设置的表单后面的代码,这些选项默认在数据库打开时打开-使用表单打开事件在表单打开时运行代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。