Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
2 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 73
MS Access

Фильтрация БД

23.05.2017, 18:55. Показов 1267. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Имеется 3 радиокнопки. При выборе 1 отображаются все. при выборе 2 - те у кого ячейка "Дата выписки" заполненна датой и временем, при выборе 3 - те у кого ячейка пуста. Как это реализовать? Помогите
Миниатюры
Фильтрация  БД  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2017, 18:55
Ответы с готовыми решениями:

Фильтрация
DataModule8.ADOQuery1.Filtered:=false; if Edit2.Text<>'' then DataModule8.ADOQuery1.Filter:=' like '+QuotedStr('%'+Edit2.text+'%'); ...

Фильтрация
Здравствуйте. Помогите разобраться. Есть форма, на ней компонент DBGrid, связанный с таблицей, одно из полей которой "Город"....

Фильтрация БД
Здравствуйте. Сразу скажу этот проект - задание в колледже. У меня есть 3 таблицы. На формах компоненты Table, dbgrid, DataSource. Мне...

18
5964 / 4540 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
23.05.2017, 19:27
решайте с помощью фильтра
0
2 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 73
23.05.2017, 22:05  [ТС]
а по конкретнее? я просто не профи в этом

Добавлено через 1 минуту
Я как бы понял смысл, как это сделать. но знать бы код
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
24.05.2017, 11:08
Как-то так:
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm16.RadioGroup1Click(Sender: TObject);
begin
 ADOTable1.Filtered := False;
 ADOTable1.Filter := '';
 case RadioGroup1.ItemIndex
 of 1: ADOTable1.Filter := '[Дата выписки] is not null';
    2: ADOTable1.Filter := '[Дата выписки] is null';
 end;
 ADOTable1.Filtered := True;
end;
0
2 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 73
24.05.2017, 17:23  [ТС]
Ошибка "Аргументы имеют неверный тип"
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
24.05.2017, 17:33
[Дата выписки] адаптировали под название вашего поля или скопипастили и все?
0
2 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 73
24.05.2017, 17:40  [ТС]
адаптировал
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
24.05.2017, 22:10
Лучший ответ Сообщение было отмечено Igorman_98 как решение

Решение

Забавно, но оказывается из Дельфи так сравнивать даты на пустоту нельзя, а надо так:
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm16.RadioGroup1Click(Sender: TObject);
begin
 ADOTable1.Filtered := False;
 ADOTable1.Filter := '';
 case RadioGroup1.ItemIndex
 of 1: ADOTable1.Filter := '[Дата выписки] <> null';
    2: ADOTable1.Filter := '[Дата выписки] = null';
 end;
 ADOTable1.Filtered := True;
end;
1
2 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 73
25.05.2017, 00:02  [ТС]
Цитата Сообщение от Пытливый Посмотреть сообщение
Забавно
Фильтр работает. А не подскажите как бы сделать так , чтоб при выборе того человека у которого поле "Дата выписки " заполнено кнопка Редактировать отключалась (Endabled)? А если пустое то опять становилось активной. Как при открытии формы так и при отсеивании с помощью Radiogrouр.
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
25.05.2017, 00:12
в обработчике OnDataChange соответствующего DataSource
Delphi
1
2
3
4
5
procedure TForm1.DataSourceХХХDataChange(Sender: TObject; Field: TField);
begin
  if SameText(Field.FieldName, 'Дата выписки') then
    EditButton.Enable := not Field.isNull;
end;
0
2 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 73
25.05.2017, 00:31  [ТС]
YuryK, access violation
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
25.05.2017, 00:35
Цитата Сообщение от Igorman_98 Посмотреть сообщение
access violation
код бы показали. Небось там всякие FormXXX понавставляли и не заботитесь о том, что та форма к моменту вызова обработчика может быть ещё не создана
0
2 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 73
25.05.2017, 00:41  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
код бы показали. Небось там всякие FormXXX понавставляли и не заботитесь о том, что та форма к моменту вызова обработчика может быть ещё не создана
Ды нет, все формы есть. И то что скидывал пользователь выше- работает. Форм10 это картинка то что скидывал в начале поста. Вот код
Delphi
1
2
3
4
5
6
procedure TDataModule4.DataSource4DataChange(Sender: TObject;
  Field: TField);
begin
if SameText(Field.FieldName, 'Дата_выписки') then
    form10.bitbtn1.Enabled := not Field.isNull;
end;
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
25.05.2017, 00:45
они то есть, но когда создан DataModule4, form10 ещё не создана, поэтому если в коде используется ссылка на formXXX следует писать безопасный код:

Delphi
1
2
if (form10 <> nil) and  SameText(Field.FieldName, 'Дата_выписки') then
    form10.bitbtn1.Enabled := not Field.isNull;
0
2 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 73
25.05.2017, 16:21  [ТС]
YuryK, Все та же ошибка(
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
25.05.2017, 16:38
Igorman_98, код то покажите, может он тоже все тот же

Добавлено через 11 минут
или при закрытии программы?
0
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 3
28.05.2017, 17:40
YuryK, здоавствуйте не поможете с делфи?
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
28.05.2017, 23:50
Цитата Сообщение от Денис19931011 Посмотреть сообщение
здоавствуйте не поможете с делфи?
это как? От вас ещё ни строчки кода здесь не было опубликовано

Добавлено через 15 секунд
Цитата Сообщение от Денис19931011 Посмотреть сообщение
здоавствуйте не поможете с делфи?
это как? От вас ещё ни строчки кода здесь не было опубликовано
0
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 3
30.05.2017, 20:46
YuryK, не знаю ка добавить код правильно постоянно ошибка, возможно вы в скайпе есть?если есть напишите пожалуйста в скапе tdg21@mail.ru , Denis Timofeev.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2017, 20:46
Помогаю со студенческими работами здесь

Фильтрация в БД
Подскажите как можно сделать фильтрацию по 2 полям (Firma, Zavod) в БД (ADOQuery, DataSourse). Есть Edit, при вводе в который необходимо...

Фильтрация
Помогите с кодом для фильтрации базы. 1. Справа на фото идут Комбобоксы и эдиты, нужно сделать фильтрацию. Выбираем нужное, Нажимаем...

Фильтрация БД
Всем, Привет! Нуждаюсь в помощи! В общем, нужно сделать фильтрацию по таблице! Компоненты, button1,edit1,radiobutton1,radiobutton2, ...

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

Фильтрация БД
Подскажите, пожалуйста, как отфильтровать данные в таблице dbf по значению поля &quot;COUNT&quot;. Для реализации нужно использовать...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru