Як правильно використовувати dblookupcombobox для вибірки даних з таблиці (delphi 7)

  • Delphi

Є додаток з бд на access з двох таблиць. У додатку дві форми, кожна з якої посилається на таблицю.
У першій таблиці зберігається основна інформація (ID) з розшифровкою (Name).
Друга таблиця - підлегла. У ній зберігається інформація про додаткові даних, описаних в таблиці 1.

Треба зробити так, щоб у другій формі поле "ID" заповнювався немає від руки, а підхоплювало значення поле "ID" з першої таблиці.
Для цього використовував компонент DBLookupComboBox, напхав на форму додатково ADOTable2 і DataSource2 для зв'язку з першою таблицею.

Зіткнувся з проблемою. Коли заповнюю списком, що випадає поле DBLookupComboBox, програма в таблиці створює нову запис з цим ID. А решту 3 поля в яких просто текст, йдуть в наступний рядок, тобто в запис №2. Через це не можу зробити зв'язку в БД (через те що ключове поле виходить порожнім).

Виходить зрушення на одну сходинку. Як зробити так, щоб запис всіх полів відбувалася ТІЛЬКИ після натискання кнопки додати?

код для заповнення прописаний:


Скрін і додаток прикріплюю.
P.s. додаток сфабрикував на швидку руку, можливо доведеться поправити шляху в компонентах AdoTable.
додаток

Проблему вирішив у такий спосіб:

1. створив окрему кнопку, яка створює нову (порожню) рядок, а заодно записує значення з цього поля.
2. в другій кнопці залишив запис залишилися полів. вийшов ось такий ось код:


Принцип дії:
1. додаємо порожній рядок;
2. вибираємо значення в поле DBLookupComboBox1;
3. заповнюємо інші поля;
4. натискаємо на кнопку "Записати". і отримуємо те, що було потрібно.

Мінуса два:
1. додалася нова кнопка. Тепер щоб внести новий запис, треба натискати на дві кнопки кожен раз, замість однієї:
2. Якщо внесли нові дані в таблицю 1, щоб їх підхопив компонент DBLookupComboBox1, потрібно перезапустити програму.

Ваш відповідь на питання

Увійдіть, щоб написати відповідь

  • Delphi
  • Delphi
  • Delphi
  • Delphi
  • Москва
  • Повний робочий день
  • від 80 000 до 120 000 крб.
  • Москва
  • Повний робочий день
  • від 60 000 до 100 000 руб.
  • Москва
  • Повний робочий день
  • від 60 000 до 100 000 руб.
  • Москва
  • Повний робочий день
  • від 150 000 до 240 000 руб.
  • Санкт-Петербург
  • Повний робочий день
  • від 60 000 руб.

5000 руб. / За проект

50000 руб. / За проект

6000 руб. / За проект

Увійдіть на сайт

Щоб задати питання та отримати на нього кваліфіковану відповідь.

Схожі статті