strSQL="SELECT 表1.* FROM 表1 WHERE (表1.日期 >#02-4-1# )"
注:表1中的数据都是2003年以后的
    VB6.0+DAO350+Jet2.X
    系统日期2003-05-021.改变日期有时候有查询结果,有时候无查询结果,如02-4-1有、02-4-2有,02-4-3有,02-4-4无,一直到02-4-29都无结果,02-4-30又有结果了,总之不可靠。是Bug吗?怎么修改?
2.如果改为长日期格式就一直很正常,如2002-4-4
3.问题是在Win97环境下,Date函数的结果是短日期格式02-4-1,如何能得到长日期格式2002-4-1?如此简单!但我绝了路了!望高高高高高手指点

解决方案 »

  1.   

    1、strSQL="SELECT 表1.* FROM 表1 WHERE (表1.日期 >#4/1/02# )"
    2、da=format(date,"yyyy-m-d")
      

  2.   

    strSQL="SELECT 表1.* FROM 表1 WHERE (表1.日期 >CDate(#02-4-1#))"
      

  3.   

    我是楼主1.经测试,只有这个#4/1/02#可行,也许短日期格式以这样子为准吧,可是在VB中实现起来太麻烦了,因为这个日期要动态变化的。
    2.我还试验了不要#号的话,4/1/02和02-4-1都可以,但我记得,在支持长日期的系统,没有#号又不行,比如VB附带的VisData.exe的查询窗体就是没有#号的,在我的WinMe下运行查询包括时间条件的话,查询一定不会有结果,这是该程序的一个BUG,要加入判断太麻烦,又被我否定。
    3.我的解决方案是,把所有查询日期转换为长日期格式,这样程序改动最小,也最清晰明白:
        strDate=Year(Date) & "-" & Month(Date) & "-" & Day(Date)
        strSQL="SELECT 表1.* FROM 表1 WHERE (表1.日期 >#" & strDate & "#)"
    4.数据库程序经常有一些莫名其妙的问题出现,例如While ... Loop循环,不能在有打开关闭数据库操作中使用,根本运行不到第二步,只能用For...Next来代替。
    5.还是要感谢大家,多多交流。