我正在尝试让Dlookup功能在Access 2013中运行,但我无法让它工作,这是我到目前为止所拥有的: -
我在此查询中有一个名为qry_VehicleOverview
的查询,有两个名为VehicleNumber
和DateLastExam
的字段
我有一个表单,Vehicle1
中有许多字段,其中两个字段称为DateLastExamV1
和DateLastExam1
!我尝试根据Vehicle1
字段中的qry_VehicleOverview
引用相关的考试,因此当车辆编号添加到Vehicle1
时,它会在DateLastExam1
首先,我在表单中创建一个名为Vehicle1
的组合框,并将其从VehicleNumber
引用到qry_VehicleOverview
然后我在表单中创建了一个文本框,并将其称为LastExamVehicle1
,在该字段的控件源中添加了DLookup函数: -
=DLookup("[DateLastExam]","qry_VehicleOverview","[VehicleNumber]=""" & [Vehicle1].[Text] & """")
然后在After update
标签中选择了Event
,在此处选择了code Builder
,我添加了: -
Private Sub LastExamVehicle1_AfterUpdate()
Me.LastExamVehicle1.Requery
End Sub
但是当运行表单时,首先我在字段中收到#Type错误,当我更改Vehicle1
中的值时,eror会更改为#Error
答案 0 :(得分:1)
我在表单中创建一个名为Vehicle1的组合框并将其引用到 来自qry_VehicleOverview的VehicleNumber
如果是这样,则不需要DLookup,因为您已经拥有该值。
将Vehicle1的 RowSource 设置为 qry_VehicleOverview ,将组合框的字段数设置为2,并将 ControlSource 用于文本框:< / p>
=[Vehicle1].[Column](1)
它会自动更新。
答案 1 :(得分:0)
请勿使用[Vehicle1].[Text]
,而是使用[Vehicle1].[Value]
。或者只是[Vehicle1]
(.Value
是默认属性)
.Text
仅在焦点位于控件中时有效,而在AfterUpdate
中它不再有效。
.Text
主要用于Change
事件,但这对您的案例没有意义。
修改强>
您可能需要&#34;完整路径&#34; DLookup
中的控件。为了更好的可读性,我建议使用单引号。
=DLookup("[DateLastExam]","qry_VehicleOverview","[VehicleNumber]='" & Forms!yourForm![Vehicle1] & "'")
另外,请仔细检查表单中的所有名称(然后在您的问题中)。例如。根据您的描述,您的活动程序应为:
Private Sub Vehicle1_AfterUpdate()
Me.DateLastExamV1.Requery
End Sub