В моей форме доступа я получаю
Run-time error'3705:
Синтаксическая ошибка в выражении запроса даты '((([Дата покупки]> = ## И [Дата покупки] <= ##)) '. </p>
всякий раз, когда я запускаю свой код без полей Me.TxtPurchaseDateTo и Me.TxtPurchaseDateTo вместо поля msg, которое должно быть запущено. Кроме того, я получаю диалоговое окно «Ввод значения параметра»выскакивает, когда я нажимаю кнопку «Очистить» с отображаемыми данными или без них. Чтобы очистить форму данных, я должен нажать пробел, находясь в поле ввода диалогового окна «Ввод значения параметра», чтобы очиститьформы. Если я нажимаю «Отмена», я получаю сообщение об ошибке 2501 «Во время выполнения» действие ApplyFilter было отменено, и я перехожу на свой лист кода с подсвеченной «задачей DoCmd.ApplyFilter», если я отлаживаю ошибку.
Я удалил несколько частей кода, перепроверил орфографию и интервал
Option Compare Database
Private Sub CmdSearch_Click()
'Search button
Call Search
End Sub
Sub Search()
Dim strCriteria, task As String
Me.Refresh
If IsNull(Me.TxtPurchaseDateFrom) Or IsNull(Me.TxtPurchaseDateTo) Then
MsgBox "Please enter the date range", vbInformation, "Date Range
Required"
Me.TxtPurchaseDateFrom.SetFocus
Else
strCriteria = "([Date of Purchase] >= #" & Me.TxtPurchaseDateFrom & "#
And [Date of Purchase] <=#" & Me.TxtPurchaseDateTo & "#)"
task = "select * From TblPurchases Where( " & strCriteria & ") order
by [Date of Purchase] "
DoCmd.ApplyFilter task
'Me.TxtTotal = FindRecordCount
End If
End Sub
Private Sub CmdClear_Click()
Dim task As String
Me.TxtPurchaseDateFrom = ""
Me.TxtPurchaseDateTo = ""
task = "select * from TblPurchases where PrimaryKey is null"
DoCmd.ApplyFilter task
'Me.TxtTotal = FindRecordCount
End Sub
Private Sub CmdShowAll_Click()
Dim task As String
Me.TxtPurchaseDateFrom = ""
Me.TxtPurchaseDateTo = ""
task = "select * from TblPurchases order by [Date of Purchase] "
Me.RecordSource = task
'Me.TxtTotal = FindRecordCount
End Sub
Я ожидаю, что если я просто откажусь от диалогового окна, форма должна остаться на экране. Также если "от"и поля "t / o" не заполнены. Я должен получить результаты MsgBox.
Я не уверен, в чем заключается синтаксическая ошибка, связанная с "задачей DoCmd.ApplyFilter". Какую ошибку я не вижу?