Foxtable(狐表)用户栏目专家坐堂 → 筛选问题


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

主题:筛选问题

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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
筛选问题  发帖心情 Post By:2017/11/17 17:08:00 [只看该作者]

Dim Filter As String
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        Filter = "对应客户 = '" & .Value & "'"
Else filter=""
    End If

End With
With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
Else filter="" & " And "
        End If
        Filter = Filter &  "部门 = '" & .Value & "'"
    End If
End With
With e.Form.Controls("combobox14")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
            Else filter=""& " And "
        End If
        Filter = Filter & "客户负责人 = '" & .Value & "'"
    End If
End With

If Filter > "" Then
    Tables("联系_table1").Filter = Filter
End If
这段代码是写在三个combobox里的valuechanged里面的,
请问一下老师,
1为什么我先选择combobox2或3时,系统会提示语法错误:“And”运算符前缺少操作数。但是我按顺序来先选择1就会正常运行,
2当我清空combobox里的数据时,表不会立即进行筛选,而必须在其他的地方操作一下,比如在页面空白处点一下才能筛选出全部,这是为什么呢

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


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

写到TextChanged事件去

 

Dim Filter As String
With e.Form.Controls("combobox1")
    If .text <> Nothing Then
        Filter = "对应客户 = '" & .text & "'"
    End If
End With
With e.Form.Controls("combobox2")
    If .text <> Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter &  "部门 = '" & .text & "'"
    End If
End With
With e.Form.Controls("combobox14")
    If .text <> Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "客户负责人 = '" & .text & "'"
    End If
End With

If Filter > "" Then
    Tables("联系_table1").Filter = Filter
End If


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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
  发帖心情 Post By:2017/11/18 11:19:00 [只看该作者]

老师好,但是这么写话当我清空combobox数据时表并不会回到未筛选的状态啊,而是保留在我上次筛选完时的状态,这样应该怎么改

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/11/18 11:29:00 [只看该作者]

代码没有问题,上实例说明

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


加好友 发短信
等级:幼狐 帖子:142 积分:1115 威望:0 精华:0 注册:2017/4/21 9:36:00
  发帖心情 Post By:2017/11/18 11:51:00 [只看该作者]

是把三个combobox的数据都清空时不会返回未筛选状态
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/11/18 11:54:00 [只看该作者]

If Filter > "" Then
    Tables("联系_table1").Filter = Filter
End If

3个控件都改为:

Tables("联系_table1").Filter = Filter

去掉if判断

 回到顶部