Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.22;
Скачать: CL | DM;

Вниз

ComboBox для отображения связанных таблиц   Найти похожие ветки 

 
stal67 ©   (2002-03-30 20:21) [0]

Пожалуйста, помогите чайнику. Пропадаю.
Для вас - это элементарно. Мне пока тяжело.
Использовал раньше для отображения связанных таблиц всегда DBGrid`ы. Проблем - никаких.Сейчас вот застрял.
Заполняю ComboBox текстовым полем родительской таблицы, где ключевое поле - LongInteger. Как в DBGrid, отражать подчиненные
ей (родительской таблице) поля дочерней таблицы? Каким должен быть текст запроса и как осуществить подстановку текстового поля , используя числовое ключевое поле?
Спасибо. Огромное.


 
AlexVS   (2002-03-31 08:26) [1]

Запрос имеется в виду использование TQuery ?
Тогда примерно так:

Select * from table
WHERE Field= :FieldValue

Поиск в родительской таблице:
Table1.Locate("StrField",ComboBox1.Text,[])

потом присваивай значение параметру:
Query1.ParamByName("FieldValue").Value:=Table1.FieldByName("LongField").Value;
Выполяй Select
Query1.Sql.Clear;
Query1.Sql.Add("Select * from table WHERE Field= :FieldValue");
Query1.Open;


 
Andrus   (2002-03-31 12:52) [2]

Помоему удобнее использовать при заполнении ComboBoxa:

ComboBox1.Items.AddObject("Текстовое поле родителя",TObject(Ключевое поле родителя));

И потом в ComboBox1.OnChange()
ChildQuery.Close;
ChildQuery.Params[0].AsInteger:=Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
ChildQuery.Open;


 
Lusha ©   (2002-03-31 13:00) [3]

Создать LookUp поле?


 
stal67 ©   (2002-03-31 16:38) [4]

Попробовал, но что-то не могу врубиться. Быть может еще разок попробуем?

1.// Заполняю ComboBox текстовым полем запроса q1 с полями
ID_GROUP (ключевое поле)
GROUP_NAME (текстовое поле)
procedure Tform1.FormCreate(Sender: TObject);
begin
q1.SQL.Clear;
q1.SQL.Add("SELECT * FROM GROUP_NAME ");
q1.Open;
q1.First;
ComboBox.Clear;
while not q1.Eof do
begin
ComboBox.Items.Add(q1GROUP_NAME.AsString);
q1.Next;
end;
ComboBox.ItemIndex:=0;
end;

2. // Сейчас нужно отобразить по выбору в ComboBox,подчиненные запросу q1 данные запроса q2 (по полю ID_GROUP) с полями :
ID_GROUP (внешний ключ, числовое поле)
ТОV_NAME (текстовое поле)

procedure Tform1. ComboBoxChange(Sender: TObject);
begin
// Большое спасибо за код!!!
end;


 
Andrus   (2002-03-31 17:07) [5]

procedure Tform1.FormCreate(Sender: TObject);
begin
q1.SQL.Clear;
q1.SQL.Add("SELECT * FROM GROUP_NAME ");
q1.Open;
q1.First;
ComboBox.Clear;
while not q1.Eof do
begin
// ComboBox.Items.Add(q1GROUP_NAME.AsString);
ComboBox.Items.AddObject(q1GROUP_NAME.AsString,
TObject(q1ID_GROUP.AsInteger));
q1.Next;
end;
ComboBox.ItemIndex:=0;
end;

q2.SQL.text:="select * from дочерняя таблица where ID_GROUP=:ID"



procedure ComboBox.OnChange(Sender:TObject);
begin
q2.close;
q2.parambyname("ID").AsInteger:=Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]));
q2.open;
end;




 
stal67 ©   (2002-03-31 19:47) [6]

Безмерно благодарен, Andrus, все работает !
Спасибо так же всем, кто откликнулся, чтобы помочь!



Страницы: 1 вся ветка

Текущий архив: 2002.04.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
3-69721
anod
2002-03-31 00:27
2002.04.22
Поиск в таблице и русские буквы


6-69951
Димка-1200
2002-02-11 10:03
2002.04.22
Народ, как с помощью TWebBrowser (или чего другого) заполнить поля в HTML


3-69708
Отчаявшийся
2002-03-28 23:49
2002.04.22
Не удается подключиться к Interbase по сети


7-70036
__Dima
2001-10-24 12:30
2002.04.22
Защита программы


1-69859
MCFire
2002-04-08 17:20
2002.04.22
Как закинуть меню в панель инструментов