MS Access筛选日期引起错误3075

时间:2018-12-05 12:41:04

标签: vba ms-access ms-access-2016

我有一个名为DateSelector的文本字段,其格式为 Short Date ,还有一个带有条目列表的子窗体,名为ControlDate的一列包含的值的格式也设置为短日期

我想要什么:
如果您更改DateSelector的值,则应该将列ControlDate过滤到现在到DateSelector的值之间,或者至少低于DateSelector的值。 / p>

这是我的代码:

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 ErrorMsgBox显示正确的日期,错误消息显示缺少最后一位数字的日期(例如:05.12.2018-> 05.12.201),我绝对不知道为什么。

非常感谢您的回答,感谢您的阅读,

_Ninsa

1 个答案:

答案 0 :(得分:1)

您的过滤器最终将显示为:

"ControlDate >= 01.12.2018"

Access无法读取的

。因此,请对日期值的字符串表达式应用正确的格式:

"ControlDate >= #" & Format(Me!DateSelector.Value, "yyyy\/mm\/dd") & "#"