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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2010, 00:17   #1
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию добавление правильно (ADO)

Всем привет Есть 2 таблицы Сотрудники и Образование. База Access(adoconnection, adotable, ds). Связанны они по полю Код сотрудника. Я организовал добавление, но в таблице Образование приходится вбивать код сотрудника вручную- выглядит это некультяпно Может кто знает как сделать чтобы это поле заполнялось автоматически?
Вложения
Тип файла: rar На доработку.rar (360.4 Кб, 10 просмотров)
Lodas вне форума Ответить с цитированием
Старый 20.05.2010, 01:15   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

вот вроде заменил DBedit на DBLookupComboBox1
Вложения
Тип файла: rar На доработку.rar (360.5 Кб, 15 просмотров)
vovk вне форума Ответить с цитированием
Старый 20.05.2010, 10:45   #3
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

Да...спасибо. Мне понравилось, носегодня ходил к преподу, он сказал что это не прокатит. Сказал так: "Назначить коду сотрудника переменную, запомнить курсор на каком сотруднике остановился и добавть эту переменную при добавлени". Как мне это реализовать?

я так прикидываю n:=0;
n:=ADOTable2.RecordCount;
ADOTable2.First;
Lodas вне форума Ответить с цитированием
Старый 20.05.2010, 10:48   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Как я понял, то вам просто нужно добавить код сотрудника, который содержится в некой переменной.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.05.2010, 10:51   #5
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

да. вы правильно поняли.

но как это программно прописать? я еще с таким не сталкивался

Последний раз редактировалось Stilet; 20.05.2010 в 13:44.
Lodas вне форума Ответить с цитированием
Старый 20.05.2010, 11:29   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Я к сожалению сейчас на работе и скачать ваш проект нет возможности, нет Delphi здесь. Напишите сюда процедуру, с которой у вас проблемы, подумаем че там можно сделать.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.05.2010, 11:46   #7
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

Я даже не знаю как обьяснить.... Без просмотра исходника там пожалуй не обойтись. Вообщем есть 2 таблицы. При добавлении в образование приходится вбивать код сотрудника. Надо организовать это программно... назначив коду сотрудника переменную и чтобы она заполнялась при добавлении.

If (DBEdit1.Text = ЗДЕСЬ БУДЕТ ЭТА ПЕРЕМЕННАЯ '')or (DBEdit2.Text = '') or (DBEdit3.Text = '')or (DBEdit4.Text = '')or (DBEdit5.Text = '')or (DBEdit6.Text = '')then
ShowMessage('ВНИМАНИЕ! Заполните все поля на форме.')
else
begin
DM.ADO_Obrazov.Post;
Form6.Close;

Блин я даже толком обьяснить ничего не могу......
Lodas вне форума Ответить с цитированием
Старый 20.05.2010, 11:52   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

А имена сотрудников то где смотреть? в каком компоненте отображать разрешили? ну вот ещё пара вариантов с переменной
Вложения
Тип файла: rar На доработку.rar (361.0 Кб, 13 просмотров)
vovk вне форума Ответить с цитированием
Старый 20.05.2010, 12:03   #9
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

Второй вариант смотриться классно... Единственный вопрос, не могли бы вы мне его расшифровать? Будет защита диплома как никак- придеруться спросят...

Код:
with TForm3.Create(self) do
begin
try
 Position:=poOwnerFormCenter;
BitBtn1.Visible:=false;
BitBtn2.Visible:=false;
with TBitBtn.Create(BitBtn1.Owner) do
begin
  Caption:='Выбрать';
  Left:=BitBtn1.Left;
  Top:= BitBtn1.Top;
  ModalResult:=mrOk;
  Parent:=BitBtn1.Parent;
  end;
 with TBitBtn.Create(BitBtn1.Owner) do
begin
  Caption:='Отмена';
  Left:=BitBtn2.Left;
  Top:= BitBtn2.Top;
  ModalResult:=mrCancel;
  Parent:=BitBtn2.Parent;
  end;
 ShowModal;
  if ModalResult=mrOk then
    begin
     Form6.Edit1.Text:=DBGrid1.DataSource.DataSet.FieldByName('name').AsString;
     kod_sotr:= DBGrid1.DataSource.DataSet.FieldByName('kod_sotr').AsInteger;
    end;
   finally
Free;
end;

Последний раз редактировалось Stilet; 20.05.2010 в 13:44.
Lodas вне форума Ответить с цитированием
Старый 20.05.2010, 12:16   #10
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
//создаём объект класа TForm3
with TForm3.Create(self) do
begin
try
//позиционируем по середине формы родителя
Position:=poOwnerFormCenter;
//скрываем ненужные кнопки
BitBtn1.Visible:=false;
BitBtn2.Visible:=false;
//создаём кнопку для "выбора"
with TBitBtn.Create(BitBtn1.Owner) do
begin
//тут свойства кнопки описываем заголовок, положение и тп
Caption:='Выбрать';
Left:=BitBtn1.Left;
Top:= BitBtn1.Top;
ModalResult:=mrOk;
Parent:=BitBtn1.Parent;
end;
//создаём кнопку для "отказа" 
with TBitBtn.Create(BitBtn1.Owner) do
begin
//тут свойства кнопки описываем заголовок, положение и тп
Caption:='Отмена';
Left:=BitBtn2.Left;
Top:= BitBtn2.Top;
ModalResult:=mrCancel;
Parent:=BitBtn2.Parent;
end;
//отображаем форму модально
ShowModal;
if ModalResult=mrOk then
//если нажата кнопка выбора, то то заносим данные  из текущей записи связанного с 
// DBGrid1 датасета из поля bp 'name' в Edit1.text, из поля 'kod_sotr' в переменную kod_sotr
begin
Form6.Edit1.Text:=DBGrid1.DataSourc e.DataSet.FieldByName('name').AsStr ing;
kod_sotr:= DBGrid1.DataSource.DataSet.FieldByN ame('kod_sotr').AsInteger;
end;
finally
//уничтожаем форму, и соответственно все компоненты которые ей принадлежат
Free;
end;
vovk вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADO.NET: VS 2005 C# + Sql server express: добавление записи в таблицу kostyan23 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 02.03.2010 14:04
Добавление записи в таблицу (ADO) Yura_S БД в Delphi 12 25.11.2009 19:11
ADO. Запрос на добавление. Ошибка. Son БД в Delphi 13 09.01.2009 20:15
ADO + SQL Server. Как правильно организовать одновременную работу с таблицей Mouse123 БД в Delphi 17 04.07.2008 17:35