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

combobox, запись из него в БД и вывод списка из БД в combobox

19.01.2013, 10:54. Показов 6715. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане подскажите как сделать так что б в таблицу predmet (2 поля id_predmet-счетчик, Nazvanie_predmeta-текстовый) из combobox1 вводился и сохранялся предмет.. а потом из таблице он уже брал значения эти и выводил. БД подключена через ADO ADOQuery не использую ибо в SQL запросах не разбираюсь..
подскажите кто чем может..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2013, 10:54
Ответы с готовыми решениями:

Вывод списка в ComboBox зависимости от выбора в другом ComboBox. C++
Вывод списка в ComboBox зависимости от выбора в другом ComboBox. Например, студент выбирает...

Не получается сделать, Запись из первого ComboBox попадает во второй ComboBox
Добрый день. Проблема в правильности написания кода, нужно что бы при выборе фамилии из поле со...

ComboBox или как реализовать запись в него если нет такого значения
На данный момент делал так пока не начала вылазить не понятная ошибка в перечне Плотность хронятся...

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

20
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
19.01.2013, 11:06 2
Добавление в бокс из таблици
Delphi
1
2
3
4
5
6
  form1.ADOTable1.FindFirst;
  if not form1.ADOTable1.IsEmpty then
  repeat
    ComboBox.Items.Add(form1.ADOTable1.Fields[2].AsCurrency)
  until not form1.ADOTable1.FindNext;
  form1.ADOTable1.FindFirst;
Добавлено через 3 минуты
Из бокса в таблицу
Delphi
1
2
3
4
5
6
  form1.ADOTable1.Edit;
  form1.ADOTable1.Insert;
 
  form1.ADOTable1.Fields[1].AsString:=ComboBox.Items[ComboBox.Items.ItemIndex];
 
  form1.ADOTable1.Post;
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
19.01.2013, 11:08  [ТС] 3
это все просто в боксе прописать подрят?
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
19.01.2013, 11:14 4
На событие OnClick

Добавлено через 24 секунды
ComboBox'са
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
19.01.2013, 11:25  [ТС] 5
Цитата Сообщение от Игорь[Igor
;4024449]4
5
6
* form1.ADOTable1.Edit;
* form1.ADOTable1.Insert;
form1.ADOTable1.Fields[1].AsString:=ComboBox.Items[ComboBox.Items.ItemIndex];
form1.ADOTable1.Post;
вот в этом моменте ItemIndex нет такого у меня.. по нажатию на точке не показывает.. по опыту знаю что если так случаеться то программа не пойдет дальше.. помогите разобраться пожалуйста
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
19.01.2013, 11:32 6
Я без Delphi писал сейчас посмотрю

Добавлено через 2 минуты
Delphi
1
form1.ComboBox1.Items.Strings[form1.ComboBox1.ItemIndex]
Добавлено через 1 минуту
или
Delphi
1
form1.ComboBox1.Items[form1.ComboBox1.ItemIndex]
1
20 / 20 / 0
Регистрация: 26.11.2011
Сообщений: 64
19.01.2013, 11:40 7
Цитата Сообщение от ghjuf Посмотреть сообщение
Уважаемые форумчане подскажите как сделать так что б в таблицу predmet (2 поля id_predmet-счетчик, Nazvanie_predmeta-текстовый) из combobox1 вводился и сохранялся предмет.. а потом из таблице он уже брал значения эти и выводил. БД подключена через ADO ADOQuery не использую ибо в SQL запросах не разбираюсь..
подскажите кто чем может..
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure Boxlist(Sender:TComboBox;sql:Pchar);
var ADOQuery:TADOQuery;
  s:string;
begin
  Sender.Items.Clear;
  s:='';
  ADOQuery:=TADOQuery.Create(nil);
  ADOQuery.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'Приложение Microsoft Office Access.mdb;Persist Security Info=False';//'Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Initial Catalog='+ExtractFilePath(Application.ExeName)+'Приложение Microsoft Office Access.mdb';
  ADOQuery.SQL.Add(sql);
  ADOQuery.Active:=true;
  while not ADOQuery.Eof do begin
   if (s<>ADOQuery.Fields.Fields[0].AsString) or(ADOQuery.Fields.Fields[0].AsString='') then begin
      Sender.Items.Add(ADOQuery.Fields.Fields[0].AsString);
      s:=ADOQuery.Fields.Fields[0].AsString;
   end;
     ADOQuery.Next;
    end;
 ADOQuery.Destroy;
 
end;
вот прогамма длz наноса в combobox
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
19.01.2013, 11:59  [ТС] 8
у меня нет ADOQuery.. но спасибо пригодиться все равно)
с нем я не понимаю как подключать его к таблицам.. все подключено через ADOTable

Добавлено через 3 минуты

[Error] Unit1.pas(147): Undeclared identifier: 'itemsindex'
[Error] Unit1.pas(152): Incompatible types: 'String' and 'Currency'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
вот подобную ошибочку мне выдает все равно на itemsindex... говорит мол нужно ее где то объявить.. не могу вспомнить как исправить

Добавлено через 12 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
form1.Predmet.Edit;
form1.Predmet.Insert;
form1.Predmet.Fields[1].AsString:=form1.ComboBox1.Items[form1.ComboBox1.itemsindex];
form1.Predmet.Post;
form1.Predmet.FindFirst;
if not form1.Predmet.IsEmpty then
repeat
combobox1.Items.Add(form1.Predmet.Fields[2].ascurrency)
until not form1.Predmet.FindNext;
form1.Predmet.FindFirst;
странно.. так то видет свойство.. а вот именно при такой раскладке не видет
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
19.01.2013, 12:11 9
Delphi
1
combobox1.Items.Add(form1.Predmet.Fields[2].ascurrency)
замени на
Delphi
1
combobox1.Items.Add(form1.Predmet.Fields[2].asString)
Добавлено через 1 минуту
и не
Delphi
1
itemsindex
,
а
Delphi
1
itemindex
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
19.01.2013, 12:29  [ТС] 10
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
form1.Predmet.Edit;
form1.Predmet.Insert;
form1.Predmet.Fields[1].AsString:=form1.ComboBox1.Items[form1.ComboBox1.itemindex];
form1.Predmet.Post;
form1.Predmet.FindFirst;
if not form1.Predmet.IsEmpty then
repeat
combobox1.Items.Add(form1.Predmet.Fields[2].asString)
until not form1.Predmet.FindNext;
form1.Predmet.FindFirst;
 
end;
все запускается.. но ввожу в бокс текст и не чего не происходит.. и в таблицы с предметами есть пару значений жму на выпадающий список не чего не показывает.. пустота
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
19.01.2013, 12:52 11
Несмотрю что понаписал, все в кучу смешал блин так вот из бокса
Delphi
1
2
3
4
5
6
7
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
form1.Predmet.Edit;
form1.Predmet.Insert;
form1.Predmet.Fields[1].AsString:=form1.ComboBox1.Items[form1.ComboBox1.itemindex];
form1.Predmet.Post;
end;
А это записать, в другом месте например в OnCreate формы
Delphi
1
2
3
4
5
if not form1.Predmet.IsEmpty then
repeat
combobox1.Items.Add(form1.Predmet.Fields[2].asString)
until not form1.Predmet.FindNext;
form1.Predmet.FindFirst;
Fields[1] - 1 это номер поля значение которого береш и в которое добавляеш данные
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
19.01.2013, 13:06  [ТС] 12
ну на форму если вписываю.. то ошибку фатальную дает что аж делфи зависает..
и я не понимаю а как он добавит в таблицу мне значение.. вот ввел я к примеру текст в бокс. а дальше то что как он поймет что надо записывать.. я уже пади достал с расспросами..
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
19.01.2013, 13:16 13
При записи в бокс таблица должна быть открытой.

Последовательность добавления
Delphi
1
2
3
4
5
form1.Predmet.Edit; // это значит что будем редактировать
form1.Predmet.Insert; // это добавляем новую запись
form1.Predmet.Fields[1].AsString:=form1.ComboBox1.Items[form1.ComboBox1.itemindex]; // записываем в нее из бокса. сдесь в примере в поле №1
 
form1.Predmet.Post; // сохраняем все изменения.
Добавлено через 2 минуты
И еще когда так добавляеш в бокс из таблици или кудато еще то сначала компилируй, и открывай приложение из папке не нажимая Run

Добавлено через 30 секунд
И еще когда так добавляеш в бокс из таблици или кудато еще то сначала компилируй, и открывай приложение из папке не нажимая Run
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
19.01.2013, 13:21  [ТС] 14
так а по поводу поле №1.. как понять в которое поле мне в своей таблице писать по номеру..
там же явно не 1 запись будет..вот у меня в таблице два столбика.. а поле как понять в которое
туплю я с этим боксом..
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
19.01.2013, 13:29 15
Чтоб ввелось в таблицу, нужно выбрать из бокса значение хранящееся в нем и сработет событие клика, а не просто записать, и будет записана строка под индексом itemindex та что выбрали в боксе

Добавлено через 4 минуты
Ну замени
form1.Predmet.Fields[1].AsString
на
form1.Predmet.FieldByName('Имя поля').AsString

Добавлено через 1 минуту
Столбик и будет полем
0
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
19.01.2013, 13:41  [ТС] 16
а тогда понял.. те записывать в итемс значения что будет в выкидном списке полюбому в ручную прейдеться..
не выйдет так сделать что б он просто из таблицы брал и вот жму я на эту стрелочку и все что в таблице есть он мне выдаст а в дальнейшем получаеться у меня такое что это значение в совокупности с оценкой и датой будет записываться в табличку и потом выводиться в листбоксе предмет как раз этот и оценка.. по привязке к студенту.. сам студент будет в дбгриде показываться.. а считываться будет все с едитов как бы при нажатиее на поиск.. ну это не по теме) ну все равно щас постепенно догонять начинаю что к чему.. но разбераться прейдеться еще..
0
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
22.01.2013, 18:51  [ТС] 17
после долгих мучений и втуплений.. я сделал так что все данные из табличке вывелись.. в форме прописав код
Delphi
1
2
3
4
5
if not form1.Predmet.IsEmpty then
repeat
combobox1.Items.Add(form1.Predmet.Fields[2].asString)
until not form1.Predmet.FindNext;
form1.Predmet.FindFirst;
теперь задумался как в БД в таблицу от куда я беру значения для бокса запись сделать.. по нажатию на ентер.. те нажал на ентер и запись добавилась в БД.. и в выпадающем списке появилась
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
22.01.2013, 19:35 18
Долго же ты его прописывал, я еще когда тебе его написал.
0
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
22.01.2013, 19:50  [ТС] 19
да тупил.. вот теперь задумался как добавлять в табличку предметы..
вариант прям в комбобокс вписывать и жать на ентер и он вуаля записал не сработал..
второй вариант через едиты и батан сделал добавляет.. но нужно перегружать всю программу что б отобразился в боксе ново-добавленный предмет.. может вы подскажете как сделать так что б он сразу как добавился в таблицу в боксе показывался..

Добавлено через 11 минут
а ваш кусок теста по добавлению у меня не работает.. ну не записывает он в табличку программа запускаеться а не чего не происходит хотя текст написал в боксе..
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
22.01.2013, 20:46 20
Можеш сразу добавить в бокс как только добавил в таблицу.
Delphi
1
combobox1.Items.Add(combobox1.Items.Text)
0
22.01.2013, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2013, 20:46
Помогаю со студенческими работами здесь

Сравнивание текста в combobox-е и вывод определенных значений в другой combobox
Есть 2 combobox-a. В каждом берутся данные из текстового файла. Нужно при выборе одной строки в 1м...

Вывод списка по индексу Combobox VB
Есть ли в Access возможность вывода списка от-до как в примере, приведенном ниже? Private Sub...

Вывод значений в comboBox, связанных с другим comboBox
как сделать вывод в combobox2, если оно зависит от выбора значения comboBox1. программа...

Вывод в Combobox списка файлов в папке
Ребята доброго дня всем! подскажите как правильно кодом произвести ввод в combo, список файлов в...


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

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