Set rs = con.Execute("select * from anli where cmonth='" & Trim(Combo1(1).Text) & "'and val(cday)>=" & Trim(Combo1(3).Text) & " and val(cday)<= 31 or cmonth='" & Trim(Combo1(2).Text) & "' and val(cday)>=  1  and val(cday)<=" & Trim(Combo1(4).Text))此语句有问题,问题出在哪里,是不是val(cday)<= 31 和val(cday)>=  1  
请教cday字段 cmonth字段为字符型
查旬如12。26-1。1的记录

解决方案 »

  1.   

    双引号里面的应该是SQL语句,而Val是VB的一个函数
      

  2.   

    SQL里没有VAL这个函数,分析一下数据,可不可以用right函数代替或substring函数(同vb的mid函数)。
      

  3.   

    Debug.print 你的SQL語句,然後到數據庫中去試一下
      

  4.   

    如果是 Access 数据库(Jet 引擎),支持 Val 函数。病因可能是少了一个空格。Set rs = con.Execute("select * from anli where cmonth='" & Trim(Combo1(1).Text) & "' and val(cday)>=" & Trim(Combo1(3).Text) & " and val(cday)<= 31 or cmonth='" & Trim(Combo1(2).Text) & "' and val(cday)>=  1  and val(cday)<=" & Trim(Combo1(4).Text))
      

  5.   

    val函数应该在引号外,不然不会被执行
      

  6.   

    先把SQL语句输出来,再去查询分析器里试一下就行了
      

  7.   

    看到没有: & "'and val(cday)>="   单引号和and没隔开,当然不行。