设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3639|回复: 7
打印 上一主题 下一主题

[模块/函数] 这条If语句是怎么回事?

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-22 19:37:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在If和Tthen中间应该是一个返回布尔值的表达式吧!但这条语句:
If Len(strName) then     ' strName是一个字符串变量
......

请老师们帮我扫扫盲。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2013-3-23 16:28:56 | 只看该作者
len计算字符串的长度,所以应该改为:
If Len(strName)=需要判断的长度 then     
3#
 楼主| 发表于 2013-3-23 16:51:12 | 只看该作者
todaynew 发表于 2013-3-23 16:28
len计算字符串的长度,所以应该改为:
If Len(strName)=需要判断的长度 then

Dim str As String
str = "str"
If Len(str) Then
  MsgBox "可以通过。"
End If

上面这段代码可以通过测试,不会出现Len(str)的结果不是布尔型这样的错误提示。为什么?
4#
发表于 2013-3-23 17:53:11 | 只看该作者
本帖最后由 todaynew 于 2013-3-23 18:17 编辑
网络蜘蛛 发表于 2013-3-23 16:51
Dim str As String
str = "str"
If Len(str) Then

你将str分别设为null和"",就明白了。

1、逻辑型数据也是一种数字型数据,在Access中它取-1(True)和0(false)。在其他的一些程序语言中,也有取1和0的。
2、在不同的程序语言中,True的并非只限于-1,false也并非只限于0。通常null、nothing会被视为false,非零的数字会被视为true,甚至有的程序语言将非空的字符串、已经赋值了的对象都视为true,诸如此类的情形有很多。各种程序语言在这方面有些不同的差异。
3、程序语言要具备可读性,一般情况下都应该按照易于理解的方式编写程序代码。所以虽然可以用If Len(str) Then表示对字符串长度是否大于零的判断,但这并非好的写法。正常的还是应该用if len(str)>0 then这样的写法。
4、此类问题对学习编程的初学者来说没什么意义,不必花时间研究。
5#
 楼主| 发表于 2013-3-23 20:43:14 | 只看该作者
todaynew 发表于 2013-3-23 17:53
你将str分别设为null和"",就明白了。

1、逻辑型数据也是一种数字型数据,在Access中它取-1(True)和 ...

好详细,谢谢!我明白了。
6#
发表于 2013-3-24 09:32:02 | 只看该作者
我也学习,感谢老汉引路!
7#
发表于 2013-3-26 14:48:03 | 只看该作者
学习学习
8#
发表于 2013-10-4 13:23:51 | 只看该作者
十分感谢,正解决了我的疑惑.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-5 22:32 , Processed in 0.125490 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表