以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [建议]Orelse和Andalso有例外,建议完善帮助文档  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93233)

--  作者:shenyl0211
--  发布时间:2016/11/23 13:29:00
--  [建议]Orelse和Andalso有例外,建议完善帮助文档
举例:
在表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不能出现在有引号的表达式内,这点在帮助文档中没有介绍,请完善。

--  作者:有点蓝
--  发布时间: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
--  发布时间:2016/11/23 15:57:00
--  

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


--  作者:wyz20130512
--  发布时间:2016/11/23 16:35:00
--  
是不是可以这样理解:在表达式中只能用Or或And

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

--  作者:有点蓝
--  发布时间:2016/11/23 17:14:00
--  
简单一点,就是在字符串双引号里面的只能用Or或And
--  作者:shenyl0211
--  发布时间: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
--  发布时间:2016/11/23 17:58:00
--  
帮助里需要补充的就是5楼这句话
[此贴子已经被作者于2016/11/23 17:58:32编辑过]