Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2015.05.03;
Скачать: [xml.tar.bz2];

Вниз

Поиск по дате в БД Access   Найти похожие ветки 

 
Lutdan ©   (2011-04-28 00:28) [0]

Возникла проблема: Мне нужно, чтоб при изменении даты фильтровались данные в DBGrid. Реализовал так:

procedure TForm1.sDateEdit1Change(Sender: TObject);
begin
if not (DateToStr(sDateEdit1.Date) = "") then
begin
DataModule4.ADDArhuv1.Filter := "Paz_Data_Vudachi =""" + datetostr(form1.sDateEdit1.date)+"""";
DataModule4.ADDArhuv1.Filtered := True;

Всё работает, когда я выбираю дату, а вот когда прописываю её (например, не до конца ввёл день 2_.__.____) фильтруется только первая строка в ADOTable, но при вводе полной даты (23.04.2011) всё фильтрует правильно.
Так вот вопрос: Как можно сделать так, что бы фильтровались данные только после полного ввода даты.Пробовал MaskEdit, но там такая же проблема, если не до конца вводить дату.

Ещё вопроc посложнее: Мне нужно как - то отфильтровать данные скажем с Января по Апрель. В Таблице Access дата записана в виде: 03.04.2011. Как вытянуть 04 месяц? Как сделать фильтр скажем 01 по 04 месяц и отобразить данные?

Добавлено 25.04.11, 02:38
Можно конечно сделать через Button и там написать проверку на правильный ввод даты (но как это сделать*?), но хотелось бы именно фильтровать по мере ввода пользователем даты.


 
Германн ©   (2011-04-28 04:18) [1]


> В Таблице Access дата записана в виде: 03.04.2011.

Тебе уже давно АП на "исходниках" сказал, что в БД дата записана в виде действительного числа, а не строки. До сих пор не понятно?
И забудь про свойства Filter и Filtered равно как и о компонентах T(xxx)Table.


 
Sergey13 ©   (2011-04-28 10:58) [2]

> [0] Lutdan ©   (28.04.11 00:28)

Используй для даты специализированные контролы, типа DateEdit - там сложнее ввести не то. Или сам контролируй после ввода.
Но сначала конечно см

> [1] Германн ©   (28.04.11 04:18)

это первично.


 
OW ©   (2011-04-28 12:46) [3]


> Как можно сделать так, что бы фильтровались данные только
> после полного ввода даты

не включать фильтрование при неполном вводе
для этого проверять, например, длину введенного значения
procedure TForm1.sDateEdit1Change(Sender: TObject);
begin
if not (DateToStr(sDateEdit1.Date) = "") then
begin
if (form1.sDateEdit1.СООТВСВОЙСТВО заполнено полностью)
then begin
DataModule4.ADDArhuv1.Filter := "Paz_Data_Vudachi =""" + datetostr(form1.sDateEdit1.date)+"""";
..
end;

Но сначала конечно см
Sergey13 ©   (28.04.11 10:58) [2]


 
Anatoly Podgoretsky ©   (2011-04-28 14:20) [4]

> OW  (28.04.2011 12:46:03)  [3]

Но ведь это нормально, неполный ввод даты, соответствует справки
Ввод не полный, а дата полная


 
OW ©   (2011-04-28 15:23) [5]


> Anatoly Podgoretsky ©   (28.04.11 14:20) [4]

согласен.
Коль дата суть число, то как только что-то введено, интерпретация уже пошла, какая-то дата уже есть.

Однако, тут ситуация сродни той, что как если бы мы заставляли вводить пользователя "православные" десятичные числа побитно. т.е. ты уж, юзер, изволь точно писать, как в компьютере они хранятся,"0101..", а не "5", или 9.

т.е. дискретность ввода некая должна быть.
Таковую обеспечивает присвоение, например, edtAny.dat := 44404;
или программист.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2015.05.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
15-1410640202
Юрий
2014-09-14 00:30
2015.05.03
С днем рождения ! 14 сентября 2014 воскресенье


15-1410600205
turbouser
2014-09-13 13:23
2015.05.03
С праздником, программисты!


15-1410689079
Вячеслав
2014-09-14 14:04
2015.05.03
Инструментарий для распределенной работы над проектом


15-1411245003
Юрий
2014-09-21 00:30
2015.05.03
С днем рождения ! 21 сентября 2014 воскресенье


3-1303936117
Lutdan
2011-04-28 00:28
2015.05.03
Поиск по дате в БД Access





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский