Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2009, 19:04   #1
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию Поиск по дате-?

В базе данных MSAccess есть столбец дата. С помощью программы, содзанной в Delphi необходимо производить поиск по дате. Формат даты в MSAccess - Data/Time. С помощью фильтрации используемой для текстовых ячеек не получается
Код:
procedure TForm5.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) > 0 then begin
    form5.AdoTable1.Filtered := false;
    form5.iAdoTable1.Filter := '[Дата] LIKE *' + Form5.Edit1.Text + '*';
    form5.AdoTable1.Filtered := true;
  end
  else
    form5.AdoTable1.Filtered := false;
end;
Подскажите, какой метод нужно использовать чтобы поиск по дате производился корректно?
Evgenii вне форума Ответить с цитированием
Старый 06.11.2009, 19:35   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Код:
if Length(Edit1.Text) > 0 then begin
    AdoTable1.Filtered := false;
    AdoTable1.Filter := 'Дата=' + DateToStr(DateTimePicker1.DateTime);
    AdoTable1.Filtered := true;
  end
  else
    AdoTable1.Filtered := false;

Последний раз редактировалось dr.Chas; 06.11.2009 в 19:38.
dr.Chas вне форума Ответить с цитированием
Старый 06.11.2009, 19:44   #3
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

что такое DateTimePicker1? У меня он обозначается как необъявленный идентификатор
Где его нужно обозначить?

Последний раз редактировалось Evgenii; 06.11.2009 в 19:54.
Evgenii вне форума Ответить с цитированием
Старый 06.11.2009, 19:52   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

DateTimePicker - это компонент с вкладки Win32.
С его помощью очень удобно корректно вводить дату.
В отличие от вашего "рабоче-крестьянского" способа - через Edit
mihali4 вне форума Ответить с цитированием
Старый 06.11.2009, 19:55   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

см. на вкладке win32
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.11.2009, 19:57   #6
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

Т.е. чтобы использовать приведенный выше код, нужно заменить Edit на DateTimePicker, правильно я понимаю? Как его связать с базой?
Для ввода я вообщето использую DBEdit, а Edit служит для поиска, не более

Последний раз редактировалось Evgenii; 06.11.2009 в 20:08.
Evgenii вне форума Ответить с цитированием
Старый 06.11.2009, 20:10   #7
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Т.е. чтобы использовать приведенный выше код, нужно заменить Edit на DateTimePicker, правильно я понимаю? Как его связать с базой?
А вы edit связывали?

Вот вам исходник, там и с edit и с DateTimePicker.

Вот так будет правильнее, если вы откажитесь от edita:
Код:
AdoTable1.Filtered := false;
AdoTable1.Filter := 'Дата=' + DateToStr(DateTimePicker1.DateTime);
AdoTable1.Filtered := true;
Вложения
Тип файла: rar Projects.rar (324.9 Кб, 127 просмотров)

Последний раз редактировалось dr.Chas; 06.11.2009 в 20:14.
dr.Chas вне форума Ответить с цитированием
Старый 06.11.2009, 20:39   #8
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

Спасибо,
насчет ввода даты-я думал что через этот компонент данные можно вводить непосредственно в базу данных
Цитата:
DateTimePicker - это компонент с вкладки Win32.
С его помощью очень удобно корректно вводить дату.
В отличие от вашего "рабоче-крестьянского" способа - через Edit
А для поиска Edit вполне подходит

Код в исходнике не подходит для поиска по дате. Я же специально указал что данные этого столбца не widestring а data/time!! и задание фильтра для этих данных таким образом:
Код:
form5.AdoTable1.Filter := '[Дата] LIKE *' + Form5.Edit1.Text + '*';
невозможно! DataTimePicker в поисковых целях совершенно неудобен!!
Кто-нибудь, подскажите как сделать чтобы Edit искал данные типа Data/Time

Последний раз редактировалось Stilet; 09.11.2009 в 09:18.
Evgenii вне форума Ответить с цитированием
Старый 08.11.2009, 18:52   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А если так:
Код:
form5.AdoTable1.Filter := '[Дата] LIKE *' + DateToStr(Form5.DateTimePicker1.Date) + '*';
???
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.11.2009, 19:31   #10
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

Я вообще не использую DataTimePicker. Для поиска даты служит Edit. Если забыть что DataTimePicker существует, возможно ли с помощью Label производить поиск данных типа Data/Time???

Последний раз редактировалось Evgenii; 08.11.2009 в 20:04.
Evgenii вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по пустой дате yulia БД в Delphi 3 27.08.2009 16:53
Delphi Поиск по дате Именинника Махор Помощь студентам 8 01.12.2007 20:46
Поиск по дате создания файла kayman БД в Delphi 1 14.09.2007 14:54
Поиск по дате создания файла kayman Общие вопросы Delphi 1 14.09.2007 10:36
как организовать поиск по дате... Pitbull БД в Delphi 18 24.06.2007 22:28