我想达到的效果是:(财务报表的上日累计数读取思路)
1、查询DTPicker1.Value的日期里有没有数据,如存在就读取DTPicker1.Value的日期内容。
2、如果DTPicker1.Value的日期里没有内容,就取上一日期的取后一条内容。
程式语言VB6.0| 数据库是SQL2000 | 数据类型(datetime)
sql 语句如下:
''''''''''''''''''''
数据库内容
2008-6-18
2008-6-12
2008-6-16
2008-6-14
''''''''''''''''''''
select top 1 *  from yueleiji where riqi < " & Trim(DTPicker1.Value) & "  order  by  riqi DESC
这句有误(& trim(dtpicker1.value &)select top 1 *  from yueleiji where riqi > " & Trim(DTPicker1.Value) & "  order  by  riqi DESC
这句就可以。。(但我想要的是上一日期的内容,而不是下一个日期的内容)我在SQL2000数据库里验证语句:
select top 1 *  from yueleiji where riqi < ‘2008-6-16’  order  by  riqi DESC
就没有错误...晕.....语法存在错误请各位大侠帮忙看一下那里出问题。。谢谢!

解决方案 »

  1.   

    比较查询分析器里的语句,你的SQL不是明显少了'号吗?
    你只要debug.print sql,就可以看出你SQL的错误了
      

  2.   

    select top 1 *  from yueleiji where riqi < '" & Trim(DTPicker1.Value) & "'  order  by  riqi DESC 
      

  3.   

    查一下DTPicker1控件的属性应用吧。好象DTPicker1.Value从来不会空的。
    select top 1 *  from yueleiji where riqi < '" & format(DTPicker1.Value,"yyyy-mm-dd") & "'  order  by  riqi DESC 
      

  4.   

    SQLstr="select top 1 *  from yueleiji where riqi < '" & format(DTPicker1.Value,"yyyy-mm-dd") & "'  order  by  riqi DESC"