ms-access - 从 Word 文档表单控件获取数据

标签 ms-access vba ms-word

我正在 Word .docm(启用宏的 Word 2013 文档)中构建一个表单,目的是对 Access 数据库进行编程以从已完成的表单中导入数据。我已经放置了 textBox 和 comboBox 控件来接收用户输入,但是我无法取回数据。

我见过的例子使用 Document.FormFields像这样的集合(在 Word 中):

Dim fld as FormField
for each fld in ActiveDocument.FormFields
    Debug.Print fld.Name & " - " & fld.Result.Text
next

但是在我的文档中 Document.FormFields为空,但 Document.Fields有 19 个元素,恰好是我表单中的控件数。太好了,除了我似乎无法使用 Field 获得任何控件的名称或值。目的。 Field.Result.Text总是空白,没有Field.Name属性。

那么Field有什么区别?对象和 FormField对象,以及为什么我的控件显示在 Fields 中当我看到的所有示例都使用 FormFields 时?

我是否使用了错误的表单控件?存在三种类型(我希望我不是唯一认为这很荒谬的人)遗留控件、ActiveX 控件和内容控件。我正在使用 ActiveX 类型。

最佳答案

一些东西...

  • 在 MS Word 术语中,“字段”不必是表单字段。例如,自动更新日期、链接图形、页码等都是“字段”类型(或者至少,直到最新版本的 Word)。
  • 出于兼容性原因,最好避免使用 ActiveX 控件。例如,Mac 版本的 Word 不支持它们。
  • 为了获得最佳兼容性,我个人会坚持使用传统的表单控件。实例根据它们的书签名称命名,可以通过右键单击控件并选择属性来设置。在 VBA 中,它们的数据是通过 FormFields 集合获得的;如果您想要特定字段的值,请使用Value = ActiveDocument.FormFields("MyFieldName").Result
  • 关于ms-access - 从 Word 文档表单控件获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19690833/

    相关文章:

    php - 通过php和vba向mysql插入汉字

    vba - 改变工作驱动

    javascript - 在 MS Word 插件 Javascript API 中读取表格边框的颜色和宽度

    sql-server - 使用 Sql Server 中的存储过程中的数据填充 Access 连续表单

    c# - 更新 ExceptionNonQuery

    sql-server - 将 Access 报告另存为 PDF/二进制文件

    mysql - RecordSet 上的 GetRows 不会存储 Access DB 中的文本列

    c# - 在 .Net 中将 Html 转换为 Word

    javascript - Office.js : ContentControl in table broken after inserting row

    ms-access - 微软 Access : How to disable Form autosave and create Save button