在向数据库添加和修改记录时,要先判断文本框的输入是否满足要求,由于有好多情况要用到,我把这个判断做成了一个过程,在每次要用到的事情前先调用,但每次判断完后程序就跳出来啦,这是为什么呀?该怎么解决。
比如:
我的判断过程的代码为:
Public Sub CheckInput()
If CSTxt(0).Text = "" Then
 MsgBox "请输入城市名称!", vbOKOnly + vbExclamation, "信息输入"
    Exit Sub
End IfIf CSTxt(1).Text = "" Or Val(CSTxt(1).Text) <= 0 Or Val(CSTxt(1).Text) > 1 Then
 MsgBox "请输入比值!", vbOKOnly + vbExclamation, "信息输入"
    Exit Sub
End If……
end sub
 
Private Sub Command3_Click()
checkinput
……
连接数据库
……
rs.open……
rs.addnew
……
end sub
当我在文本框输入是空的时候,会提示要输入不能为空,但同时程序也跳了出来,如果我把这个判断的代码直接加在conmmand里,就不会跳出程序,大家看看这个问题该怎么解决,帮帮忙,因为很多事情要用到这个相同的输入判断,所以怎么能不重复编写代码,能使判断成功而且程序不跳出来呀。

解决方案 »

  1.   


    '程序也跳了出来.怎么理解,不指当机吗?
    '还是本来在文本框的,但是文本框没有焦点了.
    '如果是下一种情况,建议这样改:Public Sub CheckInput(byval Obj as object) '增加一个参数,是你当前的文本框
    If CSTxt(0).Text = "" Then 
    MsgBox "请输入城市名称!", vbOKOnly + vbExclamation, "信息输入" 
        obj.SetFocus '增加
        Exit Sub 
    End If If CSTxt(1).Text = "" Or Val(CSTxt(1).Text) <= 0 Or Val(CSTxt(1).Text) > 1 Then 
    MsgBox "请输入比值!", vbOKOnly + vbExclamation, "信息输入" 
        obj.SetFocus '增加
        Exit Sub 
    End If …… 
    end sub 
      

  2.   

    Public Function CheckInput() As Boolean
        
        If CSTxt(0).Text = "" Then 
            MsgBox "请输入城市名称!", vbOKOnly + vbExclamation, "信息输入" 
            Exit Sub 
        End If 
        
        '...
        CheckInput = True
        
    end sub Private Sub Command3_Click() 
        
        If CheckInput Then
            ....
            连接数据库 
             ......
            rs.open
             rs.addnew 
            ......
        End Ifend sub 
      

  3.   

    程序跳出的意思是说:由于数据的输入错误,数据库操作错误,所以就跳出来啦。我判断的目的是保证数据输入正确。如果错误就会EXIT SUB提示重新输入,而不会程序中断。如果在添加,修改数据记录前判断是可以的,但是如果我改为调用的过程就不行啦,不知是为什么?代码该怎么修改一下。
      

  4.   

    还没看明白么? checkinput 会影响 Command3_Click 的运行流程吗?Private Sub Command3_Click() 
    checkinput 
    …… 
    连接数据库 
    …… 
    rs.open…… 
    rs.addnew 
    …… 
    end sub 
      

  5.   

    2楼的朋友,我试了你的方法,还是没有解决我的问题,运行流程还是受影响了,不过还是谢谢你的思路,我想问题是出在该在哪个地方end if .我再调调