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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2014, 21:54   #1
ruldik
Новичок
Джуниор
 
Регистрация: 25.02.2014
Сообщений: 2
По умолчанию Access и DBLookupComboBox

Всем доброго времени суток!!! Принимайте новичка, начинающего познавать язык программирования... Сходу вопрос... Подключился к базе, вывел данные в выпадающий список DBLookupComboBox... Как осуществить некую фильтрацию, т.е выбрал в первом списке значение, а во втором выводилось только значение, которое привязано к выбранному? т.е. например есть база с таблицей пряник - медовый, конфета - шоколадная..., в первом списке выбрал пряник, а во второй попадает значение - медовый... извиняюсь что так коряво изложил, но думаю суть ясна....
ruldik вне форума Ответить с цитированием
Старый 26.02.2014, 07:57   #2
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

1)а во втором в запросе надо добавить условие по которому будет осуществляться выборка, например
Код:
select * from table where column = :pcolumn
и в датасет в переменную pcolumn подставлять "медовый"
и переоткрыть датасет
2) добавить во второй датасет фильтр
Код:
dataset.filter := 'column = ''медовый'''
filtered := true
этот код повесить на событие либо dataset.afterscroll, либо событие изменения значения у DBLookupComboBox (не помню точного названия)
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 28.02.2014, 13:01   #3
ruldik
Новичок
Джуниор
 
Регистрация: 25.02.2014
Сообщений: 2
По умолчанию

Разобрался.... Решил остановиться на простом combobox, вот только есть несколько вопросов...
1. Правильность данного кода?
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Add('SELECT DISTINCT [Название] FROM [Таблица1]');
   ADOQuery1.Active:=True;
   ComboBox1.Items.Clear;
   ComboBox1.Items.Add('<Не определено>');
   ADOQuery1.First;
   while not ADOQuery1.Eof do
      begin
         ComboBox1.Items.Add(ADOQuery1.Fields[0].AsString);
         ADOQuery1.Next
      end;
   ComboBox1.ItemIndex:=0;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
   ComboBox2.Items.Clear;
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Text:='SELECT DISTINCT [Код] FROM [Таблица1] WHERE [Название]='+QuotedStr(ComboBox1.Text);
   ADOQuery1.Open;
   ComboBox2.Items.Add('<Не определено>');
   while not ADOQuery1.Eof do
      begin
         ComboBox2.Items.Add(ADOQuery1.Fields[0].AsString);
         ADOQuery1.Next;
      end;
   ComboBox2.ItemIndex:=0;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
   ComboBox3.Items.Clear;
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Text:='SELECT DISTINCT [ТипДвигателя] FROM Таблица1] WHERE [Название]='+QuotedStr(ComboBox1.Text)+' AND [Код]='+QuotedStr(ComboBox2.Text);
   ADOQuery1.Open;
   ComboBox2.Items.Add('<Не определено>');
   while not ADOQuery1.Eof do
      begin
         ComboBox3.Items.Add(ADOQuery1.Fields[0].AsString);
         ADOQuery1.Next;
      end;
   ComboBox3.ItemIndex:=0;
end;
2. "Не определено" появляется только после изменения предидущего combobox'а?
Безымянный.jpg
3. Как в 3-й combobox, вместо числового значения, подставить текст из [Таблицы2], где числовое значение столбца [ТипДвигателя] [Таблицы1] соответствует текстовому значению столбца [Название] [Таблицы2]?
ruldik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Dblookupcombobox N.i.k.o.l.a.y. Помощь студентам 3 10.05.2013 10:40
DbLookUpComboBox aank10 C/C++ Базы данных 2 24.11.2011 10:07
2 DBLookupComboBox-a player0k БД в Delphi 3 30.11.2009 12:13
DBLookupComboBox Dunpeal Компоненты Delphi 5 09.08.2007 18:28
DBLookupCombobox??? Alexcandr Компоненты Delphi 2 05.04.2007 16:46