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

Cannot Get DLookup Function to work in Access 2013

我试图让 Dlookup 函数在 Access 2013 中工作,但我就是无法让它工作,这是我目前所拥有的:-

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

的字段

我有一个表格,有很多字段,其中两个叫做 Vehicle1DateLastExamV1,在 DateLastExam1 中!我正在尝试根据 qry_VehicleOverview 字段中的 Vehicle1 引用相关考试,因此当将车辆编号添加到 Vehicle1 时,它会在 DateLastExam1[=30= 中显示正确的考试]

首先,我在表单中创建了一个名为 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

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

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

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

编辑

您可能需要 "full path" 到 DLookup 中的控件。为了更好的可读性,我建议使用单引号。

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

另外请仔细检查您表单中的所有名称(然后是您的问题)。例如。根据你的描述,你的事件过程应该是:

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

I create a combo box in the form, called Vehicle1 and referenced it to VehicleNumber from qry_VehicleOverview

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

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

=[Vehicle1].[Column](1)

会自动更新