If IsNull(rs.Fields(7)) Then
        Else
            If CInt(rs.Fields(7)) > 40 Then
            myword.Selection.GoTo What:=wdGoToBook, Name:="AST"
            myword.Selection.TypeText Text:=rs.Fields(7).Value & "↑"
            Else: myword.Selection.GoTo What:=wdGoToBook, Name:="abc"
            myword.Selection.TypeText Text:=rs.Fields(7).Value
            End If
        End If
上面这些代码是在一个 with  块里的,rs.Fields(7) 为空
我的想法是空就跳出,继续执行WITH块里 后面的语句,
但编译时提示 If CInt(rs.Fields(7)) > 40 这个出错,数据类型不匹配,
为什么不能跳出IF?

解决方案 »

  1.   

    加断点调试看看会不会运行else里面的语句,要不就修改为if Cint(rs.fields(7).value)>40看看。
      

  2.   

    应该是  If CInt(rs.Fields(7) & "") > 40 Then 
    因为 cint 对象 不能 是 null
      

  3.   

    都不行,我的想法是rs.Fields(7)为空的话就不用 比较它的值是不是 大于40的
      

  4.   


    if cint(iif(isnull(rs.fields(7),"0",rs.fields(7)))) > 40 then你是全编译执行的时候报错还是已经执行到某个数据的时候报错
      

  5.   


     If val(rs.Fields(7)) > 40 Then '用上面那样试试:;我怀疑你的 rs.Fields(7) 字段有非数字的值.
    'rs.Fields(7) 如果不是空,但是如果是 "fvflove"  呢?
      

  6.   

    这个方法可行
    但我的想法是前面的if判断空就跳出,不用比较大小了,自然不会有cint类型错误,为什么我的想法不行?
      

  7.   

    If IsNull(rs.Fields(7)) and isnumeric(rs.Fields(7)) Then '不仅要判断是否为空,还有判断是否是数值.即 rs.Fields(7) 中是 1234567890 这样的数据.
    '正如我上面所说,如果 rs.Fields(7)="fvflove" 不为空,但是 [ if "fvflove" > 40 then ] 能通过吗? 
      

  8.   

    rs.fields(7) = ""
    If IsNull(rs.Fields(7)) Then '为空就不用执行下面的ELSE语句,就不用判断是否 rs.Fields(7) > 40 
            Else 
                If CInt(rs.Fields(7)) > 40 Then 
                myword.Selection.GoTo What:=wdGoToBook, Name:="AST" 
                myword.Selection.TypeText Text:=rs.Fields(7).Value & "↑" 
                Else: myword.Selection.GoTo What:=wdGoToBook, Name:="abc" 
                myword.Selection.TypeText Text:=rs.Fields(7).Value 
                End If 
            End If 
    我的理解是这样的,
      

  9.   

    方法有许多的,简单的方法就是把数据format为string    If format(rs.Fields(7))<>"" Then 
            If CInt(rs.Fields(7)) > 40 Then 
                myword.Selection.GoTo What:=wdGoToBook, Name:="AST" 
                myword.Selection.TypeText Text:=rs.Fields(7).Value & "↑" 
                Else: myword.Selection.GoTo What:=wdGoToBook, Name:="abc" 
                myword.Selection.TypeText Text:=rs.Fields(7).Value 
            End If 
        End If 
      

  10.   

    哦,上面还忘记一点,就是如果rs.Fields(7)是long,用cint也会出错,直接用int   If format(rs.Fields(7)) <>"" Then 
            If Int(rs.Fields(7)) > 40 Then 
                myword.Selection.GoTo What:=wdGoToBook, Name:="AST" 
                myword.Selection.TypeText Text:=rs.Fields(7).Value & "↑" 
                Else: myword.Selection.GoTo What:=wdGoToBook, Name:="abc" 
                myword.Selection.TypeText Text:=rs.Fields(7).Value 
            End If 
        End If