使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

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

可以使用 DLookup 函数来显示不在窗体或报表的记录源中的字段的值。 例如,假设你有一个基于“订单详细信息”表的窗体。 窗体显示 OrderID、ProductID、UnitPrice、Quantity 和 Discount 字段。 但是,“ProductName”字段位于另一个表中,即“产品”表。 可以在计算控件中使用 DLookup 函数在同一窗体上显示 ProductName。

语法

DLookup ( expr、域 [, criteria] )

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

参数

说明

expr

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

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

条件

可选。 用于限制执行 DLookup 函数的数据范围的字符串表达式。 例如, 条件 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 条件则 DLookup 函数针对整个域评估 expr条件中包含的任何字段也必须是域中的字段;否则,DLookup 函数返回 Null。

备注

DLookup 函数根据条件中指定的信息返回单个字段值。 尽管 criteria 是一个可选参数,但如果不为 criteria 提供值, DLookup 函数将在域中返回一个随机值。

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

如果多个字段满足 条件DLookup 函数将返回第一个匹配项。 应指定确保 DLookup 函数返回的字段值唯一的条件。 你可能希望对条件使用 主键 值(如以下示例中的 [EmployeeID] ),以确保 DLookup 函数返回唯一值:

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

无论是在宏或模块、查询表达式还是计算控件中使用 DLookup 函数,都必须仔细构造 criteria 参数,以确保正确计算它。

可以使用 DLookup 函数在查询的 Criteria 行、查询的计算字段表达式中或 更新查询 的“更新到”行中指定条件。

如果需要显示的字段不在窗体或报表所基于的记录源中,还可以在窗体或报表的计算控件的表达式中使用 DLookup 函数。 例如,假设你有一个基于“订单详细信息”表的“订单详细信息”窗体,其中包含一个名为“ProductID”的文本框,该文本框显示“ProductID”字段。 若要基于文本框中的值从 Products 表中查找 ProductName,可以创建另一个文本框并将其 ControlSource 属性设置为以下表达式:

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

提示

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

  • 还可以使用“查找向导”查找外部表中的值。

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

示例

注意: 下面的示例演示了如何在 Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请参阅访问 VBA 参考

以下示例从满足 条件的记录的 CompanyName 字段中返回名称信息。 域是一个“发货人”表。 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 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×