如何使用 DLookUp 函数,它是否适合这项工作?

How to use the DLookUp function and if it is the correct function for this job?

我的数据库中有两个 table,还有一个在用户登录时打开的表单。

此表单中的文本框将显示用户名,例如"Ollie",我想要另一个文本框在打开表单时显示用户 table 中的此用户合同工时。

我已经尝试在更新前部分使用 DLookUp 表单,但是没有任何反应?以下是我尝试过的示例。

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

所以说我的表单文本框 "Operator" 中的值是 Ollie,我的 table 列 "UserLogin" 中的值是 Ollie,我想要另一个文本框表格以显示 Ollie 记录上的合同工时。

tblUser 包含这些列

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

我的表单包含一个文本框,该文本框等于 Ollie 或 Ryan,我想要另一个显示相关约定时间的文本框。

DLookup 仅在您为其提供允许其识别 table 中的特定记录的有效条件时才起作用。您提供的不是价值;它是对 table 中列的引用。 DLookup 无法知道您指的是哪条记录。

查看 this page 中的一些工作示例。请注意,它们都有一个指向特定记录的条件:

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

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

它应该是这样的:

=DLookUp("[ContractedHours]","tblUser","[UserLogin] = '" & Me!TextboxWithUserName & "'")

根据您从 table 用户那里摘录的内容,这可能是因为您没有在 DLookUp 的合同工时列名称中包含 space。另外,我会将您的表单调用放在字符串之外。

尝试:

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