以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何使用checked控制筛选问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96485)

--  作者:wh420
--  发布时间:2017/2/22 0:49:00
--  如何使用checked控制筛选问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.foxdb


最近在研究用checked控制筛选的问题,问题如下:
1、当checkbox1被选中时按两个datatimepicker控件给出的日期范围筛选;当checkbox2被选中时按combobox1 and combobox2的值 进行筛选。如果两个checkbox都被选中则按两个日期及两个combobox的值一起筛选
2、如何改变任意一个下拉表的内容时同时筛选内容也跟着变化?

--  作者:有点蓝
--  发布时间:2017/2/22 8:46:00
--  

参考:http://www.foxtable.com/webhelp/scr/1058.htm

 


--  作者:wh420
--  发布时间:2017/2/22 9:18:00
--  
那个帮助看了,还是不了解应该在哪些事件写代码,因为要联动。
--  作者:wh420
--  发布时间:2017/2/22 9:19:00
--  
难道所有的带有下拉列表的都要写代码
--  作者:有点色
--  发布时间:2017/2/22 9:47:00
--  

1、直接判断checked,然后合成条件即可

 

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

 

2、参考

 

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

 


--  作者:有点蓝
--  发布时间:2017/2/22 9:57:00
--  
以下是引用wh420在2017/2/22 9:19:00的发言:
难道所有的带有下拉列表的都要写代码

 

你可一做个按钮,统一把代码放到按钮中执行

 

如果想在每个日期或者check改变后就执行筛选,可以隐藏按钮,然后在日期控件ValueChanged调用按钮的执行方法:http://www.foxtable.com/webhelp/scr/2309.htm

 

当然也可以把代码放到函数中

 


--  作者:wh420
--  发布时间:2017/2/22 10:57:00
--  
明白些了,并且写了日期的那个下拉列表,如果兼顾那四个复选框,这个逻辑判断应该怎样写?

Dim Filter As String
Dim dtp1 As WinForm.DateTimePicker = Forms("收入管理").Controls("DateTimePicker1")
Dim dtp2 As WinForm.DateTimePicker = Forms("收入管理").Controls("DateTimePicker2")
Dim cbox1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim cbox2 As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim chbox1 As WinForm.CheckBox = e.Form.Controls("C1")
Dim chbox2 As WinForm.CheckBox = e.Form.Controls("C2")
Dim chbox3 As WinForm.CheckBox = e.Form.Controls("C3")
Dim d As Date = Date.today
If chbox1.Checked =True Then
    With dtp1
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "日期 >= #" & .Value & "#"
        End If
    End With
    With dtp2
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "日期  <= #" & .Value & "#"
        End If
    End With
ElseIf     chbox2.Checked =True Then
    With cbox1
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "收入项目 = \'" & .Value & "\'"
        End If
    End With
    

End If
msgbox(filter)

If Filter > "" Then
    Tables("收入管理_Table1").Filter = Filter
End If

--  作者:有点色
--  发布时间:2017/2/22 11:00:00
--  

 每个复选框,用一个 If then End If

 

 这样,勾选以后,就合并成条件,你四个勾选,自然合并成四个条件了。


--  作者:wh420
--  发布时间:2017/2/22 11:25:00
--  
明白了,非常感谢两位老师。