Office中国论坛/Access中国论坛

标题: 为什么这里不能用Me? [打印本页]

作者: rujd    时间: 2019-1-21 12:54
标题: 为什么这里不能用Me?
在frm_入库单_Edit的btn_Save_click里想写一条语句

Me.sfrDetail.合计 = 0
无法运行,改为
Forms!frm_入库单_Edit!sfrDetail!合计 = 0
就行,这是为什么呢?


作者: admin    时间: 2019-1-21 18:00
sfrDetail 是什么对象  子窗体?请上传附件
作者: rujd    时间: 2019-1-21 20:32
admin 发表于 2019-1-21 18:00
sfrDetail 是什么对象  子窗体?请上传附件

谢谢,sfrDetail是frm_入库单_Edit的子窗体
作者: cgsilicone    时间: 2019-1-22 17:32
不是不能用Me,是不能用“.”。
查查“!”和“.”的区别吧。
作者: rujd    时间: 2019-1-25 10:13
cgsilicone 发表于 2019-1-22 17:32
不是不能用Me,是不能用“.”。
查查“!”和“.”的区别吧。

我也搜过,没找到过权威的解释,我在这本书里看到过专门的讲解,好像主要也就是用点号可以直接弹出辅助框,而用!无法弹出。论坛上有些人说点号后面跟属性或方法,感叹号后面跟控件,实际试一下就知道不对,因为我就经常写成“Me.控件”的形式都是可以用的,所以这里我才会比较疑惑sfrDetail明明是子窗体控件,为什么不能用点号了[attach]63216[/attach]


作者: cgsilicone    时间: 2019-2-1 15:59
       "!" 和"." 的区别是非常清晰的,系统预定义的东西用".";编程者自己定义的用"!"。用"Me.sfrDetail.合计"的错误为例说明如下:
       "sfrDetail"代表控件,从Me(窗体)的角度来看,控件是窗体预定义了的,所以引用"sfrDetail "控件,用"Me.sfrDetail";另一方面,从编程者来看,"sfrDetail"是自己取的名称,自己定义的,所以引用"sfrDetail"控件,用"Me!sfrDetail"也是正确的。
       对于控件"合计"来说,从编程者来看,"合计"是自己取的名称,自己定义的,所以引用"合计"控件,可以用"sfrDetail!合计",从控件"sfrDetail"来看,系统没有预定义过控件,所以"合计"不可能是"sfrDetail"的预定义控件,不能用"sfrDetail.合计"来引用。
       因此,引用"合计"控件,正确的写法是:"Me.sfrDetail!合计" 或 "Me!sfrDetail!合计",而不能是"Me.sfrDetail.合计"。

作者: rujd    时间: 2019-2-13 14:18
cgsilicone 发表于 2019-2-1 15:59
"!" 和"." 的区别是非常清晰的,系统预定义的东西用".";编程者自己定义的用"!"。用"Me.sfrDetail. ...

试了"Me.sfrDetail!合计" 或 "Me!sfrDetail!合计",都不行




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