将链接表数据写入Word(来自Access)

时间:2013-04-19 14:30:16

标签: vba ms-access ms-word access-vba

我修改了一些我看到的代码,它打开了一个单词模板,并通过用当前记录替换书签来填充它。一切正常,直到我尝试从链接(查找)表中写入内容,例如

表A:

ID
Name
Description
JobType (lookup drop down list by JobTypeID in Table B)

表B:

JobTypeID
JobType

表格C:

ID
Name
Description
JobType

这一切都按照计划在表单中运行,并且当我点击一个按钮时,大多数都适用:

'code for connecting to word and opening templates works fine *snip*

With WordApp.Selection
    .Goto what:=wdGoToBookmark, Name:="bmName"
    .TypeText [Name]

但是当我使用时:

With WordApp.Selection
    .Goto what:=wdGoToBookmark, Name:="bmJobType"
    .TypeText [JobType]

它不会写入存储在表中的作业类型或显示在表单上的下拉框中....它会写入在其中使用的JobTypeID(1,2,3,4 ....)链接。

我也试过用      me.JobTypeComboBox.value 从表单,但这也显示ID。 有人可以指出我正确的方向。

1 个答案:

答案 0 :(得分:1)

查找字段存储一个值但显示不同的值。在您的情况下,您似乎想要显示的值而不是存储的值。处理这个问题的两种方法......

  1. 使用INNER JOIN 表B 表A 的查询。然后在查询[Table B].JobType列表中包含SELECT可以为您提供所需内容。
  2. 使用DLookup表达式检索当前[Table B].JobType
  3. [Table A].JobType

    情况令人困惑,因为[Table A].JobType实际上是一个与[Table B].JobTypeID对应的数字。在[Table B]中,名为JobType的字段是其他内容......也许是文本字段。

    希望这些细节不会让你感到困惑,也不会让我感到困惑。如果这是我的应用程序,我会将[Table A].JobType重命名为[Table A].JobTypeID并将其保留为简单的数字字段,而不是查找字段。并且可能还基于JobTypeID在<2}表之间创建关系。