当我在Excel VBA中创建对象时,我有Microsoft Access Runtime不是完整版的Microsoft Access
Set objAccess = CreateObject("Access.Application")
那时我正在
错误429" ActiveX组件无法创建对象。"
建议如何创建对象?
答案 0 :(得分:3)
我不确定这些信息是否仍然与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"
获得正确的回报。)