使用表單上的組合/下拉式選單填滿外鍵

使用表單上的組合/下拉式選單填滿外鍵

我想使用組合框/下拉列表填充一個表中的外鍵字段,其中用戶看到的值不是 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

使用表單精靈無法完成此操作。連結表單的內容是一個轉移注意力的東西。

但這是可以完成的相當很容易,如下。

  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. 輸入如下訊息,其中“清單內容”顯示“SELECT“DESCRIPTION”,“ID”FROM“JOBS”。請注意,您希望使用者看到的字段必須首先,「綁定欄位」是零索引的,應該引用 ID 列。

控制屬性視窗

就是這樣!

相關內容