Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:幼狐 帖子:134 积分:1313 威望:0 精华:0 注册:2012/10/31 14:21:00
[求助]  发帖心情 Post By:2012/11/7 22:04:00 [只看该作者]

请各位大大指导下。以下这段代码想实现筛选符合三种条件所有行

但是怎么勾选其中一个的时候正确,同时勾二个或者三个就出错,

我是菜鸟,希望高手能指导下代码的错误

 

Tables("信息表").filter = ""

Dim hg As WinForm.CheckBox = e.Form.Controls("CheckBox1")
Dim ds As WinForm.CheckBox = e.Form.Controls("CheckBox2")
Dim yqx As WinForm.CheckBox = e.Form.Controls("CheckBox3")
Dim filter1 As String
Dim filter2 As String
Dim filter3 As String

With e.Form.Controls("CheckBox1")
    If hg.checked = True Then
        Filter1 = "状态 = '合格'"
    End If
End With

With e.Form.Controls("CheckBox2")
    If ds.checked = True Then
        Filter2 = "状态 = '待审'"
    End If
End With

With e.Form.Controls("CheckBox3")
    If yqx.checked = True Then
        Filter3 = "状态 = '己取消'"
    End If
End With

Tables("信息表").Filter = Filter1 & Filter2 & filter3   '这句能不能通过这样实现并列三条种条件一起?


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


加好友 发短信
等级:幼狐 帖子:134 积分:1313 威望:0 精华:0 注册:2012/10/31 14:21:00
  发帖心情 Post By:2012/11/7 22:08:00 [只看该作者]

说明下哦,以上代码就是筛选表格的状态符合以下三种情况的总行数

 

状态:O合格  O待审 O己取消

以上O是指的复选框。指表格同一列,列的题头是“状态”


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


加好友 发短信
等级:小狐 帖子:365 积分:2693 威望:0 精华:1 注册:2011/11/25 7:55:00
  发帖心情 Post By:2012/11/7 22:12:00 [只看该作者]

条件组合到一起是吗,照理说你这个应该是三个不同状态,应该做成单选啊,怎么会是复选呢
[此贴子已经被作者于2012-11-7 22:14:52编辑过]

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


加好友 发短信
等级:幼狐 帖子:134 积分:1313 威望:0 精华:0 注册:2012/10/31 14:21:00
  发帖心情 Post By:2012/11/7 22:16:00 [只看该作者]

是呀,我这要组合三种条件在一起。

 

要符合条件一+符合条件二+符合条件三


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


加好友 发短信
等级:小狐 帖子:365 积分:2693 威望:0 精华:1 注册:2011/11/25 7:55:00
  发帖心情 Post By:2012/11/7 22:18:00 [只看该作者]

按你的思路应该是这样吧

Dim Filter As String
With e.Form.Controls("CheckBox1")
    If .checked Then
        Filter = "状态 = '合格'"
    End If
End With
With e.Form.Controls("CheckBox2")
    If .checked Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "状态 = '待审'"
    End If
End With
With e.Form.Controls("CheckBox3")
    If .checked Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "状态 = '己取消'"
    End If
End With
Tables("信息表").Filter = Filter


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


加好友 发短信
等级:幼狐 帖子:134 积分:1313 威望:0 精华:0 注册:2012/10/31 14:21:00
  发帖心情 Post By:2012/11/7 22:29:00 [只看该作者]

谢谢楼上的兄弟,马上调试

好像不行,和我的情况一样,单选可以。

选二个或三个就会出现空值


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


加好友 发短信
等级:童狐 帖子:202 积分:1683 威望:0 精华:0 注册:2011/6/17 16:07:00
  发帖心情 Post By:2012/11/7 22:29:00 [只看该作者]

试试   Tables("信息表").Filter = Filter1 and Filter2 and  filter3   '


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


加好友 发短信
等级:幼狐 帖子:134 积分:1313 威望:0 精华:0 注册:2012/10/31 14:21:00
  发帖心情 Post By:2012/11/7 22:30:00 [只看该作者]

有朋友告诉我了,发上来分享下,

 

 

Tables("信息表").filter = ""

 

Dim hg As WinForm.CheckBox = e.Form.Controls("CheckBox1")

Dim ds As WinForm.CheckBox = e.Form.Controls("CheckBox2")

Dim yqx As WinForm.CheckBox = e.Form.Controls("CheckBox3")

Dim Filter As String

 

With e.Form.Controls("CheckBox1")

    If hg.checked = True Then

        If Filter > "" Then

            Filter = Filter & " or 状态 = '合格'"

        Else

            Filter = "  状态 = '合格'"

        End If

    End If

End With

 

With e.Form.Controls("CheckBox2")

    If ds.checked = True Then

        If Filter > "" Then

            Filter = Filter & " or 状态 = '待审'"

        Else

            Filter = " 状态 = '待审'"

        End If

    End If

End With

 

With e.Form.Controls("CheckBox3")

    If yqx.checked = True Then

        If Filter > "" Then

            Filter = Filter & " or 状态 = '己取消'"

        Else

            Filter = " 状态 = '己取消'"

        End If

    End If

End With

 

Tables("信息表").Filter = Filter


 回到顶部