以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]“in”在MainTableChanged事件中被过分要求  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=39321)

--  作者:shenyl0211
--  发布时间:2013/8/21 16:19:00
--  [求助]“in”在MainTableChanged事件中被过分要求

对于下列代码,因_usergroup中不含“,”,在MainTableChanged事件中就会出错,要求_usergroup必须含有逗号。

 

Dim _usergroup As String = "\'西北院\'"
Dim Names As List(Of String)
Names = Tables("人员管理").DataTable.GetUniqueValues("[部门名称] in (" & _usergroup & ")" , "员工姓名")

 

于是只能增加if语句。但考虑到_usergroup中已经含有单引号,所以还要先去掉。能通过的代码如下:

 

Dim Names As List(Of String)
If _usergroup = "\'西北院\'" Then
    Names = Tables("人员管理").DataTable.GetUniqueValues("[机关] = \'是\'","员工姓名")
Else
    If _usergroup Like "*,*" Then
        Names = Tables("人员管理").DataTable.GetUniqueValues("[部门名称] in (" & _usergroup & ")" , "员工姓名")
    Else
        Names = Tables("人员管理").DataTable.GetUniqueValues("[部门名称] = \'" & _usergroup.trim("\'") & "\'" , "员工姓名")
    End If
End If

 

请狐爸核实!


--  作者:Bin
--  发布时间:2013/8/21 16:23:00
--  
GetUniqueValues("[部门名称] in (\'" & _usergroup & "\')"  需要有单引号包括在内
--  作者:shenyl0211
--  发布时间:2013/8/21 22:43:00
--  
2楼理解错了
--  作者:有点甜
--  发布时间:2013/8/21 23:02:00
--  
我测试一个也是可以的啊。下面这句肯定没错的。

Tables("人员管理").DataTable.GetUniqueValues("[部门名称] in (\'xxxxxx\')" , "员工姓名")

--  作者:fjlclxj
--  发布时间:2013/8/22 0:19:00
--  
a in b b 是一个集合,你先确认构造出来的_usergroup是集合