2

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

Рассмотрим следующую настройку:

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

3

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

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

  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 .

Это оно! Раскрывающийся список теперь будет работать точно так, как ожидается: Раскрытие вакансии

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

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

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

Это оно!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .