![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Пишу исследовательскую, не могу создать повторный поиск по дате на той же форме.
Вот текст:Код:
procedure TForm1.ADOTable1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
{if ADOTable1.Filtered then
begin
Accept:= (DataSet.FieldByName('Дата').AsDateTime >=
Form1.DateTimePicker1.Date) and
(DataSet.FieldByName('Дата').AsDateTime <= Form1.DateTimePicker2.Date);
end
else
Accept:=true;
end;Изобретение не мое - нашла на этом форуме, но ссылку дать не могу. Работает хорошо, но только один раз, а потом не обновляем данные. Я в этом полный нуб. Помогите, пожалуйста!!! Последний раз редактировалось Admin, 09.01.2012 в 17:16. |
|
#2
|
|||
|
|||
|
1. Непонятно, зачем проверять свойство Filtered у самой таблицы. Надо проверять какой-нить CheckBox, который пользователь включает, когда хочет отфильтровать таблицу.
2. А что там за фигурная скобка перед if затесалась??? 3. Ну кто учил нвзывать поя по русски??? Это может создать кучу проблем в дальнейшем... 4. Еще неплохо бы использовать функцию DateOf для всех значений... что бы не попасть на проблемы со временем. Например, если Date1 = '10-01-2011 10:00:00' и Date2 = '10-01-2011 08:00:00', то Date1 > Date2. Последний раз редактировалось lmikle, 09.01.2012 в 20:42. |
|
#3
|
|||
|
|||
|
А если так?
Код:
procedure TForm1.Button6Click(Sender: TObject);
Var Filter:String;
begin
Filter := 'Число>='''+DateToStr(DateTimePicker1.Date)
+''''+' and '+'Число<='''+DateToStr(DateTimePicker2.Date)+'''' ;
ADOTable1.Active:=False;
ADOTable1.Filter := Filter;
ADOTable1.Filtered := true;
ADOTable1.Active := true;
end; |