Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何使用DLookUp函数,以及它是否适合此作业?_Ms Access_Vba_Lookup - Fatal编程技术网

Ms access 如何使用DLookUp函数,以及它是否适合此作业?

Ms access 如何使用DLookUp函数,以及它是否适合此作业?,ms-access,vba,lookup,Ms Access,Vba,Lookup,我的数据库中有两个表,一个表单在用户登录时打开 此表单中的一个文本框将显示该用户名,例如“Ollie”,我希望另一个文本框在打开表单时从用户表中显示该用户的合同小时数 我曾尝试在更新前部分使用DLookUp表单,但什么都没有发生?下面是我尝试过的一个例子 =DLookUp("[ContractedHours]","tblUser","[Operator] =[tblUser]![UserLogin]") 如果说我的表单文本框“Operator”中的值是Ollie,我的表列“UserLogin”

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

此表单中的一个文本框将显示该用户名,例如“Ollie”,我希望另一个文本框在打开表单时从用户表中显示该用户的合同小时数

我曾尝试在更新前部分使用DLookUp表单,但什么都没有发生?下面是我尝试过的一个例子

=DLookUp("[ContractedHours]","tblUser","[Operator] =[tblUser]![UserLogin]")
如果说我的表单文本框“Operator”中的值是Ollie,我的表列“UserLogin”中的值是Ollie,那么我希望表单上的另一个文本框显示Ollie记录中的合同工时

tblUser包含这些列

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

我的表单包含一个文本框,该文本框将等于Ollie或Ryan,我希望另一个文本框显示相关的合同工时

DLookup只有在您为它提供了一个有效条件,允许它识别表中的特定记录时才起作用。你所提供的不是价值;它是对表中某列的引用。DLookup无法知道您所指的是哪张唱片

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

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

应该是这样的:

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

根据您从表用户那里摘录的内容,这可能是因为您在DLookUp的Contracted Hours列名中没有包含空格。另外,我会把你的表单调用放在字符串之外

尝试:


这里的信息很少。通常,有更好的方法来完成您正在做的事情,比如在表单的基础查询中加入
tblUser
,这样您就可以访问登录名,而无需求助于
DLookUp
。但是很难从你提供的少量信息中判断正确的行动方案。添加了一个可能有用的更新,更多的信息!谢谢,我还有别的办法吗?感谢您的帮助。如果您要使用基于表单的参数(如
Forms![Orders]!OrderID
),我强烈建议将其保留在引号内。
DLookUp
可以处理这些参数,并且它避免了空值和字符串值导致无效语句的问题。
=DLookUp("[ContractedHours]","tblUser","[UserLogin] = '" & Me!TextboxWithUserName & "'")
=DLookUp("[Contracted Hours]","tblUser","[Operator] = '" & Forms![tblUser]![UserLogin] & "'")