Foxtable(狐表)用户栏目专家坐堂 → 多条件筛选


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

主题:多条件筛选

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
多条件筛选  发帖心情 Post By:2016/2/16 9:42:00 [只看该作者]

从银行现金汇总表的交易户名列及涉及人员提取户名设置查询条件,从银行明细表提取数据,为此写了以下代码,但是该代码实现不了我所想要的功能

Dim str1 As String
Dim str2 As String
If Tables("银行现金汇总").current.IsNull("交易户名") = False AndAlso Tables("银行现金汇总").current.IsNull("涉及人员") = False Then '如果工号列不为空
    Dim nms1() As String = Tables("银行现金汇总").current("交易户名").Split(",") '将工号列内容拆分成数组
    Dim nms2() As String = Tables("银行现金汇总").current("涉及人员").Split(",") '将工号列内容拆分成数组
    For Each nm1 As String In nms1 '遍历参与加工此产品的每个工号
        str1 = str1 & " & nm1 & " & ","
    Next
    For Each nm2 As String In nms2 '遍历参与加工此产品的每个工号
        str2 = str2 & " & nm2 & " & ","
    Next
    'Tables("交易明细_table1").filter = "["交易户名"] In {str1} And ["对方户名"] In {str2}"
End If


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/16 9:50:00 [只看该作者]

Tables("表A").Filter = "[对方户名] In ('郭俊鹏') and [交易户名] In ('张三','李四','王五','李六')"   上述代码在组合条件时 单引号怎么解决呀?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/16 9:55:00 [只看该作者]

Dim str1 As String
Dim str2 As String
If Tables("银行现金汇总").current.IsNull("交易户名") = False AndAlso Tables("银行现金汇总").current.IsNull("涉及人员") = False Then '如果工号列不为空
    str1  = Tables("银行现金汇总").current("交易户名")
    str2  = Tables("银行现金汇总").current("涉及人员")
    Tables("交易明细_table1").filter = "[交易户名] In (" & str1 & ") And [对方户名] In (" & str2 & ")"
End If

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/16 10:06:00 [只看该作者]

这是修改后的代码

Dim str1 As String
Dim str2 As String
If Tables("银行现金汇总").current.IsNull("交易户名") = False AndAlso Tables("银行现金汇总").current.IsNull("涉及人员") = False Then '如果工号列不为空
    Dim nms1() As String = Tables("银行现金汇总").current("交易户名").Split(",") '将工号列内容拆分成数组
    Dim nms2() As String = Tables("银行现金汇总").current("涉及人员").Split(",") '将工号列内容拆分成数组
    For Each nm1 As String In nms1 '遍历参与加工此产品的每个工号
        str1 = str1 & " & nm1 & " & ","
    Next
    For Each nm2 As String In nms2 '遍历参与加工此产品的每个工号
        str2 = str2 & " & nm2 & " & ","
    Next
    Tables("交易明细_table1").filter = " [交易户名] In '" & (str1) & "' And  [对方户名] In '" &  (str2) & "'"
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/16 10:09:00 [只看该作者]

Dim str1 As String
Dim str2 As String
If Tables("银行现金汇总").current.IsNull("交易户名") = False AndAlso Tables("银行现金汇总").current.IsNull("涉及人员") = False Then '如果工号列不为空
    str1  = Tables("银行现金汇总").current("交易户名").Replace(",", "','")
    str2  = Tables("银行现金汇总").current("涉及人员").Replace(",", "','")
    Tables("交易明细_table1").filter = "[交易户名] In ('" & str1 & "') And [对方户名] In ('" & str2 & "')"
End If


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/16 10:17:00 [只看该作者]

执行上述修改后的代码,错误提示如下:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:
详细错误信息:
语法错误: IN 关键字后面的项必须用逗号分隔,并且必须用括号括起来。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/16 10:19:00 [只看该作者]

不可能,请弹出msgbox(str1)、msgbox(str2)


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/16 10:28:00 [只看该作者]

执行5楼代码错误提示

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:加载[银行明细]失败!
详细错误信息:
至少一个参数没有被指定值。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/16 10:35:00 [只看该作者]

 这个是筛选啊,跟加载一点关系都没有。

 

 如果报错,肯定是其它代码影响的。做例子上来测试。


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/2/16 10:37:00 [只看该作者]

如果是一个人,显示的结果是 张三 如果是两个人 显示的是 张三’,‘李四   如果是三个人 显示的是张三’,‘李四 ’,‘王五,格式还是不对


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