|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Заполнение компонентов на форме из разных таблиц
Доброго времени суток всем. Я совершенно не представляю что делать. У меня есть форма в ней я заполняю всю нужную мне информацию и добавляю её в разные таблицы. На главной форме есть dbGrid в которой отображаются некоторые данные а именно Ф.И.О и мне нужно при выборе записи в Grid и при нажатии на кнопку "Изменить" открывалась предыдущая таблица с заполненными компонентами из разных таблиц соответствующая выбранной записи.
P.S База Access все таблицы имею столбец id_info главная таблица "Ф.И.О" имеет связь один ко многим. Буду благодарен. |
#2
|
|||
|
|||
Цитата:
Если я правельно понял. На событие дабл клик в гриде нужно вызвать вашу форму заполнения и там использовать команду редоктирования Edit. Код:
begin With Datamodule2.People do begin Edit; if Form1.ShowModal = mrOk Then Post else Cancel; end; |
#3
|
||||
|
||||
Ох и не люблю же я такие вопросы. Гадать приходится постоянно.
Может Zhigalov прав, а может и не так. Может у автора несколько таблиц и для каждой нужна своя форма ввода и нужен навигатор перехода между этими формами по аналогии кнопок перехода в IE. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
||||
|
||||
Цитата:
1)На главной форме выделить нужную запись в grid. 2)Нажать кнопку на форме. 3)Должна открыться форма заполнения только уже с заполненными компонентами из разных таблиц. 4)Потом я вношу изменения жму кнопку и все изменения вносятся в разные таблицы. (не добавление а изменение текущих записей) Добавление производится через эту-же форму таким способом: Код:
procedure TForm4.Button5Click(Sender: TObject); begin if DataModule1.ADOQuery2.Active = True then DataModule1.ADOQuery2.Close; DataModule1.ADOQuery2.sql.Text := 'insert into Работники (Фамилия, Имя, Отчество, Подразделение, Статус_работника, Пол, id_info) values ("' + Edit_fio.Text + '", "' + Edit_name.Text + '", "' + Edit_otch.Text + '", "' + ComboBox1.Text + '", "' + DBLookUpCombobox.Text + '", "' + ComboBox2.Text + '", "' + Inttostr(seInfo.Value) + '")'; DataModule1.ADOQuery2.ExecSQL; |
#5
|
||||
|
||||
Так, уже проясняется. Итак, вот что вам видимо нужно:
1. Поместить на вторую форму для каждой из используемых таблиц свою пару компонентов TAdoTable и TDataSource. Связать TAdoTable с TDataSource через свойство TDataSource.Dataset 2. Далее надо установить правильно связь между самими таблицами, так-что бы данные правильно разносились автоматом. Делается это через свойство таблицы MasterSource и связку по ключевым полям MasterFields Как я понял таблица Работники у вас главная (MasterSource) а на нее завязаны уже остальные таблицы. Не имея схемы вашей БД я пока дальше немогу объяснить что и как вам связать. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
||||
|
||||
|