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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2015, 13:14   #1
Armageddets
Форумчанин
 
Регистрация: 30.06.2012
Сообщений: 145
По умолчанию Db grid передать данные в нужную конкретную ячейку

Есть проект подключил базу данных Acces. Эта же база подключена на четырех формах в четыре разных DbGrid. У кахждой Dbgrid свои Adotable,AdoConnections,DataSource. Мне необходимо при клике на ячейке (в таблице четвертой формы) получить строку и столбец этой ячейки. Далее в ячейку с такими координатами, но уже в таблицу третьей формы передать нужное значение.

Насколько я понял при клике по ячейке можно в событии OnCellClick. Я пробовал получать координаты ячеки так:

Код:
ShowMessage(IntToStr(DBGrid1.DataSource.DataSet.RecNo)); //stroka aktivnaya
ShowMessage(DBGrid1.SelectedField.FieldName); //imya stolbtsa
ShowMessage(IntToStr(DBGrid1.SelectedIndex)); //nomer stolbtsa aktivnoy yacheyki
В итоге вроде правильные значения отображаются. Теперь зная активную ячейку я никак не могу понять как мне передать данные в такую же ячейку, но уже другой таблицы, такого же размера. Я пробовал разными способами, но безуспешно:

Цитата:
1) Form3.ADOTable1.IndexFields[DBGrid1.SelectedIndex].Value:=Data;
2)Form3.ADOTable1.DataSetField.Fiel dValues[DBGrid1.SelectedIndex]:=Data;
3) Form3.DBGrid1.Fields[DBGrid1.SelectedIndex].Value:=Data;
Данные так не передаются. Появляется ошибка для варианта 2: Eacces violation. Наверное я залажу за границы. Но ведь я указываю ту же ячейку (может неправильно конечно) в почти такой же таблице (кол-во строк и столбцов совпадает). Для варианта 1 выскакивает ошибка List index bounds of 3...

Может можно синхронизировать активные ячейки в этих таблицах и передать нужные данные? В общем как передать какое-либо значение в нужную ячейку? Например, как передать цифру 5 в третий столбец и вторую строку (координаты ячейки). Заранее благодарен всем за помошь.
Armageddets вне форума Ответить с цитированием
Старый 25.01.2015, 13:31   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

для передачи значений в DBGrid/Table, изначально необходимо перевести таблицу в режим редактирования, и после подтвердить запись

Если источник данных TTable то Table1.Edit или DBGrid.DataSource.DataSet.Edit
затем через POST подтвердить изменения в таблице/гриде и обновить данные. Редактируется та строка, на которой сейчас фокус
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 25.01.2015, 14:08   #3
Armageddets
Форумчанин
 
Регистрация: 30.06.2012
Сообщений: 145
По умолчанию

Пишу при клике по DBGrid на четвертой форме:

Цитата:
Form3.DBGrid1.DataSource.DataSet.Ed it;
Form3.DBGrid1.DataSource.DataSet.Re cNo:=DBGrid1.DataSource.DataSet.Rec No;
Form3.DBGrid1.DataSource.DataSet.Fi eldByName( Form4.DBGrid1.SelectedField.FieldNa me ).Value:=Data;
Form3.DBGrid1.DataSource.DataSet.Po st;
Выскакивает ошибка "Недостаточно сведений для обновления ключевого поля". В чем тут дело?
Armageddets вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать данные с формы UKRtortik PHP 5 23.04.2014 17:59
Копирование в нужную ячейку evg.i Microsoft Office Excel 2 19.01.2011 06:27
Умножение одной ячейки на нужную ячейку в другой таблице. spring.girl Microsoft Office Access 3 13.11.2010 10:09
Данные сохранить в файл и без перезапуска программы отобразить в grid-e xdevi Помощь студентам 2 29.01.2008 09:17