使用批处理文件运行MS访问模块时,对象未找到错误的原因是什么



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

批处理文件:

@echo off
start "" "C:Program Files (x86)Microsoft OfficeOfficeMSACCESS.EXE" "C:Users%Username%OneDrive - Colony BrandsDesktopCID 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宏(中设置的代码隐藏窗体,默认情况下在数据库打开时打开-使用窗体打开事件在窗体打开时运行代码。

最新更新