Access 2007
Form Name is: MineLocationQuery1
1st Subform name is:MineExtractionSubform
2nd Subform name is: ExtractionLineSubform2
我正在尝试使用dlookup来检查表中的值,然后将其乘以另一个值。它适用于:没有子表单和1个子表单。但是当我添加2个子表单时,我无法使其工作。
这是我到目前为止所尝试的内容
简单的表单查找有效:
=DLookUp("[Price]","[Resource]","[AtomicRef]='" & [Forms]![ExtractionLine]![AtomicRef] & "'")*[Tonnage]
以下是使用1个子表单创建的表单的工作示例:
=DLookUp("[Price]","[Resource]","[AtomicRef]='" & [Forms]![MineExtraction1]![ExtractionLineSubform]![AtomicRef] & "'")*[Tonnage]
以下是我使用2个子表单进行的多次尝试中的一次,但它无效。
=DLookUp("[Price]","[Resource]","[AtomicRef]='" & Forms![MineLocationQuery1]!MineExtractionSubform.Form!ExtractionLineSubform2.Form.AtomicRef & "'")*[Tonnage]
除了在复制和粘贴许多尝试进入值得文本框控件源并反复获取#Name错误之后感到疲倦和沮丧,我做错了什么
答案 0 :(得分:1)
如果我想在主窗体的文本框中引用嵌套子窗体,我可能会说:
=[SubformControl1].[Form].[SubformControl2].[Form].[AControlName]
请注意,这使用子窗体控件的名称和Form作为对象所包含对象的引用。
所以这(为方便阅读而拆分)看起来是正确的:
=DLookUp("[Price]","[Resource]","[AtomicRef]='" & Forms![MineLocationQuery1]!
MineExtractionSubform.Form!ExtractionLineSubform2.
Form.AtomicRef & "'")*[Tonnage]
但是,很容易弄错名字。例如,您可能指的是包含的表单,而不是子表单控件名称。您可以使用表达式生成器进行故障排除,也可以在即时窗口(Ctrl + G)中逐位引用表单,以确保您的名称正确。例如:
?Forms![MineLocationQuery1].Name
?Forms![MineLocationQuery1]!MineExtractionSubform.Name
更多信息:http://access.mvps.org/access/forms/frm0031.htm
编辑重新评论
如果您在子表单2中工作,我认为在这种情况下您应该参考[atomicref]:
=DLookUp("[Price]","[Resource]","[AtomicRef]='" & [atomicref] & "'")