Dlookup 不适用于导航和子表单

Dlookup will not work with navigation and subforms

我有一个简单的表单,它使用以下代码根据第一个中的选择自动填充 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 个字段的 table:PlannerName、Trade、FLS

这样,当有人知道 Planner 的名字时,它会自动填写他们的 Trade 和 运行 工作的 FLS。

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

谁能给我一些建议?

您没有说明表单不再是开放表单这一事实,但实际上它现在是导航子表单。您将需要编辑您的代码以说明子表单

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

我的回答是基于对您的子表单是 names frm_Navigation 的猜测。但是要得到确切的名字。打开一个新查询并添加任何 table 和任何字段(不重要),然后右键单击并 select build... 在表达式构建器中。打开数据库旁边的 + 号,然后打开 Forms --> Loaded Forms --> your form name your --> navigation subform name --> and your control box.