设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

ACCESS关于属性过程的问题

2015-4-24 11:47| 发布者: admin| 查看: 1087| 评论: 9|原作者: 大熊|来自: www.office-cn.net

摘要: 类的属性可以使用属性过程Property Let和Property Get,如果您会使用Public变量,一定会说:在类模块中使用一个Public变量来替代Property Let和Property Get过程不是一样的吗?比如: Public Property Let UserNam ...

类的属性可以使用属性过程Property Let和Property Get,如果您会使用Public变量,一定会说:在类模块中使用一个Public变量来替代Property Let和Property Get过程不是一样的吗?比如:
Public Property Let UserName(ByVal vData As String)
mvarUserName = vData
End Property
Public Property Get UserName() As String
UserName = mvarUserName
End Property
可以用:
Public UserName As String
来替代,在调用类的实例时,同样可以用
MyUser.UserName = Text2 或者 Text2=MyUser.UserName 这样的语句。
这样想是对的,对于这个UserName属性,因为它是可读可写的属性,而且对它没有别的操作,所以用一个Public变量完全可以替代它。但是我们想一想,如果这个属性是一个只读属性,或者只写属性,会怎样呢?
因为一个Public变量是可写可读的,所以用它不能解决这个问题。而用Property Let和Property Get过程,却可以解决:
只读属性(删掉Property Get语句)只用:
Public Property Let UserName(ByVal vData As String)
mvarUserName = vData
End Property

只写属性(删掉Property Let语句)只用:
Public Property Let UserName(ByVal vData As String)
mvarUserName = vData
End Property
我们再考虑一种情况:如果我们的类要检查用户输入的内容是否合法:比如UserName不能为空,用Public变量就不可能解决或者说不太好解决。用Property Let和Property Get过程却可以:
Public Property Let UserName(ByVal vData As String)
If vData=”” Then
Msgbox “用户名为空!”
Else
mvarUserName = vData
End If
End Property
还有一种情况是只能写一次的属性。
所以,什么时候用Public变量,什么时候用属性过程,是根据您的实际情况来定的,对无限制的属性,可用Public变量,对有限制的属性用属性过程。

发表评论

最新评论

引用 tmtony 2002-4-26 01:19
不错,分析得很好
我记得曾经看过另一篇文章,不过是讲COM的,也是谈这两者区别,好象还有些不同的地方
我给忘啦
引用 大熊 2002-4-26 01:39
说不定我就是从那篇文章抄来的!:)
引用 zhuyiwen 2002-4-26 01:58
类是非常有用的东西,谁能讲讲接口?
引用 大熊 2002-4-26 02:01
以后吧!
引用 zhuyiwen 2002-4-26 02:02
等着你的哟!
引用 大熊 2002-4-26 02:12
可是你是指什么接口?
我想下面这些内容不是你想要的吧! :)

通常Access的窗口接口可以分成五个大的部分(如图一):“标题栏”、“菜单栏”、“工具栏”、“状态区”和“数据库窗口”。其中“标题栏”在屏幕的最上方,“菜单栏”在“标题栏”的下面,“菜单栏”的下面是“工具栏”,“状态区”在屏幕的最下方,而夹在“工具栏”和“状态区”之间的空间则是用来显示数据库窗口的。
引用 tmtony 2002-4-26 02:17
接口是COM接口,在VC用的多,现在VB也开始使用,听说比较热了,但主要是可操作性的问题,如何定义好接口,以避免垃圾接口及避免需更改接口属性而导致修改前台程序。思想是好的,不过, 用的不好,反而会累
引用 zhuyiwen 2002-4-26 02:32
但在做三层时是必用的东东,类中经常要用的东东,也是tony讲的COM
引用 tmtony 2002-4-26 02:45
ACCESS早就支持类,但在新版中对COM支持不知如何

查看全部评论(9)

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-3-29 03:12 , Processed in 0.084621 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部