Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
 Аватар для shukmus
2 / 2 / 0
Регистрация: 29.01.2010
Сообщений: 6

Из DBGrid1 вывести текущую (выделенную) строку в Edit1 и ComboBox1

29.05.2012, 11:46. Показов 3762. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Создаю базу данных С++ Builder + Ms Acess соединяю через ADO Connection.

Добавление записи в DBGrid происходит через форму Добавление записи

Проблема:
Есть Главная форма, на которой расположен DBGrid1, на ней выделяемую необходимую строку и нажимаем кнопку Изменить->Открывается новая форма (такая же как и Добавление записи) только с данными из DBGrid.

На форме Изменить запись есть Edit's + ComboBox's + RadioGroup

нашел на вашем форуме вывод записи на ту же форму, на которой находится DBGrid
C++
1
2
3
4
5
6
7
8
StudentForm->DataSource1->OnDataChange = NULL;
StudentForm->DataSource1->DataSet->Edit();
Edit1->Text=DataSource1->DataSet->FieldByName("Fam")->Value;
Edit2->Text=DataSource1->DataSet->FieldByName("Imya")->Value;
Edit3->Text=DataSource1->DataSet->FieldByName("Par")->Value;
Edit4->Text=DataSource1->DataSet->FieldByName("Birth")->Value;
ComboBox1->Text=DataSource1->DataSet->FieldByName("Lang")->Value;
ComboBox2->Text=DataSource1->DataSet->FieldByName("Namelvl")->Value;
1. Как вывести значение из выделенной строки в DBGrid на новую форму?
2. При добавлении записи на форме я использую ComboBox1 и ComboBox2. В ComboBox1 Выбираю язык из поля таблицы1, в ComboBox2 выбираю уровень изучаемого языка из другого поля таблицы 1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
switch (StudentAddForm->StudLanguageCombo->ItemIndex)
        {
            case 0:
                StudLvlCombo->Clear();
                ADOQuery1->Close();
                ADOQuery1->SQL->Clear();
                ADOQuery1->SQL->Add("SELECT DISTINCT Lvl FROM English_level");
                ADOQuery1->Open();
                for (int i=0; i<ADOQuery1->RecordCount; i++)
                        {
                        StudLvlCombo->Items->Add(ADOQuery1->FieldByName("Lvl")->AsString);
                        ADOQuery1->Next();
                        }
                break;
 
            case 1:
                StudLvlCombo->Clear();
                ADOQuery1->Close();
                ADOQuery1->SQL->Clear();
                ADOQuery1->SQL->Add("SELECT DISTINCT LvlGerm FROM English_level");
                ADOQuery1->Open();
                for (int i=0; i<ADOQuery1->RecordCount; i++)
                    {
                    StudLvlCombo->Items->Add(ADOQuery1->FieldByName("LvlGerm")->AsString);
                    ADOQuery1->Next();
                    }
                break;
            
            case 2:
                StudLvlCombo->Clear();
        ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
                ADOQuery1->SQL->Add("SELECT DISTINCT LvlFren FROM English_level");
                ADOQuery1->Open();
                for (int i=0; i<ADOQuery1->RecordCount; i++)
                    {
                    StudLvlCombo->Items->Add(ADOQuery1->FieldByName("LvlFren")->AsString);
                    ADOQuery1->Next();
                    }
                break;
Как при изменении записи на новой форме значения ComboBox можно было заново выбирать?

Спасибо.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2012, 11:46
Ответы с готовыми решениями:

В списке выбора ComboBox1 содержится список городов. При выборе города в поле Edit1 вывести телефонный код
19. В списке выбора ComboBox1 содержится список городов. При выборе города в поле Edit1 вывести телефонный код города. Коды городов...

Дату в выделенную ячейку DBGrid1
Приветствую форумчане) Помогите дату из datetimepicker (именно числа) занести в выделенную ячейку. Спасибо.

Как по кнопке вывести ВЫДЕЛЕННУЮ строку в Excel?
Как при нажатии на кнопку вывести в Excel ВЫДЕЛЕННУЮ строку? Подскажите пожалуйста.

8
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
29.05.2012, 12:30
Цитата Сообщение от shukmus Посмотреть сообщение
Как вывести значение из выделенной строки в DBGrid на новую форму?
Через родителя

Добавлено через 5 минут
Цитата Сообщение от shukmus Посмотреть сообщение
1. Как вывести значение из выделенной строки в DBGrid на новую форму?
Собственно как ты и выводишь на старую только указывай родителя
1
 Аватар для shukmus
2 / 2 / 0
Регистрация: 29.01.2010
Сообщений: 6
29.05.2012, 12:35  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Через родителя

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

Собственно как ты и выводишь на старую только указывай родителя
C++
1
2
3
4
5
6
7
8
9
StudentEditForm->ShowModal();
StudentForm->DataSource1->OnDataChange = NULL;
StudentForm->DataSource1->DataSet->Edit();
StudentEditForm->Edit1->Text=StudentForm->DataSource1->DataSet->FieldByName("Fam")->Value;
StudentEditForm->Edit2->Text=StudentForm->DataSource1->DataSet->FieldByName("Imya")->Value;
StudentEditForm->Edit3->Text=StudentForm->DataSource1->DataSet->FieldByName("Par")->Value;
StudentEditForm->Edit4->Text=StudentForm->DataSource1->DataSet->FieldByName("Birth")->Value;
StudentEditForm->ComboBox1->Text=StudentForm->DataSource1->DataSet->FieldByName("Lang")->Value;
StudentEditForm->ComboBox2->Text=StudentForm->DataSource1->DataSet->FieldByName("Namelvl")->Value;
Ты имеешь ввиду это?

странно работает... если первый раз нажимать то выводит текущую строку, затем, например, если отменить и выделить другую строку на новой форме остается старая строка?
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
29.05.2012, 13:13
А почему нельзя сделать вывод на той форме, где расположен твой грид?
0
 Аватар для shukmus
2 / 2 / 0
Регистрация: 29.01.2010
Сообщений: 6
29.05.2012, 13:59  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
А почему нельзя сделать вывод на той форме, где расположен твой грид?
так будет эстетичнее, если добавление в DBGrid происходит через отдельную форму, то и редактирование должно быть также. Но если нет решения, так нет... сделаю на той же форме.

Меня интересует второй вопрос про ComboBox's как это сделать?

При добавлении записи на форме я использую ComboBox1 и ComboBox2. В ComboBox1 Выбираю язык из поля таблицы1, в ComboBox2 выбираю уровень изучаемого языка из другого поля таблицы 1.
Как при изменении записи на новой форме значения ComboBox можно было заново выбирать?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
29.05.2012, 15:10
По поводу первого вопроса там можно разобраться.
По поводу второго вопроса ты же привёл код, он у тебя что не работает?
0
 Аватар для shukmus
2 / 2 / 0
Регистрация: 29.01.2010
Сообщений: 6
29.05.2012, 15:38  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
По поводу второго вопроса ты же привёл код, он у тебя что не работает?
он работает: выводит значение таблицы в значение Text компонента ComboBox и тогда можно будет только стереть и напечатать вручную свой вариант значения. А мне нужно, чтобы пользователю загрузился список языков и их значений, а точнее начиная с уже выбранного значения в DBGrid (cм. картинки)
Миниатюры
Из DBGrid1 вывести текущую (выделенную) строку в Edit1 и ComboBox1   Из DBGrid1 вывести текущую (выделенную) строку в Edit1 и ComboBox1  
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
29.05.2012, 15:52
Значение которое в ДБГрид должно быть выделено в 1 ComboBox'e? Вроде так
C++
1
2
StudentAddForm->StudLanguageCombo->ItemIndex = 
  StudentAddForm->StudLanguageCombo->NameOf(StudentForm->DataSource1->DataSet->FieldByName("Lang")->Value);
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
29.05.2012, 16:08
Вообщем из того что я понял вот как тебе надо сделать.
1. Пробегаешь по полю и заносишь данные в первый комбик и кстати ставишь свойство у комбика csDropDownList.
2. сдесь же на первом комбике в событии ComboBoxChange делаешь запрос на значения таким образом: пробегаешь по полю запросом с выбранным языком из первого комбика и заносишь во второй

Если не разберёшбся выложи проект я гляну
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2012, 16:08
Помогаю со студенческими работами здесь

Содержимое Edit1 вывести в строку типа char
нужно записать строку из Edit1 в строку типа char infix char infix = Edit1-&gt;Text;выдаёт ошибку конвертации... помогите пожалуйста

Как из dbgrid1 добавить строку в dbgrid2?
Как из dbgrid1 добавить строку в dbgrid 2. Также после добавления удалять, очищать строки в dbgrid2

Удалить выделенную строку
Как можно удалить строку с DstaGrid, которая выделена?

Узнать выделенную строку
Ребят, еще вопрос такой: Как узнать какая строка в DBGrid выделена? И как ее можно удалить SQL запросом?(А не ADOQuery.Delete) ...

Удалить выделенную строку StringGrid
type TMyGrid=class(TCustomGrid); procedure TForm1.DeleteARow(Grid: TStringGrid; ARow: Integer); begin ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru