Office中国论坛/Access中国论坛

标题: [求助] if 语句执行半句,问题出在哪? [打印本页]

作者: Y9X    时间: 2010-8-18 17:31
标题: [求助] if 语句执行半句,问题出在哪?
我的这个句子,只会执行ELSE部分,前半部分不执行,请高手帮忙看看问题出在哪,多谢了!
会不会我这个条件用错了啊。。。

Dim a
Dim b, c As Long
a = Nz(DLookup("[工作号]", "[工作号表]", "[业务大类]=''"), "") '通过判断“工作号表”.[业务大类]字段是否为空来判断有没有空置的工作号
If a = 0 Then
b = DMax("工作号", "工作号表")  '如果a=0说明没有找到空的“业务大类”记录,判断没有空置的工作号,则生成一个最新的
c = b + 1
Me.工作号.Value = c
Else
b = DMin("工作号", "筛选空置的工作号供优先使用")    '如果有空置的工作号就到空记录表内去挑选一个最早的工作号先用
Me.工作号.Value = b
End If
End Sub


作者: todaynew    时间: 2010-8-18 17:58
a = Nz(DLookup("[工作号]", "[工作号表]", "[业务大类]=''"), 0)
作者: Y9X    时间: 2010-8-18 19:24
todaynew,我按照你的意思修改了后,IF A=0会执行了,可是ELSE又不执行了。
我的本意是想通过DLOOKUP返回的情况判断,DLOOKUP可能的结果是不止有一个空记录,所以我只能判断有没有找到,没找到生成新的,找到的话,到查询表内去挑一个用。
麻烦再看看,行不
作者: Y9X    时间: 2010-8-18 20:08
上传实例,这样更直观。请各位前辈指导一下。
作者: koutx    时间: 2010-8-18 22:01
方法一:将“工作号表”的业务大类字段的默认值改为""
方法二:如不改“工作号表”的业务大类字段的默认值,则按如下改:
DLookup("工作号", "工作号表", "业务大类 Is Null")
作者: Y9X    时间: 2010-8-18 22:31
多谢koutx,可是测试后还是不行啊
作者: todaynew    时间: 2010-8-19 05:20
本帖最后由 todaynew 于 2010-8-19 05:23 编辑

If DCount("[工作号]", "[工作号表]") = 0 Then
    Me.工作号.Value = "0001"
Else
    If DCount("[工作号]", "[工作号表]", "nz([业务大类],'')=''") = 0 Then
        Me.工作号.Value = DMax("工作号", "工作号表") + 1
    Else
        Me.工作号.Value = DMin("[工作号]", "[工作号表]", "nz([业务大类],'')=''")
    End If
End If
作者: Y9X    时间: 2010-8-19 09:06
回复 todaynew 的帖子

谢谢,todaynew。问题解决,我又学到了这种情况下dlookup和dcount的用法,谢谢。
5点就回帖,太感动了


   
作者: todaynew    时间: 2010-8-19 11:41
回复 Y9X 的帖子
为了回你的帖子,一夜未眠。


   
作者: 石三少    时间: 2010-8-19 11:51
老头一般都早睡早起!看看早上的公园就知道了
作者: roych    时间: 2010-8-19 12:56
回复 todaynew 的帖子
(⊙v⊙)嗯……斑竹上夜班吧~~

   
作者: Y9X    时间: 2010-8-19 15:59
回复 todaynew 的帖子


    谢谢,谢谢。ror 1-10000
msgbox"感动啊"





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