以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 菜单的时间筛选 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=790) |
-- 作者:blackzhu -- 发布时间:2008/10/7 17:37:00 -- 菜单的时间筛选 DIM SD AS DATE End If |
-- 作者:czy -- 发布时间:2008/10/7 18:14:00 -- 一个建议。 |
-- 作者:blackzhu -- 发布时间:2008/10/7 19:25:00 -- 以下是引用czy在2008-10-7 18:14:00的发言:
一个建议。 老大不会吧,比如有一张表示库存的,有进仓日期和出仓日期,全部改为日期,字段就重复了。怎么做表? |
-- 作者:czy -- 发布时间:2008/10/7 20:22:00 -- 进仓有入库表,出仓有出库表,怎么会重复呢? 如果进仓日期和出仓日期同属一个表,你可以在菜单中再增加一个编辑框,执行筛选前先选择数据来源列,再执行筛选也不会有问题. |
-- 作者:blackzhu -- 发布时间:2008/10/7 20:33:00 -- 以下是引用czy在2008-10-7 20:22:00的发言:
进仓有入库表,出仓有出库表,怎么会重复呢? 如果进仓日期和出仓日期同属一个表,你可以在菜单中再增加一个编辑框,执行筛选前先选择数据来源列,再执行筛选也不会有问题. 我只是举个列子而已。 |
-- 作者:blackzhu -- 发布时间:2008/10/7 21:32:00 -- 以下是引用czy在2008-10-7 18:14:00的发言:
一个建议。 我也知道这样是最好的,但这样改的话,我有很多东西必须全部动了。有一些是日期参与代码计算的,还有报表都设计好了。请狐爸和LXL老师看看有什么简便的方法可以解决? |
-- 作者:狐狸爸爸 -- 发布时间:2008/10/7 22:04:00 -- 这种功能没有意义的,系统菜单提供的日期筛选,比这个强大得多没,而且通用。 如果一定要自己做,可以改为下面的代码,不过必须先选择日期列,才能正常筛选: DIM SD AS DATE DIM ED AS DATE Dim ColName As string = CurrentTable.Cols(CurrentTable.Colsel).Name If CurrentTable.Cols(ColName).IsDate = False Then Messagebox.show("请选择日期列") End If With RibbonTabs("【定位筛选】")("定位筛选") If Date.TryParse(.Items("SD").Text,SD) Then \'如果输入了有效的起始日期 If Date.TryParse(.Items("ED").Text,ED) Then \'而且输入了有效的结束日期 \'那么筛选两个日期之间的数据 CurrentTable.Filter = ColName & " >= #" & SD & "# And " & ColName & "<= #" & ED & "#" Else \'否则筛选大于起始日期的数据 CurrentTable.Filter = ColName & " >= #" & SD & "#"
End If ElseIf Date.TryParse(.Items("ED").Text, ED) Then \'如果输入了有效的结束日期 CurrentTable.Filter = ColName & " <= #" & ED & "#" End If END WITH |