【发布时间】:2016-04-26 13:13:09
【问题描述】:
我已经从 win 表单开始涉足 MS Office 产品的自动化,但遇到了困难。正如标题所示,我在 VS2010 (.NET 4.0) 中使用 C#,连接到 Access 2013 后端。
这是我的问题,我正在尝试在我的程序的后端数据库中运行一个模块。我在 Stack 上看到了许多帖子,并阅读了 MSDN 上的一些文章,并提出了以下内容:
using Access = Microsoft.Office.Interop.Access;
void RunAccessModule()
{
try
{
Access.Application oAccess = new Access.Application();
oAccess.OpenCurrentDatabase("H:\\MyConnection\\UtilityBackEnd.accdb", false);
oAccess.Run("MakeProjectTable"); //Name of procedure in module
oAccess.CloseCurrentDatabase();
}
catch (Exception ex)
{
ex.Message;
}
}
当我运行我的程序时,我收到一条错误消息:"Microsoft Access cannot find the procedure 'MakeProjectTable.'" 我尝试更具体地使用运行命令(即oAccess.Run("Module1.MakeProjectTable");),但我收到了类似的错误消息(cannot find 'Module1.MakeProjectTable.'。任何人都可以看到我目前的问题,和/或建议一个?
【问题讨论】:
-
如文档所述,Run() 方法只能调用 VBA 代码。请改用 DoCmd。
-
MakeProjectTable是您的UtilityBackEnd.accdb数据库中标准模块中的Public过程吗? -
不,我现在就改
-
更改后出现错误。
-
为澄清起见,声明行现在为:
Public Sub MakeProjectTable()
标签: c# .net winforms automation ms-access-2013