Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
1

Вывод столбца БД в ListBox

17.10.2014, 04:17. Показов 3004. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Очень нуждаюсь в помощи. Не могу разобраться с проблемой уже часов 15( Вчера пытались разобраться Сохранение данных в таблицу, но дело так ничем и не закончилось( решили создать отдельную тему, может найдутся люди, которые помогут решить проблему)
Вообщем проблема такая: у меня есть таблица Resalt, комбобокс(КБ) 1 и 2. КБ1 и 2 заполняется значениями из таблицы Grumma.name gruppa. С КБ все вопрядке, заполняются нормально. Теперь, когда я выбрала в КБ каку-нибудь группу и нажала на кнопку, в ListBox должны попасть значения из таблицы Resalt столбец Obshie. Значения в ListBox попадают, но криво. Например у меня в КБ : Асу, Повт, ИСТб.... Я выбираю Асу. ТОгда в ListBox ничегго не попадает. Если выберу Повт, то попадают значения списка АСУ. А если ИСТб, то значения списка Повт

вот код заполнения КБ
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm7.FormShow(Sender: TObject);
begin
DataModule3.ADOQuery5.SQL.Clear;
DataModule3.ADOQuery5.SQL.Text:='Se lect Gruppa.Name_gruppa, Gruppa.Id_gruppa from Gruppa';
DataModule3.ADOQuery5.open;
ComboBox2.Items.Clear;
DataModule3.ADOQuery5.First;
while (not DataModule3.ADOQuery5.Eof) do
begin
ComboBox1.Items.Add( DataModule3.ADOQuery5.Fields[0].AsString);
ComboBox2.Items.Add( DataModule3.ADOQuery5.Fields[0].AsString);
DataModule3.ADOQuery5.Next;
end;
end;
а это код вывода в лист грид
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if (Combobox1.Text <> '') and (Combobox2.Text <> '')then
begin
ListBox1.Clear;
ListBox2.Clear;
 
DataModule3.ADOQuery4.SQL.Clear ;
DataModule3.ADOQuery4.SQL.Text:='Se lect Result.Obshie from Result where Result.Id_gruppa ='+IntToStr(Integer(Combobox1.ItemI ndex));
DataModule3.ADOQuery4.open;
DataModule3.ADOQuery4.First;
while (not DataModule3.ADOQuery4.Eof) do
begin
ListBox1.Items.Add(DataModule3.ADOQ uery4.Fields[0].AsString);
DataModule3.ADOQuery4.Next;
end;
 
DataModule3.ADOQuery11.SQL.Clear ;
DataModule3.ADOQuery11.SQL.Text:='S elect Result.Obshie from Result where Result.Id_gruppa ='+IntToStr(Integer(Combobox2.ItemI ndex));
DataModule3.ADOQuery11.open;
while ( not DataModule3.ADOQuery11.Eof) do
begin
ListBox2.Items.Add(DataModule3.ADOQ uery11.Fields[0].AsString);
DataModule3.ADOQuery11.Next;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2014, 04:17
Ответы с готовыми решениями:

Вывод в ListBox столбца из базы данных
Доброго времени суток, я написал небольшую программу для вывода столбца из базы данных в ListBox,...

Вывод столбца таблицы базы данных в listbox
Необходимо вывести в listbox столбец name_vyz таблицы klas делаю так, но не выходит...в чем...

Вывод в ListBox столбца из базы данных и действия с его элементами (WPF)
Здравствуйте, помогите: 1. вывести в ListBox столбец из базы данных. 2. при нажатии на выведенный...

Выборка записей столбца БД в ListBox в зависимости от выбора в первом ListBox
Ребят, хелп. Нужно запилить такую штуку, а хз как. Есть 2 лист бокса когда в первом выбирают...

3
129 / 129 / 41
Регистрация: 17.10.2013
Сообщений: 335
17.10.2014, 09:04 2
Во-первых, раньше Ваш комбобокс содержал (условно) ТРИ величины - индекс итема, сам итем (текст) и объект (числовой код группы). После того, как Вы изменили процедуру заполнения списка комбобокса, а именно
Delphi
1
ComboBox1.Items.Add(DataModule3.ADOQuery5.Fields[0].AsString);
в КБ содержится ДВЕ величины - индекс итема и сам итем (текст). Индексы итема, по счастливой случайности (в предыдущих темах, если не ошибаюсь, упоминались такие коды групп как 3 и 4), совпадают с некоторыми кодами групп (Id_gruppa) - попробуйте заменить коды групп на трехзначные, думаю вообще ни разу не выполнится
Если выберу Повт, то попадают значения списка АСУ. А если ИСТб, то значения списка Повт
вот здесь
Delphi
1
DataModule3.ADOQuery4.SQL.Text:='Select Result.Obshie from Result where Result.Id_gruppa ='+IntToStr(Integer(Combobox1.ItemIndex));
Вы пытаетесь ид группы сравнить с индексом итема, которые начинаются с 0 (сомневаюсь, что код группы АСУ = 0), а нужно сравнивать с кодом группы. Необходимо либо вернуться к старому коду наполнения списка КБ (и осмысленно подойти к обработке содержащихся в нем значений), либо воспользоваться DBLookupCombobox'ом (без привязки к полю, заполнить только ключевое поле (ид группы) и отображаемое поле (наименование группы))
0
18 / 18 / 4
Регистрация: 10.03.2014
Сообщений: 91
17.10.2014, 11:07 3
неуспел
0
2 / 2 / 1
Регистрация: 23.04.2012
Сообщений: 115
17.10.2014, 13:01 4
Основная проблема в том что вы не понимаете как всё это работает...

Не нужно делать отдельную кнопку можно сделат ьзаполнение ваших листбоксов при onChange комбобоксов, заполняется они будут по запросу который выберает данные по ади группы, прежде нужно найти это ади, да по счастливой случайности приведёный вами код (причём далеко не луший) както решал вашу задачу, но вы тогда как и сейчас не поинмаете как это происходило

У вас сейчас есть несколько вариантов либо кидать на форму датасет и дб компоненты что топо DBLookupCombobox, как вам посоветовали выше и брат ьиз него ади и подставлять в запрос.

Либо делать отдельный запрос в базу и находить по называнию выбраной группы и результат подставлять в запрос на основную выборку либо собрать один запрос, но т.к. вы используете Акцес а он имеет специфичный синтаксис для джойнов, который я ксожалению не могу вспомнить на ходу и не могу вам подсказать как нужно сделать одним запросом....

Добавлено через 9 минут
' Select Result.Obshie from (Result LEFT JOIN Result.Id_gruppa = Gruppa.Id_gruppa) where Gruppa.NameGruppa like '+Quotedstr(Combobox1.text);

както так
0
17.10.2014, 13:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2014, 13:01
Помогаю со студенческими работами здесь

Как реализовать по нажатию на выбранный элемент ListBox вывод по нему какой либо информации в другом ListBox
Приветствую... Нужна ваша помощь. Недавно начал разбираться с шарпами. Знание синтаксиса хромает......

Вывод результатов из одной таблицы и одного столбца в два разных столбца
Ребят помогите, измучалась совсем, не знаю как решить. Есть таблица Таблица t2 Id Pid ...

Вывод значений столбца, которые не равны значениям другого столбца
Необходимо вывести строки табл.1 со столбцами &quot;А&quot;,&quot;Б&quot;,&quot;В&quot; с условием, что значения столбца &quot;В&quot; не...

Как сделать 2 столбца в ListBox?
В VBA в Excel можно сделать 2 столбца в ListBox, подгружая данные с листа Excel. Как сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru