ДОСТУП VBA Запрос несовпадающих записей не работает при конкатенации

Я пытался выполнить запрос из MS ACCESS VBA. Мой запрос работает хорошо, когда я не добавляю конкатенированные поля. Когда я использую составное поле, как в приведенном ниже коде, получается пустой результат.

Есть ли работа вокруг?

lstStudentName.RowSource = "SELECT [sdtName] & ' ' & [sdtFatherName] & ' ' & [sdtLastName] AS sdtFullName, sdtID FROM tbl_sdt_Info " & _
   " LEFT join tbl_sdt_Rounds ON tbl_sdt_Info.sdtID = tbl_sdt_Rounds.sdtID " & _
   " WHERE IS NULL(tbl_sdt_Rounds.sdtID)"

Ничего не должно получиться из-за неправильного использования IS NULL. Либо IsNull(tbl_sdt_Rounds.sdtID), либо tbl_sdt_Rounds.sdtID IS NULL. Последнее предпочтительнее, потому что это SQL, а IsNull() — это функция VBA.

June7 11.01.2023 00:19

Большинство сделало бы sdtID первым полем и установило бы ColumnWidths как 0";1.0" и установило бы первый столбец как BoundColumn. Это позволит просматривать и вводить первую букву имени, но sdtID будет значением списка.

June7 11.01.2023 00:23

Это сработало, однако дает мне все записи из обеих таблиц. Это не исключает записи с условием WHERE! Любые предложения, пожалуйста. Спасибо

Mowaffak Bakkar 11.01.2023 10:39
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц....
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы
Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем...
Оптимизация React Context шаг за шагом в 4 примерах
Оптимизация React Context шаг за шагом в 4 примерах
При использовании компонентов React в сочетании с Context вы можете оптимизировать рендеринг, обернув ваш компонент React в React.memo сразу после...
1
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблемы с вашим SQL:

  1. Неправильное использование IS NULL — должно быть либо IsNull(tbl_sdt_Rounds.sdtID), либо tbl_sdt_Rounds.sdtID IS NULL. Последнее предпочтительнее, потому что это SQL, а IsNull() — это функция VBA.

  2. Поскольку есть два поля sdtID, запрос не должен работать без префикса таблицы для указания поля. Я удивлен, что ты что-то понял.

  3. Хотя, возможно, это не проблема, я бы предпочел сделать sdtID первым полем и установить ColumnWidths как 0 "; 1,0" и первый столбец как BoundColumn. Это позволит просматривать и вводить первую букву имени, но sdtID будет значением списка.

Никогда не помешает построить и протестировать объект запроса, а когда он заработает, реплицировать оператор SQL в VBA.

lstStudentName.RowSource = "SELECT  tbl_sdt_Info.sdtID, sdtName & ' ' & sdtFatherName & ' ' & sdtLastName AS sdtFullName FROM tbl_sdt_Info " & _
   "LEFT join tbl_sdt_Rounds ON tbl_sdt_Info.sdtID = tbl_sdt_Rounds.sdtID " & _
   "WHERE tbl_sdt_Rounds.sdtID IS NULL;"

Другие вопросы по теме