DLookup 函数

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

Access 桌面数据库中可以使用DLookup函数以获得从指定的一组记录 ( 域) 的特定字段的值。使用DLookup函数中 Visual Basic for Applications (VBA) 模块、 宏、 查询表达式或在窗体或报表上计算控件 。

注意: 本文不适用于 Access Web 应用。

DLookup函数可用于显示不在您的窗体或报表的记录源中的字段的值。例如,假设您有一个基于订单明细表。窗体显示的订单 Id、 产品 Id、 单价、 数量,和折扣字段。但是,ProductName 域是在另一个表中,产品表。无法在计算控件中使用DLookup函数相同的窗体上显示产品名称。

语法

DLookup ( expr、 域 [,criteria]

DLookup函数语法具有以下参数 ︰

参数

说明

expr

必需。用于标识要返回其值的字段的表达式。很字符串表达式标识字段的表或查询,或者也可以是对该字段中的数据执行计算的表达式。在expr,您可以包括表、 窗体、 常量或函数中的控件中的字段的名称。如果expr包含函数,它可以是内置或用户定义的但不是另一个域聚合或 SQL 聚合函数。

必需。标识组成域的记录集的字符串表达式。它可以是表名称或不需要的参数查询的查询名称。

criteria

可选。用于限制对其执行DLookup函数的数据区域中的字符串表达式。例如,条件通常是相当于 WHERE 子句中 SQL 表达式,没有单词位置。如果省略条件,则DLookup函数计算expr针对整个域。在条件中包含的任何字段也必须; 中的字段否则, DLookup函数返回Null。

备注

DLookup函数返回单个字段值基于条件中指定的信息。虽然条件是一个可选参数,如果您不提供条件的值, DLookup函数将返回一个随机值在域。

如果没有记录满足条件,或者如果不包含任何记录, DLookup函数返回空值

如果有多个字段满足条件DLookup函数返回第一个匹配项。您应指定将确保DLookup函数返回的字段值是唯一的条件。您可能想要使用您的条件,如以下示例中,在[EmployeeID]主键值来确保DLookup函数返回唯一值 ︰

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")

是否使用DLookup函数宏或模块、 查询表达式或计算的控件中,您必须构造criteria参数仔细以确保计算正确。

DLookup函数可用于指定条件的查询,在查询中,或更新查询中的更新到行中的计算的字段表达式中的条件行中。

如果您需要显示的字段不在您的窗体或报表所基于的记录源,也可以在窗体或报表上的计算控件中的表达式中使用DLookup函数。例如,假设您有与文本框名为产品 Id 显示产品 Id 字段基于订单明细表订单详细信息窗体。若要从产品表基于文本框中的值产品名称,您可以创建另一个文本框,并将其控件来源属性设置为以下表达式 ︰

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

提示

  • 虽然您可以使用DLookup函数外表中显示字段的值,它可能更有效,可以创建包含两个表中所需的字段的查询,然后使窗体或报表基于该查询。

  • 您可以使用查阅向导在外部表中查找值。

注意: 使用此函数时,不包括到记录中的域的未保存的更改。如果您希望DLookup函数基于更改后的值,必须先保存所做的更改,通过在记录下单击数据选项卡,将焦点移动到另一条记录,保存记录或使用Update方法。

示例

注意: 下面的示例说明使用此函数在 Visual Basic for Applications (VBA) 模块。有关处理 VBA 的详细信息,搜索旁边的下拉列表中选择开发人员参考,然后在搜索框中输入一个或多个术语。

下面的示例返回从满足条件的记录的公司名称字段名称信息。域为运货商表。Criteria参数限制结果集的记录的 ShipperID 等于 1。

Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")

运货商表中的下一个示例使用窗体控件 ShipperID 提供DLookup函数的条件。注意 ︰ 对控件引用不包含标识字符串双引号括起来。这样可以确保,每次调用DLookup函数时,Access 将获得的当前值从控件。

Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)

下一个示例使用变量, intSearch,以获得的值。

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×