Фильтрация списка со множеством полей со списком (повторно?) - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь отфильтровать список на основе нескольких полей со списком. Кажется довольно легко, верно? На самом деле, я нашел почти точный ответ на мою проблему, однако я не могу заставить его работать должным образом. (см .: Несколько комбинированных полей для фильтрации списка )

Использование кода (очевидно, модифицированного для моих целей) из вышеприведенного решения, похоже, не требует особой фильтрации. Вместо этого он не находит в запросе записей, которые бы соответствовали фильтрации.

У меня есть пять полей со списком, которые получают уникальные значения из запроса (qryCustomerWants) и заполняют каждое из пяти полей со списком на основе соответствующего столбца в запросе. Когда я щелкаю одно из полей со списком, окно списка обновляется и должно фильтровать результаты на основе критериев поиска, выбранных в полях со списком.

Private Sub RequerylstCustomers()
   Dim SQL As String
   SQL = "SELECT qryCustomerWants.ID, qryCustomerWants.Type, qryCustomerWants.Make, qryCustomerWants.Model, qryCustomerWants.YearWanted, qryCustomerWants.Condition " _
    & "FROM qryCustomerWants " _
    & "WHERE 1=1 "
    If cboType.Value & "" <> "" Then
        SQL = SQL & " AND qryCustomerWants.Type = '" & cboType.Value & "'"
    End If
    If cboMake.Value & "" <> "" Then
        SQL = SQL & " AND qryCustomerWants.Make = '" & cboMake.Value & "'"
    End If
    If cboModel.Value & "" <> "" Then
        SQL = SQL & " AND qryCustomerWants.Model = '" & cboModel.Value & "'"
    End If
    If cboYear.Value & "" <> "" Then
        SQL = SQL & " AND qryCustomerWants.Year = '" & cboYear.Value & "'"
    End If
    If cboCondition.Value & "" <> "" Then
        SQL = SQL & " AND qryCustomerWants.Condition = '" & cboCondition.Value & "'"
    End If
    SQL = SQL & " ORDER BY qryContactWants.Last"
    Me.lstCustomers.RowSource = SQL
    Me.lstCustomers.Requery
End Sub

Я вызываю функцию, используя:

Private Sub cboType_AfterUpdate()
    RequerylstCustomers
End Sub

В настоящее время каждый раз, когда я выбираю элемент из поля со списком (любой из них), он стирает весь список. Я знаю, что есть записи, которые соответствуют параметрам поиска, поэтому следует фильтровать их в меньшем списке в каждом поле со списком, из которого я выбираю запись.

Где я все испортил? спасибо!

1 Ответ

1 голос
/ 09 апреля 2019

Сейчас я вижу, что ваш Order By использует qryContactWants, а не qryCustomerWants.

Полагаю, в этом причина вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...