Foxtable(狐表)用户栏目专家坐堂 → [求助]关于自制筛选的问题


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

主题:[求助]关于自制筛选的问题

美女呀,离线,留言给我吧!
xwhong123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:13 积分:179 威望:0 精华:0 注册:2018/3/6 20:34:00
[求助]关于自制筛选的问题  发帖心情 Post By: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字符,就可以筛选出来

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/3/27 20:20:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
xwhong123
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:13 积分:179 威望:0 精华:0 注册:2018/3/6 20:34:00
  发帖心情 Post By:2018/3/27 20:25:00 [只看该作者]

我的意思是,我的筛选框仅有2013,2014,2015,2016这几个数据,但是在选择了譬如2014后,点击我设定的按钮,能够将一个完整的日期列(2014-02-17)中的所有开头为2014的筛选出来。

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:13 积分:179 威望:0 精华:0 注册:2018/3/6 20:34:00
  发帖心情 Post By:2018/3/27 20:34:00 [只看该作者]

谢谢

 回到顶部
美女呀,离线,留言给我吧!
xwhong123
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:13 积分:179 威望:0 精华:0 注册:2018/3/6 20:34:00
  发帖心情 Post By:2018/3/27 20:58:00 [只看该作者]

With e.Form.Controls("cmbProduct")
   
If .Value IsNot Nothing Then
        Filter =
"编号 = '" & .Value & "'"
   
End If
End
With

麻烦再问一下,我将你发给我的指令输入后,的确能够筛选出日期中的年,但是当我在筛选指令中添加了上面这个指令后,筛选按钮只能筛选你给我的日期筛选,并不能对编号进行筛选,是否能够将两个筛选条件同时满足(筛选日期中的年同时筛选编号),谢谢

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


加好友 发短信
等级:六尾狐 帖子:1249 积分:9480 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2018/3/27 21:14:00 [只看该作者]

用逻辑运算符继续连接即可!

 Filter = "日期 >= #" & d & "# And 日期 < #" & d.AddYears(1) & "# And 编号 = '" & .Value & "'"
[此贴子已经被作者于2018/3/27 21:16:51编辑过]

 回到顶部
美女呀,离线,留言给我吧!
xwhong123
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:13 积分:179 威望:0 精华:0 注册:2018/3/6 20:34:00
  发帖心情 Post By:2018/3/27 21:29:00 [只看该作者]

但是编号所在的筛选输入文本框和日期筛选输入问文本框不是一个

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:13 积分:179 威望:0 精华:0 注册:2018/3/6 20:34:00
  发帖心情 Post By: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

现在两个指令均已经输入,但是在点击按钮时,只能读取其中一个条件,不能筛选到同时满足条件的

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