【发布时间】:2009-05-08 00:48:57
【问题描述】:
我无法从 .Net(VB 或 C#)自动化 Access 2007。我想要做的就是从 .Net 调用 Access 模块中的子例程。
最终,我必须让它在 VB 中工作,但我一直在尝试两者,结果相同。
下面是我的 VB 测试表单中的代码。它导致错误:
System.Runtime.InteropServices.COMException (0x800A9D9F):来自 HRESULT 的异常:Microsoft.Office.Interop.Access.ApplicationClass.Run 的 0x800A9D9F(字符串过程,对象& Arg1,对象 &Arg2,...,对象 &Arg30)
我在 Access 中的测试 Sub 名为“MyTest”,并且是名为“Module1”的模块。它所做的只是在表中插入一条记录。它在 Access 中运行良好。我尝试了“Module1.MyTest”、“MyTest()”、“Call MyTest”等的各种排列,但没有成功。
我在自动化 Access(和其他 Office 应用程序)的网络上找到了一些其他示例,但似乎无法正常工作。如果有人能指出一个可行的例子,我将不胜感激。
示例代码:
Imports Access = Microsoft.Office.Interop.Access
Imports Microsoft.Office.Core
Public Class FormTest
Private Sub cmdTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTest.Click
Dim aa As New Access.Application()
Try
aa.OpenCurrentDatabase("c:\Test.accdb")
aa.Run("MyTest")
Catch ex As Exception
MsgBox(ex.ToString())
Finally
If aa IsNot Nothing Then
aa.Quit(Access.AcQuitOption.acQuitSaveNone)
End If
Me.Close()
End Try
End Sub
End Class
【问题讨论】:
标签: .net ms-access automation