Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口表多关键字查询


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

主题:[求助]窗口表多关键字查询

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/16 16:30:00 [显示全部帖子]

For Each c As Col In Tables("查询_Table1").Cols
    If c.IsNumeric Then
        str &= " or Convert(" & c.name  & ", 'System.String') Like '%" & s & "%'"
    Else
        str &= " or " & c.name  & " Like '%" & s & "%'"
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/16 22:16:00 [显示全部帖子]

and 用:Dim str As String = "1=1" 
or  用:Dim str As String = "1=2" 

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/16 22:47:00 [显示全部帖子]

代码没有问题,因为根本就没有符合条件的数据。and是所有条件同时符合,比如输入1,同一行所有单元格都必须有1才符合。

想清楚自己到底要做什么?

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 10:57:00 [显示全部帖子]

这个和and基本没有关系

With e.Form.Controls("TextBox1")
    If .text IsNot Nothing Then
        Dim str As String = "1=2"
        For Each s As String In .text.split(",")
            If s > "" Then
                For Each c As Col In Tables("查询_Table1").Cols
                    If c.IsNumeric OrElse c.IsDate  Then
                        str &= " or Convert(" & c.name & " , 'System.String') Like '%" & s & "%'"
                    Else
                        str &= " or " & c.name  & " Like '%" & s & "%'"
                    End If
                Next
            End If
        Next
        Tables("查询_Table1").Filter = IIF(Tables("查询_Table1").Filter > "",Tables("查询_Table1").Filter & " and (" & str & ")","(" & str & ")")
    End If
End With

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 15:55:00 [显示全部帖子]

上传实例说明

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 16:44:00 [显示全部帖子]

代码没有问题,要知道条件是不断累加的。不需要累加的时候自己清空一下条件。还是那句话,要搞清楚自己到底要什么

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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 22:43:00 [显示全部帖子]

这是另外一种逻辑了。这种用法不能放到textchanged事件的,需要使用按钮进行查询。先从文本框获取字符,根据逗号分隔(http://www.foxtable.com/webhelp/topics/0245.htm)为数组,然后遍历这个数组,逐个合并查询条件

 回到顶部