MS Access фильтрация по дате вызывает ошибку 3075 - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть текстовое поле с именем DateSelector, отформатированное как Короткая дата , и подчиненная форма со списком записей, один столбец с именем ControlDate содержит значения, отформатированные как Короткая дата .

То, что я хочу:
Если вы измените значение DateSelector, предполагается, что столбец ControlDate будет отфильтрован до текущего значения * 1012.* или, по крайней мере, ниже значения 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), и я абсолютно не понимаю, почему.

Я благодаренза любые ответы, спасибо за чтение,

_Ninsa

1 Ответ

0 голосов
/ 05 декабря 2018

Ваш фильтр закончится как:

"ControlDate >= 01.12.2018"

, который Access не может прочитать.Итак, примените правильный формат строкового выражения значения даты:

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