Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口中的下拉列表的筛选


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

主题:[求助]窗口中的下拉列表的筛选

帅哥哟,离线,有人找我吗?
蝙蝠侠K02
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:963 威望:0 精华:0 注册:2014/4/1 19:48:00
[求助]窗口中的下拉列表的筛选  发帖心情 Post By:2014/8/13 16:34:00 [只看该作者]

      我在窗口中添加一个查询表,该查询表用FILL的方法从“用户表”在打开窗口时只加载表结构。

      同时,在窗口添加一个组合框,点击组合框,下拉列表的数据项为“部门名称”,选中其中“部门名称”,

从“用户表”按“部门名称”进行加载该部门下的用户。组合框的SelectedIndexChanged代码如下,系统代码出错,

提示“至少缺一个参数”。我知道是And 用户姓名 not In (" & ids & ") 有问题,去掉此句,一切正常。

      但我想将ids 出现过的用户过滤掉,不知如何去做?

 

With DataTables("人员添加窗口2_Table1")

    Dim ids As String  = Vars("checkeduser")

   If ids > " " Then

        .LoadFilter = "部门名称 = '" & e.Sender.Value & "' And 用户姓名 not In (" & ids & ") "

        .Load()

    Else

        .LoadFilter = "部门名称 = '" & e.Sender.Value & "'"

        .Load() 

    End If

End With


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/13 16:37:00 [只看该作者]

你的ids生成有问题。

 

你的ids必须是这种形式的,比如 idx = "'AAAA','BBB','CCC'"

 

用户姓名 not In (" & ids & ")

 


 回到顶部
帅哥哟,离线,有人找我吗?
蝙蝠侠K02
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:963 威望:0 精华:0 注册:2014/4/1 19:48:00
  发帖心情 Post By:2014/8/13 17:15:00 [只看该作者]

       生成IDS 的代码如下:

 

Dim ids As String

With Tables("用户选择临时表")

        For Each dr As Row In .Rows

        ids = ids & "," & dr("用户姓名")

        Next

        ids= ids.Trim(",")

        If Forms("新建任务窗口").Opened Then

            Dim s As String = Vars("fn")

            Select Case s

                Case 1 '责任人

                    Dim tx As WinForm.TextBox = Forms("新建任务窗口").Controls("TextBox4")

                    tx .Value  = ids

                Case 2 '参与人

                    Dim tx As WinForm.TextBox = Forms("新建任务窗口").Controls("TextBox5")

                    tx .Value  = ids

             End Select

        End If

        Vars("checkeduser") = Vars("checkeduser") & "," & ids   '将本次已选用户加入已选用户变量中

        Vars("checkeduser")= Vars("checkeduser").Trim(",")

  End With


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/13 17:19:00 [只看该作者]

改一下

 

        For Each dr As Row In .Rows

            ids = ids & "'" & dr("用户姓名") & "',"

        Next

        ids= ids.Trim(",")


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/13 17:21:00 [只看该作者]

或者,你前面不用改,你最后的代码改一下

 

With DataTables("人员添加窗口2_Table1")

    Dim ids As String  = Vars("checkeduser")

   If ids > " " Then

        .LoadFilter = "部门名称 = '" & e.Sender.Value & "' And 用户姓名 not In ('" & ids.Replace(",", "','") & "') "

        .Load()

    Else

        .LoadFilter = "部门名称 = '" & e.Sender.Value & "'"

        .Load() 

    End If

End With


 回到顶部
帅哥哟,离线,有人找我吗?
蝙蝠侠K02
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:963 威望:0 精华:0 注册:2014/4/1 19:48:00
  发帖心情 Post By:2014/8/13 17:59:00 [只看该作者]

   按4楼 我试了一下,出现‘张三’,,’李四’,重复(,,)

我将ids = ids & "'" & dr("用户姓名") & "'," 改为ids = ids & "'" & dr("用户姓名") "'",

只出现一个(,),但试一下,还是不行。

 

  我再试一下5楼的代码


 回到顶部
帅哥哟,离线,有人找我吗?
蝙蝠侠K02
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:963 威望:0 精华:0 注册:2014/4/1 19:48:00
  发帖心情 Post By:2014/8/13 18:27:00 [只看该作者]

      我试了一下5楼的代码,系统不报错了,但仍没有将已有的用户(IDS中)过滤掉,请甜老师再看一下!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/13 19:13:00 [只看该作者]

 回复7楼,没有理由,例子发上来

 

 你msgbox(DataTables("人员添加窗口2_Table1").LoadFilter)看看条件是否设置正确。


 回到顶部
帅哥哟,离线,有人找我吗?
蝙蝠侠K02
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:963 威望:0 精华:0 注册:2014/4/1 19:48:00
  发帖心情 Post By:2014/8/14 9:45:00 [只看该作者]

    我又试了一下。可以了,谢谢!

    我还有一个问题,我想将如下ids 变成'AAAA','BBB','CCC',怎么写代码?

     dim idx as string = AAAA,BBB,CCC


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/14 9:56:00 [只看该作者]

 idx.Replace("'", "")

 回到顶部
总数 18 1 2 下一页