是否可以使用 Microsoft Access 中的 Interop 库以与 Word、Excel 或 PowerPoint 类似的方式使用 C# 创建新宏?在其他应用程序中,您可以访问Microsoft.Vbe.Interop._VBComponent
,它允许您通过 、 或 类注入新Document
的Worksheet
宏Presentation
。看起来 Access 没有类似的东西。Access 有一个AllMacros
列表,但它似乎是只读的。我知道如何在项目中执行宏,但我需要能够动态添加宏。我将不胜感激任何可以指出我正确方向的人。
问问题
2381 次
2 回答
6
由于HK1的回答,我能够完全按照我的需要去做。我想发布我的代码,因为几乎没有关于如何执行此操作的信息。我会将 HK1 的帖子标记为答案,因为他是导致我这样做的原因。
通过 Interop 以编程方式将 VB 模块添加到 MS-Access
try
{
Microsoft.Office.Interop.Access.Application accessApp = new Microsoft.Office.Interop.Access.Application();
accessApp.Visible = true;
accessApp.OpenCurrentDatabase(filePath);
// Get the active VBProject item
VBProject project = accessApp.VBE.VBProjects.Item(1);
VBComponent module = project.VBComponents.Add(vbext_ComponentType.vbext_ct_StdModule);
module.CodeModule.AddFromString(script);
}
catch (Exception ex)
{
// Trust or the VBA Project Module has not been enabled.
}
于 2012-10-23T18:18:03.083 回答
2
取自 answers.microsoft.com:
Access 中的宏是一种特殊的数据库对象,这与其他 Office 应用程序中的宏只是不带参数的 VBA 过程不同。据我所知,您无法以编程方式创建 Access 宏。 -HansV MVP(2011 年 4 月 27 日)
在同一个问题上发布了另一个答案,说您可以使用 VB 可扩展性库创建新的代码/VBA 对象。
于 2012-10-23T00:15:00.413 回答