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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2014, 13:41   #1
Evgen7
Пользователь
 
Регистрация: 13.02.2014
Сообщений: 19
Радость Добавление записи из одного DBGrid в другой DBGrid c помощью кнопки, а также удаление записи

Всем привет!Делаю БД в связке ADO+Access2007+Delphi.
В общем поставил ADOConnection(он на другой форме(Form2)).
На форме Form3 ADODataSet, DataSource, DBGrid, SpeedButton.
Данные в DBGrid2 отображаются, осталось сделать кнопку на добавление записи, в другой DBGrid1, который находится Form2. Насчет удаления,кнопка для удаления записи в DBGrid1, в которую добавляю.
Наведите на путь истинный.Спасибо. P.s(Пишу программу на диплом, с Delphi и остальным мало знаком, так что не серчайте).
Evgen7 вне форума Ответить с цитированием
Старый 14.02.2014, 18:12   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
другой DBGrid1, который находится Form2
Как он соединён с БД?

Последний раз редактировалось Streletz; 14.02.2014 в 18:20.
Streletz вне форума Ответить с цитированием
Старый 14.02.2014, 19:32   #3
Evgen7
Пользователь
 
Регистрация: 13.02.2014
Сообщений: 19
По умолчанию

Вообщем на одной форме(Form1) DBGrid1,DataSource1,ADODataSet1,ADO Connection, который подсоединен к БД Access2007 через провайдер и кнопка 'Удалить запись'.
На той же форме кнопка вызова второй формы(Form2), в этой форме находится DBGrid2,кнопка 'Добавить запись', которая должна добавить запись в DBGrid1 , также в этой форме ADODataSet2 и DataSource2.
AdoConnection только на Form1 и Компоненты Form2 подключаются к нему самому.
Evgen7 вне форума Ответить с цитированием
Старый 14.02.2014, 20:37   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

У ADODataset есть методы Insert и Delete. В простейшем случае можно воспользоваться ими.
Если структура данных сложная, то лучше использовать SQL запрос, через ADOQuery или ADOCommand.
Streletz вне форума Ответить с цитированием
Старый 16.02.2014, 12:33   #5
Evgen7
Пользователь
 
Регистрация: 13.02.2014
Сообщений: 19
По умолчанию

По поводу методов Insert и Delete.Можно поподробнее.Не могу пока в инете нарыть(.
Evgen7 вне форума Ответить с цитированием
Старый 16.02.2014, 12:53   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
with DBGrid1.DataSource.DataSet do begin
 insert;
 for i:=0 to FieldsCount-1 do
  Fields[i].value:=DBGrid2.DataSource.DataSet.Fields[i].value;
 ...
 Post; // это если нужно добавленное сразу сохранить.
end;
Пример создает новую запись в таблице связанной с DBGrid1, перетаскавая в нее все поля из текущей записи таблицы в DBGrid2
Идея ясна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.02.2014, 12:59   #7
Evgen7
Пользователь
 
Регистрация: 13.02.2014
Сообщений: 19
По умолчанию

Идею понял.Вот только код куды?)И процедурку каку?Я сильно разбираюсь просто.Извините.
Evgen7 вне форума Ответить с цитированием
Старый 16.02.2014, 13:01   #8
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
Идею понял.Вот только код куды?)И процедурку каку?Я сильно разбираюсь просто.Извините.
ну как куды.... на батон который переносит запись с одной таблицы в другую
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 16.02.2014, 13:37   #9
Evgen7
Пользователь
 
Регистрация: 13.02.2014
Сообщений: 19
По умолчанию

procedure TForm3.SpeedButton1Click(Sender: TObject);
var i,FieldsCount:integer;
begin
with DBGrid1.DataSource.DataSet do begin
insert;
for i:=0 to FieldsCount-1 do
Fields[i].value:=DBGrid2.DataSource.DataSet. Fields[i].value;

Этот код на Form3
На последней строке ругается.
У vtyz на каждой форме все компоненты называются с единицы(то есть DB....1)
Похоже нужно что-то на Form2 написать.
Пока не разберусь.
Evgen7 вне форума Ответить с цитированием
Старый 16.02.2014, 13:43   #10
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
Fields[i].value:=DBGrid2.DataSource.DataSet. Fields[i].value;

Этот код на Form3
На последней строке ругается.
если у тебя DBGrid2 на Form2, тогда поменяй строку на которую ругается на:
Код:
:=Form2.DBGrid2.DataSource.DataSet. Fields[i].value;
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление новой записи в DBGrid из 2х DBLookupComboBox ta_n_u_s_h_ka БД в Delphi 0 05.06.2012 18:21
Удаление записи из DBGrid через запрос manula БД в Delphi 1 23.05.2012 10:48
Добавление записи через DBGrid или Edit. IgoreKMaN БД в Delphi 1 01.05.2012 11:24
Добавление записи в DBGrid c помощью кода Droid БД в Delphi 12 27.06.2009 16:07
добавление и удаление столбцов в DBGrid по нажатию кнопки MargoNik БД в Delphi 6 27.04.2009 15:44