我想使用組合框/下拉列表填充一個表中的外鍵字段,其中用戶看到的值不是 ID,而是外部表中的描述字段。
考慮以下設定:
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
僅使用表格中的欄位來取得表單。 - 在設計模式下編輯表單(*提示:該圖示完全不直觀,但看起來像這樣: )
- 將「列錶框」控制項新增至您的表單(注意:不是組合框,這些在 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
。
如果您不喜歡嚮導,可以手動編輯列錶框控件,如下所示:
- 新增列錶框,然後關閉精靈。點擊“控制”圖標,這是一個齒輪。 (這也是沒有道理的。)
- 輸入如下訊息,其中“清單內容”顯示“SELECT“DESCRIPTION”,“ID”FROM“JOBS”。請注意,您希望使用者看到的字段必須首先,「綁定欄位」是零索引的,應該引用 ID 列。
就是這樣!