Access 2010:从子表单中选择的记录值

时间:2014-02-12 17:52:07

标签: forms vba ms-access-2010 subform

提前感谢您对此问题的帮助 - 这让我很生气。

首先:我的问题是关于这里的方法:http://www.fmsinc.com/MicrosoftAccess/Forms/Synchronize/LinkedSubforms.asp

我在Access 2010中有一个包含子表单的表单。使用VBA更新子表单的内容。这里的一切都很棒。

我希望能够根据用户在子表单中选择的记录打开另一个表单。这需要知道用户选择的记录的编号。首先,我将所选记录的ID写入表单中的普通文本框。

我在上面提到的链接中找到了解决方案。它说:

  

“要引用子表单中的值,请使用以下语法   文本框的控件来源属性:

     

= [subFormName] [表格]![控件名称]“

它在他们的示例中完美运行(我已经下载了.mdb并且它可以工作!),但是当我尝试时,“[Form]”不是一个选项。所以,我无法让它发挥作用!

我也试过他们的.mdb,我也不能选择[Form],所以一旦我更改了文本框的控件来源属性,它就会停止工作。我尝试了[.Formula],但没有尝试(链接到屏幕截图:http://i.imgur.com/pR2WkSW.png?1

可能是什么问题?也许语言设置?

提前非常感谢你。

微米。

2 个答案:

答案 0 :(得分:1)

我不确定Access 2010中的情况有何不同,但正如您在下面看到的,对于Access 2007:

referencing a subform control

您可以直接在Expression Builder中引用控件。只是:

a)在左框架上展开您的表单名称

b)在左侧框架中选择您的子表单名称

c1)如果你想引用特定的控件(即文本框),只需从中间框架中选择它(双击它)

c2)如果要引用表单属性(即子表单的过滤器),请在中间框架中选择标签,在右侧框架中选择相应的属性

c3)如果要引用子窗体记录集的项目,请使用中间框架中的标记并从右侧框架中选择项目

应该都在那里。

答案 1 :(得分:0)

您应该能够以稍微不同的方式通过VBA引用控件。表单显示为前面有Form_的类(这很好,因为你可以使用intellisense)。所以你的语法类似于以下内容:

Form_Formname.Controls("ControlName").Value 

这应该可以获得所选记录上控件的值。我意识到这已经很老了,但我一直在寻找这个问题的答案,并且能够通过一些实验来解决这个问题。