У меня есть форма с одним текстовым полем, двумя полями со списком (раскрывающимися списками) и двумя текстовыми полями с масками ввода для mm/dd/yyyy 99/99/0000;0;_
Я пытаюсь использовать все эти поля в качестве фильтров для подчиненной формы,У меня установлены элементы управления для запуска после обновления и запуска подпрограммы, которая создает строку SELECT * INTO
sql для временной таблицы, которая затем sourceobject'ed
возвращается к subform
.
В коде, который у меня есть для каждогоcontrol У меня есть код, создающий фрагмент инструкции Where для окончательного sql
.фрагмент увеличивается по мере необходимости и помечается как «Фильтр»
Какой-то другой незавершенный код ....
If Not IsNull(txtDateFrom) Then
If i > 1 Then Filter = Filter & " AND " & "([Date_LastSaved] >= " & Me.txtDateFrom & ")" & " And " & "([Date_LastSaved] <= " & Me.txtDateTo & ")"
End If
Dim sql As String
sql = "SELECT * INTO tmpTable FROM tblReview"
If Not IsNull(Filter) Then
sql = sql & " WHERE " & Filter
End If
Моя проблема и вопрос в том, что я тестирую эту конкретную ситуацию, когдабудет Filter = Filter & " AND " & "DATE_STUFF"
, где итоговый sql будет выглядеть так ...
SELECT * INTO tmpTable FROM tblReview WHERE ReviewStatus = 'Quoted' AND ([Date_LastSaved] >= 09/12/2018) And ([Date_LastSaved] <= 10/16/2018)
, который должен иметь некоторый результат с тестовыми данными.Тем не менее, tmpTable пуст.
Это происходит только тогда, когда я применяю критерии диапазона дат.
Я попытался BETWEEN
, но не смог зафиксировать синтаксис.
Любое понимание очень ценится, спасибо!
ОБНОВЛЕНИЕ: Ответ:
If i > 1 Then Filter = Filter & " AND " & "([Date_LastSaved] >= #" & Me.txtDateFrom & "#)" & " And " & "([Date_LastSaved] <= #" & Me.txtDateTo & "#)"