1 / 1 / 2
Регистрация: 09.03.2012
Сообщений: 63
1

Фильтрация двух и больше полей в таблице

07.05.2013, 12:00. Показов 884. Ответов 6
Метки нет (Все метки)

Здравстуйте. Нужно осуществить поиск сразу по 2м логическим полям в таблице.
Пробовал использовать следующий код:
C++
1
2
3
4
5
6
7
8
void __fastcall TForm5::Button1Click(TObject *Sender)
{
ADOTable1->Filtered = false;
ADOTable1->Filter = "Oсложнения = '" +
ComboBox2->Text + "' AND  Перитонит_при_поступленни = '" +
ComboBox3->Text + "'";
ADOTable1->Filtered = true;
}
Но если в одном ComboBox выбираю true, а в другом - false, то мне не находит ни одну запись.
Если можно подскажите как это осуществить через CheckBox, a не ComboBox.
Спасибо!.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2013, 12:00
Ответы с готовыми решениями:

Фильтрация поля со списком в зависимости от двух других полей со списком
Добрый день, коллеги Появилась потребность сделать форму на Аксесе. Прошерстил весь форум в...

Процедура для создание полей в таблице (кол-во полей > 50)
Собственно вопрос в теме. Для особо "одаренных": Помогите написать процедуру для создания полей в...

Обновить поле в одной таблице по совокупному значению других полей в другой таблице
Добрый день! Хотелось бы совета по следующей проблеме: Требуется обновить поле в одной...

Подсветка строк содержащих одинаковые значения полей или подсветка полей с одинаковым значением в таблице
Подскажите, возможна ли реализация в форме такой функции: При наведении курсора на поле...

6
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
07.05.2013, 21:26 2
Sera_tovt, какой тип у полей "Oсложнения" и "Перитонит_при_поступленни" - логический?
0
1 / 1 / 2
Регистрация: 09.03.2012
Сообщений: 63
07.05.2013, 22:38  [ТС] 3
Цитата Сообщение от The_Immortal Посмотреть сообщение
Sera_tovt, какой тип у полей "Oсложнения" и "Перитонит_при_поступленни" - логический?
да.
0
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
08.05.2013, 02:36 4
Sera_tovt, база Access? Комбобоксы имеют значения "true"/"false" (без кавычек)? Если на все ответы "да", то значит записей по такому отбору просто нет, т.к. даже с одинарными кавычками, насколько я помню, фильтрация по "true"/"false" должна работать (применительно к Filter).

Попробуйте:
C++
1
2
3
4
    ADOTable1->Filtered = false;
    ADOTable1->Filter =
        "Oсложнения = 'true' AND Перитонит_при_поступленни = 'false'";
    ADOTable1->Filtered = true;
Но на всякий случай попробуйте убрать одинарные кавычки.
0
1 / 1 / 2
Регистрация: 09.03.2012
Сообщений: 63
08.05.2013, 16:09  [ТС] 5
Цитата Сообщение от The_Immortal Посмотреть сообщение
Sera_tovt, база Access? Комбобоксы имеют значения "true"/"false" (без кавычек)? Если на все ответы "да", то значит записей по такому отбору просто нет, т.к. даже с одинарными кавычками, насколько я помню, фильтрация по "true"/"false" должна работать (применительно к Filter).

Попробуйте:
C++
1
2
3
4
    ADOTable1->Filtered = false;
    ADOTable1->Filter =
        "Oсложнения = 'true' AND Перитонит_при_поступленни = 'false'";
    ADOTable1->Filtered = true;
Но на всякий случай попробуйте убрать одинарные кавычки.
С ComboBox решил проблему так
C++
1
2
3
4
5
6
ADOTable1->Filtered = false;
ADOTable1->Filter = "Oсложнения = " +
    ComboBox2->Text +
    " AND  Перитонит_при_поступленни = " +
    ComboBox3->Text;
ADOTable1->Filtered = true;
но с CheckBox не получается

Добавлено через 22 минуты
Проблема решена
0
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
08.05.2013, 16:09 6
Sera_tovt,
Цитата Сообщение от Sera_tovt Посмотреть сообщение
но с CheckBox не получается
Можно, конечно, обраьатывать событие у CheckBox, но я решил ерунды какой-то накидать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
String CheckIt( TCheckBoxState State )
{
    if ( State == ( TCheckBoxState )cbChecked )
    {
        return "true";
    }
 
    else
    {
        return "false";
    }
}
...
    ADOTable1->Filtered = false;
    ADOTable1->Filter =
        "Oсложнения = " + CheckIt( CheckBox1->State ) +
        " AND Перитонит_при_поступленни = " + CheckIt( CheckBox2->State );
    ADOTable1->Filtered = true;
Проверяйте
0
1 / 1 / 2
Регистрация: 09.03.2012
Сообщений: 63
08.05.2013, 16:27  [ТС] 7
Цитата Сообщение от The_Immortal Посмотреть сообщение
Можно, конечно, обраьатывать событие у CheckBox, но я решил ерунды какой-то накидать:
Проверяйте
Я уже так решил проблему)
C++
1
2
3
4
5
6
ADOTable1->Filtered = false;
ADOTable1->Filter = String( "Oсложнения = " ) +
    ( CheckBox2->Checked ? "true" : "false" ) +
    " AND  Перитонит_при_поступленни = " +
    ( CheckBox3->Checked ? "true" : "false" );
ADOTable1->Filtered = true;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2013, 16:27

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Фильтрация полей из подстановки
У меня не получается отфильтровать данные из полей таблицы(подстановки). Поля с родными...

Фильтрация подстановочных полей
Если поле подстановочное (т.е. мы его подставили из одного DBGrid в другой DBGrid) то при...

Сделать так, чтобы фильтрация была двух столбиков с двух разных edit и не одновременно
Есть фильтрация, которая фильтрует определенный столбик в таблице, но только один. Нужно сделать...

Фильтрация по таблице С++
Как отфильтровать таблицу по int date float значениям???? Подскажите пожалуйста срочно Т.к если я...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.