【发布时间】:2018-12-05 12:41:04
【问题描述】:
我有一个名为 DateSelector 的文本字段,格式为 短日期,还有一个包含条目列表的子表单,其中一个名为 ControlDate 的列包含格式为 短日期。
我想要什么:
如果您更改DateSelector 的值,则应该将ControlDate 列过滤到现在和DateSelector 的值之间,或者至少低于DateSelector 的值。
这是我的代码:
Private Sub DateSelector_AfterUpdate()
On Error GoTo Proc_Error
If Me.DateSelector.Value = "" Then
Me.ListView.Form.filter = ""
Me.ListView.Form.FilterOn = False
Else
MsgBox (Me.DateSelector.Value)
'This is a Check, if the Value is correct.
Me.ListView.Form.filter = "ControlDate >=" & Me.DateSelector.Value
Me.ListView.Form.FilterOn = True
End If
Proc_Exit:
Exit Sub
Proc_Error:
MsgBox "Error " & Err.Number & " when creating Filter:" & vbCrLf & Err.Description
Resume Proc_Exit
End Sub
抛出的错误是3075: Syntax Error。 MsgBox 显示正确的日期,其中错误消息显示日期缺少最后一位(例如:05.12.2018 --> 05.12.201),我完全不知道为什么。
感谢您的回答,感谢您的阅读,
_忍者
【问题讨论】:
-
Me.ListView.Form.filter = "ControlDate >=" & format(Me.DateSelector.Value,"dd mmm yyyy") 可能值得一试
-
我还会检查 .filter 命令是否需要将日期包含在哈希字符中 (#1/1/18#)。 VBA 需要散列之间的日期。由于您得到无效的运算符,这似乎是最有可能的原因 imo
标签: vba ms-access ms-access-2016