|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.04.2010, 17:10 | #21 |
Регистрация: 25.04.2010
Сообщений: 6
|
Form2.ADOTable1.Active:=false;
Form2.ADOTable1.Active:=true; Form1.Close; Это так, пальцем в небо. Вдруг сработает. или если у тебя на форме ввода DataSource подключен к ADOTable1 можешь прямо через него) если конечно поможет) DataSource1.DataSet.Active:=false; DataSource1.DataSet.Active:=true; Или вообще добавляй прямо через тейбл. |
02.05.2010, 19:43 | #22 |
Пользователь
Регистрация: 28.04.2010
Сообщений: 21
|
|
03.05.2010, 05:05 | #23 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Ошибка: не получается выполнить эту операцию на закрытом dataset. Может так:
Код:
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
03.05.2010, 08:16 | #24 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
04.05.2010, 14:35 | #25 |
Пользователь
Регистрация: 04.05.2010
Сообщений: 15
|
Помогите, пожалуйста.
Мне нужно чтобы из формы в Delphi вводились данные по балансу, причем не один раз, а балансы различных фирм, и потом эти данные сохранялись в таблице БД. Поскажите как это лучше сделать и как лучше сохранять их в Access: для каждого предприятия создавать отдельную таблицу и хранить все в одной, просто различать их по коду предприятия? |
04.05.2010, 15:05 | #26 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
nikta, один вопрос - одна тема.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
09.07.2010, 02:08 | #27 |
Пользователь
Регистрация: 09.07.2010
Сообщений: 13
|
к теме:
=================================== =================================== ============================== unit Unit1; //для примера проверку соединения с БД надо дописать ..... //------------------------------------------------------------------------------ function NotEmptySet(inSet:TDataSet): boolean; // не пусто, функция проверки на наличие записей в сете begin Result := Not (inSet.Bof and inSet.eof); end; procedure DelRec(inSet:TDataSet); // процедура удаление записи begin if (NotEmptySet(inSet)) then begin if MessageDlg(PChar('Удалить запись? - '+Form1.ADOQuery1.FieldByName('Фами лия').AsString),mtConfirmation, mbOKCancel, 0) = mrOK then inSet.Delete end else begin MessageDlg('Нет записей для удаления!',mtInformation,[mbCancel], 0); Exit; end; end; procedure AddRec; // процедура открытия диалога для добавления записи var form2: TForm2; begin form2:=TForm2.Create(Form1); form2.ShowModal; end; procedure EdtRec(inSet:TDataSet); // процедура редактирование записи var form2: TForm2; begin if (NotEmptySet(inSet)) // если сет пустой - незачем выводить запрос then //ну а если не пуста - открываем диалог редактирования begin form2:=TForm2.Create(Form1); form2.Edit1.Text:=Form1.ADOQuery1.F ieldByName('Фамилия').Text; form2.Edit2.Text:=Form1.ADOQuery1.F ieldByName('Имя').Text; form2.ShowModal; end else begin MessageDlg('Нет записей для редактирования!',mtInformation,[mbCancel], 0); Exit; end; end; //------------------------------------------------------------------------------ procedure TForm1.Button1Click(Sender: TObject); //открываем диалог для новой записи begin AddRec; end; procedure TForm1.Button2Click(Sender: TObject); // кнопка редактирования записи (диалог) begin EdtRec(DataSource1.DataSet); end; procedure TForm1.Button3Click(Sender: TObject); // кнопка удаление записи (процедура delrec) begin DelRec(DataSource1.DataSet); end; procedure TForm1.Button4Click(Sender: TObject); begin Application.Terminate; // убиваем приложение end; procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); // обработка нажатия кнопок на активном гриде begin if Key = VK_DELETE then // кнопка Delete - удаление записи begin DelRec(DataSource1.DataSet); // используем процедуру удаления end; if Key = VK_INSERT then // кнопка Insert - добавление записи begin AddRec; // используем процедуру добавления end; if Key = VK_RETURN then // кнопка Enter - редактирование записи begin EdtRec(DataSource1.DataSet); // используем процедуру редактирования end; if Key = VK_LEFT then // кнопка <- - первая запись begin DataSource1.DataSet.First; end; if Key = VK_RIGHT then // кнопка -> - последняя запись begin DataSource1.DataSet.Last; end; end; procedure TForm1.FormActivate(Sender: TObject); begin DBGrid1.SetFocus; //получение гридом фокуса end; end. =================================== =================================== ======================== procedure TForm2.Button1Click(Sender: TObject); begin if (Edit1.Text='') and (Edit2.Text='') then // *** если едиты пустые то *** if (Edit1.Text)='' then // если пустой первый едит (фамилия) begin MessageDlg('Введите фамилию!',mtInformation,[mbOK], 0); // сообщаем что фамилия не указана Edit1.Text:=''; // очищаем на всякий первый едит Edit1.SetFocus; // ставим на него фокус Exit; // выходим из месыджа end; if (Edit2.Text)='' then // если пустой второй едит (имя) begin MessageDlg('Введите имя!',mtInformation,[mbOK], 0); // сообщаем что имя не указано Edit2.Text:=''; // очищаем на всякий второй едит Edit2.SetFocus; // ставим на него фокус Exit; // выходим из месыджа end; // *** иначе, если эдиты не пустые - сохраняем значение едитов в базе *** Form1.ADOQuery1.Edit; Form1.ADOQuery1.FieldByName('Фамили я').Text:=Edit1.Text; Form1.ADOQuery1.FieldByName('Имя'). Text:=Edit2.Text; Form1.ADOQuery1.Post; Close; // закрываем форму ввода данных end; procedure TForm2.Button2Click(Sender: TObject); begin Close; end; procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char); begin //только русские буквы if CharInSet(Key,['0'..'9','A'..'Z','a'..'z',#13]) then key:=#0; end; end. только как пример. чем проще, тем понять лучше. но далеко до идеального варианта. работает. Последний раз редактировалось golopjatov; 10.07.2010 в 00:35. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |