我在Microsoft Access 2013中有一个表单,该表单在计算所得的文本框中使用以下公式来汇总结果:
=DCount("[Log]![Outcome]","[Log]","[Log]![Outcome] ='Good' AND [Log]![User]= [Forms]![User Summary]![UserName]")
实际上,该公式在“日志”表中查找,并为我提供了与“用户摘要”表单中选择的当前用户匹配的用户的“结果”为“良好”的总数。
当我直接访问“用户摘要”表单时,该公式非常有用。但是,如果我将“用户摘要”表单嵌入导航表单,则该公式将返回错误。如果我在后台打开原始的“用户摘要”表单,该错误将停止并且恢复正常行为。
有什么想法可以在导航表单中实现此功能,而不必在后台打开“用户摘要”表单吗?我最终将把界面交给多个人,并且我不希望他们在后台打开各种表单只是为了使导航正常工作。
答案 0 :(得分:0)
尝试一下:
=DCount("[Log]![Outcome]","[Log]","[Log]![Outcome] ='Good' AND [Log]![User]='" & Me.MySubformName!UserName & "'")
有点简化:
=DCount("Outcome","Log","Outcome='Good' AND User='" & Me.MySubformName!UserName & "'")
MySubformName
不是窗体的名称,而是包含子窗体的主窗体中控件的名称。
根据控件的位置,您可能需要执行Forms.MyMainForm.MySubForm!UserName之类的操作。基本上,当您的表单嵌入另一种表单中时,您必须从主表单开始并向下进行调用。
答案 1 :(得分:0)
内置的导航表单使用子表单来显示表单。
不幸的是,当未选中子窗体容器时,它们还会从子窗体容器中卸载该窗体,因此该窗体实际上不存在于后台。尽管这是一种提高感知性能的巧妙技术,但如果您不知道它在做什么,那么它就不是没有问题的。
这就是大多数开发人员制作自己的导航表单的原因。