Sql = "select * from 用户购水 where 购水日期 > #" & DTPicker1.Value & "# and 购水日期 < #" & DTPicker2.Value & "#"我以前一直是这样做的。

解决方案 »

  1.   

    DTPicker1.Value 将被认为是字符串类型,
    你可以使用convert函数(sql的)先将它转换成数值类型.
      

  2.   

    设置段点,拷出sql到ACCESS中的查询里执行一下就出来了。
    再版仔细查查么。
      

  3.   

    Sql = "select * from 用户购水 where 购水日期 between #" & cstr(DTPicker1.Value) & "# and #" & cstr(DTPicker2.Value) & "#"
      

  4.   

    SQL查询语句中关于时间的比较一定要用四位数字的年份,如果计算机中的时间设置为年份只显示两位数字,则可能搜索不到.
    最好用下面这条语句:Sql = "select * from 用户购水 where 购水日期 between #" & format(DTPicker1.Value,"yyyy-M-dd") & "# and #" & fromat(DTPicker2.Value,"yyyy-M-dd") & "#"
      

  5.   

    select * from  table1 where  tempdate between #6:00# and #8:00#
    这样是对的
    你可以跟踪一下你的sql语句,看是否是合法的语句,估计问题出在DTPicker1.Value 上,不如这样
    str1=format(trim(DTPicker1.Value),"yyyy-mm-dd") '转化成标准日期格式
    str2=format(trim(DTPicker2.Value) ,"yyyy-mm-dd")
    Sql = "select * from 用户购水 where 购水日期 between #" & str1 & "# and #" & str2 & "#"
      

  6.   

    这里面dtpicke他的值为字符类型所以不能把它当成日期类型处理必须转换用cast
    对了你的购水日期是否是datetime类型,假如是如下否则也必须把它转换成日期类型
    例如:
    Sql = "select * from 用户购水 where 购水日期 between cast('" & DTPicker1.Value & "' as datetime) and cast('" & DTPicker2.Value & "' as datetime)"