Nano Hash - криптовалюты, майнинг, программирование

DLOOKUP возвращает # ИМЯ? ошибка в отчете IIF

У меня есть форма, которую я использую для сообщения данных из таблицы. Для элемента управления текстовым полем я должен использовать DLOOKUP для отображения нужного мне значения, в противном случае отображается порядковый номер. Вот код, который у меня есть для текстового поля, в котором отображается значение:

DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK])

Все идет нормально. Проблема, с которой я столкнулся сейчас, заключается в том, что если есть нулевое значение, DLOOKUP возвращает код #Error.

Я нашел решение, используя оператор IIF и ISNULL:

IIf(IsNull([WELL_MASTER]![FIRST_FRM_FK]),"",DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]))

Когда я пробую это в запросе, он отлично работает; однако, когда я помещаю выражение в свой элемент управления текстовым полем, DLOOKUP возвращает ошибку #Name.

Любые предложения о том, как решить эту проблему? Google foo снова подводит меня.

Спасибо!

ОБНОВИТЬ:

Хорошо, я пробовал следующее:

За минти: Nz(DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)

Функциональная часть DLookup работает, но пустые значения возвращаются как #Error.

Пер Костас К: Nz(DLookUp("FORMATION_NAME","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)

То же, что и предложение Минти.

Обернутый в оператор IIF с использованием функции Is Null вместо ISNULL:

IIf([WELL_MASTER]![FIRST_FRM_FK] Is Null,"",DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]))

Я вернулся к своей исходной проблеме: функция DLookup возвращает ошибку #Name.

Вот что странно: выражения операторов IIF работают, если они находятся в запросе. Когда я копирую выражение в элемент управления текстовым полем, DLookup не работает. Функция DLookup отлично работает в выражении текстового поля, если вокруг него ничего не обернуто. Как только вы помещаете его в инструкцию IIF, он перестает работать.

Любые мысли о том, что такое элемент управления текстовым полем, который ему не нравится?

Спасибо Минти и Костасу К. за попытку помочь мне разобраться в этом. :)


  • Если это поле поиска, вы можете использовать поле со списком для непосредственного отображения значения. В качестве альтернативы используйте функцию Nz () Nz(DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0) 22.08.2017
  • Спасибо, Минти! Для этого нельзя использовать поле со списком, но ваша функция Nz сработала. Я пробовал это раньше, но, должно быть, он неправильно структурировал. 22.08.2017
  • Штопать! Я думал, что это сработало, но когда я посмотрел на свою тестовую запись в таблице, в нулевом поле теста было 0. Я очистил его, посмотрел еще раз в форме и получил сообщение #Error. Часть DLookup работает, но часть NZ не работает. Есть другие мысли? 22.08.2017
  • Снимите скобки [] с FORMATION_NAME. 22.08.2017

Ответы:


1

Используйте функцию Nz ()

Nz(DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)
22.08.2017
  • Не сработало. Сначала я думал, что это так, но не тут-то было. 22.08.2017
  • Я бы, вероятно, просто поместил данные прямо в формы, лежащие в основе запроса. Используйте левое соединение, и вы все равно сможете редактировать данные в форме, если это необходимо. 22.08.2017
  • Он уже есть в базовом запросе. Проблема в том, что это внешний ключ, привязанный к справочной таблице. Если бы я мог использовать поле со списком, я мог бы просто указать количество столбцов, но этот параметр недоступен для текстовых полей, и это должно быть в текстовом поле. 22.08.2017
  • Затем присоедините справочную таблицу к FK, хранящемуся в вашей основной таблице, и извлеките текст из нее. Тогда отображайте это, а не FK. 22.08.2017
  • У меня есть 3 столбца в основной таблице, которые ссылаются на ту же справочную таблицу. Я могу добавить и присоединить справочную таблицу к основной таблице для одного столбца, но объединение таблиц для всех трех столбцов не дает результатов, а добавление справочной таблицы еще 2 раза и присоединение каждого столбца к одной справочной таблице не дает результатов. Вот почему я выбрал путь DLookup. 22.08.2017
  • Минти, я наконец нашел часть ответа на эту проблему. Если я помещу функцию Nz только в последний столбец, выражение будет работать. Вот что я придумал: =DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & Nz([FIRST_FRM_FK],0)) Это решает мою первую проблему, но у меня все еще та же проблема (на этот раз без нулей) с использованием DLOOKUP с функцией SWITCH в другом текстовом поле. Спасибо за то, что помогли мне с этим. 23.08.2017
  • Рад, что вы отсортировали его - если вы используете левое соединение с каждой копией справочной таблицы и функцией NZ, вы можете охватить все основы .. 23.08.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..