在网上看过关于Dlookup替代函数的文章,一直没引起重视,感觉Dlookup函数很好用,还用它的什么替代品。直到前几天,我用经过加密后的用户密码作为条件值使用Dlookup函数出现提示“语法错误(操作符丢失)在查询表达式.....”的错误之后,我才对Dlookup的替代函数发生兴趣。
Dlookup函数出现错误号为3075的“语法错误(操作符丢失)在查询表达式.....”或“字符串的语法错误 在查询表达式......”的错误,多是由于criteria中给定的条件值是字符串(需要用一对英文单引号将字符串条件值括起来),包含有英文单引号“'”。如果在代码中用一对chr(34)(英文双引号)将条件值括起,则当条件值中包含有英文双引号“"”时,还会出现相同的错误。如果我们不清楚criteria中给定的字符型条件值(这时条件值多是变量)是否包含有英文单引号“'”的情况下使用Dlookup函数,当条件值中出现英文单引号时,就会出现这个错误。
为避免出现上面的错误,我们就要想到做个与Dlookup函数相似的自定义函数,在这个函数中,条件值完全可以包含英文单引号和英文双引号,对条件值不需要用英文单引号或英文双引号括起来。
本人制作了个与Dlookup函数相似的自定义函数,取名为funLookup,其代码及使用事例见附件。
说明:
一、什么情况下使用Dlookup函数和funLookup自定义函数:
1、非常清楚条件值中绝不包含英文单引号时,用Dlookup函数;
2、非常清楚条件值中可能包含英文单引号,但绝不包含英文双引号时,用Dlookup函数,在代码中,将括起条件值的一对英文单引号改为chr(34)(英文双引号);
3、除开上面两种情况(即条件值中可能包含英文单引号,也可能包含英文双引号),请使用自定义函数funLookup。
二、funLookup自定义函数
1、功能:在表或查询中返回满足条件的某字段值,相似于DLookup函数;
2、注意:其注意事项,请在函数代码中见“注意”说明;
3、应用:不保证在Access 2007、Access 2010中一定能用;
4、制作人:wsl;
附 件:
点击下载此附件