本帖最后由 bcrun 于 2011-05-27 08:58:03 编辑

解决方案 »

  1.   

    比32767大,也就是比Integer的最大范围大
      

  2.   

    那你定义成 long。
    支持到 2147483647。
      

  3.   

    代码很不规范:i,s的定义呢?
    year(日期)应该不会,因为你有检测,month(日期)也要检测 >0和<=31,最好判断是否是合法的Date.
      

  4.   

    If Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" or val(text1)>9999 or val(text1)<0 or val(text2)> 12 or val(text2)<0 Then
        MsgBox "请输入有效的年月!", 48, "提示"
        Exit Sub
    Else
    If i > Year(Now) Then
        MsgBox "还没到这一年!", 48, "提示"
    Exit Sub
      

  5.   


    这里面的Val(text1)>9999 一样会报错的如果只是判断年月日录入,可以对输入字符串长度进行限制:

     if len(trim(text1))>4 then
           msgbox "请检查您输入的格式"
     end if
      

  6.   

    将text1的maxlength属性设置为4,text2的设置为2,并检测是否为数字,且值在规定范围内.