紧急求助!ACCESS+ADO中的日期查询的问题?(100分)

  • 主题发起人 主题发起人 Najasna
  • 开始时间 开始时间
N

Najasna

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个ADOQuery查询问题:SQL内容如下:
update 资料表 set 注销与否=True, 注销原因='过期'
where (资料表.发证时间)<:ss2
ADOQuery.Parameters[0].Value:=formatdatetime('mm/dd/yyyy',date2);
date2的数据我已得到,在执行查询时总出错提示:对象或提供者不能执行所需的操作!
不知何故,敬请高手相助。


 
在该句where (资料表.发证时间)<:ss2的日期时间前加个#号试试看
 
如果date2为TDateTime型,可以这样
ADOQuery.Parameters[0].Value:=date2;
 
试一下使用access中的datevalue函数
即'where (资料表.发证时间)<datevalue('+:ss2+')'
 
82625741的方法,我试过了,但程序提示我
“[Microsoft][ODBC Microsoft Access Drivers]标准表达式中数据类型不匹配。”
不知何故。
 
Accsee的日期查询方式和SQLServer两样的
必须是 日期<= #1999-9-9#
或者实在不行 日期<= %f ,[ DatTime1.Date
 
用#2002-2-1# 沒錯的
 
xhyph能否将最后的“日期<= %f,[DatTime1.Date”说得详细一点,
本人对此不太熟悉。
 
update 资料表 set 注销与否=True, 注销原因='过期'
where (资料表.发证时间)<:ss2

ss2:='#'+date2+'#';
 
我的date2为DateTime类型,按照ctx62的方法试了,
运行后,程序仍然提示我"对象或提供者不能执行所需的操作!"
 
need '#'..'#'
 
阳光游子,能否按照我给妯的例子,给一个详细的方法。
谢谢!
 
這樣看看:
var str:string;
adoquery1.close;
str:='#'+formatdatetime('yyyy/mm/dd',date2)+'#';
adoquery1.sql.text:='update 资料表 set 注销与否=True, 注销原因=''过期'''+
' where (资料表.发证时间)<'+str;
adoquery1.open;
 
上面的各位已经都说到了,日期是要用“# #”引起来才行的。你试一下吧,应该能
解决你的问题的。
 
多人接受答案了。
 
后退
顶部