Заполните внешний ключ, используя выпадающий список/комбо в форме

Заполните внешний ключ, используя выпадающий список/комбо в форме

Я хотел бы заполнить поле внешнего ключа в одной таблице с помощью раскрывающегося списка, где значения, которые видит пользователь, являются не идентификаторами, а полем описания из внешней таблицы.

Рассмотрим следующую схему:

create table people (
  id int identity primary key,
  name varchar(250),
  job_id int
);
create table jobs (
  id int identity primary key,
  description varchar(250)
);
insert into jobs(description) values 'foo';
insert into jobs(description) values 'bar';

Я указал связь внешнего ключа в окне связей:

отношение внешнего ключа

И я бы хотел, чтобы пользователь видел это jobs.descriptionпри создании нового personчерез форму.

Но я не вижу, как это сделать. Если я создаю форму на основе запроса, который объединяет две таблицы, то я не могу создать новые данные, а если я создаю форму на основе people, то Subform based on existing relationопция становится серой: Подчиненная форма, основанная на существующем отношении

В Access это легко сделать с помощью мастера форм:

Форма доступа

Как этого добиться в LibreOffice/OOo Base?

решение1

Это невозможно сделать с помощью мастера форм. Связанные формы — это отвлекающий маневр.

Но это может быть сделановесьмалегко, следующим образом.

  1. Используйте мастер форм, чтобы заполнить форму как можно шире, используя peopleтолько поля из таблицы.
  2. Отредактируйте форму в режиме конструктора (*подсказка: иконка совершенно не интуитивно понятна, но выглядит так: значок режима дизайна)
  3. Добавьте элемент управления «список» в форму (примечание: это не выпадающий список, это что-то другое в Base). Это откроет мастер, который проведет вас через все остальное.
  4. В Choose the table from which the data should be used as basis for the list content, выберите jobs.
  5. Выберите descriptionв качестве Display field.
  6. Под Field from the Value Tableвыбором job_idи под Field from the List Tableвыбором id.

Вот и все! Теперь раскрывающийся список будет работать именно так, как и ожидалось: Раскрывающийся список заданий

Если вам не нравятся мастера, вы можете вручную отредактировать элемент управления «Список» следующим образом:

  1. Добавьте свой список, затем закройте мастер. Щелкните значок «Управление», который представляет собой шестеренку. (Это также не имеет смысла.)
  2. Введите информацию следующим образом, где в поле «Содержимое списка» указано «ВЫБЕРИТЕ «ОПИСАНИЕ», «ИДЕНТИФИКАТОР» ИЗ «ЗАДАНИЯ». Обратите внимание, что поле, которое вы хотите, чтобы пользователь видел,долженидет первым, и что «Привязанное поле» имеет нулевую индексацию и должно ссылаться на столбец идентификатора.

Окна свойств управления

Вот и все!

Связанный контент