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

Posted

技术标签:

【中文标题】将链接表数据写入 Word(从 Access)【英文标题】:Writing Linked Table Data to Word (from Access) 【发布时间】:2013-04-19 14:30:16 【问题描述】:

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

表 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】:

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

    使用INNER JOIN 表 B表 A 的查询。然后在查询 SELECT 列表中包含 [Table B].JobType 应该会给你想要的。 使用DLookup 表达式检索当前[Table A].JobType[Table B].JobType

情况令人困惑,因为[Table A].JobType 实际上是一个对应于[Table B].JobTypeID 的数字。在[Table B] 中,名为JobType 的字段是别的东西……也许是一个文本字段。

希望这些细节对您而言不会像对我那样令人困惑。如果这是我的应用程序,我会将 [Table A].JobType 重命名为 [Table A].JobTypeID 并将其保留为简单的数字字段,而不是查找字段。并且可能还基于JobTypeID 在两个表之间创建关系。

【讨论】:

我选择了选项 2,查看了 DLookup 并决定使用:strJobTypeName = DLookup("JobType", "Table B", "JobTypeID = " & [JobType])

以上是关于将链接表数据写入 Word(从 Access)的主要内容,如果未能解决你的问题,请参考以下文章

从 Access 插入/更新链接的 SQL Server 表

如何在拆分数据库中将表从前端链接到后端(MS Access 2010)

将 Access 数据库与 Mysql Server 链接并使用 Access 作为前端 [表问题]

访问不为 MySQL 链接表导入关系

需要在 MS Access 中使用链接表更改 sql server 数据库名称

在 Access 前端中为链接的 SQL 表/视图设置命令超时