我有一个简单的表单,使用以下代码根据第一个选择自动填充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。
一切正常,直到我将此表单作为导航表单中的子表单然后退出工作。
有人能给我任何建议吗?
答案 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 - >已加载的表格 - >您的表单名称是您的 - >导航子表单名称 - >和你的控制箱。