Dlookup不适用于导航和子表单

时间:2015-02-17 02:42:03

标签: ms-access subform

我有一个简单的表单,使用以下代码根据第一个选择自动填充2个组合框:

Private Sub Planner_Name_AfterUpdate()

Dim FormTrade As Variant, FormFLS As Variant

FormTrade = DLookup("Trade", "Planners", "[PlannerName] = Forms!EstimateForm!PlannerName")
FormFLS = DLookup("FLS", "Planners", "[PlannerName] = Forms!EstimateForm!PlannerName")

Me.Trade = FormTrade
Me.FLS = FormFLS

End Sub

这是基于一个包含3个字段的表:PlannerName,Trade,FLS

这样,当有人知道Planner的名字时,它会自动填写他们的交易和正在运行该职位的FLS。

一切正常,直到我将此表单作为导航表单中的子表单然后退出工作。

有人能给我任何建议吗?

1 个答案:

答案 0 :(得分:0)

您没有考虑到表单不再是开放表单的事实,但事实上它现在是导航子表单。您需要编辑代码以考虑子表单

Current DLookup
FormTrade = DLookup("Trade", "Planners", "[PlannerName] = Forms!EstimateForm!PlannerName")
Modified DLookup
FormTrade = DLookup("Trade", "Planners", "[PlannerName] = [Forms]![frm_navigation]![NavigationSubform].[Form]![EstimateForm]![PlannerName]")

我的回答是基于猜测您的子表单是名称frm_Navigation。但要得到确切的名字。打开一个新查询并添加任何表和任何字段(不重要),然后右键单击并在表达式构建器中选择build ....打开数据库旁边的+号,然后打开Forms - >已加载的表格 - >您的表单名称是您的 - >导航子表单名称 - >和你的控制箱。