Office中国论坛/Access中国论坛
标题:
还是请教DLOOKUP应用问题,请路过朋友帮忙
[打印本页]
作者:
Y9X
时间:
2010-8-23 17:01
标题:
还是请教DLOOKUP应用问题,请路过朋友帮忙
请见附图和附件。
我的设计本意是“点击生成新业务”按钮后,先要判断表内是否已经存在这个“工作号”,如果已经存在则终止事件,不再追加记录。我用了DLOOKUP和DCOUNT2个函数,在确定语法没有错误的情况下,运行结果是不对的,DLOOKUP和DCOUNT都给了<>0的结果,其实表内并没有存在重复数据,应该是返回空值或者0的,我不晓得问题出在哪里,请高手帮忙指点下。
代码如下:
If Nz(DLookup("工作号", "[出口业务基本信息表]", "[工作号]]='" & Forms!新业务录入.工作号.Value & "'"), "") Is notnull Then
MsgBox ("工作号" & Me.工作号 & "已被使用")
End
end if
运行结果:即使表内没有存在重复的数据,还是提示“工作号已被使用”
[attach]43185[/attach]
作者:
kelind
时间:
2010-8-23 17:08
可能是notnull使用不当
作者:
todaynew
时间:
2010-8-23 17:10
本帖最后由 todaynew 于 2010-8-23 17:14 编辑
notnull 这是你创造的吧?
此外工作号后面是不是多了半拉方括弧?
作者:
Y9X
时间:
2010-8-23 17:14
本帖最后由 Y9X 于 2010-8-23 17:17 编辑
IS NOT NULL也不行啊
<>0也不行啊,我都试过了
那个中括号去掉还是没影响运行结果
作者:
kelind
时间:
2010-8-23 17:17
干吗放在错误处才判断?在"工作号"更新前不好吗?
if Dconut(""......)>0 then
cancel=true
end if
作者:
todaynew
时间:
2010-8-23 17:18
If Nz(DLookup("工作号", "[出口业务基本信息表]", "[工作号]='" & Forms!新业务录入.工作号.Value & "'"), "") <> "" Then
把这句覆盖你原来的语句。
作者:
Y9X
时间:
2010-8-23 17:24
Todaynew,把<>0改称""就成功了,你的办法成功。
kelind的办法也成功了。不过不能放那里,是实际需要。
我明白了,nz()会把0值变成空格,怪不得IF判断不出来,如果使用DCOUNT应该判断>0而不是<>0,我又学到了,多谢2位,TKS
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3