Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c