2012-11-21 43 views
1

Access 2007年使用DLookup与2子窗体形式(对于使用DLookup的要求是在第二子窗体)

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个子窗体进行的众多尝试中的1个,并且它不起作用。

=DLookUp("[Price]","[Resource]","[AtomicRef]='" & Forms![MineLocationQuery1]!MineExtractionSubform.Form!ExtractionLineSubform2.Form.AtomicRef & "'")*[Tonnage] 

我在做什么不是厌倦和沮丧在复制和粘贴多次试图进入实在值得文本框控件源和反复得到#NAME错误

+0

你有嵌套子表单,是否正确? – Fionnuala

+0

是的,我有嵌套subforms我遵循此过程:http://www.access-programmers.co.uk/forums/showthread.php?t=72479将它们创建为1:M表单,然后是1: M从第一个子窗体中移出1:M的第二个子窗体。 – user1655231

+0

这不是很清楚。除非第一个子窗体是单个窗体,否则不能包含子窗体中包含的子窗体。你的意思是你在主窗体上有两个子窗体,但窗体是相关的?另外,我想知道整个事情的价值,因为当您选择subform2中的每一行时,[AtomicRef]将会改变,是您想要的吗? – Fionnuala

回答

1

如果我想引用一个嵌套子窗体中其他错误在主窗体上一个文本框,我可能会说:

=[SubformControl1].[Form].[SubformControl2].[Form].[AControlName] 

注意,这里使用的窗体控件和形式,通过控制包含的对象的引用的名称。

所以这(拆分为便于阅读)看起来正确:

=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] & "'") 
+0

好的,谢谢你将检查出正确的名称过程和我的代码中的错误到解决方案,看看我能否得到这个工作。关注此空间! – user1655231

+0

该dlookup工作感谢你,我所学到的不是dlookup然后引用从窗体到子窗体1然后子窗体2,当你可以简单地从子窗体2查找它与它相关联的表,以获得您所需的结果,摘要那么不要忽视这个明显的。 – user1655231