Foxtable(狐表)用户栏目专家坐堂 → [建议]Orelse和Andalso有例外,建议完善帮助文档


  共有1827人关注过本帖树形打印复制链接

主题:[建议]Orelse和Andalso有例外,建议完善帮助文档

帅哥哟,离线,有人找我吗?
shenyl0211
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
[建议]Orelse和Andalso有例外,建议完善帮助文档  发帖心情 Post By:2016/11/23 13:29:00 [只看该作者]

举例:
在表A的第一列的第1行输入1
在表A的第二列的第2行输入2
Dim a As String ="1" 
Dim b As String ="2" 
Tables("表A").Filter =""
以下代码3选1:
Tables("表A").Filter ="第一列 = '" & a & "' or 第二列 = '" & b & "'" '正常
Tables("表A").Filter ="第一列 = '1' orelse 第二列 = '2'" '提示语法错误:"orelse"运算符后缺少操作数
Tables("表A").Filter ="第一列 = '" & a & "' orelse 第二列 = '" & b & "'" '错误同上
例子说明:
Orelse和Andalso不能出现在有引号的表达式内,这点在帮助文档中没有介绍,请完善。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/23 14:40:00 [只看该作者]

一个是表达式语法,可用的有:http://www.foxtable.com/webhelp/scr/0102.htm

一个是vb.net语法,参考:http://www.foxtable.com/webhelp/scr/0220.htm,建议完整看一下编程基础这章内容

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2016/11/23 15:57:00 [只看该作者]

楼主搞混淆了,您举的这个例子,Filter遵循的实际上是sql语言规范。


 回到顶部
帅哥哟,离线,有人找我吗?
wyz20130512
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1247 积分:9428 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2016/11/23 16:35:00 [只看该作者]

是不是可以这样理解:在表达式中只能用Or或And

非表达式中Or,OrElse,And,AndAlso都可以使用。

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/23 17:14:00 [只看该作者]

简单一点,就是在字符串双引号里面的只能用Or或And

 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2016/11/23 17:55:00 [只看该作者]

第一列 = '1'  是逻辑表达式
第二列 = '2'  是逻辑表达式
orelse  是逻辑运算符
第一列 = '1' orelse 第二列 = '2'  是逻辑表达式的叠加

如果没有引号,是叠加后的逻辑表达式的直接判断:
if 第一列 = '1' orelse 第二列 = '2' then

如果有引号,是叠加后的逻辑表达式的表达式,变成了字符串性质:
dim Filter as string  ="第一列 = '1' orelse 第二列 = '2'"  '这是字符串表达式,不能用orelse,只能用or
Tables("表A").Filter = Filter

至于3楼所说的“Filter遵循的实际上是sql语言规范”,就更不是一般人所能了解的了。

所以,感觉有引号时不能用orelse,只能用or,是否这个规律?对于初学者是否可以不去了解难以理解的或不懂的表达式语法、vb.net语法、sql语法了?


[此贴子已经被作者于2016/11/23 17:56:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2016/11/23 17:58:00 [只看该作者]

帮助里需要补充的就是5楼这句话
[此贴子已经被作者于2016/11/23 17:58:32编辑过]

 回到顶部