无法让 DLookup 函数在 Access 2013 中工作
Cannot Get DLookup Function to work in Access 2013
我试图让 Dlookup 函数在 Access 2013 中工作,但我就是无法让它工作,这是我目前所拥有的:-
我有一个名为 qry_VehicleOverview
的查询,在此查询中有两个名为 VehicleNumber
和 DateLastExam
的字段
我有一个表格,有很多字段,其中两个叫做 Vehicle1
和 DateLastExamV1
,在 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)
会自动更新
我试图让 Dlookup 函数在 Access 2013 中工作,但我就是无法让它工作,这是我目前所拥有的:-
我有一个名为 qry_VehicleOverview
的查询,在此查询中有两个名为 VehicleNumber
和 DateLastExam
我有一个表格,有很多字段,其中两个叫做 Vehicle1
和 DateLastExamV1
,在 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)
会自动更新