vb程序+access数据库现求一sql语句的删选条件.sdate是表里的字段,是日期型的.如:2004-11-19
vb里的窗体里有三个组合框,分别为comboyear输入年份,combomonth输入月份,comboday输入日期的
当用户只输入年份,即comboyear=2004时,我只需要把表里的字段sdate的前面四位等于2004的记录删选出来就可以了
所以我这里用到模糊查询.
我现在把where子句贴出来.
(注:year = Comboyear.Text)
where start_date like #" & CDate(year) & "*#我原先时怎么写的.但是.我试过.cdate函数不知怎么的会出错.
比如year=2004时,实际上CDate(year)值为1904-05-04(我用msgbox显示出的值)
我也不知道为什么CDate()函数把我的2004默认成1904了呢.所以请教各位大哥,where子句后的语句还有没有别的写法来符合我这个模糊查询的呢?

解决方案 »

  1.   

    where left(start_date,4)='"& comboyear &"'
      

  2.   

    "select * from 表名 where {fn Year(start_date)} = " & year
      

  3.   

    上面提的问题,我自己解决了,
    用"cstr(year(start_date))= '" & CStr(year) & "'"对了,我还有一个问题:
    就是当我输入的日期是2004-05-19时,access数据库会自动把05前面的0去掉的,然而我窗体里的组合框里的5月份是05,这样条件删选中就只能认得5,不认识05呢
    其实我可以把组合框内的值改掉.但是我想能否用程序去识别这个0呢