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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2010, 13:41   #1
kmvteam
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 21
По умолчанию Delphi+Ado+Access

Добрый день.
Имеется главная форма с DbGrid, datasource, adotable
К DBgrid подключена таблица в базе access.
По кнопке открывается вторая форма на которой можно добавить данные в таблицу на первой форме. Данные добавляются но возникла проблема как обновить DbGrid на первой форме.

На первой форме есть кнопка с кодом:
adoTAble1.Close;
adoTAble1.open;
При её использование все обновляется

При попытке сделать тоже самое на второй форме, ничего не выходит(в uses форму прописал).
Form1.adoTAble1.Close;
Form1.adoTAble1.Open;
То есть вторая форма добавляет запись и потом закрывается. И на первой форме ничего не происходит.
Если на втрой форме вынести
на отдельную кнопку
Form1.adoTAble1.Close;
Form1.adoTAble1.Open;
То тоже работает. как занести в одну кнопку и чтобы работалою
Цитата:
var
com:string;
i:integer;
begin
adoquery1.close;
adoquery1.sql.text:='insert into Картотека(Код_сотрудника,Подразделе ние,Должность,Фамилия,Имя,Отчество, Пол) values (:Код_сотрудника,:Подразделение,:До лжность,:Фамилия,:Имя, :Отчество,:Пол)';
adoquery1.Parameters.ParamByName('Ф амилия').value:=edit1.Text;
adoquery1.Parameters.ParamByName('И мя').value:= edit2.Text;
adoquery1.Parameters.ParamByName('О тчество').value:=edit3.Text;
adoquery1.Parameters.ParamByName('П ол').value:=combobox1.Text;
adoquery1.Parameters.ParamByName('К од_сотрудника').value:= edit5.Text;
adoquery1.Parameters.ParamByName('П одразделение').value:=combobox2.Tex t;
adoquery1.Parameters.ParamByName('Д олжность').value:=edit4.Text;
adoquery1.execSQL;

Form2.ADOTable1.Close;//не работает
Form2.ADOTable1.Open;//не работает
Form1.Close;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.ADOTable1.Close; //так работает
Form2.ADOTable1.Open; // так работает
end;
kmvteam вне форума Ответить с цитированием
Старый 28.04.2010, 13:54   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А если так?
Код:
var
com:string;
i:integer;
begin
adoquery1.close;
adoquery1.sql.text:='insert into Картотека(Код_сотрудника,Подразделе ние,Должность,Фамилия,Имя,Отчество, Пол) values (:Код_сотрудника,:Подразделение,:До лжность,:Фамилия,:Имя, :Отчество,:Пол)';
adoquery1.Parameters.ParamByName('Ф амилия').value:=edit1.Text;
adoquery1.Parameters.ParamByName('И мя').value:= edit2.Text;
adoquery1.Parameters.ParamByName('О тчество').value:=edit3.Text;
adoquery1.Parameters.ParamByName('П ол').value:=combobox1.Text;
adoquery1.Parameters.ParamByName('К од_сотрудника').value:= edit5.Text;
adoquery1.Parameters.ParamByName('П одразделение').value:=combobox2.Tex t;
adoquery1.Parameters.ParamByName('Д олжность').value:=edit4.Text;
adoquery1.execSQL;

Form2.ADOTable1.Refresh;
Form1.Close;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.04.2010, 14:00   #3
kmvteam
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 21
По умолчанию

Спасибо за ответ.
Но не работает.

При
Form2.ADOTable1.Close;
Form2.ADOTable1.Open;
Добавляю данные 1, не появляется
Добавляю данные 2, появляется данные 1
kmvteam вне форума Ответить с цитированием
Старый 28.04.2010, 14:03   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Так, давай разберемся вместе. На Form1 у вас что расположено: DBGrid1, DataSource1, ADOTable1? А на Form2 что у тебя? И тот код, что ты привел, ты выполняешь на Form2?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.04.2010, 14:13   #5
kmvteam
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 21
По умолчанию

Form2:
DBgrid,DataSource1, adoTable1
DBgrid подключена база через DataSource1 а он через adoTable1
Кнопка button1 с кодом Form1.Show;

form1:adoquery1,DataSource1
Код что привел выполняется на форме 1

Здесь
Button1: TButton;
Button2: TButton;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
Label4: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
ComboBox1: TComboBox;
Combobox2: TComboBox;
код формы:
Цитата:
var
com:string;
i:integer;
begin
adoquery1.close;
adoquery1.sql.text:='insert into Картотека(Код_сотрудника,Подразделе ние,Должность,Фамилия,Имя,Отчество, Пол) values (:Код_сотрудника,:Подразделение,:До лжность,:Фамилия,:Имя, :Отчество,:Пол)';
adoquery1.Parameters.ParamByName('Ф амилия').value:=edit1.Text;
adoquery1.Parameters.ParamByName('И мя').value:= edit2.Text;
adoquery1.Parameters.ParamByName('О тчество').value:=edit3.Text;
adoquery1.Parameters.ParamByName('П ол').value:=combobox1.Text;
adoquery1.Parameters.ParamByName('К од_сотрудника').value:= edit5.Text;
adoquery1.Parameters.ParamByName('П одразделение').value:=combobox2.Tex t;
adoquery1.Parameters.ParamByName('Д олжность').value:=edit4.Text;
adoquery1.execSQL;

Form2.ADOTable1.Close;//не работает
Form2.ADOTable1.Open;//не работает
Form1.Close;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.ADOTable1.Close; //так работает
Form2.ADOTable1.Open; // так работает
end;
kmvteam вне форума Ответить с цитированием
Старый 28.04.2010, 14:18   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А если так?
Код:
var
com:string;
i:integer;
begin
adoquery1.close;
adoquery1.sql.text:='insert into Картотека(Код_сотрудника,Подразделе ние,Должность,Фамилия,Имя,Отчество, Пол) values (:Код_сотрудника,:Подразделение,:До лжность,:Фамилия,:Имя, :Отчество,:Пол)';
adoquery1.Parameters.ParamByName('Фамилия').value:=edit1.Text;
adoquery1.Parameters.ParamByName('Имя').value:= edit2.Text;
adoquery1.Parameters.ParamByName('Отчество').value:=edit3.Text;
adoquery1.Parameters.ParamByName('Пол').value:=combobox1.Text;
adoquery1.Parameters.ParamByName('Код_сотрудника').value:= edit5.Text;
adoquery1.Parameters.ParamByName('Подразделение').value:=combobox2.Tex t;
adoquery1.Parameters.ParamByName('Должность').value:=edit4.Text;
adoquery1.execSQL;

Form2.DataSource1.DataSet.Refresh;
Form1.Close;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.04.2010, 14:31   #7
kmvteam
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 21
По умолчанию

Не обновляет хоть убей её.
Причем я пробовал сделать через батон3, то есть форма2 не закрывается, потом жмеш батон 3, обновляется и закрывается форма 2.
Как из под одной кнопки запустить вторую?
Button3.click;?
kmvteam вне форума Ответить с цитированием
Старый 28.04.2010, 14:47   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А без закрытия Form1 работает?
Код:
var
com:string;
i:integer;
begin
Form2.adoquery1.close;
Form2.adoquery1.sql.text:='insert into Картотека(Код_сотрудника,Подразделе ние,Должность,Фамилия,Имя,Отчество, Пол) values (:Код_сотрудника,:Подразделение,:До лжность,:Фамилия,:Имя, :Отчество,:Пол)';
Form2.adoquery1.Parameters.ParamByName('Ф амилия').value:=edit1.Text;
Form2.adoquery1.Parameters.ParamByName('И мя').value:= edit2.Text;
Form2.adoquery1.Parameters.ParamByName('О тчество').value:=edit3.Text;
Form2.adoquery1.Parameters.ParamByName('П ол').value:=combobox1.Text;
Form2.adoquery1.Parameters.ParamByName('К од_сотрудника').value:= edit5.Text;
Form2.adoquery1.Parameters.ParamByName('П одразделение').value:=combobox2.Tex t;
Form2.adoquery1.Parameters.ParamByName('Д олжность').value:=edit4.Text;
Form2.adoquery1.execSQL;

Form2.ADOTable1.Close;
Form2.ADOTable1.Open;
//Form1.Close;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 28.04.2010 в 14:49.
artemavd вне форума Ответить с цитированием
Старый 28.04.2010, 14:50   #9
kmvteam
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 21
По умолчанию

нет, не работает.
Вложения
Тип файла: rar project.rar (307.1 Кб, 25 просмотров)

Последний раз редактировалось kmvteam; 28.04.2010 в 15:00.
kmvteam вне форума Ответить с цитированием
Старый 28.04.2010, 14:52   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Можете проект скинуть? Без экзешника только, чтобы меньше весил архив.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
access+delphi+ado aid_013 БД в Delphi 2 10.07.2010 09:28
delphi+ado+access Jo2000 Помощь студентам 16 27.02.2010 08:04
Delphi <--> ADO <--> Access acid02 БД в Delphi 4 09.04.2009 16:29
БД Access + Delphi, ADO. по сети Cyn4uk БД в Delphi 4 04.01.2008 00:06
Delphi+ADO+Access Turpa Помощь студентам 12 15.10.2007 23:29