提前感谢您对此问题的帮助 - 这让我很生气。
首先:我的问题是关于这里的方法: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)
可能是什么问题?也许语言设置?
提前非常感谢你。
微米。
答案 0 :(得分:1)
我不确定Access 2010中的情况有何不同,但正如您在下面看到的,对于Access 2007:
您可以直接在Expression Builder中引用控件。只是:
a)在左框架上展开您的表单名称
b)在左侧框架中选择您的子表单名称
c1)如果你想引用特定的控件(即文本框),只需从中间框架中选择它(双击它)
c2)如果要引用表单属性(即子表单的过滤器),请在中间框架中选择标签,在右侧框架中选择相应的属性
c3)如果要引用子窗体记录集的项目,请使用中间框架中的标记并从右侧框架中选择项目
应该都在那里。
答案 1 :(得分:0)
您应该能够以稍微不同的方式通过VBA引用控件。表单显示为前面有Form_
的类(这很好,因为你可以使用intellisense)。所以你的语法类似于以下内容:
Form_Formname.Controls("ControlName").Value
这应该可以获得所选记录上控件的值。我意识到这已经很老了,但我一直在寻找这个问题的答案,并且能够通过一些实验来解决这个问题。