Office中国论坛/Access中国论坛

标题: 判定鼠标点中子窗体记录A,记录A的字段B为空值的代码怎样写?? [打印本页]

作者: pwj2009    时间: 2011-2-18 09:26
标题: 判定鼠标点中子窗体记录A,记录A的字段B为空值的代码怎样写??
本帖最后由 pwj2009 于 2011-2-18 09:34 编辑

判定。我选中子窗体记录A(点左边的记录选择器)。如果记录A的某字段B=空值and 字段C不为空的时候,我再点击命令按钮才生效否则提示错误。if Forms!主窗体!子窗体.字段B = "" and c is not null Then这样错在哪里?代码应该怎样写!!!


作者: todaynew    时间: 2011-2-18 10:00
本帖最后由 todaynew 于 2011-2-18 10:01 编辑

c的父对象不明确。可以写为如下:

dim ctls as controlls
set ctls=me.子窗体.form.controls
if isnull(ctls("B").value)=true and isnull(ctls("c").value)=false then
........
........
end if

作者: ycxchen    时间: 2011-2-18 10:39
我也想学习!我对父、子对象有关知识不明白,请教版主,为什么1楼的情况就要考虑父对象?
作者: roych    时间: 2011-2-18 11:37
回复 ycxchen 的帖子

按我的理解,子窗体在主窗体中只是视为控件而已。因此,如果需要指定子窗体的某个控件,必须引用Controls。
作者: pwj2009    时间: 2011-2-18 13:53
本帖最后由 pwj2009 于 2011-2-18 13:59 编辑

dim ctls as controlls 应该是controls

还有这段代码无效。。直接跳去了第2个条件。

作者: todaynew    时间: 2011-2-18 14:11
pwj2009 发表于 2011-2-18 13:53
dim ctls as controlls 应该是controls

还有这段代码无效。。直接跳去了第2个条件。


作者: todaynew    时间: 2011-2-18 14:35
本帖最后由 todaynew 于 2011-2-18 14:45 编辑
ycxchen 发表于 2011-2-18 10:39
我也想学习!我对父、子对象有关知识不明白,请教版主,为什么1楼的情况就要考虑父对象?


1、主窗体调用子窗体控件值:
me.合计.value=me.子窗体.form.controls("合计").value
2、主窗体调用孙窗体控件值:
me.合计.value=me.子窗体.form.controls("孙窗体").form.controls("合计").value
总共涉及到6个对象:
(1)me--代表主窗体,也可以是forms("主窗体");
(2)子窗体---实际上是指子窗体控件,其名称可以与子窗体名称一致也可以不一致;
(3)第一个form---指装载与子窗体控件中的窗体;
(4)controls("孙窗体")---实际上是指子窗体中的子窗体控件,与2含义相同;
(5)第二个form---指装载与子窗体控件中的窗体,与3含义相同;
(6)controls("合计")---指孙窗体上的控件
其中为了简化以上代码中也可以省略form
3、子窗体调用主窗体控件值:
me.ID.DefaultValue=Me.Parent.Form.Controls("ID").value
Parent--指父对象
4、孙窗体调主窗体控件值:
me.ID.DefaultValue=Me.Parent.Parent.Form.Controls("ID").value

以上代码可以将部分.运算父改为!运算符,具体规律自行摸索。




作者: ycxchen    时间: 2011-2-18 14:38
B、C同为子窗体的字段,为什么2楼只说c的父对象不明确?
作者: todaynew    时间: 2011-2-18 14:48
ycxchen 发表于 2011-2-18 14:38
B、C同为子窗体的字段,为什么2楼只说c的父对象不明确?

if nz(Forms!主窗体!子窗体.字段B,"") = "" and isnull(Forms!主窗体!子窗体.字段c)=false Then
这样可以。
And运算符,不负责对对象的从属关系进行运算。
作者: ycxchen    时间: 2011-2-18 15:12
十分感谢todaynew及yoych两位的指教!
作者: pwj2009    时间: 2011-2-18 20:20
受教了。自己去试验,,。多谢2位大臣的帮助,感谢ing!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3