你的access数据库的“进货日期”的数据类型选成了文本型吧!要不就是日期型的格式没选对。关键问题还是在access数据库里。那段代码没有问题。还有一点要注意的是最好在控制面班中把日期类型选为长日期型可以避免很多这类问题。

解决方案 »

  1.   

    你把sql写成 "select * from b2 where 进货日期>=#" & cdate(time1) & "# and 进货日期<=#" & cdate(time2) & "#" 试一下
      

  2.   

    Data1.RecordSource = "select * from b2 where 进货日期>=#" & time1 & "# and 进货日期<=#" & time2 & "#"
      

  3.   

    如果用文本格式,那么你在判断的时候可以用val函数。当然先将文本中的-符号去掉.
      

  4.   

    或许在这句话前面先用
    Debug.Print "select * from b2 where 进货日期>='" & time1 & "' and 进货日期<='" & time2 & "'"
    看一下,就明白了。建议不要直接把日期变量嵌在字符串里,不妨麻烦点,用个Format来规定一下格式。
    另外,如果是用ACCESS数据库,好象应该把单引号改成#,不过可能不改也可以(太懒,没有试)。
      

  5.   

    Data1.RecordSource = "select * from b2 where 进货日期>=#" & time1 & "# and 进货日期<= #" & time2 & "#"