Foxtable(狐表)用户栏目专家坐堂 → [求助]请教多种筛选组合使用的代码


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

主题:[求助]请教多种筛选组合使用的代码

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


加好友 发短信
等级:幼狐 帖子:134 积分:1313 威望:0 精华:0 注册:2012/10/31 14:21:00
[求助]请教多种筛选组合使用的代码  发帖心情 Post By:2012/11/10 10:49: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


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 11:15: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 = "1=2"

 

If hg.Checked then
    filter1 = filter1 & " or 状态 = '合格' "
End If

If ds.Checked then
    filter1 = filter1 & " or 状态 = '待审' "
End If

If yqx.Checked then
    filter1 = filter1 & " or 状态 = '己取消'"
End If

 

'----------------------------------------------


Dim gj As WinForm.CheckBox = e.Form.Controls("CheckBox4")

Dim yb As WinForm.CheckBox = e.Form.Controls("CheckBox5")

Dim filter2 As String = "1=2"


If gj.Checked then
    filter2 = filter2 & " or 分类 = '关键' "
End If

If yb.Checked then
    filter2 = filter2 & " or 分类 = '一般'"
End If


msgbox("(" & filter1 & ") And (" & filter2 & ")")


Tables("信息表").Filter = "(" & filter1 & ") And (" & filter2 & ")"


[此贴子已经被作者于2012-11-10 11:14:54编辑过]

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


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

谢谢楼上的狐友,学习中

 

楼主能不能加点说明,特别是

 

Dim filter1 As String = "1=2"

msgbox("(" & filter1 & ") And (" & filter2 & ")")

这二句能说明下不,

或者告诉下哪里可以查看相关的资料


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 11:58:00 [只看该作者]

 加入1=2,主要是想不必判断filter是否是空,直接可以连接。

 1=2 or 状态 = '合格'

 这样,语法就不会有错,而1=2,本来就是假,不会影响or运算。

----------------------

 msgbox("(" & filter1 & ") And (" & filter2 & ")")

 这句代码,主要是想弹出给你看最后生成的条件是什么。

 --------------------------------

 or 和 and,是有优先级别的,就好象 加+ 和 乘* 一样,所以左右要加括号

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


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

明白了,谢谢


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


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

这个脚本怎么实现不了功能,

弹出提示错误的窗口了

 

259d83cc.form---'(窗口标题)

(1=2 or 状态='合')and (1=2)---'(窗口内容)

 

什么情况?

 

 


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 15:59:00 [只看该作者]

 把报错的内容贴上来。图片。

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


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

看看foxtable帮助资料,自行设计查询窗口这一章节

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


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

图片点击可在新窗口打开查看

这是单点状态合格时的图片,确定后返回空值。

我发现个情况,

单选一个,或单选一种状态的多个选项时都会出错,且返回空值,

 

二种状态都选,至少选一个时,搜索是对的


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 17:39:00 [只看该作者]

 楼主,那你希望是怎样一种条件去筛选呢?

 我不懂了。你筛选的条件好像说不太通吧?

 没有选中,你希望怎样显示?
[此贴子已经被作者于2012-11-10 17:39:28编辑过]

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