2014-02-12 57 views
1

非常感谢您为这个问题提供的帮助 - 它一直让我发疯。Access 2010:从子表格中选择的记录值

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

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

我希望能够打开基于记录的另一种形式,用户在子窗体选择了。这需要知道用户选择的记录的数量。首先,我只是将选定记录的ID写入表单中的普通文本框。

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

“要在子窗体引用值,请使用以下语法 文本框的控件来源属性:!

= [subFormName] [表] [控件名称]”

它完全在他们的例子(我已经下载了的.mdb和它的作品!),但是当我尝试,在“[表]”是不是一种选择。所以,我无法让它工作!

我在他们的.mdb尝试为好,而我不能选择[表]要么,所以只要我改变文本框的控件来源属性,它停止工作。我曾与[.Formula]试图代替,但没有(链接截图:http://i.imgur.com/pR2WkSW.png?1

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

非常感谢你提前。

M.

回答

1

我不知道它是如何的不同在Access 2010,但你可以看到下面,对于Access 2007年:

referencing a subform control

您可以直接引用的控制表达式生成器刚:

一)左框上扩大你的表单名称

b)如果您想引用特定的控制左框

C1)(即文本框中选择表单名称)只需从中间框中选择它(双击它)

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

c3)如果你想从右边框

它都应该有指子窗体的记录的项目,中间帧使用标签,并选择该项目。

+0

非常感谢您的回答,我非常感谢。我不知道我可以从Expression Builder中选择它,当然!不幸的是,问题仍然存在,你可以在这里看到:http://i.imgur.com/nq3OpFN.png?1我似乎无法创建正确的表达式。我已经在这里的Access数据库中尝试过了:http://www.fmsinc.com/MicrosoftAccess/Forms/Synchronize/LinkedSubforms.asp,这也是同样的问题。 – user3302702

+0

我注意到,在左边的框架中,表单的名字是'frmMaster',而不是'subMaster'。不确定这是否与您的问题有关。无论哪种情况,都试图写出文字?它应该像'[frmMaster]![Form]![txtID]'或'[frmMaster]![Formular]![txtID]''。我猜对于第一种情况,因为即使在我的Access语言中,语法也没有改变,它用英文写成。 – parakmiakos

+0

我很抱歉,但没有,这不起作用:((既不是第一个也没有第二个例子)我没有得到语法错误,但它不起作用:http://i.imgur.com /T9lcKlG.png?1非常感谢您花时间帮助我解决这个问题,如果您有时间,可以请您尝试看看,如果您可以/可以在表达式中选择[表格]?事情是...... .adb是用这个表达式(= [subMaster]。[Form]![txtID])“诞生”并且完美的工作,但是如果我删除表达式并重新添加它,它就不会。必须是一些语言设置,不是吗? – user3302702

0

您应该能够以略微不同的方式通过VBA引用控件。这些表单在其前面显示为Form_的类(这很好,因为您使用智能感知)。因此,您的语法类似于以下内容:

Form_Formname.Controls("ControlName").Value 

这应该让您获得所选记录上控件的值。我意识到这是相当古老的,但我正在寻找这个问题的答案,并能够通过一些实验自行找出答案。