При ссылке на значения даты в инструкции SQL вам необходимо убедиться, что такие даты соответствуют ожидаемому формату:
#mm/dd/yyyy#
Иначе, например, 08/11/2019
(8 )th Ноябрь 2019) будет интерпретироваться в SQL как 11/08/2019
(11 th Август 2019), давая результаты, свидетелями которых вы являетесь.
Вы можете достичь этого, используяFormat
функция:
Format(Me.DateFrom, "\#mm\/dd\/yyyy\#")
Здесь дополнительные обратные косые черты \
, предшествующие окто-типам и косые черты, действуют как Escape-символы , заставляя MS Access отображатьсяследующий символ в виде литерала.
Например:
?Format(Date(), "\#mm\/dd\/yyyy\#")
#11/09/2019#
В вашем коде это может быть написано:
Private Sub Command121_Click()
DoCmd.ApplyFilter _
"select * from SageOrderLine_Live where " & _
"[PromisedDeliveryDate] >= " & Format(Me.DateFrom, "\#mm\/dd\/yyyy\#") & " and " & _
"[PromisedDeliveryDate] <= " & Format(Me.DateTo, "\#mm\/dd\/yyyy\#")
End Sub
В качестве альтернативы, вы можете ссылаться на формуконтролирует непосредственно в операторе SQL, в этом случае форматирование не требуется:
Private Sub Command121_Click()
DoCmd.ApplyFilter _
"select * from SageOrderLine_Live where " & _
"[PromisedDeliveryDate] >= [Forms]![YourFormName]!DateFrom and " & _
"[PromisedDeliveryDate] <= [Forms]![YourFormName]!DateTo "
End Sub
(конечно, обновляя YourFormName
до имени вашей формы).
РЕДАКТИРОВАТЬ: Если вы хотите добавить CustomerAccountNumber
в фильтр, sincЕсли это текстовое поле, вам нужно заключить значение в одинарные или двойные кавычки, например, используя одинарные кавычки:
DoCmd.ApplyFilter _
"select * from SageOrderLine_Live where " & _
"[PromisedDeliveryDate] >= " & Format(Me.DateFrom, "\#mm\/dd\/yyyy\#") & " and " & _
"[PromisedDeliveryDate] <= " & Format(Me.DateTo, "\#mm\/dd\/yyyy\#") & " and " & _
"[CustomerAccountNumber] = '" & Me.CustomerAccount & "'"
или двойные кавычки:
DoCmd.ApplyFilter _
"select * from SageOrderLine_Live where " & _
"[PromisedDeliveryDate] >= " & Format(Me.DateFrom, "\#mm\/dd\/yyyy\#") & " and " & _
"[PromisedDeliveryDate] <= " & Format(Me.DateTo, "\#mm\/dd\/yyyy\#") & " and " & _
"[CustomerAccountNumber] = """ & Me.CustomerAccount & """"