Заполните внешний ключ, используя комбо / раскрывающийся список в форме
Я хотел бы заполнить поле внешнего ключа в одной таблице, используя выпадающий список / выпадающий список, где значения, которые видит пользователь, являются не идентификаторами, а полем описания из внешней таблицы.
Рассмотрим следующую настройку:
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 ответ
Это невозможно сделать с помощью мастера форм. Связанный материал формы - красная сельдь.
Но это можно сделать довольно легко следующим образом.
- Используйте мастер форм, чтобы получить форму как можно дальше с полями из
people
только стол. - Отредактируйте форму в режиме конструктора (* подсказка: значок совершенно не интуитивно понятен, но выглядит так: /ima ges/390a4e9bf632350606fafd5559d47304a924aec2.png)
- Добавьте элемент управления "список" в вашу форму (примечание: не поле со списком, это что-то другое в Base). Это откроет волшебника, который проведет вас через все остальное.
- В
Choose the table from which the data should be used as basis for the list content
, Выбратьjobs
, - Выбрать
description
какDisplay field
, - Под
Field from the Value Table
Выбратьjob_id
и подField from the List Table
Выбратьid
,
Это оно! Раскрывающийся список теперь будет работать точно так, как ожидается: /ima ges/68dea2546ed4386a5ac40c982c31947e2bbd16a9.png
Если вам не нравятся мастера, вы можете вручную отредактировать элемент управления List Box следующим образом:
- Добавьте свой список, затем закройте мастер. Нажмите на значок "Управление", который является шестеренкой. (Это также не имеет смысла.)
- Введите информацию следующим образом, где "Список содержимого" говорит "ВЫБЕРИТЕ" ОПИСАНИЕ ", " ИД "ИЗ" ЗАДАНИЙ ". Обратите внимание, что поле, которое вы хотите видеть пользователю, должно идти первым, а" Связанное поле "равно нулю. -индексирован и должен ссылаться на столбец идентификатора.
/ima ges/6cc31e1d14867d55f7a081a9bdf1106d13afedc8.png
Это оно!