希望您能够帮助我。我期待使用Visual Studio 2015(带状功能区栏,如VSTO)对我的第一个MS Access加载项进行编程,但是还没有开始,我必须已经停止。Visual Studio提供了几乎所有办公产品的模板,但MS Access却提供。我听说可以“更改”例如Excel VSTO-Template,以便可以将其用于开发MS Access功能区。有谁知道如何处理这个好的指示?您如何开发用于MS Access的VSTO?
谢谢你的帮助
有一个教程。我没有尝试过,不知道它是否有效,但听起来很有希望。
这是多汁的位。
要开始构建Access加载项,我可以创建Word(或InfoPath,PowerPoint,Project或Visio)加载项(Excel或Outlook也可以,但是它们具有其他特定于主机的冗余代码)。
然后,我将在COM选项卡上添加对Microsoft Access Object Library的引用(这还将引入对ADODB和DAO的引用)。它还会拉入Microsoft.Office.Core.dll,它会复制默认情况下已引用的Office.dll-因此,我将删除这两个重复项之一。
在解决方案资源管理器中,我可以选择项目,然后单击“显示所有文件”按钮。这样可以更轻松地打开ThisAddIn.Designer.cs文件-在这里,我可以将Application字段的声明和初始化从MOIWord.Application更改为MOIAccess.Application。请注意,此步骤将更改自动生成的文件:通常不会重新生成该文件,但是如果我破坏了项目,则可能会重新生成(这一点是,如果重新生成该文件,我的手动更改将会丢失):
//internal Microsoft.Office.Interop.Word.Application Application;
internal Microsoft.Office.Interop.Access.Application Application;
//this.Application = this.GetHostItem<Microsoft.Office.Interop.Word.Application>(typeof(Microsoft.Office.Interop.Word.Application), "Application");
this.Application = this.GetHostItem<Microsoft.Office.Interop.Access.Application>(typeof(Microsoft.Office.Interop.Access.Application), "Application");
这就是所有代码更改。现在进行项目更改。有两种方法可以进行这些更改-通过IDE覆盖或抵消默认设置。或直接手动编辑.csproj文件以替换默认设置。让我们看一下这两种方法:首先通过IDE,然后手动进行。
首先,我将更改项目属性| 调试| 启动操作,以“启动外部程序”,并指定Access的路径,例如:
C:\ Program Files(x86)\ Microsoft Office \ Office12 \ MSACCESS.EXE
然后,我将创建一个名称与我的外接程序解决方案相同的.reg文件,并将其放入解决方案文件夹中。此reg文件用于注册用于Access的加载项(并为Word取消注册)。下面列出的示例reg文件只是标准VSTO构建任务针对每种加载项类型所做的工作的转储,带有额外的一行。附加行(下面的第一个reg条目)只是删除了构建任务为Word放入的条目。其余条目对于Word和Access都是相同的,唯一的变化是将“ Word”替换为“ Access”:
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\MyAddIn]
[HKEY_CURRENT_USER\Software\Microsoft\Office\Access\Addins\MyAddIn]
"Description"="MyAddIn"
"FriendlyName"="MyAddIn"
"LoadBehavior"=dword:00000003
"Manifest"="C:\\Temp\\MyAddIn\\bin\\Debug\\MyAddIn.vsto|vstolocal"
在项目属性中| 生成事件,我添加了一个生成后事件命令行,以将.reg文件合并到注册表中:
regedit / s“ $(SolutionDir)$(SolutionName).reg”
而已。现在,我可以按F5键来构建解决方案:这将为Access注册该加载项,并在加载该加载项的情况下运行Access进行调试。
请注意,除了将Debug属性设置为外部程序(上面的第4步)外,我还可以直接修改.csproj文件,以将Word设置为Access。例如,更改此:
<ProjectProperties HostName="Word"
HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}" OfficeVersion="12.0" VstxVersion="3.0"
ApplicationType="Word" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\12.0\Word\InstallRoot\Path#WINWORD.EXE"
AddItemTemplatesGuid="{147FB6A7-F239-4523-AE65-B6A4E49B361F}" />
…对此:
<ProjectProperties HostName="Access"
HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}" OfficeVersion="12.0" VstxVersion="3.0"
ApplicationType="Access" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\12.0\Access\InstallRoot\Path#MSACCESS.EXE"
AddItemTemplatesGuid="{147FB6A7-F239-4523-AE65-B6A4E49B361F}" />
请注意,如上所示,更改值将更改解决方案资源管理器中使用的图标。
- 我还可以更改元素的Name值,以在解决方案资源管理器中更改ThisAddIn.cs的父节点的名称。更改此:
<Host Name="Word" GeneratedCodeNamespace="MyAddIn" IconIndex="0">
<HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" />
</Host>
…对此:
<Host Name="Access" GeneratedCodeNamespace="MyAddIn" IconIndex="0">
<HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" />
</Host>
- 同样,注册由元素值决定。因此,除了将.reg文件设置为构建后任务(上述步骤5-6)之外,我还可以直接编辑.csproj来更改此设置:
<OfficeApplication>Word</OfficeApplication>
…对此:
<OfficeApplication>Access</OfficeApplication>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句