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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2008, 20:13   #1
Luna_13
Пользователь
 
Регистрация: 19.09.2008
Сообщений: 13
По умолчанию Запрос и ComboBox

Привет, помогите пожалуйста с запросом
У меня есть ComboBox в нем две строки "Экстренно" и "Планово"
Мне надо чтобы при выборе одной из строк, отображались записи где встречается одна из этих строк.
Все работает один раз, я выбираю например Экстренно - мне отображает пациентов доставленных экстренно, но когда я после этого выбираю Планово, все остается как было
Как сделать, чтобы то значение убиралось и заново все показывало?

Код:
procedure TGlavn.ComboBox9Change(Sender: TObject);
   begin
       if not CheckBox1.Checked then Exit;
             if ComboBox9.Text='Экстренно' then
                 Query2.Close;
               Query2.SQL.Clear;
     Query2.SQL.Add('Select * from Diagnoz.db where Ekstrenno_Planovo  LIKE "%Экстренно%" ');
                Query2.Open;
              if  ComboBox9.Text='Планово' then
                      Query2.Close;
                       Query2.SQL.Clear;
               Query2.SQL.Add('Select * from Diagnoz.db where Ekstrenno_Planovo LIKE "%Планово%" ');
                   Query2.Open;
   end;
подскажите пожалуйста что нужно добавить-изменить, чтобы норм работал запрос.

Последний раз редактировалось Luna_13; 28.09.2008 в 20:17.
Luna_13 вне форума Ответить с цитированием
Старый 28.09.2008, 21:22   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Попробуйте заменить строку
if ComboBox9.Text='Планово' then
просто на ELSE...
Ну и посмотрите по шагам, что там происходит.

Да, и еще. Учитесь не ставить лишние операторы. Ваши два оператора:
Query2.SQL.Clear;
Query2.SQL.Add('Select * from Diagnoz.db where Ekstrenno_Planovo LIKE "%Экстренно%" ');
равноценны одному:
Query2.SQL.Text:='Select * from Diagnoz.db where Ekstrenno_Planovo LIKE "%Экстренно%" ';

Последний раз редактировалось mihali4; 28.09.2008 в 21:25.
mihali4 вне форума Ответить с цитированием
Старый 28.09.2008, 21:37   #3
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Код:
procedure TGlavn.ComboBox9Change(Sender: TObject);
begin
  if not CheckBox1.Checked then Exit;
    if ComboBox9.Text='Экстренно' then
    begin
      Query2.Close;
      Query2.SQL.Clear;
      Query2.SQL.Add('Select * from Diagnoz.db where Ekstrenno_Planovo  LIKE "%Экстренно%" ');
      Query2.Open;
    end
    else //   if  ComboBox9.Text='Планово' then
    begin
      Query2.Close;
      Query2.SQL.Clear;
      Query2.SQL.Add('Select * from Diagnoz.db where Ekstrenno_Planovo LIKE "%Планово%" ');
      Query2.Open;
    end;
end;
или так

Код:
procedure TGlavn.ComboBox9Change(Sender: TObject);
begin
  if not CheckBox1.Checked then Exit;
	
	Query2.Close;
	Query2.SQL.Clear;
	Query2.SQL.Add('Select * from Diagnoz.db where Ekstrenno_Planovo  LIKE "%' + ComboBox9.Text + '%" ');
	Query2.Open;
end;
s.Creator вне форума Ответить с цитированием
Старый 28.09.2008, 22:14   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Luna_13, обьясните плиз смысл строки:
Цитата:
Код:
if not CheckBox1.Checked then Exit;
...чё-то я никак не найду смысла !
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 28.09.2008, 22:16   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Это означает, что если "галка" не стоит, то ничего делать не надо, а просто выйти - EXIT.
Можно было сделать и по-другому:
if CheckBox1.Checked then
begin
//а сюда вставить весь обработчик
end;
mihali4 вне форума Ответить с цитированием
Старый 29.09.2008, 23:00   #6
Luna_13
Пользователь
 
Регистрация: 19.09.2008
Сообщений: 13
По умолчанию

Спасибо
работает :-)))))
Luna_13 вне форума Ответить с цитированием
Старый 29.09.2008, 23:10   #7
Luna_13
Пользователь
 
Регистрация: 19.09.2008
Сообщений: 13
По умолчанию

Здесь обошлась с помощью else

А как быть если у меня в ComboBox 4 значения?
if
if
if
else
не работает так...

подскажите что можно сделать пожалуйста
Luna_13 вне форума Ответить с цитированием
Старый 30.09.2008, 00:09   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Есть же оператор CASE...
mihali4 вне форума Ответить с цитированием
Старый 30.09.2008, 07:48   #9
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

смотри второй вариант:

Код:


Код:
procedure TGlavn.ComboBox9Change(Sender: TObject);
begin
  if not CheckBox1.Checked then Exit;
	
	Query2.Close;
	Query2.SQL.Clear;
	Query2.SQL.Add('Select * from Diagnoz.db where Ekstrenno_Planovo  LIKE "%' + ComboBox9.Text + '%" ');
	Query2.Open;
end;
s.Creator вне форума Ответить с цитированием
Старый 30.09.2008, 14:54   #10
Luna_13
Пользователь
 
Регистрация: 19.09.2008
Сообщений: 13
По умолчанию

Цитата:
Сообщение от s.Creator Посмотреть сообщение
смотри второй вариант:
Код:
Код:
procedure TGlavn.ComboBox9Change(Sender: TObject);
begin
  if not CheckBox1.Checked then Exit;	
	Query2.Close;
	Query2.SQL.Clear;
	Query2.SQL.Add('Select * from Diagnoz.db where Ekstrenno_Planovo  LIKE "%' + ComboBox9.Text + '%" ');
	Query2.Open;
end;
так не работает...
Luna_13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
ComboBox [Smarik] Компоненты Delphi 14 17.04.2008 17:32
ComboBox tat-besidovska Microsoft Office Excel 8 04.02.2008 08:52
ComboBox Lonix Компоненты Delphi 4 10.12.2007 09:18
Не могу внести строку из combobox в combobox!? tacer Помощь студентам 1 30.11.2007 19:45