Используйте одно значение фильтра для поиска и вывода нескольких полей - PullRequest
0 голосов
/ 04 августа 2020

Использование Visual Basi c. После поиска и поиска ответа мой фильтр выбирает только из поля «Рецепт». Я хотел бы ввести «яйцо» в текстовое поле txtSearch, чтобы моя кнопка отображала все рецепты, в которых есть «яйцо» в рецепте или как текст в ингредиенте. В настоящее время выводится только 2 результата: яичный уголь и яйца Бенедикт. Есть 15 рецептов с яйцом, которые я тоже хочу показать.

Private Sub Search_Button_Click()

On Error GoTo Search_Button_Click_Err

Dim strSQL As String

    strSQL = "[Cocktail] like '*" & [Forms]![Find]![txtSearch] & "*'" & _
    " Or [Ing1] like '*" & [Forms]![Find]![txtSearch] & "*'" & _
    " Or [Ing2] like '*" & [Forms]![Find]![txtSearch] & "*'" & _
    " Or [Ing3] like '*" & [Forms]![Find]![txtSearch] & "*'" & _
    " Or [Ing4] like '*" & [Forms]![Find]![txtSearch] & "*'" & _
    " Or [Ing5] like '*" & [Forms]![Find]![txtSearch] & "*'" & _
    " Or [Ing6] like '*" & [Forms]![Find]![txtSearch] & "*'" & _
    " Or [Ing7] like '*" & [Forms]![Find]![txtSearch] & "*'"

If Len(strSQL) > 255 Then
   MsgBox "ApplyFilter string length exceeds 255 characters"

Else
   DoCmd.ApplyFilter "", strSQL

End If

Search_Button_Click_Exit:
    Exit Sub

Search_Button_Click_Err:
    MsgBox Error$
    Resume Search_Button_Click_Exit

End Sub

1 Ответ

0 голосов
/ 05 августа 2020

вариант состоит в том, чтобы объединить все поля SQL, которые могут содержать то, что вы ищете, а затем получить этот результат в where xxx like .... Также некоторые среды SQL используют% в качестве подстановочного знака.

...