В Access VBA как получить значения DISTINCT из нескольких столбцов таблицы в качестве источника строки поля со списком? - PullRequest
2 голосов
/ 03 апреля 2020

У меня есть ComboBox combo1 и 3 поля area1, area2 и area3. Поля могут быть нулевыми или дубликатами. Я хочу, чтобы combo1 отображал только те значения, которые НЕ являются дубликатами и не являются пустыми. Мой текущий код отображает все значения из полей, включая все дубликаты и нули. Как будто DISTINCT полностью игнорируется. Я определенно все понимаю неправильно. Буду благодарен, если кто-нибудь поможет мне с этим. tblMain:

+-----------+----------+-------------+
+ area1     + area2    +    area3    +
+---------- +----------+-------------+
+ Islington + Barnet   +             +
+-----------+----------+-------------+
+ Stratford +          + Islington   +
+-----------+----------+-------------+
+   603     +    501   + Islington   +
+-----------+----------+-------------+

Ожидаемые результаты в combo1:

501
603
Barnet
Islington
Stratford

Ниже приведено состояние моего текущего кода:

Private Sub Form_Load()
Dim rowS As String

rowS = "SELECT DISTINCT area1, area2, area3 FROM tblMain"

With Me.combo1
Me.combo1.RowSource = rowS
End With

End Sub

1 Ответ

2 голосов
/ 03 апреля 2020

Вот вам go, попробуйте это и убедитесь, что оно работает для вас.

Private Sub Form_Load()
    Dim rowS As String

    rowS =  "SELECT area1 as Area FROM tblMain WHERE area1 IS NOT NULL UNION "
    rowS = rowS & "SELECT area2 as Area FROM tblMain  WHERE area2 IS NOT NULL UNION "
    rowS = rowS & "SELECT area3 as Area FROM tblMain WHERE area3 IS NOT NULL "

    Me.combo1.RowSource = rowS
End Sub

РЕДАКТИРОВАТЬ - я повторил вашу проблему и могу убедиться, что в ваших столбцах есть пустые строки. Пожалуйста, подтвердите для нас, вы?

enter image description here

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