在我的程序中有一个录入窗口和一个查询窗口,数据库采用的是access数据库,其中有个字段“发表时间”在access中定义为日期/时间类型字段,在录入窗口中我用了一个Dtpicker控件,
并使用myrs.Fields("发表时间") = DTPicker1.Value语句修改数据库,并且成功,access数据库中显示的数据如2004-11-23
但是我在查询窗口用以下语句时出现错误,请问什么原因???(其实查询语句中还有很多查询项目,只要添加上对发表时间的查询就出错,不加就可以查询出正确的结果)
1\如果语句为
adoRS.Open "SELECT * FROM gjgl WHERE 发表时间<=  DTPicker1.Value ", my_db, adOpenStatic, adLockReadOnly
则提示:“至少一个参数没有被指定”
2\如果语句为
adoRS.Open "SELECT * FROM gjgl WHERE 发表时间<=  '%" & DTPicker2.Value & "%'", my_db, adOpenStatic, adLockReadOnly

adoRS.Open "SELECT * FROM gjgl WHERE 发表时间<=  '" & DTPicker2.Value & "'", my_db, adOpenStatic, adLockReadOnly
都提示:“标准表达式中类型不匹配”
__________________________________
(总算说完了)   正确的查询语句是什么呢???

解决方案 »

  1.   

    adoRS.Open "SELECT * FROM gjgl WHERE 发表时间<= # " & DTPicker1.Value & " # ", my_db, 
    adOpenStatic, adLockReadOnly'数据库为ACCESS的日期变量查询:select * from tablename where 日期字段>=# " & 日期变量 &" #
    '数据库为SQL的日期变量查询:select * from tablename where 日期字段>='"& 日期变量 &"'
      

  2.   

    楼上的正确。
    你将ACCESS中的sql与sql中的sql语法搞混了
      

  3.   

    SQL中直接加''就可以了
    ACCESS可以用##限定或cdate() 函数来限定
      

  4.   

    ACCESS语法中有些地方和SQL是有区别的
    像日期的判断比较,
    DELETE语句的使用等