Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/96: Рейтинг темы: голосов - 96, средняя оценка - 4.82
 Аватар для greendoom
6 / 6 / 2
Регистрация: 13.03.2011
Сообщений: 64

Фильтрация по дате и иному полю

22.05.2012, 17:37. Показов 18619. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть база данных в Access, есть Dbgrid, Datasource, Adotable. База соединена с оболочкой. В базе есть поле Дата_рождения, и поле №_сада. Хочу сделать фильтрацию по этим полям. Кинул на форму 1 ComboBox, и 2 datetimepicker. В ComboBox выбираем сад, в между datetimepicker ами выставляет период для фильтрации, от и до.
Вот код кнопки:
Delphi
1
2
3
Form1.DataSource2.DataSet.Filtered :=False;
Form1.DataSource2.DataSet.Filter:='[№_сада]='+ (ComboBox8.Text) +  '[Дата_рождения]>=' + DateToStr(DateTimePicker1.Date) + ' AND [Дата_рождения]<=' + DateToStr(DateTimePicker2.Date) ;
Form1.DataSource2.DataSet.Filtered :=true;
Помогите исправить.
Имеем вот такую ошибку:
Миниатюры
Фильтрация по дате и иному полю  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2012, 17:37
Ответы с готовыми решениями:

Фильтрация по полю
Есть справочник &quot;Контрагенты&quot;, где есть поля: &quot;Фамилия&quot; &quot;Профессия&quot; &quot;Вид работ&quot;. И есть документ &quot;Договор&quot;. Вопрос: как в...

Фильтрация по вычисляемомму полю
Добрый день! Подскажите каким образом можно произвести фильтрацию по вычисляемому полю? Есть таблица в которой следующая дата...

Фильтрация по связанному полю
Есть две таблицы, одна главная в ней (Id, name) и подчиненная (id, names, opis, mark_id(поле связывания с главной)), как в Delphi...

13
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
22.05.2012, 17:54
Не работает поиск в БД здесь посмотри
0
 Аватар для greendoom
6 / 6 / 2
Регистрация: 13.03.2011
Сообщений: 64
22.05.2012, 18:43  [ТС]
Цитата Сообщение от Bit_Man Посмотреть сообщение
Не работает поиск в БД здесь посмотри
здесь ничего нету, только поиск))))
1
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
23.05.2012, 02:04
Цитата Сообщение от greendoom Посмотреть сообщение
Есть база данных в Access, есть Dbgrid, Datasource, Adotable. База соединена с оболочкой. В базе есть поле Дата_рождения, и поле №_сада. Хочу сделать фильтрацию по этим полям. Кинул на форму 1 ComboBox, и 2 datetimepicker. В ComboBox выбираем сад, в между datetimepicker ами выставляет период для фильтрации, от и до.
Вот код кнопки:
Delphi
1
2
3
Form1.DataSource2.DataSet.Filtered :=False;
Form1.DataSource2.DataSet.Filter:='[№_сада]='+ (ComboBox8.Text) +  '[Дата_рождения]>=' + DateToStr(DateTimePicker1.Date) + ' AND [Дата_рождения]<=' + DateToStr(DateTimePicker2.Date) ;
Form1.DataSource2.DataSet.Filtered :=true;
Помогите исправить.
Имеем вот такую ошибку:
1. Поля Дата должен бить Дата/время
2. кидаешь на форму С: DateTimePicker1 и До: DateTimePicker2
3. Кнопка Button или SpeedButton или BitBtn какой тебя нравится и пишешь

Delphi
1
2
3
ADOTable1.Filtered:=false;
ADOTable1.Filter:='[Дата]>='+QuotedStr(DateToStr(DateTimePicker1.DateTime))+'and [Дата]<='+QuotedStr(DateToStr(DateTimePicker2.DateTime))+'';
ADOTable1.Filtered:=true;
5
 Аватар для greendoom
6 / 6 / 2
Регистрация: 13.03.2011
Сообщений: 64
23.05.2012, 09:44  [ТС]
Цитата Сообщение от xxbesoxx Посмотреть сообщение
1. Поля Дата должен бить Дата/время
2. кидаешь на форму С: DateTimePicker1 и До: DateTimePicker2
3. Кнопка Button или SpeedButton или BitBtn какой тебя нравится и пишешь

Delphi
1
2
3
ADOTable1.Filtered:=false;
ADOTable1.Filter:='[Дата]>='+QuotedStr(DateToStr(DateTimePicker1.DateTime))+'and [Дата]<='+QuotedStr(DateToStr(DateTimePicker2.DateTime))+'';
ADOTable1.Filtered:=true;
Согласен, а как сюда добавить чтобы фильтрация еще и по полю №_сада шла, плюс к фильтрации к этим датам.
3
 Аватар для ikage
5 / 5 / 0
Регистрация: 26.06.2012
Сообщений: 78
15.01.2013, 21:22
всем доброе время суток.пытаюсь сделать поиск по диапазону дат.база ацесса;связка ADOConnection,DataSource,ADOQuery.измене ния в базу добавляются,но при поиске по датам выдаёт такую ошибку "ADOQuery : parameter 'dat2' not found".параметры в ADOQuery для "dat1" и "dat2" одинаковые.в ацессе столбец "дата"-дата/время.вот сам код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
dat1:TdateTime;
dat2:TdateTime;
begin
DataModule2.ADOQuery1.Active:=false;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('SELECT*');
DataModule2.ADOQuery1.SQL.Add('FROM îáìåí');
DataModule2.ADOQuery1.SQL.Add('Where äàòà between :dat1 and: dat2');
dat1:=DateTimePicker1.Date;
dat2:=DateTimePicker2.Date;
DataModule2.ADOQuery1.Parameters.ParamByName ('dat1').Value:= dat1;
DataModule2.ADOQuery1.Parameters.ParamByName ('dat2').Value:= dat2;
DataModule2.ADOQuery1.Active:=true;
помогите разобраться в чем я туплю
1
 Аватар для ikage
5 / 5 / 0
Регистрация: 26.06.2012
Сообщений: 78
17.01.2013, 13:02
видать на этом форуме все слишком умные чтоб отвечать на такие простые вопросы,поэтому отвечу сам (мож кому пригодиться).за место
Delphi
1
2
3
var
dat1:TdateTime;
dat2:TdateTime;
нужно
Delphi
1
2
3
var
dat1:String;
dat2:String;
а также перевести dat1 и dat2 из string в dat чтоб 10 и 11 строки не ругались
1
2 / 2 / 0
Регистрация: 18.01.2013
Сообщений: 14
23.01.2013, 14:11
greendoom, я для фильтра использовал оператор Like
1
1 / 1 / 0
Регистрация: 10.10.2012
Сообщений: 10
23.01.2013, 14:42
не проще ли делать запрос по типу такого?
SQL
1
SELECT * FROM Название_таблицы_в_БД ORDER BY имя_поля_для_сортировки
Добавлено через 5 минут
попробуй запрос наподобие
SQL
1
SELECT * FROM имя_таблицы WRERE DATE BETWEEN datevalue('+#39+datetostr(date_from.Date)+#39+') AND datevalue('+#39+datetostr(date_to.Date)+#39+'))
(просьба предыдущее сообщение проигнорировать )
1
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
25.01.2013, 06:09
А вы пробел перед and ставить не пробовали?
Delphi
1
ADOTable1.Filter:='[Дата]>='+QuotedStr(DateToStr(DateTimePicker1.DateTime))+' and [Дата]<='+QuotedStr(DateToStr(DateTimePicker2.DateTime))+'';
А то вот почему то мне кажется что ваш фильтр выглядит как "[Дата]>=дата1and [Дата]<=дата2"
Данное решение в принципе ошибочно ибо.
1. Переносим программу на комп с другими региональными настройками и ловим ошибки.
2. Меняем региональные настройки на сервере и опять ошибки.
Тоже касается преложенного ikage

Логичнее использовать запрос с параметрами.
1. Объем передаваемыхданных уменьшается
2. С меньшим объемом данных удобнее работать пользователю.
3. Нахрена вам вся таблица при открытии программы?
4. Раз уж так не хочется показывать пустой грид сделайте при запуске отображение данных за неделю/2/месяц, а дольше пусть пользовательрешает что он хочет видеть.
SQL
1
SELECT * FROM имя_таблицы WRERE [Дата] BETWEEN :date1 AND :date2
Далее
Delphi
1
Parameters.ParamByName('date1').Value := DateTimePicker1.Date
Как все вместе скрестить разберетесь?
3
 Аватар для Andrys74
217 / 81 / 6
Регистрация: 23.04.2012
Сообщений: 340
25.01.2013, 08:30
rdama, позвольте капельку Вас подправить: вместо WRERE надо писать WHERE, а то "чайники" потом вопросами об ошибках замучают
2
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 17
28.05.2013, 08:55
Фильтр между двумя датами
Здравствуйте, у меня похожая ситуация, тоже нужно сделать фильтр между датами, но если делать через запрос, то придётся всё переделывать. Прошу помощи.

Сама программа. https://disk.yandex.ru/public/... YINVXMQ%3D

В программе есть уже готовый фильтр, но я ни знаю сможет ли он высчитывать промежутки дат. Если можно прямо там в коде напишите пример, чтобы фильтр полностью работал.
Учится_с и Учится_по
1
 Аватар для Andrys74
217 / 81 / 6
Регистрация: 23.04.2012
Сообщений: 340
28.05.2013, 09:14
Если не ошибаюсь, то как-то так:
Delphi
1
2
3
Form1.DataSource2.DataSet.Filtered :=False;
Form1.DataSource2.DataSet.Filter:=(первое условие) and (второе условие) ;
Form1.DataSource2.DataSet.Filtered :=true;
1
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 17
28.05.2013, 09:17
Перейдите в мою тему, и ответте там, там иначе условие

"Сопоставление двух дат, в определённом промежутке времени"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.05.2013, 09:17
Помогаю со студенческими работами здесь

Фильтрация по полю формы
Посмотрите, почему ругается Sub fpoisk() ' на это Dim s1, s2 Me.Refresh s1 = &quot;true &quot; s2 = &quot;&quot; &amp; Me.wÔÀÌ106 ...

Фильтрация по подстановочному полю
Доброго времени суток, использую фильтрацию и она отлично работает с обычными полями, но с подстановочными никак procedure...

Фильтрация по числовому полю
При нажатии на сроку в DBGrid происходит фильтрация в другой таблице по соответсвующему полю. При нажатии на строковое поле фильтрация...

Фильтрация по логическому полю по Checkbox
Здравствуйте! Необходимо сделать фильтрацию по логическому полю, выводит ошибку syntax error, unexpected T_IS_EQUAL, expecting ',' or ')' ...

Фильтрация в DBgrid по полю TDBEdit
Здраствуйте. Столкнулся с такой проблемой: (я использую СУБД &quot;FireBird&quot; 2/0) Есть таблица &quot;Исследования&quot; все данные из нее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru