strSQL = "SELECT 预订日期,序号 from [sheet1$] where 预订人名字='" + Tabi + "' and 预订日期>#" + datefirst + "#"
其中datefirst是date类型的数据,但是数据在datefirst这里老是报告错误,说是数据类型不符合,到底错在哪里啊/???

解决方案 »

  1.   

    在sql数据库是不用#的,只有在acess数据库用
      

  2.   

    sqlserver中:
    strSQL = "SELECT 预订日期,序号 from [sheet1$] where 预订人名字='" + Tabi + "' and 预订日期>'" + datefirst + "'"access中:
    strSQL = "SELECT 预订日期,序号 from [sheet1$] where 预订人名字='" + Tabi + "' and 预订日期>#" + datefirst + "#"
      

  3.   

    #号用于access
    sql的话不用
    strSQL = "SELECT 预订日期,序号 from [sheet1$] where 预订人名字='" + Tabi + "' and 预订日期>'" + datefirst + "'"
      

  4.   

    判断日期大小还是用Datediff函数比较准确
      

  5.   

    "SELECT 预订日期,序号 from [sheet1$] where 预订人名字='" + Tabi + "' and 预订日期>#" + datefirst + "#"改成;
     "SELECT 预订日期,序号 from [sheet1$] where 预订人名字='" + Tabi + "' and 预订日期>'" & datefirst & "'"
    因为#只是.Net的标识,数据库里是不用!
      

  6.   

    没错啊,我的是access数据库啊!!!
    datefirst我是用下面的方法取得的。
    datefirst = CDate(Trim(Text1(0).Text))
    text1(0).text中我输入2003-7-1,运行后就错误了。
      

  7.   

    我靠。竟然是+的问题,改成&后竟然可以了。
      

  8.   

    datefirst = CDate(Trim(Text1(0).Text))换成
    datefirst = format(CDate(Trim(Text1(0).Text)),"YYYY-MM-DD")
    接受的格式最好用2003-07-14这种格式,避免读取时间区域不同,识别时间的不同
    你这样做有点达不到效果,我想你应该是希望把输入文本框的字符格式化成日期型
    你完全可以先判断一下isdate(好象是)函数判断一下
      

  9.   

    不用cdate函数转换,直接用字符串,sqlstr是字符型,当然不行