Foxtable(狐表)用户栏目专家坐堂 → 日期筛选无法跨2013筛选代码


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

主题:日期筛选无法跨2013筛选代码

帅哥哟,离线,有人找我吗?
lin_hailun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/21 9:18:00 [显示全部帖子]

 楼主,你的代码,或者你的数据有问题吧?贴出你自己写的代码,上传你有的数据或者项目。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/22 10:44:00 [显示全部帖子]

以下是引用youyuweinihao在2013-1-22 10:28:00的发言:

狐爸我的代码要怎么修改呢

谢谢


如果之前正常的话,就不可能是代码出错了。看看你的表数据里是否有不符合规则的数据,比如空行等的。

这句
For Each dr As DataRow In DataTables("会员信息").DataRows

改成
For Each dr As DataRow In DataTables("会员信息").Select("阳历生日 is not null And 出生日期 is not null")

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/22 11:03:00 [显示全部帖子]

以下是引用youyuweinihao在2013-1-22 10:52:00的发言:

之前是正常的

2013年以前筛选都是正常的

以换2013筛选就出错


嗯嗯,明白了,应该是2月29日的问题。

代码需要这样改一下。

Dim s As Date
Dim ids As String
Dim cnt As Integer
Dim nms As String
Syscmd.Filter.UnFilter()
s = Forms("窗口4").Controls("DateTimePicker1").value

For Each dr As DataRow In DataTables("会员信息").DataRows 
    Dim dt As Date = dr("阳历生日")  
    Dim dy As Date = dr("出生日期")
   
    Dim day As Integer = dt.Day
    If dt.Month = 2 AndAlso dt.Day = 29 AndAlso Date.IsLeapYear(s.Year) = False Then
        day = 28
    End If
    dt =  New Date(s.Year,dt.Month, day)

    day = dy.Day
    If dy.Month = 2 AndAlso dy.Day = 29 AndAlso Date.IsLeapYear(s.Year) = False Then
        day = 28
    End If   
    dy =  New Date(s.Year,dy.Month,day)
   
    If dt = s Or dy = s Then      
        cnt = cnt + 1     
        ids = ids & "," & dr("_Identify")     
    End If 
Next

If cnt > 0 Then 
    Tables("会员信息").Filter = "[_Identify] In (" & ids.Trim(",") &")"  
Else
    messagebox.show("没有过生日的人")
End If



 回到顶部