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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2009, 18:13   #1
tov.Suhov
 
Регистрация: 13.12.2009
Сообщений: 5
По умолчанию Как состыковать два DBLookupComboBox

Господа, прошу помощи!
Ситуация следующая! Пишу БД для частной авиа школы. Это мой диплом. Есть 3 таблицы над которым надо сделать нехитрую вещь. Таблицы: ЛА(летательный аппарат), двигатель, винт.
Для каждой записи в табл ЛА будет заполнятся и запись в табл двигатель и винт.
Заполнив табл ЛА, я записываю в нее такие данные как номер двигателя и номер винта, затем нажимаю кнопку Сохранить. Запись сделана. Сразу же приступаю к заполнению табл Двигатель и винт для моего самолета.
Тут нужна такая хитрость. В DBLookupComboBox я выбираю для какого самолета я буду дописывать данные по двигателю и винту. Допустим это самолет ТУ-134. Но в авиакомпании допустим таких аппаратов 10. Различают их как и автомобили, по их номерам. Так вот мне надо чтобы во втором DBLookupComboBox отсеклись все номера для имеющихся ТУ-134. Затем я выбираю из этих номеров нужный для меня. Выбрав номер, в DBLookupComboBox3 должен появится номер двигателя(в другой табл появляется номер винта) который я уже вводил в табл ЛА. Выбрав этот номер(он будет единтвенный в списке бокса) я заполню другие данные, типа срок тех обслуживания и так далее.
Далее я опять нажимаю Сохранить, и заполненные данные по двигателю и винту записываются соответсвенно в таблицы Двигатель и Винт. Надеюсь вы сможете мне помочь)
Изображения
Тип файла: jpg Безымянный.jpg (90.7 Кб, 154 просмотров)
tov.Suhov вне форума Ответить с цитированием
Старый 13.12.2009, 18:22   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Правильно ли я понял, что Вам нужно следующее. Вы первой таблице выбирается ЛА, после этого во второй таблице отображаются записи, которые соответствуют выбранному в первой таблице ЛА, а во второй таблице выбираете запись нужную, и, в третьей таблице отображаются только те записи, которые соотвествуют только той записи, которая была выбрана во второй таблице. Так?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.12.2009, 18:38   #3
tov.Suhov
 
Регистрация: 13.12.2009
Сообщений: 5
По умолчанию

Щас я еще разок объяснить попробую...В табл ЛА я заполняю поля ЛА,Тип ЛА, Двигатель,Винт и т д....
Но есть и табл Двигатель и Винт
После ЛА я заполняю эти табл....
Табл Двигатель:
в Боксе 1 я выберу ЛА(их у нас может быть 5 одинаковых но Номера у них разные)
в Боксе 2 должен быть список номеров ЛА, в соответсвии с выбором Бокса1
Дальше я заполняю данные для двигателя моего самолета и нажимаю кнопку Созранить!
Аналогично делаю с табл Винт.
На рисунке который я выложил в начале можете посмотреть как устроено все это дело....Спасибо
tov.Suhov вне форума Ответить с цитированием
Старый 13.12.2009, 18:40   #4
tov.Suhov
 
Регистрация: 13.12.2009
Сообщений: 5
По умолчанию

Таким же способом мне нужно будет искать записи....через ЛукапБоксы.....
tov.Suhov вне форума Ответить с цитированием
Старый 13.12.2009, 18:54   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Начинаю тупить, попробую въехать. Со вставкой у тебя проблем нет?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.12.2009, 19:47   #6
tov.Suhov
 
Регистрация: 13.12.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Начинаю тупить, попробую въехать. Со вставкой у тебя проблем нет?
Пока проблем нет так как я незнаю как это сделать)))
Говорят что там вообще кода мало...просто надо настроить Лукапы грамотно....
То что мне надо оч похоже на поиск Вконтакте...
Выбрал Страну, а в след Боксе только Города этой страны....такая технология
tov.Suhov вне форума Ответить с цитированием
Старый 14.12.2009, 18:08   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
То что мне надо оч похоже на поиск Вконтакте...
Плагиат
Цитата:
Выбрал Страну, а в след Боксе только Города этой страны....такая технология
Могу предложить следующее:
1. Создаются (имеются) таблицы со странами и городами;
2. Таблица Городов связана с таблицой Стран по какому-то полю;
3. В Combobox1 заносятся Страны;
4. На событии OnCreate у Form1 висит подобие такого запроса:
Код:
 query1.active:=false;
 query1.sql.clear;
 query1.sql.text:='select distinct goroda from tab_goroda';
 query1.active:=true;

  ComboBox1.Clear;
  while not Query1.Eof do
  begin
    ComboBox1.Items.Add(Query1.FieldByName('goroda').AsString);
    Query1.Next;
  end;
5. В ComboBox2 заносятся те города, которые соответствуют выбранной (событие OnChange) стране, например, так:
Код:
 query2.active:=false;
 query2.sql.clear;
 query2.sql.text:='select distinct strana from tab_strana where gorod='+quotedstr(combobox1.text);
 query2.active:=true;

  ComboBox2.Clear;
  while not Query2.Eof do
  begin
    ComboBox2.Items.Add(Query2.FieldByName('strana').AsString);
    Query2.Next;
  end;
Может и коряво, но я бы попробовал такой прием
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 15.12.2009, 14:29   #8
tov.Suhov
 
Регистрация: 13.12.2009
Сообщений: 5
По умолчанию

вот немного подредактировал код....но в БОксе2 почему то пусто(((

Цитата:
begin
ADOQuery2.active:=false;
ADOQuery2.sql.clear;
ADOQuery2.sql.text:='select distinct Name from Country';
ADOQuery2.active:=true;

ComboBox1.Clear;
while not ADOQuery2.Eof do
begin
ComboBox1.Items.Add(ADOQuery2.Field ByName('Name').AsString);
ADOQuery2.Next;
end;

ADOQuery3.active:=false;
ADOQuery3.sql.clear;
ADOQuery3.sql.text:='select distinct Capital from Country where Name='+quotedstr(combobox1.text);
ADOQuery3.active:=true;

ComboBox2.Clear;
while not ADOQuery3.Eof do
begin
ComboBox2.Items.Add(ADOQuery3.Field ByName('Capital').AsString);
ADOQuery3.Next;
end;
end;
tov.Suhov вне форума Ответить с цитированием
Старый 15.12.2009, 16:23   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А таблицы Contry и Capital как связаны?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как соеденить два роутера? psihadelic Компьютерное железо 0 23.11.2009 13:29
[Asm] Состыковать код с интерфейсом q1q1 Помощь студентам 4 09.06.2009 18:40
как слить два файла? c++ learner Общие вопросы C/C++ 0 19.12.2008 13:04
Как округлять числа до целых и как оставить два знака после запятой. bles Помощь студентам 9 19.02.2008 21:53
два TMediaPlayer и два AVI-файла zeleniy Компоненты Delphi 0 01.06.2007 14:14