![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Необходимо реализовать поиск в интервале дат.
Есть 2 компонента DateTimePicker1 и DateTimePicker2, так же есть DBGrid. Нужно чтобы всё это запускалось через обычную кнопку, и желательно что бы это было сделано на filtered ![]() Заранее спасибо. PS: бд ACCESS |
|
#2
|
|||
|
|||
|
Ну так и делай. Только там не на DBGrid, а на самом источнике данных делается.
Код:
procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
If FMyFiltered
Then
Accept := (DataSet.FieldByName('Date1').AsDateTime > DateTimePicker1.Date) And
(DataSet.FieldByName('Date1').AsDateTime < DateTimePicker2.Date)
Else Accept := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FMyFiltered := True;
end;ЗЫ. Предпочитаю пользоваться этим событием - больше возможностей. |
|
#3
|
|||
|
|||
|
Кхм...прошу прощения, но я нуб полный =\ выпускной курс, но увы, в колледже ничему не учили.
Цитата:
|
|
#4
|
||||
|
||||
|
Grid - это только средство отображения данных, потому запросы/фильтры надо использовать на источнике данных для отображения.
|
|
#5
|
|||
|
|||
|
Если чесно всё равно не понимаю как ЭТО работает
свой предыдущий фильтр писал так :Код:
procedure TFindeUnit.btn1Click(Sender: TObject); begin DataModule1.ADOTable1.Filtered:=false; if Edit1.Text='' then exit; DataModule1.ADOTable1.Filter:=Combobox1.Text + ' LIKE ' + #39 + Edit1.Text + '%' + #39; DataModule1.ADOTable1.Filtered:=true; end; ....Приношу извинения за нубство, но на самом деле вот только сейчас всё это осваиваю. |
|
#6
|
||||
|
||||
|
Вот так для даты можно попробовать:
Код:
procedure TFindeUnit.btn1Click(Sender: TObject);
begin
DataModule1.ADOTable1.Filtered:=false;
if Edit1.Text='' then exit;
DataModule1.ADOTable1.Filter:=Format('Date1 between DateValue(%s) and DateValue(%s)',[DateToStr(DateTimePicker1.Date),DateToStr(DateTimePicker2.Date)]);
DataModule1.ADOTable1.Filtered:=true;
end; |