Access父子窗体相互引用的语法

899次阅读
没有评论

共计 2271 个字符,预计需要花费 6 分钟才能阅读完成。

首先要明白,子窗体控件 是一个容器,它里面包含着一个 另一个窗体(通过在源对象属性 来设置 里面包含着哪个窗体)。

假如主窗体为 frm 订单,它里面有一个子窗体控件,这个子窗体控件名称叫做 sfmSubform, 它的源对象属性设置为 frm 订单明细,frm 订单明细这个窗体里有一个数量控件。

如果我们在主窗体里想引用子窗体控件,可以使用 me.sfmSubform,这个就指向子窗体控件。

但我们要明白 ” 数量 ” 控件并不是放在子窗体控件里,而是在 frm 订单明细这个窗体里,那们要引用“数量”这个控件,应该如何引用呢?

正确的方法是先找到这个 frm 订单明细这个窗体,如果直接用 frm 订单明细. 数量是不行的,因为 frm 订单明细这个窗体这是单独打开的。它是放在主窗体 frm 订单里面。

所以要这样引用,先找开这个窗体:me.sfmSubform.form,这样就对应到这个子窗体控件里面的窗体了(也是 frm 订单明细这个子窗体)了。

然后,再加上控件名:me.sfmSubform.form. 数量

如果在子窗体里数量控件的相关事件里如果引用父窗体呢(如父窗体里有一个订单号),则需要这样引用:me.parent. 订单号 或 me.parent.form. 订单号都可以。

更多有关父子窗体的语法解释,可参考下面的详细教程

例子:

Mainform 是 主窗体

Subform1 是主窗体里面的子窗体的名称

Subform2 是 Subform1 子窗体里面的子窗体

     
  如果你在主窗体 如果你在子窗体 1
要参照一个窗体属性,例如:RecordSource    
在主窗体 Me.RecordSource Me.Parent.RecordSource
在子窗体 1 Me!Subform1.Form.RecordSource Me.RecordSource
在子窗体 2 Me!Subform1.Form!Subform2.Form.

RecordSource

Me!Subform2.Form.RecordSource
在照控件    
在主窗体 Me!ControlName Me.Parent!ControlName
在子窗体 1 Me!Subform1.Form!ControlName Me!ControlName
在子窗体 2 Me!Subform1.Form!Subform2.Form!

ControlName

Me!Subform2.Form!ControlName
要参照一个控件属性, 例如:Enabled    
在主窗体 Me!ControlName.Enabled Me.Parent!ControlName.Enabled
在子窗体 1 Me!Subform1.Form!ControlName.Enabled Me!ControlName.Enabled
在子窗体 2 Me!Subform1.Form!Subform2.Form!

ControlName.Enabled

Me!Subform2.Form!ControlName.Enabled
要参照一个子窗体控件属性,  例如 SourceObject    
在主窗体 N/A N/A
在子窗体 1 Me!Subform1.SourceObject N/A
在子窗体 2 Me!Subform1.Form!Subform2.SourceObject Me!Subform2.SourceObject
     
     
  如果你在子窗体 2 不在窗体里
要参照一个窗体属性,例如:RecordSource    
在主窗体 Me.Parent.Parent.RecordSource Forms!Mainform.RecordSource
在子窗体 1 Me.Parent.RecordSource Forms!Mainform!Subform1.Form.RecordSource
在子窗体 2 Me.RecordSource Forms!Mainform!Subform1.Form!Subform2.

Form.RecordSource

要参照一个控件    
在主窗体 Me.Parent.Parent!ControlName Forms!Mainform!ControlName
在子窗体 1 Me.Parent!ControlName Forms!Mainform!Subform1.Form!ControlName
在子窗体 2 Me!ControlName Forms!Mainform!Subform1.Form!Subform2.

Form!ControlName

要参照一个控件属性,例如:Enabled    
在主窗体 Me.Parent.Parent!ControlName.Enabled Forms!Mainform!ControlName.Enabled
在子窗体 1 Me.Parent!ControlName.Enabled Forms!Mainform!Subform1.Form!ControlName.Enabled
在子窗体 2 Me!ControlName.Enabled Forms!Mainform!Subform1.Form!Subform2.

Form!ControlName.Enabled

要参照一个子窗体控件属性:SourceObject    
在主窗体 N/A N/A
在子窗体 1 N/A Forms!Mainform!Subform1.SourceObject
在子窗体 2 N/A Forms!Mainform!Subform1.Form!Subform2.

SourceObject

 

 

摘自 http://www.office-cn.net/access-interface/136.html

正文完
 0
水东柳
版权声明:本站原创文章,由 水东柳 于2019-01-29发表,共计2271字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)