将.docx内容导入MS Access

时间:2016-02-01 12:49:01

标签: vba ms-access ms-word docx

我开始编写docx文档来完成我的项目。 最近,我意识到如果数据在数据库中,那么管理数据会更容易。 因此,我想自动将该数据导入MS Access,以避免手动复制和粘贴数据。

反正有吗?我只是通过Access打开Word应用程序的方法。我也知道docx有一个XML结构,所以我想如果我可以打开那个结构,在VBA中做一个解析器很容易

1 个答案:

答案 0 :(得分:0)

有两种基本方法可以从Word文档中获取信息并放入Access数据库:使用在Word或Access中运行的VBA代码自动化Word对象模型或提取构成Word文档的WordOpenXML。你表明你倾向于第二种选择。

在这里,有许多方法可供选择:

  • 在Word或Access中使用VBA提取Word应用程序用户界面中打开的文档的WordOpenXML。
  • 将Access中的VBA与非VBA工具一起使用以打开"破解打开" Zip文件并提取XML。
  • 使用.NET Framework中提供的工具提取ZIP文件的内容,并使用OLE DB连接将其写入Access。

我了解您的目标是能够在以后重新创建文档进行打印,因此您希望保留所有格式。此外,您希望能够从Access中读取内容。

我相信这将要求Access表中至少有四个字段:

  1. ID
  2. 标题
  3. 歌曲文字
  4. 用于重新创建文档的完整WordOpenXML
  5. 您在讨论和问题描述中没有提及(4),但如果您想存储格式并且您希望能够阅读内容,我认为这是必要的。虽然WordOpenXML是可读的,但在那里有很多标记,并没有使阅读舒适

    在所有条件相同的情况下,我使用Open XML SDK(可在Visual Studio中引用的free download .NET库)来使用开放Word文档或.NET方法的VBA。用解决方案分发)。

    要记住的一件重要事情是将Word Open XML存储在数据库中。除非在Access中发生了某些变化,否则您无法存储ZIP文件 - 您需要一个"可流动的"格式。这将是OOXML OPC平面文件格式。

    当您使用VBA从文档中读取WordOpenXML时,这就是您所获得的,这就是为什么这对我来说是一个选择。 Open XML SDK没有该选项,但Eric White's blog提供了代码来执行此操作。

    如果您以后想要重新创建并打印文档,则应将WordOpenXML流式传输到扩展名为.xml的文件。或者您可以将其转换回docx zip文件(同一博客)。