Foxtable(狐表)用户栏目专家坐堂 → 多字段查询


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

主题:多字段查询

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


加好友 发短信
等级:幼狐 帖子:81 积分:632 威望:0 精华:0 注册:2018/4/17 11:59:00
多字段查询  发帖心情 Post By:2018/5/29 10:22:00 [只看该作者]

老师上午好。
如图所示做了一个查询窗口,现在单字段的查询没有问题。就是查询不了多字段。比如,要查询第一行多字段中的无故障项。看了帮助文档里的多字段查询内容,但看不明白。老师能帮忙解决一下吗?谢谢!
图片点击可在新窗口打开查看此主题相关图片如下:q.jpg
图片点击可在新窗口打开查看

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


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

参考

 

http://www.foxtable.com/webhelp/scr/1058.htm

 

比如

 

Filter = Filter & "客户 = '" & .Value & "'"

 

改成

 

Dim str As String = "1=2"

For Each s As String in .Value.split(",")

    str &= " or 客户 = '" & s & "'"

Next

Filter = Filter & " (" & str & ") "

[此贴子已经被作者于2018/6/5 16:34:10编辑过]

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


加好友 发短信
等级:幼狐 帖子:81 积分:632 威望:0 精华:0 注册:2018/4/17 11:59:00
  发帖心情 Post By:2018/5/29 11:45:00 [只看该作者]

老师,还是解决不了?
With e.Form.Controls("DropBox1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Dim str As String = "1=2"        ' 这段是什么意思?
       For Each s As String In .Value.split(",")
            str &= " or 故障原因 = '" & .Value & "'"
        Next
        Filter = Filter & " (" & str & ") "
    End If
End With

[此贴子已经被作者于2018/5/29 11:47:13编辑过]

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


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

为了组合字符串,最终合成如

 

1=2 or 第一列='123' or 第一列='abc'

 

这样就不需要处理最前面一个or,当然你删掉1=2也行,同时要删除or


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


加好友 发短信
等级:幼狐 帖子:81 积分:632 威望:0 精华:0 注册:2018/4/17 11:59:00
  发帖心情 Post By:2018/5/29 15:45:00 [只看该作者]

老师,根据您的解释红色区域的编码是不是要改成“5=2”(故障原因是第五列)。整体代码运行后多字段还是不能查询。请老师帮忙解决一下,我现在一头雾水!
With e.Form.Controls("DropBox1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Dim str As String = "5=2"        ' 修改编码
       For Each s As String In .Value.split(",")
            str &= " or 故障原因 = '" & .Value & "'"
        Next
        Filter = Filter & " (" & str & ") "
    End If
End With

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


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

最后msgbox(str)弹出什么?

 

或者,你做一个实例发上来测试。


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


加好友 发短信
等级:幼狐 帖子:81 积分:632 威望:0 精华:0 注册:2018/4/17 11:59:00
  发帖心情 Post By:2018/5/29 16:17:00 [只看该作者]

老师,显示情况是这样的。
With e.Form.Controls("DropBox1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Dim str As String = "5=2"
        For Each s As String In .Value.split(",")
            str &= " or 故障原因 = '" & .Value & "'"     
        Next
        Filter = Filter & " (" & str & ") "
msgbox(str)
    End If
End With

图片点击可在新窗口打开查看此主题相关图片如下:a.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/5/29 16:18:37编辑过]

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


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

改成

 

With e.Form.Controls("DropBox1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Dim str As String = "5=2"
        For Each s As String In .Value.split(",")
            str &= " or 故障原因 like '%" & s & "%'"    
        Next
        Filter = Filter & " (" & str & ") "

    End If
End With

[此贴子已经被作者于2018/6/5 16:33:48编辑过]

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


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

或者

 

改成

 

With e.Form.Controls("DropBox1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Dim str As String = "1=1"
        For Each s As String In .Value.split(",")
            str &= " and 故障原因 like '%" & s & "%'"    
        Next
        Filter = Filter & " (" & str & ") "

    End If
End With

[此贴子已经被作者于2018/6/5 16:33:22编辑过]

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


加好友 发短信
等级:幼狐 帖子:81 积分:632 威望:0 精华:0 注册:2018/4/17 11:59:00
  发帖心情 Post By:2018/5/30 9:09:00 [只看该作者]

老师,问题解决了。不管是单字段还是多字段都能查询了。非常感谢!


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