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

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

22.05.2012, 17:37. Показов 18752. Ответов 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,602
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
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru