access中 如何实现excel的VLOOKUP的功能

作者&投稿:路吴 (若有异议请与网页底部的电邮联系)
~ 在Access中,Dlookup
与Excel中的VLOOKUP函数功能是相同的:
简单解释
DLookup(要查的字段,
要查的表,
查询条件
)
例如,要找的A同学的性别:
DLookup("[性别]","学生信息表",
“[姓名]
=
'A'"
)
引申:以下是专业的解释
语法:
DLookup(expr,
domain,
[criteria])
参数解释:
expr:要获取值的字段名称
domain
:要获取值的表或查询名称
criteria:用于限制
DLookup
函数执行的数据范围。如果不给
criteria
提供值,Dlookup
函数将返回域中的一个随机值。
正常用法
用于数值型条件值:
DLookup("字段名称"
,
"表或查询名称"
,
"条件字段名
=
n")
用于字符串型条件值:(注意字符串的单引号不能丢失)
DLookup("字段名称"
,
"表或查询名称"
,
"条件字段名
=
'字符串值'")
用于日期型条件值:(注意日期的#号不能丢失)
DLookup("字段名称"
,
"表或查询名称"
,
"条件字段名
=
#日期值#")
从窗体控件中引用条件值用法
用于数值型条件值:
DLookup("字段名称"
,
"表或查询名称"
,
"条件字段名
="
&
forms!窗体名!控件名)
用于字符串型条件值:(注意字符串的单引号不能丢失)
DLookup("字段名称"
,
"表或查询名称"
,
"条件字段名
=
'"
&
forms!窗体名!控件名
&
"'")
用于日期型条件值:(注意日期的#号不能丢失)
DLookup("字段名称"
,
"表或查询名称"
,
"条件字段名
=
#"
&
forms!窗体名!控件名
&
"#")
混合使用方法(支持多条件)
在这种方法中也可以在条件中写入固定的值。
DLookup("字段名称"
,
"表或查询名称"
,
"条件字段名1
=
"
&
Forms!窗体名!控件名1
_
&
"
AND
条件字段名2
=
'"
&
Forms!窗体名!控件名2
&
"'"
_
&
"
AND
条件字段名3
=#"
&
Forms!窗体名!控件名3
&
"#")
注:
Dlookup之类的合计函数(域函数)是ACCESS为用户提供的内置函数,通过这些函数可以方便的从一个表或查询中取得符合一定条件的值赋予变量或控件值,就不需要再用DAO或者ADO打开一个记录集,然后再去从中获取一个值,这样所写的代码要少的多。
但是如果需要更灵活的设计,比如所查询的域没有在一个固定的表或查询里,而是一个动态的SQL语法,或是临时生成的复杂的SQL语句,亦或是需要代入循环的条件值等,此时还是需要从DAO或者ADO中定义记录集来获取值。因为Dlookup之类的合计函数必竟是一个预定义好格式的函数,所支持的语法有限,但对于大多数的要求是都能够满足的。