本人的意图在于,如果输入的值大于规定的范围,那么就退出,记录也不保存
但是我再编写的时候,无论用什么方法,输入错误的记录仍然在list中。请大家指教!

解决方案 »

  1.   

    我用了一个list,用text作载体,将数字输在 text上,然后再传递给list,到入数据库。
      

  2.   

    具体代码 
      if val(text.text)>100 then
         exit sub
         text.text = " "
         list1.row = list1.row - 1
         list.text = text.text
      end if
    要说明的是每输入一个数据,list.row + 1,我想让不符合的数据不录入数据库,而且list保持原来的状态
      

  3.   

    Private Sub Command1_Click()
    If Not IsNumeric(Text1.Text) Then
        MsgBox "请输入数值", vbCritical
        Text1.SetFocus
        SendKeys "{Home}+{End}"
        Exit Sub
    End If
    If Val(Text1.Text) > 100 Then
        MsgBox "输入数值过大,请填写100以下的", vbCritical
        Text1.SetFocus
        SendKeys "{Home}+{End}"
        Exit Sub
    End If
        
        List1.AddItem Text1.Text
        Text1.Text = ""
        
        '--------数据库操作-------------
        
        
        .....End Sub
      

  4.   

    哎呀,你怎么把exit sub放在要执行的代码的前面了呢?这样的话
    text.text = " "
    list1.row = list1.row - 1
    list.text = text.text
    不都没有被执行了吗dsclub的方法很好啊,有错误的话最好给出个信息,不然发生了什么错误都不知道。
      

  5.   

    具体代码 
      if val(text.text)>100 then
         exit sub
         text.text = " "
         list1.row = list1.row - 1
         list.text = text.text
      end if
    要说明的是每输入一个数据,list.row + 1,我想让不符合的数据不录入数据库,而且list保持原来的状态看了你的代碼﹐一般我們從前台對數據進行攔截﹐因為數據庫中間是不會對前台非法數據進行攔截的。我剛用MSFlexGrid1測試以下數據。
    其實就是這么判斷
    dim a as Integer
    a=val(text1.text)
    if a>1000 then
     Msgbox"error"
     Text1.text=""
     Text1.SetFocus
     exit sub
    end if因為你在數據輸入﹐馬上判斷錯誤的時候﹐就清空text中間數據﹐而且exitsub就根本不會執行到下面的list中呀?
    我不知道你的意思 是不是這樣﹐我只能這么寫最簡單的了。