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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2015, 18:56   #1
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию Access+Delphi

Здравствуйте, есть БД акцесс, в ней две таблицы (типы и юзеры). Подскажите, как при выборе combobox1(например первая строка= Админы) появлялся combobox2 с юзерами, которые относятся к типу админы.
ins813 вне форума Ответить с цитированием
Старый 11.07.2015, 19:19   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

1) считываешь с таблицы всех админов с номерами и загоняешь в combobox1
командой AddObject(ник_админа, TObject(номер_в_таблице));
2) на обработчик OnCloseUp для combobox1 устанавливаешь запрос на выборку
всех юзеров с номером вышестоящего админа и загоняешь в combobox2 той же командой Add
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 11.07.2015, 19:52   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
как при выборе combobox1(например первая строка= Админы) появлялся combobox2 с юзерами, которые относятся к типу админы.
Можно сделать с помошью двух DBLookupComboBox, а можно в цикле пройтись по запросу типа:
Код:
With Query, ComboBox1 do begin
 SQL.Text:='select [Роли] from таблица';
 Open;
  Items.Clear; if not eof then Items.Append(Fields[0].AsString);
  while FindNext do Items.Append(Fields[0].AsString);
 Close;
end;
Для первого и:
Код:
With Query, ComboBox2 do begin 
 SQL.Text:='select [Юзера] from таблица where [Роли]='+QuotedStr(ComboBox1.Text);
 Open;
  Items.Clear; if not eof then Items.Append(Fields[0].AsString);
  while FindNext do Items.Append(Fields[0].AsString);
 Close;
end;
При учете что в БД хреновасто таблицы построены, нет цифровых ключевых полей и т.д.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.07.2015, 21:04   #4
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Спасибо, попробую оба варианта!
ins813 вне форума Ответить с цитированием
Старый 16.07.2015, 00:05   #5
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Вариант с dblookupcombobox проще) если с combobox,тогда
Код:
ComboBox1.Items.Clear;
While not ADOQuery1.Eof do
begin
ComboBox1.Items.Add(ADOQuery1.Fieldbyname ('имя поля').AsString); 
ADOQuery1.Next;
end;
И так же для второго.
На combobox1onchange пишешь
Adoquery1.recno:=combobox1.iteminde x+1;
Я думаю так,под рукой делфи нет,сам попробовать хочу)))

Последний раз редактировалось Stilet; 16.07.2015 в 09:16.
Ernest027 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access в Delphi 30stm БД в Delphi 7 14.06.2011 23:51
БД Delphi+Access Gonsalez БД в Delphi 1 22.11.2010 09:42
Access+Delphi BioVis Фриланс 6 25.03.2010 12:01
delphi+access eldar БД в Delphi 0 20.03.2009 22:56