无法让 DLookup 函数在 Access 2013 中工作

Posted

技术标签:

【中文标题】无法让 DLookup 函数在 Access 2013 中工作【英文标题】:Cannot Get DLookup Function to work in Access 2013 【发布时间】:2016-11-06 07:59:23 【问题描述】:

我正在尝试让 Dlookup 功能在 Access 2013 中工作,但我无法让它工作,这是我目前所拥有的:-

我有一个名为 qry_VehicleOverview 的查询,在此查询中有两个字段名为 VehicleNumberDateLastExam

我有一个表单,有很多字段,其中两个分别称为Vehicle1DateLastExamV1,在DateLastExam1 中!我试图从qry_VehicleOverview 字段中引用基于Vehicle1 的相关考试,因此当将车辆编号添加到Vehicle1 时,它会在DateLastExam1 中显示正确的考试

首先,我在表单中创建了一个组合框,名为 Vehicle1,并将其从 qry_VehicleOverview 引用到 VehicleNumber

然后我在表单中创建了一个文本框,并将其命名为LastExamVehicle1,在该字段的控件源中我添加了DLookup函数:-

=DLookup("[DateLastExam]","qry_VehicleOverview","[VehicleNumber]=""" & [Vehicle1].[Text] & """")

然后在Event 选项卡中选择After update 并在此处添加选择code Builder:-

Private Sub LastExamVehicle1_AfterUpdate() Me.LastExamVehicle1.Requery End Sub

但是在运行表单时,首先我在字段中收到#Type 错误,当我更改Vehicle1 中的值时,错误然后更改为#Error

【问题讨论】:

【参考方案1】:

我在表单中创建了一个名为 Vehicle1 的组合框并将其引用到 来自 qry_VehicleOverview 的 VehicleNumber

如果是这样,则不需要 DLookup,因为您已经拥有该值。

将 Vehicle1 的 RowSource 设置为 qry_VehicleOverview 并将组合框的字段数设置为 2,并将此 ControlSource 用于您的文本框:

=[Vehicle1].[Column](1)

它会自动更新。

【讨论】:

感谢您的帮助,但是我没有看到count of fields,这是column count 是的,就是这样。 谢谢,完美运行,还有一个问题,如果你能提供帮助,我如何将表格中的 LastExamV1 值存储在表格中? 您可以将表作为 DAO.Recordset 打开并调用 .AddNew.Update 方法(通常是最快和最干净的),或调用 CurrentDb.Execute 来运行 SQL 插入查询【参考方案2】:

不要使用[Vehicle1].[Text],而是使用[Vehicle1].[Value]。或者只是[Vehicle1]。 (.Value 是默认属性)

.Text 仅在焦点位于控件中时有效,而在 AfterUpdate 中不再有效。

.Text 主要在Change 事件中有用,但这对您的情况没有意义。

编辑

您可能需要DLookup 中控件的“完整路径”。为了更好的可读性,我建议使用单引号。

=DLookup("[DateLastExam]","qry_VehicleOverview","[VehicleNumber]='" & Forms!yourForm![Vehicle1] & "'")

另外,请仔细检查您表格中的所有姓名(然后在您的问题中)。例如。根据您的描述,您的事件过程应为:

Private Sub Vehicle1_AfterUpdate()
     Me.DateLastExamV1.Requery
End Sub

【讨论】:

感谢您的回复,我已删除 [Text],但仍然收到 #Error 嗨,我已经编辑了我的问题以显示正确的字段名称,我也尝试过你的建议但仍然无法让它发挥作用,这是我的 DLookup =DLookUp("[DateLastExam]","qry_VehicleOverview","[VehicleNumber]='" & [Forms]![frm_McuTrackerList]![Vehicle1] & "'")

以上是关于无法让 DLookup 函数在 Access 2013 中工作的主要内容,如果未能解决你的问题,请参考以下文章

查询或 dsum 中的 MS Access 性能 dlookup?

无法在MS-Access中的子中使用函数的变量

访问 2010 组合框 - 更新后无法 DLookup 结果

Access 2007 表单中的 DLookup 错误

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

MS Access DLookup 文本字段语法问题