Office中国论坛/Access中国论坛

标题: 关于dlookup的问题 [打印本页]

作者: wangjianxiao    时间: 2013-3-28 09:33
标题: 关于dlookup的问题
哪位能帮我看看代码错误在哪里,谢谢了
Me.姓名.RowSource = DLookup("候选人", "星级评选设置", "月度='" & Forms!星级员工测评!月度 & "'and '"& (姓名) Not In (select 姓名 from 临时表 where 姓名 is not null)&"')
作者: ly    时间: 2013-3-28 10:57
and后面是否少了 [字段名]=
是不是?!
作者: wangjianxiao    时间: 2013-3-28 11:12
我加上字段名后,运行也是错误,麻烦您给在看看。谢谢了
作者: ly    时间: 2013-3-28 12:27
wangjianxiao 发表于 2013-3-28 11:12
我加上字段名后,运行也是错误,麻烦您给在看看。谢谢了

符合条件的值只有一个,否则不能达到你的要求。
作者: layaman_999    时间: 2013-3-28 14:48
注意下面的设置
1. RowSource应该设置好RowsourceType的类型是否正确
2.dlookup只返回一个域的一个随机值(如果该值为SQL语句的话,请RowsourceType的类型是否正确)
3.DLookup是否支持子查询
4.(姓名)字段中的()应该用[]合适些

作者: todaynew    时间: 2013-3-28 16:13
错得一塌糊涂
作者: mclly2000    时间: 2013-3-28 19:24
老汉给改改
作者: roych    时间: 2013-3-28 22:18
本帖最后由 roych 于 2013-3-28 22:22 编辑

确实错得一塌糊涂。应该是:Me.姓名.RowSource="Select 候选人 from 星级评选设置 where 月度'=" & me.月度 &"' and 姓名 not in (select 姓名 from 临时表 where 姓名 is not null)"
PS:

作者: huangli0356    时间: 2013-3-29 08:27
roych 发表于 2013-3-28 22:18
确实错得一塌糊涂。应该是:Me.姓名.RowSource="Select 候选人 from 星级评选设置 where 月度'=" & me.月度 ...

roych 版主分析得是.
我之前就用的not in
还好后来改了..呵呵.
作者: wangjianxiao    时间: 2013-3-29 11:41
用以下语句可以运行,但不是我要的的结果,就是dlookup 的第二个条件没有用上。再与大家讨论。
Me.姓名.RowSource = DLookup("候选人", "星级评选设置", "月度='" & Forms!星级员工测评!月度 & "' and  姓名 Not In (select  姓名 from 临时表 where 姓名 is not null)")
作者: roych    时间: 2013-3-30 01:50
wangjianxiao 发表于 2013-3-29 11:41
用以下语句可以运行,但不是我要的的结果,就是dlookup 的第二个条件没有用上。再与大家讨论。
Me.姓名.Ro ...

语句应当从效率的优化上来考虑,而不是非要几个条件。像这个情况下,本来就可以建立临时表和星际评选设置之间的关系(连接字段为两个表的“姓名”字段),用左联接查询来完成,而不是非要用Not In来处理。
作者: wangjianxiao    时间: 2013-3-31 09:10
还是要与大家讨论这个问题:首先先谢谢大家,我的要求是当选择月度后,在后姓名的组合框出现人名,下次时前面选过的人不在组合框内,也就是每自动取掉上次选过的人。
作者: wangjianxiao    时间: 2013-4-2 15:45
我将附件,传上,请帮我在看看[attach]51524[/attach]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3