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?
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?
因为 cint 对象 不能 是 null
if cint(iif(isnull(rs.fields(7),"0",rs.fields(7)))) > 40 then你是全编译执行的时候报错还是已经执行到某个数据的时候报错
If val(rs.Fields(7)) > 40 Then '用上面那样试试:;我怀疑你的 rs.Fields(7) 字段有非数字的值.
'rs.Fields(7) 如果不是空,但是如果是 "fvflove" 呢?
但我的想法是前面的if判断空就跳出,不用比较大小了,自然不会有cint类型错误,为什么我的想法不行?
'正如我上面所说,如果 rs.Fields(7)="fvflove" 不为空,但是 [ if "fvflove" > 40 then ] 能通过吗?
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
我的理解是这样的,
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
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