Динамические условные поля со множественным выбором - PullRequest
0 голосов
/ 05 ноября 2019

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

Если я выбираю только одну категорию, параметры подкатегории отображаются правильно. Однако, если я выберу несколько категорий, я увижу только параметры подкатегории, относящиеся к первой категории в списке. Если снять флажок с первой категории, показанные параметры подкатегории будут такими же, как у второй категории, и т. Д.

Private Sub CategoryCombo_AfterUpdate()

  Dim AppsArray() As String

  Dim length As Integer, counter As Integer

  With SubCombo

    If IsNull(Me!Category) Then

      .RowSource = ""

    Else

      AppsArray() = Split(Me!Category, ",")

      .RowSource = "SELECT [SubCategory].[SubCategory] " & _

                   "FROM [SubCategory] " & _

                   "WHERE ([SubCategory].[Category]='" & AppsArray(0) & "')"

    length = UBound(AppsArray) - LBound(AppsArray) + 1

     For counter = 1 To length - 1

        .RowSource = .RowSource & " OR ([SubCategory].[Category]='" & AppsArray(counter) & "')"

     Next
     .RowSource = .RowSource & " ORDER BY [SubCategory].[Category];"

    End If

    MsgBox SubCombo.RowSource

    Call .Requery

  End With

End Sub

В выводе MsgBox отображается

"SELECT [SubCategory]. [Подкатегория] ОТ [Подкатегория] ГДЕ ([Подкатегория]. [Категория] = 'Категория1') ИЛИ ([Подкатегория]. [Категория] = 'Категория2') ИЛИ ([Подкатегория]. [Категория] = 'Категория3')ORDER BY [SubCategory]. [Category]

Это то, что я и имел в виду, но отображаются только опции подкатегории Category1.

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