我有一个用VB.net编写的桌面应用程序,它在访问中运行宏。最近我们从办公室2010升级到办公室365.现在,当我运行此应用程序时,我收到此错误:
出现异常 Error Image
无法加载文件或程序集' Microsoft.Office.Interop.Acces.Dao,Version = 15.0.0.0 ...'或其中一个依赖'
以下是导致异常的代码:
If _accessApp Is Nothing Then
_accessApp = New Application
End If
Try
If JobFolderPath.Length <= 0 Or JobFolderPath Is Nothing Then
Exit Sub
End If
If _accessApp.CurrentDb() Is Nothing Then
_accessApp.OpenCurrentDatabase(JobFolderPath & "somedb.mdb", False)
_accessApp.Run("SomeProcess")
Else
_accessApp.Run("SomeProcess")
End If
_accessApp.Quit(AcQuitOption.acQuitSaveNone)
Catch ex As Exception
Finally
_accessApp = Nothing
End Try
我甚至在项目的参考文献中包括了Interop.Access.Dao verion 15 dll。不确定这种运行宏的方式在访问16中是否已经过时。如果是这样,这样做的正确方法是什么?
提前致谢。
答案 0 :(得分:0)
该错误还表示&#34;或其中一个依赖项&#34;,从下面的链接安装互操作。
https://www.nuget.org/packages/Microsoft.Office.Interop.Excel/15.0.4795.1000
点击右边的#34;手动下载...
答案 1 :(得分:0)
不是您问题的答案,但可以在没有late binding的访问引用的情况下运行宏:
Dim accObj = GetObject(JobFolderPath & "somedb.mdb") ' opens the file if not already open
accObj.Application.Run("SomeProcess") ' the .Application part might not be needed
accObj.Application.Quit(2) ' AcQuitOption.acQuitSaveNone = 2
或command line switches(也未经过测试):
Process.Start(JobFolderPath & "somedb.mdb" "/x SomeProcess")
答案 2 :(得分:0)
最后,我能够通过安装&#39; microsoft office 16.0 access数据库引擎&#39;(32位版本)并将所需的dll添加为COM引用而不是正常的dll引用来修复它。