Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2010, 12:55   #1
flyinsky
Пользователь
 
Регистрация: 28.05.2009
Сообщений: 21
По умолчанию Пустой Combobox

Здравствуйте. у меня выполняется фильтрация запросом

Код:
datamodule1.ADOTable2.Filtered:=false; 
        
datamodule1.ADOTable2.Filter:='Станция_отпр_я LIKE '+ #39 +  combobox1.Text + '%' + #39 +' AND '
+ 'Станция_назн_я LIKE '+ #39 + combobox2.Text + '%' + #39;

datamodule1.ADOTable2.Filtered:=true;
Он фильтрует сразу по обоим комбобоксам, а как сделать так чтобы:
1) если первый комбобокс заполнен а второй пустой то фильтровать только по первому
2) если второй комбобокс заполнен а первый пустой то фильтровать только по второму
3) если оба пустые то вывести сообщение showmessage('Введите данные')

Пробовал через If вываливаються ошибки.
flyinsky вне форума Ответить с цитированием
Старый 08.12.2010, 13:16   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Ну это вообщето не запрос, ну да ладно. Конечно нужно использовать условия,
как пример

Код:
if TRIM(combobox1.Text)<>'' and  TRIM(combobox1.Text)<>'' then
begin
message('Введите данные'); exit;
end;
datamodule1.ADOTable2.Filtered:=false; 

datamodule1.ADOTable2.Filter:='0 = 0 ';
if TRIM(combobox1.Text)<>'' then
  datamodule1.ADOTable2.Filter:=datamodule1.ADOTable2.Filter + ' AND  Станция_отпр_я LIKE '+ #39 +  combobox1.Text + '%' + #39;
if TRIM(combobox2.Text)<>'' then
  datamodule1.ADOTable2.Filter:=datamodule1.ADOTable2.Filter + ' AND Станция_назн_я   LIKE '+ #39 + combobox2.Text + '%' + #39;

datamodule1.ADOTable2.Filtered:=true;
Цитата:
Сообщение от Stilet Посмотреть сообщение
Синхронно думаем ))))
))))

Последний раз редактировалось vovk; 08.12.2010 в 13:22.
vovk вне форума Ответить с цитированием
Старый 08.12.2010, 13:16   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

С потолка:
Код:
with datamodule1.ADOTable2 do begin
 Filter:='(1=1) ';
 if combobox1.Text <>'' then Filter:=Filter+' AND (Станция_отпр_я LIKE '+QuotedStr( combobox1.Text + '%')+') ';
 if combobox2.Text <>'' then Filter:=Filter+'  AND (Станция_назн_я LIKE '+QuotedStr( combobox1.Text + '%')+') '
end;
Цитата:
vovk
Синхронно думаем ))))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пустой оператор sem_1989 Общие вопросы C/C++ 3 27.11.2010 14:50
Пустой файл АлёнаP Microsoft Office Word 4 30.10.2009 14:31
Пустой список viku_11 Общие вопросы C/C++ 5 25.11.2008 19:27
Пустой список Executr Общие вопросы Delphi 5 02.06.2008 20:55
Не могу внести строку из combobox в combobox!? tacer Помощь студентам 1 30.11.2007 19:45