如何在excelvba中创建MS-Access运行时对象

如何在excelvba中创建MS-Access运行时对象,excel,vba,Excel,Vba,在Excel VBA中创建对象时,我的Microsoft Access运行时不是Microsoft Access的完整版本 Set objAccess = CreateObject("Access.Application") 那一次我越来越紧张了 错误429“ActiveX组件无法创建对象。” 建议如何创建对象?我不确定此信息是否仍然与OP相关,但它可能会帮助其他正在寻找解决方案的人(如我): 如果简单路线 Dim AccApp as Object Set AccApp = CreateObj

在Excel VBA中创建对象时,我的Microsoft Access运行时不是Microsoft Access的完整版本

Set objAccess = CreateObject("Access.Application")
那一次我越来越紧张了

错误429“ActiveX组件无法创建对象。”


建议如何创建对象?

我不确定此信息是否仍然与OP相关,但它可能会帮助其他正在寻找解决方案的人(如我):

如果简单路线

Dim AccApp as Object
Set AccApp = CreateObject("Access.Application")
不起作用(例如,因为只有Access的运行时版本可用),以下路由似乎起作用:

Const PathToDBFile as String = "W:\here\Your\DB\lies.accdb"
Const PathToAccess as String = "C:\Program files\YourOfficeVersion\MSACCESS.EXE"
Dim ShellCmd as String
' Piece together the parts (yes, the quotes are necessary in case there are spaces in the paths) 
ShellCmd = """" & PathToAccess & """ """ & PathToDBFile & """"
' Execute the command in the shell
VBA.Shell ShellCmd
' Now GetObject can return the newly created instance of Access
Dim AccApp as Object
Set objAcc = GetObject(PathToDBFile)


这段代码只是简单地展示了基本步骤。您可能希望确保还没有运行Access的实例。此外,我还没有弄清楚如何在不同的系统上可靠地获得MSAccess.exe的路径。但是当我在一个只安装了运行时版本的系统上进行尝试时,上述方法对我来说是有效的。(我能够从
AccApp.Run“MyFunction”
获得正确的返回)

安装完整的应用程序?你到底想做什么?为什么需要在Excel VBA中访问应用程序对象?