Функция DlookUp в запросе ACCESS

Функция DlookUp в запросе ACCESS

Я работаю над 2 базами данных, которые связаны между собой: Action Items List и UserInfo. Я импортировал Action item List с моего сайта Sharepoint.

введите описание изображения здесь

Я пытаюсь отобразить только те «действия», которые соответствуют критерию [Введите свое имя]. Для этого я рассмотрел взаимосвязь двух баз данных, и мы видим, что «Owner.Value» (текстовый атрибут базы данных «Action Items list») связан с «ID» (внешний ключ базы данных UserInfo). Чтобы получить ожидаемые результаты, я запускаю запрос и ввожу свое имя, но получаю следующую ошибку:

введите описание изображения здесь

введите описание изображения здесь

Может быть, кто-то сможет мне помочь. Я полагаюсь на ваш опыт. Заранее спасибо за вашу поддержку!

решение1

Во-первых, исправим ваше DLookupвыражение: поскольку критерий фильтрует значение текстового поля ( Name), значение, используемое для фильтра, должно быть заключено в одинарные или двойные кавычки, в противном случае результат будет следующим:

Name = Thomas Orvain

В результирующем SQL-коде поля и рассматриваются как отдельные поля Thomas.Orvain

Чтобы исправить это, можно изменить DLookupвыражение следующим образом:

DLookup("Name", "UserInfo", "Name = '" & [Enter your name] & "'")

Однако, поскольку вы уже построили связь INNER JOINмежду Action Items Listтаблицей и UserInfoтаблицей, DLookupвыражение будетвообще не требуется.

Вместо этого вы можете применить критерии отбора Nameнепосредственно к полю, например, скопировав следующее в SQL-представление вашего запроса:

select 
    [Action Items List].Action,
    [Action Items List].Status,
    [Action Items List].Owner.Value
from
    [Action Items List] inner join UserInfo on
    [Action Items List].Owner.Value = UserInfo.ID
where
    UserInfo.Name = [Enter your name]

Связанный контент