例子:
a=text1.text
if a < 10 then
    msgbox "你输入数字是" & a
else
  msgbox "输入不能大于10"
end if
上面是个简单的例子。
我的思路是当我第一次输入数小于10。如输入的是6,给我提示。
当我第二次输入数大于10。给我错误提示。在给我错误提示以后,能不能把我这次输入错误的数字在text1.text里取消并显示上次输入对的数字。
第一次输入6,=对。
第二次输入15,=错。
错误提示反回窗口。第二次输入15不见,显示的是第一次对的6这个数字。
也不知道我说的明白不明白。希望高手帮我看看能不能实现,最好给个小例子。

解决方案 »

  1.   

    dim Num as integer,Num2 as integer
    Num=val(trim(text1.text))if Num>=0 And Num<10 then   msgbox "你输入的数字为" & str(Num)   Num2=Numelse   msgbox "输入的数据不能大于10"   text1.text=Num2end if
      

  2.   

    这个简单!给你个例题你自己看下!exe内包含 1个text1 1个command1 请清空代码窗口内所有的代码,然后复制如下代码到代码窗口中....
    ----------------------------------
    Option Explicit
    Dim b As StringPrivate Sub Command1_Click()
    Dim a As Stringa = Text1.Text
    If a < 10 Then
        MsgBox "你输入的是" & a
        b = a
    Else
        b = b
        MsgBox "请输入正确的值!" & "上次您输入的是..." & b
        Text1.Text = b
    End If
    End SubPrivate Sub Form_Load()
    Text1.Text = ""
    End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 8 Then
        KeyAscii = 8
    ElseIf KeyAscii < 46 Or KeyAscii > 57 Then
        KeyAscii = 0
    End IfEnd Sub
    ------------------------------
    说明:
    Text1_KeyPress(KeyAscii As Integer) 该事件让文本框只能输入数字和小数点.程序最主要的部分是:
    通用部分的变量b的声明:Dim b As String 该变量记录正确的值..
      

  3.   

    guyehanxinlei(孤夜寒心泪) 正确!!!
      请结帖!!
      

  4.   

    还有没有别的办法。上面的方法虽然能用。但在我的程序中好象用不上。
    我的程序如下:
    Private Sub Text1_Change(index As Integer)
    m1 = Val(Text1(0).Text)
    m2 = Val(Text1(1).Text)
    ..............
    m20 = Val(Text1(19).Text)
    ........
    ........
     m0 = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10
    If m0 < 17 Then
    .............
    .............
    Label10.Caption = "︻" & 16 - m1 - m2 - m3 - m4 - m5 - m6 - m7 - m8 - m9 - m10 & " ︼"Else
         Label1.Caption = "请不要大于16"
    End If
      

  5.   

    Private Const intTextNum = 100
    Private Sub Text1_Change(Index As Integer)
        
        Dim N(0 To intTextNum) As Integer
        Dim M(0 To intTextNum) As Integer
        Dim i As Integer
        M(0) = 0
        For i = 1 To intTextNum
            M(i) = Val(Text1(i).Text)
            M(0) = M(0) + M(i)
        Next
        If M(0) < 17 Then
            N(Index) = M(Index)
        .............
        .............
        Label10.Caption = "?" & 16 - m1 - m2 - m3 - m4 - m5 - m6 - m7 - m8 - m9 - m10 & " ?"
        
        Else
             Label1.Caption = "?晄梫戝槹16"
             Text1(Index).Text = N(Index)
        End IfEnd Sub
      

  6.   

    这里假设你的Text数组有100个,根据实际设定即可
      

  7.   

    proglovercn(冰雪) 你的方法很好用,但是在用的中间会出现每组text的第一个管用,其它的就不管用了。
    我有5组text,第一组有20个。前10个管用,后10个不管用。在后10个中出现不管用后,前10个也就不管用了。
    第二---第五组只是第一个管用。这几组每组都是5个text。
    因为数组个数不同,我没有用Private Const intTextNum = 100而是自己设定
        Dim N(0 To 19) As Integer
        Dim M(0 To 19) As Integer和    Dim N(0 To 4 As Integer
        Dim M(0 To 4) As Integer
    以下是我的相应代码:为第二组text其它同样
    Private Sub Text2_Change(index As Integer)
        Dim N(0 To 4) As Integer
        Dim M(0 To 4) As Integer
        Dim i As Integer
        M(0) = 0
        For i = 1 To 4
            M(i) = Val(Text2(i).Text)
            M(0) = M(0) + M(i)
        Next
    m21 = Val(Text2(0).Text)
    m22 = Val(Text2(1).Text)
    m23 = Val(Text2(2).Text)
    m24 = Val(Text2(3).Text)
    m25 = Val(Text2(4).Text)
    If Check2(0).Value = 0 Then
    If Check(0).Value = 1 Then
    m0 = (Val(Text1(0).Text) + Val(Text1(1).Text) + Val(Text1(2).Text) + Val(Text1(3).Text) + Val(Text1(4).Text) + Val(Text1(5).Text) + Val(Text1(6).Text) + Val(Text1(7).Text) + Val(Text1(8).Text) + Val(Text1(9).Text))
    If m0 < 17 Then
       N(index) = M(index)
      m0 = (Val(Text1(10).Text) + Val(Text1(11).Text) + Val(Text1(12).Text) + Val(Text1(13).Text) + Val(Text1(14).Text) + Val(Text1(15).Text) + Val(Text1(16).Text) + Val(Text1(17).Text) + Val(Text1(18).Text) + Val(Text1(19).Text))
       If m0 < 61 Then
       N(index) = M(index)
      m0 = (Val(Text2(0).Text) + Val(Text2(1).Text) + Val(Text2(2).Text) + Val(Text2(3).Text) + Val(Text2(4).Text))
       If m0 < 61 Then
       N(index) = M(index)
    ............
    .........
    ...........
       Else
       Set Form9.ParentForm = Me
       Form9.Show
       Form9.Label1.Caption = "不能大于60天,你的可用天数不够"
       Form9.Caption = "输入错误"
             Text2(index).Text = N(index)
       End If
       Else
       Set Form9.ParentForm = Me
       Form9.Show
       Form9.Label1.Caption = "不能大于60天,你的可用天数不够"
       Form9.Caption = "输入错误"
             Text2(index).Text = N(index)
       End If
       Else
       Set Form9.ParentForm = Me
       Form9.Show
       Form9.Label1.Caption = "不能大于16天,你的可用天数不够"
       Form9.Caption = "输入错误"
             Text2(index).Text = N(index)
    End If
      

  8.   

    我把next放到程序的结尾处,现在第一个不管用,其他的全管用。
    在我的5组text中。1,4全部管用,5没有用上这个方法。2,3text组里,每一个不管用。