我现在想作一个添加功能:元素:窗体form1、添加按钮(addnewcmd)、一个textbox1现在我想在这个textbox1中输入身份证,但是需要判断语句:
在textbox1中只能输入15位或者18位
输入其他的长度,当点击addnewcmd按钮时,窗体会自动报警:“身份证必须为15位或18位数字“下面是我写的语句:
If Len(Trim(textbox1.Text)) <> 15 Then
       If Len(Trim(textbox1.text)) <> 18 Then
          MsgBox "身份证必须为15位或18位数字!", vbExclamation + vbOKOnly, "信息提示"
          textbox1.SetFocus
          textbox1.Text = ""
          Exit Sub
       End If
End If请问我写的错在哪里,应该怎么写才能实现我想要的功能?

解决方案 »

  1.   

    If Len(Trim(textbox1.Text)) <> 15 or Len(Trim(textbox1.text)) <> 18  Then
              MsgBox "身份证必须为15位或18位数字!", vbExclamation + vbOKOnly, "信息提示"
              textbox1.SetFocus
              textbox1.Text = ""
              Exit Sub
    End If
      

  2.   

    你把textbox1的MAXLEN设置成18,这样就控制他不能输入多于18位了If Len(Trim(textbox1.Text)) <> 15 then
    MsgBox "身份证必须为15位或18位数字!", vbExclamation + vbOKOnly, "信息提示"
              textbox1.SetFocus
              textbox1.Text = ""
              Exit Sub
    end if
    if Len(Trim(textbox1.text)) <> 18  Then
    MsgBox "身份证必须为15位或18位数字!", vbExclamation + vbOKOnly, "信息提示"
              textbox1.SetFocus
              textbox1.Text = ""
              Exit Sub
    End If
      

  3.   

    要注意这两个条件语句的区别:
    If Len(Trim(textbox1.Text)) <> 15 or Len(Trim(textbox1.text)) <> 18  Then
    为复合条件语句,满足两者之一就可以了;If Len(Trim(textbox1.Text)) <> 15 Then
           If Len(Trim(textbox1.text)) <> 18 Then
    为递进条件语句,类似于,
    If Len(Trim(textbox1.Text)) <> 15 and Len(Trim(textbox1.text)) <> 18  Then
    需要同时满足。
      

  4.   

    已经试过楼主的代码了,并没有错啊!
     
        你运行时会有什么出错提示吗?----如果是要我写的话,我会写成这样.
    dim iLen as integer
    iLen=Trim(textbox1.Text)
    if iLen<>15 OR iLen<>18 Then
        MsgBox "身份证必须为15位或18位数字!", vbExclamation + vbOKOnly, "信息提示"
        textbox1.SetFocus
        textbox1.Text = ""
        Exit Sub
    End If----如果要判断是否全部是数字的话,可以使用IsNumeric()函数判断.
      

  5.   

    写错了,应该是
    if iLen<>15 AND iLen<>18 Then
       ....
    end if
      

  6.   

    Trim是个控件吗?如果不是的话那是什么???
    在这个程序中用到了那几个控件了???
    这问题看似很笨,不要笑我哦...
      

  7.   

    Trim()函数是将字符串前后两端的空格去掉。
      

  8.   

    If Len(Trim(textbox1.Text)) <> 15 or Len(Trim(textbox1.text)) <> 18  Then
    MsgBox "身份证必须为15位或18位数字!", vbExclamation + vbOKOnly, "信息提示"
    end if