这不起作用:
Sub X()
Dim A As Access.Application
Set A = CreateObject("Access.Application")
'Do Stuff
End Sub
然而,这可行:
Sub X()
Dim A As Object
Set A = CreateObject("Access.Application")
'Do Stuff
End Sub
我知道他们几乎做了同样的事情,但任何人都可以告诉我如何制作access.application对象吗?我应该补充一点,我有Crystal Reports 11,在我上次升级时,它可能有'未注册'的一些VBA DLL。
(2009-06-29更新)
在回答前两个问题时,我正在使用MS Access VBA来控制其他一些Access& Excel文件。由于这只能在我的本地机器上运行,我可以保证始终安装Access。我还引用了“Microsoft Access 11.0对象库”(MSACC.OLB)。
我知道有解决方法,即在编码时使用早期绑定,并在运行时切换到后期绑定,我只是不明白为什么早期绑定方法在我的机器上根本不起作用(当然,代码在另一台具有Access的机器上正常工作。
答案 0 :(得分:5)
如果您在Access中编写此代码,则无需执行此操作,因为Application对象已经存在。如果您在Excel或Word中编写此文件,则需要添加对Access Library的引用。转到工具/参考并查找Microsoft Access XX对象库
答案 1 :(得分:1)
你好,你说的代码不起作用是合法的语法。你遇到了什么错误?什么时候发生?你知道它发生的代码行吗?
正如旁注所示,这也是合法的语法:
Dim accApp As Access.Application
Set accApp = New Access.Application
但要明确的是,CreateObject语法是合法的,而不是问题的根源。
答案 2 :(得分:1)
从MS Access的“帮助”菜单中尝试“检测并修复”。对我来说很完美。