Dlookup函数
1 DLookup正常用法
用于数值型条件值:
DLookup("字段名称" , "表或查询名称" , "条件字段名 = n")
用于字符串型条件值:(注意字符串的单引号不能丢失)
DLookup("字段名称" , "表或查询名称" , "条件字段名 = '字符串值'")
用于日期型条件值:(注意日期的#号不能丢失)
DLookup("字段名称" , "表或查询名称" , "条件字段名 = #日期值#")
从窗体控件中引用条件值用法
用于数值型条件值:
DLookup("字段名称" , "表或查询名称" , "条件字段名 =" &
forms!窗体名!控件名)
用于字符串型条件值:(注意字符串的单引号不能丢失)
DLookup("字段名称" , "表或查询名称" , "条件字段名 = '" &
forms!窗体名!控件名 & "'")
用于日期型条件值:(注意日期的#号不能丢失)
DLookup("字段名称" , "表或查询名称" , "条件字段名 = #" &
forms!窗体名!控件名 & "#")
混合使用方法(支持多条件)
在这种方法中也可以在条件中写入固定的值。
DLookup("字段名称" , "表或查询名称" , "条件字段名1 = " & Forms!窗体名!控件名1 _
& " AND 条件字段名2 = '" & Forms!窗体名!控件名2 & "'" _
& " AND 条件字段名3 =#" & Forms!窗体名!控件名3 & "#")
2 DLookup 方法
请参阅 应用于 示例 特性
使用 DLookup 函数可以从指定记录集(一个域)内获取特定字段的值。
可以在 Visual Basic、宏、查询表达式、窗体或报表上的计算控件中使用 DLookup 函数。Variant 型。
expression.DLookup(Expr, Domain, Criteria)
[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。任何包含在 criteria 中的字段必须同时也是 domain 中的字段,否则 Dlookup 函数将返回 Null。
说明
使用 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]", "Products", "[ProductID] =" _
& Forms![Order Details]!ProductID)
提示
虽然可以使用 DLookup 函数显示外部表中字段的值,但更有效的方法是创建含有这两个表中所有所需字段的查询,然后以这个查询为基础创建窗体或报表。
也可以使用“查阅向导”来查外部表中的值。
注意 使用该函数时,对 domain 中记录所做的未保存更改将不包括在内。如果要让 DLookup 函数基于更改后的值,必须先保存更改,方法是:单击“文件”菜单上的“保存记录”,将焦点移到另一个控件上,或者使用 Update 方法。
DLookup 函数将基于 criteria 中指定的信息返回单个字段的值。虽然 criteria 是可选参数,但如果不为 criteria 提供数值,则 Dlookup 函数将返回域中的一个随机值。
3 工资表录入窗体中,如何使用DLOOKUP将上个月的该值设为默认值。
可以给个例子吗
可以给个例子吗
工资 = DLookup("[工资字段名]", "[工资表的名称]", "[人员ID] = " & 人员ID & " AND [月份] = " & Str(当前月份 - 1))
工资 = nz(DLookup("[工资字段名]", "[工资表的名称]", "[人员ID] = " & 人员ID & " AND [月份] = " & Str(当前月份 - 1)) ,0)
4 Dlookup中如何使用变量作为条件?Dim a As String
a = Me.Caption
If IsNull(DLookup("[权限名]", "权限查询", "[用户] =[Forms]![主面板]![用户名] And [权限名]= a ")
dlookup这里总是报错!
改成這樣吧.:
If IsNull(DLookup("[权限名]", "权限查询", "[用户] ='" & [Forms]![主面板]![用户名] & "'" & " And [权限名]='" & a & "'")
If IsNull(DLookup("[权限名]", "权限查询", "[用户] ='" & [Forms]![主面板]![用户名] & "'" & " And [权限名]='" & a & "'")
5请教DLookup函数的返回值access帮助中“ValidationRule、ValidationText 属性”条目下有如下示例:
ValidationRule 属性:
DLookup("客户ID", "客户", "客户ID = Forms!客户!客户ID") Is Null
ValidationText 属性:
输入项必须是唯一的“客户ID”(域合计函数只允许在窗体级的有效性中使用)
请教各位,DLookup("客户ID", "客户", "客户ID = Forms!客户!客户ID") Is Null 的返回值是什么?
谢谢!
输入项必须是唯一的“客户ID”(域合计函数只允许在窗体级的有效性中使用)
请教各位,DLookup("客户ID", "客户", "客户ID = Forms!客户!客户ID") Is Null 的返回值是什么?
谢谢!
用on error goto err
dim a
a=DLookup("客户ID", "客户", "客户ID = Forms!text函数什么意思客户!客户ID")
exit
err:
msgbox err
显示值就是了
dim a
a=DLookup("客户ID", "客户", "客户ID = Forms!text函数什么意思客户!客户ID")
exit
err:
msgbox err
显示值就是了
楼上的朋友,不好意思,我刚开始学Access,请问您写的程序如何运行?
在一个按钮的单击事件中,写上上面的代码,然后打开窗体,单击此按钮。
a=DLookup("[客户ID]", "客户", "[客户ID] ="& Forms!客户!客户ID)
msgbox "a=" & a
在一个按钮的单击事件中,写上上面的代码,然后打开窗体,单击此按钮。
a=DLookup("[客户ID]", "客户", "[客户ID] ="& Forms!客户!客户ID)
msgbox "a=" & a
DLookup("客户ID", "客户", "客户ID = Forms!客户!客户ID") Is Null 是一个条件判断式,返回True或False.
而DLookup("客户ID", "客户", "客户ID = Forms!客户!客户ID") 则返回“客户”表(查询)中满足条件:"客户ID = Forms!客户!客户ID"的客户ID字段的字段值,如果没有满足条件的记录则返回"NULL"值。
而DLookup("客户ID", "客户", "客户ID = Forms!客户!客户ID") 则返回“客户”表(查询)中满足条件:"客户ID = Forms!客户!客户ID"的客户ID字段的字段值,如果没有满足条件的记录则返回"NULL"值。
Dlookup函数综合释疑
提示: 以下用法示例适合于大部分的合计函数(域函数如:DMax, DMin,Dfirst,Dlast等)
语法:
DLookup(expr, domain, [criteria])
参数解释:
expr:要获取值的字段名称
domain :要获取值的表或查询名称
criteria:用于限制 DLookup 函数执行的数据范围。如果不给 criteria 提供值,Dlookup 函数将返回域中的一个随机值。
正常用法
用于数值型条件值:
DLookup("字段名称" , "表或查询名称" , "条件字段名 = n")
用于字符串型条件值:(注意字符串的单引号不能丢失)
DLookup("字段名称" , "表或查询名称" , "条件字段名 = '字符串值'")
用于日期型条件值:(注意日期的#号不能丢失)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论