以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于自制筛选的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116598) |
-- 作者:xwhong123 -- 发布时间:2018/3/27 20:13:00 -- [求助]关于自制筛选的问题 Dim Filter As String With e.Form.Controls("cmbProduct") If .Value IsNot Nothing Then Filter = "日期 = \'" & .Value & "\'" End If If Filter > "" Then Tables("表A").Filter = Filter End If 如上,这是一个筛选按钮的代码,筛选列“日期”的列数据类型为日期时间,格式为2014-02-05等,筛选条件为同样的年月日,但是我希望能将筛选条件变成满足“日期”列中的前4字符(即年份),请问是否有这样的代码能做到如果"cmbProduct"满足前4字符,就可以筛选出来
|
-- 作者:有点蓝 -- 发布时间:2018/3/27 20:20:00 -- 参考: |
-- 作者:xwhong123 -- 发布时间:2018/3/27 20:25:00 -- 我的意思是,我的筛选框仅有2013,2014,2015,2016这几个数据,但是在选择了譬如2014后,点击我设定的按钮,能够将一个完整的日期列(2014-02-17)中的所有开头为2014的筛选出来。 |
-- 作者:有点蓝 -- 发布时间:2018/3/27 20:33:00 -- Dim Filter As String With e.Form.Controls("cmbProduct") If .Value IsNot Nothing Then Dim d As Date = new Date(val(.Value),1,1) Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddYears(1) & "#" End If End With If Filter > "" Then Tables("表A").Filter = Filter End If
|
-- 作者:xwhong123 -- 发布时间:2018/3/27 20:34:00 -- 谢谢 |
-- 作者:xwhong123 -- 发布时间:2018/3/27 20:58:00 -- With
e.Form.Controls("cmbProduct") If .Value IsNot Nothing Then Filter = "编号 = \'" & .Value & "\'" End If End With 麻烦再问一下,我将你发给我的指令输入后,的确能够筛选出日期中的年,但是当我在筛选指令中添加了上面这个指令后,筛选按钮只能筛选你给我的日期筛选,并不能对编号进行筛选,是否能够将两个筛选条件同时满足(筛选日期中的年同时筛选编号),谢谢
|
-- 作者:wyz20130512 -- 发布时间:2018/3/27 21:14:00 -- 用逻辑运算符继续连接即可! Filter = "日期 >= #" & d & "# And 日期 < #" & d.AddYears(1) & "# And 编号 = \'" & .Value & "\'"
[此贴子已经被作者于2018/3/27 21:16:51编辑过]
|
-- 作者:xwhong123 -- 发布时间:2018/3/27 21:29:00 -- 但是编号所在的筛选输入文本框和日期筛选输入问文本框不是一个 |
-- 作者:有点蓝 -- 发布时间:2018/3/27 21:33:00 -- 认真看一下帮助:http://www.foxtable.com/webhelp/scr/1058.htm With e.Form.Controls("cmbCustomer")\'第一个控件的条件
If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "客户 = \'" & .Value & "\'" End If End With With e.Form.Controls("cmbEmployee")\'第二个控件的条件 If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "雇员 = \'" & .Value & "\'" End If End With |
-- 作者:xwhong123 -- 发布时间:2018/3/27 22:32:00 -- Dim Filter As String With e.Form.Controls("cmbProduct2") If .Value IsNot Nothing Then Dim d As Date = new Date(val(.Value),1,1) Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddYears(1) & "#" End If End With With e.Form.Controls("cmbProduct") If .Value IsNot Nothing Then Filter = "报告编号 = \'" & .Value & "\'" End If End With If Filter > "" Then Tables("表A").Filter = Filter End If 现在两个指令均已经输入,但是在点击按钮时,只能读取其中一个条件,不能筛选到同时满足条件的
|