以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 日期交叉筛选编码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=38023) |
||||
-- 作者:youyuweinihao -- 发布时间:2013/7/17 19:58:00 -- 日期交叉筛选编码
ComboBxo3下拉内容为:签订日期范围之内、签订日期范围之外、签订日期为空 ComboBxo4下拉内容为:送货日期范围之内、送货日期范围之外、送货日期为空 ComboBxo6下拉内容为:收款日期范围之内、收款日期范围之外、收款日期为空 举例如:ComboBxo3下拉内容为:签订日期范围之内 ; DateTimePicker1 <签订日期<DateTimePicker2 ComboBxo4下拉内容为:送货日期范围之外; 送货日期>DateTimePicker3 OR 签订日期<DateTimePicker4 ComboBxo6下拉内容为:收款日期为空; 收款日期为空 如何写筛选按钮事件,筛选出表“收款明细”里的数据同时满足以上三个条件 |
||||
-- 作者:lsy -- 发布时间:2013/7/17 20:13:00 -- 你发了图,写了那么多的文字来描述,还不如发个实例。 能尽快获得帮助。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/7/18 8:53:00 -- 最好做个简单例子发上来,并设计好这个窗口,将能做的做好,方便别人帮你。
|
||||
-- 作者:youyuweinihao -- 发布时间:2013/7/18 10:30:00 -- Dim s As String = e.Form.Controls("ComboBox3").value Select Case s Case "签订日期范围之内" If e.Form.Controls("DateTimePicker1").Value IsNot Nothing AndAlso e.Form.Controls("DateTimePicker2").Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "#" & e.Form.Controls("DateTimePicker1").Value & "# <= 签订日期 <= #" & e.Form.Controls("DateTimePicker2").Value & "# " End If Case "签订日期范围之外" If e.Form.Controls("DateTimePicker1").Value IsNot Nothing AndAlso e.Form.Controls("DateTimePicker2").Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "签订日期 < #" & e.Form.Controls("DateTimePicker1").Value & "# Or 签订日期 > #" & e.Form.Controls("DateTimePicker2").Value & "#" End If Case "签订日期为空" If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "签订日期 Is NULL" End Select Dim t As String = e.Form.Controls("ComboBox4").value Select Case t Case "出货日期范围之内" If e.Form.Controls("DateTimePicker3").Value IsNot Nothing AndAlso e.Form.Controls("DateTimePicker4").Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "#" & e.Form.Controls("DateTimePicker3").Value & "# <= 出货日期 <= #" & e.Form.Controls("DateTimePicker4").Value & "# " End If Case "出货日期范围之外" If e.Form.Controls("DateTimePicker3").Value IsNot Nothing AndAlso e.Form.Controls("DateTimePicker4").Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " and " End If Filter = Filter & "出货日期 < #" & e.Form.Controls("DateTimePicker3").Value & "# Or 出货日期 > #" & e.Form.Controls("DateTimePicker4").Value & "#" End If Case "出货日期为空" If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "出货日期 Is NULL" End Select Dim r As String = e.Form.Controls("ComboBox6").value Select Case r Case "收款日期范围之内" If e.Form.Controls("DateTimePicker5").Value IsNot Nothing AndAlso e.Form.Controls("DateTimePicker6").Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "#" & e.Form.Controls("DateTimePicker5").Value & "# <= 收款日期 <= #" & e.Form.Controls("DateTimePicker6").Value & "# " End If Case "收款日期范围之外" If e.Form.Controls("DateTimePicker5").Value IsNot Nothing AndAlso e.Form.Controls("DateTimePicker6").Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "收款日期 < #" & e.Form.Controls("DateTimePicker5").Value & "# Or 收款日期 > #" & e.Form.Controls("DateTimePicker6").Value & "#" End If Case "收款日期为空" If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "收款日期 Is NULL" End Select If Filter > "" Then Tables("收款明细").Filter = Filter End If Tables("收款明细").Sort = "合同店铺,合同系列,合同编号 DESC" |
||||
-- 作者:youyuweinihao -- 发布时间:2013/7/18 10:36:00 -- 这个代码有没有问题啊 |
||||
-- 作者:youyuweinihao -- 发布时间:2013/7/18 10:57:00 --
这个是例子, 麻烦写下筛选的代码,以上我写的代码筛选效果是有问题的,有时候交叉筛选不起作用 |
||||
-- 作者:Bin -- 发布时间:2013/7/18 11:21:00 -- .
|
||||
-- 作者:lsy -- 发布时间:2013/7/18 11:31:00 -- 你前面的三个组合框,既然已经设置了条件,后面的日期框就要能够从收款明细中自动获取相应的日期值,而不是手工录入。 或者,更干脆点,日期框都多余,直接按组合框里面的条件筛选了。 |
||||
-- 作者:youyuweinihao -- 发布时间:2013/7/18 12:17:00 -- BIN 写的筛选代码不对啊 麻烦您帮忙检查下。筛选时间之外不对。我把and修改为or还是不对的,没有交叉筛选的作用。请试下 |
||||
-- 作者:Bin -- 发布时间:2013/7/18 12:27:00 -- 刚才少了个括号.晕死 [此贴子已经被作者于2013-7-18 12:38:04编辑过]
|