表中[日期]列时间格式是datetime格式,日历控件MessageBox.Show显示的日期格式可以是:“yyyy-MM-dd “或 “yyyy-MM-dd 0:00”;
有没有办法不加辅助列,点击日历筛选表?代码如下:
Static lst As List(of Date) '定义一个静态集合变量,用于存储选择的日期
If lst Is Nothing Then
lst = New List(of Date)
End If
If ModifierKey <> Keys.Control Then '如果没有按下Ctrl键
lst.Clear() '清除以前的日期
End If
If lst.Contains(e.Sender.Value) = False Then '如果集合不包括按下的日期
lst.Add(e.Sender.Value) '则向集合添加此日期
End If
If lst.Count = 1 Then '如果只选择了一个庭日期,则直接筛选此日期的表
Tables("日记本").Filter = "日期 = #" & e.Sender.Value & "#"
'Tables("日记本").Filter = "日期 = #" & Format(e.Sender.Value,"yyyy-MM-dd HH:mm") & "#"
'MessageBox.Show(Format(e.Sender.Value,"yyyy-MM-dd HH:mm"))
Else '否则用In运算符筛选选定的多个日期的排期表
Dim v As String
For i As Integer = 0 To lst.Count - 1
v = v & "#" & lst(i) & "#,"
Next
v = v.Trim(",")
Tables("日记本").Filter = "日期 In (" & v & ")"
End If
如图:
此主题相关图片如下:11.jpg
