以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]循环语句合成筛选语句  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=104483)

--  作者:科研小子
--  发布时间:2017/7/30 11:11:00
--  [求助]循环语句合成筛选语句

Dim filter As String

Dim sum As String

For Each dr As Row In drs

   filter= "[疾病] =\'" & dr("疾病") & "\'"

sum= sum & "or" & filter

  Next

MessageBox.Show(sum)

 Tables("疾病对比").Filter=sum

采用上面的循环语句想合成筛序表达式,用对话框显示sum的值,结果表达式前面多了一个or,运行的时候也提示:“Or”运算符前缺少操作数。



求教各位高手,嘻嘻,最近问的有点多,谢谢哈


--  作者:有点甜
--  发布时间:2017/7/30 11:21:00
--  

Dim filter As String

 

改成

 

Dim filter As String = "1=2 "

[此贴子已经被作者于2017/7/30 11:21:22编辑过]

--  作者:科研小子
--  发布时间:2017/7/30 11:51:00
--  
我改了一下,应该是把
sum as string=“1=2”

这个代码之前在论坛里也见过,可以解释一下这样写的原理吗?
以下面这个代码为例,为什么把sum=“1=2”之后,就可以把忽略or,或者说代码就可以执行了,想知道原理哈,谢谢!!

Dim filter As String

Dim sum As String="1=2"

For Each dr As Row In drs

   filter= "[疾病] =\'" & dr("疾病") & "\'"

sum= sum & "or" & filter

  Next

MessageBox.Show(sum)

 Tables("疾病对比").Filter=sum


--  作者:有点甜
--  发布时间:2017/7/30 11:57:00
--  

合成 1=2 or 第一列 = \'123\' or 第二列 = \'456\' 这样就不需要删除 or

 

你把or删除也行,如 sum = sum.substring(2)