我是Access的新手;我自定义了以下代码。问题是它打印主键而不是所引用字段的名称。
例如,在一个语句中,我希望在Word中打印“机构名称”,但是它从我表中的特定对象返回主键。
__HAL_TIM_GET_COUNTER
我想要另一个表中的该字段,但在同一查询中返回未引用其相反主键值的字符串值
ADC_buf
我希望此字段来自另一个表,但在同一查询中返回未引用其相反主键值的字符串值
FormFields("txtNQFLevel").Result = Me.NQFLLEVEL
答案 0 :(得分:0)
要插入到Word文档的txtInstitute
字段中的数据是Me.Institute_Name
。 Me
指的是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,其中包含所需的数据。