Foxtable(狐表)用户栏目专家坐堂 → 如何在窗体中实现多条件查询


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

主题:如何在窗体中实现多条件查询

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


加好友 发短信
等级:婴狐 帖子:26 积分:288 威望:0 精华:0 注册:2018/1/19 15:29:00
如何在窗体中实现多条件查询  发帖心情 Post By:2018/1/24 17:47:00 [只看该作者]

1、用一个按钮实现所有列的查询(已实现)
2、所有列 与 另外一个条件共同查询,得出结果(未实现)
3、查询中如何使用通配符表达所有列(未实现)



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


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

你如何做的?参考 http://www.foxtable.com/webhelp/scr/1058.htm

 


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


加好友 发短信
等级:婴狐 帖子:26 积分:288 威望:0 精华:0 注册:2018/1/19 15:29:00
  发帖心情 Post By:2018/1/25 14:15:00 [只看该作者]

Dim Filter As String

With e.Form.Controls("cmbProduct")
    If .Value IsNot Nothing Then
        Filter =  "[姓名]= '" & .Value & "' Or [电话]= '" & .Value & "' Or [地区]= ' " & .Value & " ' "(这后面还有很多)
  End If
End With
    With e.Form.Controls("StartDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter &  "日期 = #" & .Value & "# "
    End If
End With
      If Filter > "" Then
        Tables("订单表").Filter = Filter
    End If
所有列 与 另外一个条件共同查询,得出结果(未实现)

[此贴子已经被作者于2018/1/25 14:23:31编辑过]

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


加好友 发短信
等级:婴狐 帖子:26 积分:288 威望:0 精华:0 注册:2018/1/19 15:29:00
  发帖心情 Post By:2018/1/25 14:20:00 [只看该作者]

Filter =  "[姓名]= '" & .Value & "' Or [电话]= '" & .Value & "' Or [地区]= '" & .Value & ""

1、在单一查询时,这句中,每个例都可以被查询到

2、在和时间合并起来查询时,只有一个例会被执行

[此贴子已经被作者于2018/1/25 14:20:06编辑过]

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


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

前后,加上括号

 

 Filter =  "([姓名]= '" & .Value & "' Or [电话]= '" & .Value & "')"

 


 


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


加好友 发短信
等级:婴狐 帖子:26 积分:288 威望:0 精华:0 注册:2018/1/19 15:29:00
  发帖心情 Post By:2018/1/25 16:59:00 [只看该作者]

谢谢,有点甜,已经可以实现了

另外咨询下,查询中如何使用通配符表达所有列


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


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

Filter =  "([姓名] like '%" & .Value & "%' Or [电话] like '%" & .Value & "%')"

 

如果某列不是字符列

 

Filter =  "([姓名] like '%" & .Value & "%' Or [电话] like '%" & .Value & "%' or convert(日期, 'System.String') like '%" & .value & "%')"


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


加好友 发短信
等级:婴狐 帖子:26 积分:288 威望:0 精华:0 注册:2018/1/19 15:29:00
  发帖心情 Post By:2018/1/25 22:10:00 [只看该作者]

谢谢,有点甜,已经可以实现了,厉害!!!
Filter =  "([姓名] like '%" & .Value & "%' Or [电话] like '%" & .Value & "%' or convert(日期, 'System.String') like '%" & .value & "%')",
其中这里面的日期,只能按固定格式,能不能实现日期的多种写法

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


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

 

以下是引用top123在2018/1/25 22:10:00的发言:
谢谢,有点甜,已经可以实现了,厉害!!!
Filter =  "([姓名] like '%" & .Value & "%' Or [电话] like '%" & .Value & "%' or convert(日期, 'System.String') like '%" & .value & "%')",
其中这里面的日期,只能按固定格式,能不能实现日期的多种写法

 

比较麻烦,因为筛选条件是用表达式的,表达式处理日期列,要这样处理

 

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

 

[此贴子已经被作者于2018/1/25 22:48:44编辑过]

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


加好友 发短信
等级:婴狐 帖子:26 积分:288 威望:0 精华:0 注册:2018/1/19 15:29:00
  发帖心情 Post By:2018/3/4 14:46:00 [只看该作者]

Dim Filter As String

With e.Form.Controls("cmbProduct")
    If .Value IsNot Nothing Then

      Filter =  "([姓名] like '%" & .Value & "%' Or [电话] like '%" & .Value & "%' or convert(日期, 'System.String') like '%" & .value & "%')",
        Filter =   End If
End With
    With e.Form.Controls("StartDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter &  "([姓名] like '%" & .Value & "%' Or [电话] like '%" & .Value & "%' or convert(日期, 'System.String') like '%" & .value & "%')"
End If
End With
      If Filter > "" Then
        Tables("订单表").Filter = Filter
    End If
这段代码,不能实现两个条件同时查询,这是什么情况

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