从另一个子窗体访问子窗体中的控件

时间:2016-05-27 04:44:16

标签: forms vba ms-access access-vba ms-access-2010

我有3个表(Main,ED和OP)的关系 ED的主要是1到多 OP的主要是1到很多

为此我创建了3个表单(frmM,frmE和frmO)

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

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

我在frmE

中使用了这段代码
FrmO.txtO1.Enabled = False

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

我在StackOverFlow中查看了很多问题并用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

所有这些都不起作用。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

尝试

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

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

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

的On Change事件中

在引用子表单时,区分父表单上的子表单控件和子表单本身很重要。