如何使用Access VBA填充多个表中的单词/填充单词

时间:2018-08-01 11:01:56

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

我是Access的新手;我自定义了以下代码。问题是它打印主键而不是所引用字段的名称。

例如,在一个语句中,我希望在Word中打印“机构名称”,但是它从我表中的特定对象返回主键。

  

__HAL_TIM_GET_COUNTER我想要另一个表中的该字段,但在同一查询中返回未引用其相反主键值的字符串值

     

ADC_buf我希望此字段来自另一个表,但在同一查询中返回未引用其相反主键值的字符串值

FormFields("txtNQFLevel").Result = Me.NQFLLEVEL

1 个答案:

答案 0 :(得分:0)

要插入到Word文档的txtInstitute字段中的数据是Me.Institute_NameMe指的是VBA代码在其中运行的上下文,您的问题无法识别。但是,您在Word文档中获取主键的事实表明Institute_Name是表中与当前Access上下文绑定的列的名称,其中包含一个Institutes表的外键

在Access中,看起来Institute_Field列包含名称而不是主键。 Access将此称为lookup field。与传统的数据库概念foreign keys相比,查找字段更容易理解。但是,当您在查找字段的内部进行工作时,最终您需要了解Access一直对您隐藏的外键关系。

如果在Name表的Institutes列中找到了您想要的名称,则可以通过将该行更改为以下内容来修复代码:

.FormFields("txtInstitute").Result = DLookup("Name", "Institutes", "ID = " & Me.Institute_Name)

如果您需要多次执行此过程,则应注意,由于N+1 SELECT query issue,它的效率很低。实现此结果的更有效方法是确保将Me绑定到一个上下文,例如joined table,其中包含所需的数据。

相关问题