从另一个子表单访问子表单中的控件

Accessing control in subform from another subform

我有 3 个表(Main、ED 和 OP),它们之间的关系是 Main 到 ED 是 1 到 Many OP 的主要是 1 到 Many

为此我创建了 3 个表格(frmM、frmE 和 frmO)

frmM有2个子表frmE和frmO(frmE和frmO都在frmM数据列表中)

我想要的是:一旦frmE中的文本框txtE1的值发生变化,frmO中的文本框txtO1将被禁用

我在 frmE 中使用了这段代码

FrmO.txtO1.Enabled = False

虽然这不会给出任何错误,并且在调试时我可以看到 Watch window 中文本框的值发生变化,但是表单中的文本框实际上没有任何变化

我在 Whosebug 中查看了很多问题并用 google 搜索了 3 天多

Requery subform from another subform, problems

http://access.mvps.org/access/forms/frm0031.htm

http://www.dbforums.com/showthread.php?900897-Set-Value-In-A-SubForm

我试过了

Forms("frmM")("frmO").Controls("txtO1").Enabled = False
Me.Parent!txtO1.Enabled = False
Forms.frmM.frmO.Form.txtO1.Enabled = False

所有这些都不起作用。

有人可以帮我吗?

尝试

Me.Parent!frmO_Container.Form!txtO1.Enabled = False

其中 frmO_Container 是 frmM 上包含 frmO 本身的子表单控件的名称

编辑:如果您还没有,请将此代码放入 txt01

的 On Change 事件中

在提及子窗体时,区分父窗体上的子窗体控件和子窗体本身很重要。