Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用批处理文件运行MS access module时出现“找不到对象”错误的原因是什么?_Vba_Ms Access_Batch File - Fatal编程技术网

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

Vba 使用批处理文件运行MS access module时出现“找不到对象”错误的原因是什么?,vba,ms-access,batch-file,Vba,Ms Access,Batch File,我正在使用以下批处理文件打开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 模块(Bu

我正在使用以下批处理文件打开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):

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

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


我不确定我错过了什么。任何帮助都将不胜感激

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

宏可以调用VBA函数,而不是子过程。所以,要么使用等效的宏命令来完成打开窗体和填充控件,要么构建一个可由宏调用的函数

当数据库打开时,名为AutoExec的通用宏将自动执行-无需在开关中引用


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

MasterRun不是宏,它是VBA过程。如果命令行开关需要宏,则生成宏。Access中的宏与Excel不同,不是VBA代码。对不起,我明白你的意思。作为VBA过程编写的内容我一直在调用宏,但Access有自己的“宏”生成器,这就是我要运行的批处理文件设置。好的,我需要找出如何通过批处理文件运行VBA sub。您可以使用名为
AutoExec
的宏启动VBA函数。谢谢大家的帮助。为了让它工作,我在Access中创建了一个宏,然后运行我希望它运行的代码。bat文件现在可以工作了。我感谢你的帮助,今天我也学到了一些东西:)
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