设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1935|回复: 3
打印 上一主题 下一主题

[与其它组件] 我学ACCESS20——关于DLOOKUP的理解

[复制链接]
跳转到指定楼层
1#
发表于 2004-5-7 05:08:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我知道,FLookup的语法如下:
Dlookup(字段名,表名,条件)

然后我仿照别人的语句写的:
Dlookup(“[品号]”,“品号表”,“品号=‘”& Me![品号]& “’”)

1。如果不带条件,我可以理解为:在品号表里搜索字段名为品号的记录,没找到返回为空,找到就返回这个字段名的值。

那么打个比方,我这个品号字段名下有北京、上海、成都、重庆这个四个值,它又该返回哪个值呢?是北京吗?

2。带有“品号=‘”& Me![品号]& “’”条件后,又该怎么解释呢?

我不明白条件里带有单引号’是说明什么意思呢?

3。dlookup("[字段]","表" ," 条件")和dlookup("字段","表" ," 条件")一样吗?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-5-7 05:42:00 | 只看该作者
我认为ACCESS的最大优点在于它的查询功能,表和窗体可以少,查询要多,dlookup用来从查询里调用数据很方便.
第一个问题:我觉得返回的是"北京".
第二个问题:嘻嘻~我也想知道~~
第三个问题:带[]的显示出#错误,不带的才能正确显示结果~~(我昨天才从这个错误里吸取了教训,好几十个文本框要修改~~)
3#
发表于 2004-5-7 21:08:00 | 只看该作者
DLookup 方法
请参阅 应用于 示例 特性
使用 DLookup 函数可以从指定记录集(一个域)内获取特定字段的值。
可以在 Visual Basic、宏、查询表达式、窗体或报表上的计算控件中使用 DLookup 函数。Variant 型。

[B]expression.DLookup(Expr, Domain, Criteria)[/B]

[B]expression [/B]  必需。返回“Applies To”列表中的一个对象的表达式。

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

[B]Domain  必需 String 型。[/B]
字符串表达式,用于标识组成域的记录集。可以是一个表名称或查询名称。

Criteria  可选 Variant 型。
可选的字符串表达式,用于限制 DLookup 函数执行的数据范围。
例如,criteria 通常等价于 SQL 表达式中的 WHERE 子句,只是不含 WHERE 关键字。如果省略 criteria,DLookup 函数将在整个域计算 expr。[U]任何包含在 criteria 中的字段必须同时也是 domain 中的字段,否则 Dlookup 函数将返回 Null。[/U]

说明
使用 Dlookup 可以显示窗体或报表数据源以外的字段值。例如,假定有一个基于“订单明细”表的窗体,显示“订单ID”、“产品ID”、“单价”、“数量”和“折扣”字段。而“产品名称”字段则位于另一个表,“产品”表中。通过在计算控件中使用 Dlookup 可以在同一窗体上显示“产品名称”。

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

如果没有记录满足 criteria,或者 domain 中没有任何记录,则 DLookup 函数将返回 Null。

如果有多个字段与条件相符,DLookup 函数将返回第一个匹配字段。用户应该指定条件以确保 DLookup 函数返回的字段值是唯一的。
可以在条件中使用主键值,例如在下例中使用 [雇员ID] 来确保 DLookup 函数返回唯一的值:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1")
无论是在宏、模块、查询表达式,还是在计算控件中使用 DLookup 函数,都必须仔细地构造 criteria 参数以确保能够正确地进行计算。

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

如果要显示的字段不在窗体或报表所基于的数据源中,则也可以在窗体或报表上计算控件中的表达式中使用 DLookup 函数。例如,假定有一个基于“订单明细”表的“订单明细”窗体,窗体上有一个显示“产品ID”字段的、名为“产品ID”的文本框。若要根据文本框中的值从“产品”表查阅“产品名称”,则可以另外创建一个文本框并将其 ControlSource 属性设为以下表达式:

=DLookup("[ProductName]", "roducts", "[ProductID] =" _
     & Forms![Order Details]!ProductID)
提示

虽然可以使用 DLookup 函数显示外部表中字段的值,但更有效的方法是创建含有这两个表中所有所需字段的查询,然后以这个查询为基础创建窗体或报表。


也可以使用“查阅向导”来查找外部表中的值。
注意   使用该函数时,对 domain 中记录所做的未保存更改将不包括在内。如果要让 DLookup 函数基于更改后的值,必须先保存更改,方法是:单击“文件”菜单上的“保存记录”,将焦点移到另一个控件上,或者使用 Update 方法。




[glow=255,red,2]DLookup 函数将基于 criteria 中指定的信息返回单个字段的值。虽然 criteria 是可选参数,但如果不为 criteria 提供数值,则 Dlookup 函数将返回域中的一个随机值。[/glow]
[此贴子已经被作者于2004-5-7 13:15:20编辑过]

4#
发表于 2004-5-8 00:22:00 | 只看该作者
一、‘”& Me![品号]& “’,单引号表示[品号]是字符,如果是数值就不用,如果是日期用##
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-13 16:54 , Processed in 0.096581 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表