从 VB.NET 调用访问宏问题
Posted
技术标签:
【中文标题】从 VB.NET 调用访问宏问题【英文标题】:Calling Access Macro from VB.NET problems 【发布时间】:2011-03-20 01:25:17 【问题描述】:我像这样从 vb.net 调用 Access 宏:
Acc.DoCmd.RunMacro("Macro1")
Access 中的宏有许多 OpenQuery 和 Msgbox,最后有一条消息说“数据完成”。
当我从 vb.net 执行宏时,它会显示数据完成消息,然后完成。但是,当我分析表格以查看是否附加了数据时,它没有。
当我在 Access 中运行相同的宏时,它运行良好。它确实显示了许多消息,例如“您将要运行将修改查询中的数据的附加查询”,我点击是并且确实需要更长的时间,但它确实做到了。 在 VB.NET 中,我得到的唯一消息是最终的消息框。
我也试过了:
Acc.SetOption("Confirm Action Queries", 0)
Acc.SetOption("Confirm Document Deletions", 0)
Acc.SetOption("Confirm Record Changes", 0)
在从 VB.NET 中执行宏之前,但无济于事。还是一样。
有办法解决吗?
编辑:我的 Access DB 是 mdb 文件
【问题讨论】:
这看起来是一种糟糕的做事方式。为什么不直接运行 SQL 命令,而不是使用自动化 Access? 【参考方案1】:我认为问题在于宏中的 UI 消息: 它确实显示了许多消息,例如“您将要运行将修改查询中的数据的附加查询”,我点击是
Access 中有一个选项可以禁止这些确认查询,您需要在 .mdb 文件中禁止它们。看起来试图从 VB 中抑制它们是行不通的。
【讨论】:
以上是关于从 VB.NET 调用访问宏问题的主要内容,如果未能解决你的问题,请参考以下文章
如何实例化一个 vba 类并从 vb.net 调用一个方法?
从 Visual Studio 2010 (VB.NET) 读取访问查询
如何从 vb.net 中的 aspx.vb 页面调用 webmethod