无法让 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
的查询,在此查询中有两个字段名为 VehicleNumber
和 DateLastExam
我有一个表单,有很多字段,其中两个分别称为Vehicle1
和DateLastExamV1
,在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?
访问 2010 组合框 - 更新后无法 DLookup 结果