Как использовать функцию 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 & "'")