Есть приложение с бд на access из двух таблиц. В приложении две формы, каждая из которой ссылается на таблицу.
В первой таблице хранится основная информация (ID) с расшифровкой (Name).
Вторая таблица - подчиненная. В ней хранится информация о дополнительных данных, описанных в таблице 1.
Надо сделать так, чтобы во второй форме поле "ID" заполнялось не от руки, а подхватывало значение поле "ID" из первой таблицы.
Для этого использовал компонент DBLookupComboBox, напихал на форму дополнительно ADOTable2 и DataSource2 для связи с первой таблицей.
Столкнулся с проблемой. Когда заполняю выпадающим списком поле DBLookupComboBox, программа в таблице создает новую запись с этим ID. А оставшиеся 3 поля в которых просто текст, идут в следующую строку, т.е. в запись №2. Из-за этого не могу сделать связи в БД (из-за того что ключевое поле получается пустым).
Получается сдвиг на одну строчку. Как сделать так, чтобы запись всех полей происходила ТОЛЬКО по нажатию кнопки добавить?
код для заполнения прописан:
procedure TForm2.Button1Click(Sender: TObject);
begin
ADOTable1.Insert;
ADOTable1['id']:=DBLookupComboBox1.Text;
ADOTable1['test1']:=Edit1.Text;
ADOTable1['test2']:=Edit2.Text;
ADOTable1['test3']:=Edit3.Text;
ADOTable1.Post;
begin
Edit1.clear;
Edit2.clear;
Edit3.clear;
end;
end;
Скрин и приложение прикрепляю.
P.s. приложение состряпал на скорую руку, возможно придется поправить пути в компонентах AdoTable.
Приложение