如何制作Ms-Access加载项?

时间:2019-03-11 14:25:50

标签: ms-access ms-office office-addins

我搜索了很多文档来为Microsoft Access制作插件,Microsoft Docs Access没有办法制作插件,即使Office开发人员插件的visual studio没有Ms -访问模板,

我可以为Ms-Access添加插件吗?如果有人可以引用此操作的链接?

1 个答案:

答案 0 :(得分:1)

好吧,创建VSTO外接程序会很麻烦,但是如果您只需要在Access中调用+使用一些.net代码,那为什么还要麻烦所有这些工作呢?

只需在.net中创建一个COM对象,然后您就可以轻松地使用+从Access VBA中调用该代码。

因此,创建一个.net类。

将项目强制为x86。 (假设访问权限为x32)

选中[[]框以注册COM互操作。 (这仅在您的开发计算机上是必需的)。

您还需要在组装时选中此框: [x]使程序集COM可见

但是,以上设置是默认设置。因此,实际上只需要一个复选框设置,所有这些工作就可以发挥作用。

现在,只需在.net中创建一个类,像这样说:

Imports System.Runtime.InteropServices

<ClassInterface(ClassInterfaceType.AutoDual)>
Public Class Class1

   Private m_Company As String = ""

   Public Function MyHello()
      MsgBox("Hello world")
   End Function

   Public Property Company As String
     Get
        Return m_Company
     End Get
     Set(value As String)
        m_Company = value
    End Set
  End Property
End Class

在Access中,您现在可以设置对.net类的引用(VBA编辑器中的tools-> references)。

当然,一旦所有这些工作完成,就可以像所有优秀开发人员一样,将代码更改为在VBA中进行后期绑定。

使用上面的类,然后在VBA中,您会看到即使intel-sense也适用于.net类的方法和属性。

因此在VBA中,请注意以下屏幕截图:

enter image description here

请注意所有子功能在VBA中如何作为对象的方法显示。

因此,调用+编写的消耗性.net代码非常容易,并且只需编写很少的FAR代码,然后尝试设置VSTO加载项即可。

实际上,我不仅建议对Access进行上述推荐,还建议对word,Excel等进行推荐。

因此,上面的工作要少得多,然后弄乱工具和设置来创建Office加载项。

最终结果是在.net中使用非常简单的代码,VBA + Access可以使用此类代码。另外的好处是,这样的代码也可以轻松地用于Excel,Word甚至Windows VBS脚本文件中。实际上,FoxPro甚至说Sage 300记帐系统可以直接使用其提供的编程语言来使用您的.net代码。因此,任何支持COM对象(ActiveX)的语言或系统都可以使用上面的简单加载项。

换句话说,您编写和创建的代码现在可以轻松地用于所有Office,而且您不必为每个Office程序连接一个混乱的插件。

因此,要拯救世界贫困和挨饿的孩子,只需在.net中创建简单的类,然后按照上述说明从Office消费它即可。

现在唯一的问题是发行。您必须提供一个来自.net的.dll,并在目标计算机上执行重新加气才能正常工作。但是,这是一个单行批处理文件,并且,如果您使用任何类型的安装程序,则此类安装程序都会通过regasm来执行(注册).net对象。如果您创建了一个真正的Office加载项,则仍然需要构建和设置安装程序–与注册.net对象的非常简单的regasm命令相比,该安装程序可能需要大量工作。

如果您真的想简化此过程,则可以加载.net,甚至不必注册.net对象。

最终,以上超级简单的类示例在Access + VBA中运行良好,并且工作量少而又麻烦,然后您将需要一些与办公室一起使用的VSTO加载项模板。