在表单控件的默认值字段中使用 Dlookup

Posted

技术标签:

【中文标题】在表单控件的默认值字段中使用 Dlookup【英文标题】:Using Dlookup in the Default Value field of a form control 【发布时间】:2019-06-18 19:13:34 【问题描述】:

我正在尝试根据表单上组合框的值填充表单控件的默认值。组合框称为标题,我希望控件 HIPAA 根据表 tblTrainingEventTiles 中的 HIPAA 值填充,其中表单上选择的标题与表中的标题匹配。

我将以下代码放入表单上控件的默认值中:

=IIf(IsNull([Title]),0,DLookUp("HIPAA","tblTrainingEventTitles","[tblTrainingEventTitles].[Title]=[Title]"))

然而,Access 似乎忽略了它。它什么也不做,也没有错误消息。我不确定我的问题是我的 dlookup 还是我试图在默认值字段中使用它的事实。 (或两者兼而有之?)有人有什么想法吗?

【问题讨论】:

您似乎使用了错误的方式来解决您的任务。因为插入新记录时使用default value,但它的公式是在打开表单时计算的。可能您可以使用BeforeInsert 表单事件或Change 组合框事件。 【参考方案1】:

试试这个:

=Nz(DLookUp("HIPAA","tblTrainingEventTitles","[tblTrainingEventTitles].[Title]=[Title]"),0)

【讨论】:

【参考方案2】:

如果您的组合框的绑定列是文本,您应该在其内容周围使用 '。你应该连接组合框的值来过滤dlookup的一部分。

=IIf(nz([Title],"")="",0,DLookUp("HIPAA","tblTrainingEventTitles","[tblTrainingEventTitles].[Title]='" & [Title] & '"))

【讨论】:

以上是关于在表单控件的默认值字段中使用 Dlookup的主要内容,如果未能解决你的问题,请参考以下文章

如何在访问表单上的文本框的验证规则中使用 DLookup

Access 中的 DLookup 直到在表单中单击 textBox 才运行

Dlookup 无论条件如何,都从列表中返回第一个字段

ms访问dlookup函数报错

如何对 DLOOKUP() 定义的字段启用过滤?

Flutter TextFormField 控件