![]() |
Привет, народ!
Помогите, пожалуйста с компонентом MaskEdit и базой Access. Одно из полей базы 'DateTime' (полный формат времени). Нужно отфильтровать записи по времени. Поле ввода я делаю MaskEdit'ом с маской ввода "!90:00:00;0;0". После того как пользователь ввел время (дата у меня уже имеется в формате TDate), фильтрацию осуществляю так: procedure TMainForm.BitBtn1Click(Sender: TObject); Var FilterTime: TDateTime; Field,Znak,SFilterTime: String; begin Field:='Time'; Znak:='='; DateOpen:=Date; FilterTime:=DateOpen+StrToTime(FromMaskEdit.EditText); SFilterTime:=DateTimeToStr(FilterTime); ADOTable1.Filter:='('+Field+Znak+SFilterTime+')'; Label17.Caption:=SFilterTime; ADOTable1.Filtered:=true; end; Ошибки не выдает, за исключением того, если ввели не все цифры, но при правильном вводе проблема в том, что никакой фильтрации просто нет. Буду очень благодарен за помощь. |
Ввели не все цифры и корректный ввод? Хм... ну да ладно. А пробывать перед применением фильтра анализировать введенные данные и дополнять значениями по умолчанию (пусть это будут нолики)? Скажем в некоторой позиции ввода не было - нолики туда.
|
При том коде, который я написал, даже при корректном вводе времени с последующем добавлении к нему даты не получается отфильтровать базу, она морозится, хотя при выводе полной фильтрующей даты в Label она в точности совпадет с той, что в таблице.
|
Попробуйте:
а) Znak:= ' = '; б) "Закавычить" SFilterTime функцией QuotedStr, быть может это необходимо. |
Время: 14:46. |
Время: 14:46.
© OSzone.net 2001-