Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2010, 17:26
T_N_W T_N_W вне форума
Прохожий
 
Регистрация: 21.12.2009
Сообщения: 18
Репутация: 10
По умолчанию Работа с БД, ComboBox и Image

Помогите решить проблему.
Есть БД сделанная в акцесе, привязал ее к DBGrid. На форму поместил ComboBox, Edit и Image. К комбобоксу привязал БД. Нужно чтобы из выбираемого списка в комбобоксе отображались другие данные в эдите и имайдже из этой БД.

Пробовал на форму поместить DBComboBox, DBEdit и DBImage, привязал с помощью дата сурса, работать отказывается, хотя если выбирать данные с грида, то все отображает, но нужен выбор с комбобокса.
Ответить с цитированием
  #2  
Старый 05.05.2010, 18:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тебе нужно в этом случае руками переключать записи в датасорсе.
Дело в том, что DBImage и DBEdit отображают данные из текущей записи.
Т.е. тебе, при выборе некоторого значения в ComboBox, надо переключить соотв. датасорс на нужную запись.

Тут соответсвенно встает вопрос как ты заполняешь ComboBox со всеми вытекающими...
Ответить с цитированием
  #3  
Старый 06.05.2010, 13:18
T_N_W T_N_W вне форума
Прохожий
 
Регистрация: 21.12.2009
Сообщения: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Тебе нужно в этом случае руками переключать записи в датасорсе.
Дело в том, что DBImage и DBEdit отображают данные из текущей записи.
Т.е. тебе, при выборе некоторого значения в ComboBox, надо переключить соотв. датасорс на нужную запись.

Т.е. нужен еще один датасорс, даже несколько?

Цитата:
Сообщение от lmikle
Тут соответсвенно встает вопрос как ты заполняешь ComboBox со всеми вытекающими...

Вот так:
Код:
begin
   DBComboBox1.Clear;
   DBComboBox1.ItemIndex:=0;
     while not ADOQuery1.Eof do
        begin
         BD.Columns[1].PickList.add(
         ADOQuery1.FieldByName('vid').AsString);
         DBComboBox1.Items.Add(ADOQuery1.FieldByName('vid').AsString);
         ADOQuery1.Next;
       end;
  ADOQuery1.First;
end;

Последний раз редактировалось T_N_W, 06.05.2010 в 20:52.
Ответить с цитированием
  #4  
Старый 10.05.2010, 02:00
T_N_W T_N_W вне форума
Прохожий
 
Регистрация: 21.12.2009
Сообщения: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от T_N_W
Помогите решить проблему.
Есть БД сделанная в акцесе, привязал ее к DBGrid. На форму поместил ComboBox, Edit и Image. К комбобоксу привязал БД. Нужно чтобы из выбираемого списка в комбобоксе отображались другие данные в эдите и имайдже из этой БД.

Такое вообще возможно сделать в Делфи? А то уже 2 недели парюсь, все никак не найду выход.
Ответить с цитированием
  #5  
Старый 11.05.2010, 14:39
Аватар для Mad programmer
Mad programmer Mad programmer вне форума
Прохожий
 
Регистрация: 11.05.2010
Сообщения: 23
Репутация: 10
По умолчанию

давай уточним.
1. Есть поле, которое отображается в ComboBox.
2. Выбираем запись в ComboBox.
3. В Edit и в Image отображаются данные в зависимости от того что ты
выбрал.
так?
Ответить с цитированием
  #6  
Старый 11.05.2010, 14:51
Аватар для Mad programmer
Mad programmer Mad programmer вне форума
Прохожий
 
Регистрация: 11.05.2010
Сообщения: 23
Репутация: 10
По умолчанию

Если так то вариант такой:
Допустим есть 2 таблицы а и b.
в а есть поле с1 по которому надо выбирать данные
в b есть три поля С1 Е1 и I1 которые хранят Е1- данные которые надо отобразить в Edit, I1 - картинка.
Кидаем два Query и 2 DaraSource, связываем их
В первом Query пишем:
select * From a
Во втором
Select b.E1,b.I1 From b WHERE b.C1=:C1P

В delphi возьми DBLookupComboBox свяжи его с query1
DBEdit и DbImage свяжи с соответствующими полями query2.

В обработчике события DBLookupComboBox1Click напиши
Query2.close;
Query2.ParamByName('C1P').Value:=Query1.FieldbyNam e('C1').As...;
Query2.open;
Ответить с цитированием
  #7  
Старый 11.05.2010, 15:15
T_N_W T_N_W вне форума
Прохожий
 
Регистрация: 21.12.2009
Сообщения: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от Mad programmer
давай уточним.
1. Есть поле, которое отображается в ComboBox.
2. Выбираем запись в ComboBox.
3. В Edit и в Image отображаются данные в зависимости от того что ты
выбрал.
так?

По 3-му пункту, данные как раз неотображались, но эту проблему, слава богу, удалось решить.

Теперь надо разделить два DBComboBox, чтобы при выборе в одном КБ неотображалась инфа во втором КБ и все к нему привязанное.

Все, сделал, тема закрыта.

Последний раз редактировалось T_N_W, 12.05.2010 в 23:52.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:17.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025