以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于IN 的用法  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=56310)

--  作者:ap9709130
--  发布时间:2014/9/2 23:36:00
--  关于IN 的用法

我的代码如下:

Dim tr As DataRow = DataTables("员工表").find("员工姓名 = \'" & user.name & "\'")
If tr IsNot Nothing Then
Dim bm As String
bm = tr("所属部门")
bm = bm.Trim(",")
Output.show(bm)
DataTables("物料信息表").LoadFilter = "所属部门 in (\'“ & bm & "\') And 所属公司 = \'aa\' "
DataTables("物料信息表").Load
End If

为什么当BM 有一个值时,代码可以执行,但是如果BM有两个以上的值,比如:BM = ”工业部,橡胶部"  时,代码不能执行,要如何写才对呢?


--  作者:狐狸爸爸
--  发布时间:2014/9/3 7:53:00
--  

呵呵,你看看yin的语法:

http://www.foxtable.com/help/topics/0102.htm

 

是:

[国籍] In (\'中国\',\'美国\',\'英国\',\'法国\',\'俄罗斯\')

 

不是:

[国籍] In (\'中国,美国,英国,法国,俄罗斯\')

 

是每个字符值用单引号括起来,不是全部值用一个单引号括起来。

 

 


--  作者:狐狸爸爸
--  发布时间:2014/9/3 7:58:00
--  

所以:

 

"所属部门 in (\'“ & bm & "\') And 所属公司 = \'aa\' "

 

改为:

 

"所属部门 in (\'“ & bm.Replace(",", "\',\'") & "\') And 所属公司 = \'aa\' "


--  作者:ap9709130
--  发布时间:2014/9/3 23:59:00
--  
多谢狐爸。真是勤快啊。看样子不买永久版都不行了。