c# - 通过 Interop 为 Microsoft Access 创建宏

标签 c# ms-access macros office-interop

是否可以使用 Microsoft Access 中的 Interop 库以类似于 Word、Excel 或 PowerPoint 的方式使用 C# 创建新宏?在其他应用程序中,您可以 Access Microsoft.Vbe.Interop._VBComponent,它允许您通过 DocumentWorksheet 注入(inject)新的宏> 或 Presentation 类。看起来 Access 没有与此类似的东西。 Access 有一个 AllMacros 列表,但它似乎是只读的。我知道如何在项目中执行宏,但我需要能够动态添加宏。如果有人能为我指明正确的方向,我将不胜感激。

最佳答案

由于 HK1 的回答,我能够完全按照我的需要去做。我想发布我的代码,因为几乎没有关于如何执行此操作的信息。我会将 HK1 的帖子标记为答案,因为他是我的导火索。

通过互操作以编程方式将 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.
}

关于c# - 通过 Interop 为 Microsoft Access 创建宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020923/

相关文章:

macros - 如何使用with语法宏

c# - SQL Server CE Code First 迁移问题

c# - 游戏编程和事件处理程序

c - C include guards到底做了什么?

mysql - 数据库优势? Access、MySQL、msSQL 还是其他?

vba - 将焦点设置在任何对象上

macros - Julia 中宏生成宏中的转义表达式

C#/VB.net 和点击 javascript 不起作用

c# - jquery AJAX 和 web 服务使用 onchange 作为下拉列表

c# - 查询 Access DB 时条件表达式中的数据类型不匹配