以下是引用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