我在窗体中放了两个DateTimePicker控键DateTimePicker1和DateTimePicker2
让这两个控键点选的日期分别作为起始日期,和截止日期。点击button1控键后在DBGrid1显示在该时间段内入库的产品:
在button1的onclick事件中键入下面代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Filtered:=Not ADOQuery1.Filtered;
end;
然后再在ADOQuery1的onfilterRecord事件中输入如下代码
if (ADOQuery1.FieldByName('入库日期').AsDatetime >= datetimetostr(DateTimePicker1.datetime)) and
(ADOQuery1.FieldByName('入库日期').AsDatetime <= datetimetostr(DateTimePicker2.datetime)) then
accept:=true
else
accept:=false;end;可是运行还是有错,哪位高手测试成功后指点一下我好吗?感激不尽!!!
让这两个控键点选的日期分别作为起始日期,和截止日期。点击button1控键后在DBGrid1显示在该时间段内入库的产品:
在button1的onclick事件中键入下面代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Filtered:=Not ADOQuery1.Filtered;
end;
然后再在ADOQuery1的onfilterRecord事件中输入如下代码
if (ADOQuery1.FieldByName('入库日期').AsDatetime >= datetimetostr(DateTimePicker1.datetime)) and
(ADOQuery1.FieldByName('入库日期').AsDatetime <= datetimetostr(DateTimePicker2.datetime)) then
accept:=true
else
accept:=false;end;可是运行还是有错,哪位高手测试成功后指点一下我好吗?感激不尽!!!
accept:=true
else
accept:=false;end;
//日期不要转换成字符再比较
if (ADOQuery1.FieldByName('入库日期').AsDatetime >= DateTimePicker1.datetime) and
(ADOQuery1.FieldByName('入库日期').AsDatetime <= DateTimePicker2.datetime) then
accept:=true
else
accept:=false;
(ADOQuery1.FieldByName('入库日期').AsDatetime <= DateTimePicker2.datetime) then
accept:=true
else
accept:=false;end;
可能是我的if语句里面有点问题
因为我在ADOQuery1的onfilterRecord事件中要实现的是两个查询
一个是两个数值范围内的数据查询,而另一个就是我现在要问的两个时间段内的数据查询
所以我的代码是:
procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
if (ADOQuery1.FieldByName('入库数量').AsInteger >= strtoint(edit1.Text)) and
(ADOQuery1.FieldByName('入库数量').AsInteger <= strtoint(edit2.Text)) then
accept:=true
else
accept:=false;//上面这些代码实现的是两个数据范围内的数据查询
if (ADOQuery1.FieldByName('入库日期').AsDatetime >=DateTimePicker1.DateTime) and
(ADOQuery1.FieldByName('入库日期').AsDatetime <= DateTimePicker2.datetime) then
accept:=true
else
accept:=false; end;
大家看看这样写是否有错?错哪里了?