新手问题,ACCESS日期查询(100分)

  • 主题发起人 主题发起人 大菠萝
  • 开始时间 开始时间

大菠萝

Unregistered / Unconfirmed
GUEST, unregistred user!
用ACCESS数据库的,为什么执行后没数据出来,请各位帮忙看看

year:=strtoint(spinedit1.text);
if combobox2.Text='全年' then
rrqq:=' where rq between '+datetimetostr(encodedate(year,1,1))+' and '+datetimetostr(encodedate(year,12,31))
else
begin
month:=strtoint(combobox2.text);
rrqq:=' where rq between '+datetimetostr(encodedate(year,month,1))+' and '+datetimetostr(encodedate(year,month,31));
end;
 
你的意思是如果选择了“全年”,按全年查询,否则安月查询
var
Rq1, Rq2: TDate;
Year, Month: Word;
begin
Year:=strtoint(spinedit1.text);
if combobox2.Text='全年' then
begin
Rq1 := EncodeDate(Year,1,1);
Rq2 := EncodeDate(Year,12,31);
end
else
begin
month:=strtoint(combobox2.text);
Rq1 := EncodeDate(Year,Month,1);
Rq2 := EncodeDate(Year,Month,31);
end;
rrqq := Format('where (rq >= :Rq1) And (Rq <= :Rq2)',[]);
//写SQL;
//参数赋值
...
end;
 
Access的日期使用#的 #2002-12-31#,

' where rq between #'+datetimetostr(encodedate(year,month,1))+'# and #'+datetimetostr(encodedate(year,month,31)) +'#';
 
同意tseug,Access日期的SQL用#,SQL SERVER 用'
 
if combobox2.Text='全年' then
rrqq:=' where year(rq) ='+spinedit1.text
else
rrqq:=' where month(rq)='+combobox2.text;
 
在我的记忆中,Access使用#日期#这种方式作日期查询的条件连接符。
 
where 日期=formatdatetime('YYYY-MM-DD',datetimepiker1.date)
 
后退
顶部