У меня есть ListBox в форме доступа и я пытаюсь отфильтровать его с помощью записи TextBox. Мой ListBox состоит из 6 столбцов, и мне нужно отфильтровать его по 2 условиям:
Фильтр более или менее работает, я получаю отфильтрованный результат по своей записи, но проблема в том, что мой код, похоже, игнорирует оператор AND
и показывает все результаты, несмотря на то, что 6-й столбец не содержит определенного текста. Что я делаю неправильно?
Мой код:
Sub PaieskaTb_Change()
Dim strSource As String, strSearch As String
strSearch = Replace(PaieskaTb.Text, "'", "''") 'needed to avoid errors if entry contains apostrophes
strSource = "SELECT [ID], [VP_veiklioji], [VP_invented_Name], [Pareisk_pav], [Par_gavimo_data], [Statusas] " _
& "FROM qryNewSys_srch " _
& "WHERE [ID] LIKE '*" & strSearch & "*' " _
& "Or [VP_veiklioji] LIKE '*" & strSearch & "*' " _
& "Or [VP_invented_Name] LIKE '*" & strSearch & "*' " _
& "Or [Pareisk_pav] LIKE '*" & strSearch & "*' " _
& "Or [Par_gavimo_data] LIKE '*" & strSearch & "*' " _
& "And [Statusas] = 'Ongoing' " _ 'this line ignored, tried different apostrophes but no result
& "ORDER BY [ID] DESC"
Me.Paraisku_sarasas.RowSource = strSource
End Sub
Добавьте набор скобок:
strSource = "SELECT [ID], [VP_veiklioji], [VP_invented_Name], [Pareisk_pav], [Par_gavimo_data], [Statusas] " _
& "FROM qryNewSys_srch " _
& "WHERE ([ID] LIKE '*" & strSearch & "*' " _
& "Or [VP_veiklioji] LIKE '*" & strSearch & "*' " _
& "Or [VP_invented_Name] LIKE '*" & strSearch & "*' " _
& "Or [Pareisk_pav] LIKE '*" & strSearch & "*' " _
& "Or [Par_gavimo_data] LIKE '*" & strSearch & "*') " _
& "And [Statusas] = 'Ongoing' " _
& "ORDER BY [ID] DESC"