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


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

主题:[建议]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不能出现在有引号的表达式内,这点在帮助文档中没有介绍,请完善。

 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部