У меня есть поле со списком NameFilt. Я sh источник строки должен быть следующим:
SELECT DISTINCT VoucherListTbl.BuyerName
FROM VoucherListTbl
WHERE (((VoucherListTbl.BuyerName) Is Not Null)) OR (((VoucherListTbl.BuyerName)<>""));
т.е. показать все уникальные имена BuyerNames из моей таблицы и не включать никаких пробелов. Выше SQL генерируется в блоке запросов, нажав на 3 точки в источнике строки поля со списком в окне свойств, затем выберите поле BuyerName и затем введите «Не является нулевым или <>» в критериях. При щелчке по запуску в конструкторе запросов отображается ожидаемый результат.
При закрытии и сохранении построителя запросов и последующем щелчке в поле со списком в форме я получаю другой результат - все имена DISTINCT есть, но в начале списка есть пробел. Когда я пытаюсь использовать это SQL в моем коде VBA я получаю другой результат. Код:
Private Sub NameFilt_GotFocus()
Me.AllowEdits = True
Me.NameFilt.RowSource = "SELECT DISTINCT VoucherListTbl.BuyerName
FROM VoucherListTbl WHERE (((VoucherListTbl.BuyerName) Is Not Null))
OR (((VoucherListTbl.BuyerName)<>""));"
Me.NameFilt.Dropdown
End Sub
В результате в раскрывающемся списке со списком отображается только одна опция - пустое! В списке нет имен. Более того, если ГДЕ предложение удалено, т. е. код:
Private Sub NameFilt_GotFocus()
Me.AllowEdits = True
Me.NameFilt.RowSource = "SELECT DISTINCT VoucherListTbl.BuyerName FROM VoucherListTbl;"
Me.NameFilt.Dropdown
End Sub
Затем отображаются имена DISTINCT с пустым параметром в верхней части списка, который что можно ожидать
Не могли бы вы помочь, объяснив, почему предложение WHERE не будет работать для меня при вводе в код VBA Большое спасибо