Как использовать функцию DLookUp и если это правильная функция для этой работы?

У меня есть две таблицы в моей базе данных и форма, которая открывается, когда пользователь входит в систему.

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

Я пытался использовать форму DLookUp в разделе до обновления, однако ничего не происходит? Ниже приведен пример того, что я пробовал.

=DLookUp("[ContractedHours]","tblUser","[Operator] =[tblUser]![UserLogin]")

Итак, говоря, что значение в моем текстовом поле "Оператор" формы - Олли, значение в столбце моей таблицы "UserLogin" - Олли, я хотел бы, чтобы в форме было другое текстовое поле для отображения сокращенных часов в записи для Олли.

tblUser содержит эти столбцы

ID    UserLogin   Contracted Hours  Password
1      Ollie         8:00            *****
2      Ryan          5:00            *****

Моя форма содержит текстовое поле, которое будет равно либо Олли, либо Райану, и я хотел бы другое текстовое поле, которое отображает соответствующие контрактные часы.

3 ответа

DLookup будет работать только в том случае, если вы предоставите ему действительное условие, позволяющее идентифицировать конкретную запись в таблице. То, что вы предоставили, не является ценностью; это ссылка на столбец в таблице. У DLookup нет возможности узнать, на какую запись вы ссылаетесь.

Посмотрите на эту страницу несколько рабочих примеров. Обратите внимание, что все они имеют условие, которое указывает на конкретную запись:

DLookup("UnitPrice * Quantity", "Order Details", "OrderID = 10248")

или же

DLookup("CustomerID", "Orders", "OrderID = Forms![Orders]!OrderID")

Судя по вашим выдержкам из пользователей таблиц, это, вероятно, связано с тем, что вы не включили пробел в имя столбца "Контрактные часы" в DLookUp. Кроме того, я бы поместил ваш вызов формы вне строки.

Пытаться:

=DLookUp("[Contracted Hours]","tblUser","[Operator] = '" & Forms![tblUser]![UserLogin] & "'")

Это должно читаться как:

=DLookUp("[ContractedHours]","tblUser","[UserLogin] = '" & Me!TextboxWithUserName & "'")
Другие вопросы по тегам