建立包含子表單的表單 (一對多表單)
Applies ToMicrosoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

當您使用關聯數據 (儲存在 Access中不同數據表) 的相關數據時,您通常需要在同一份表單上檢視多個數據表或查詢。 例如,您可能想查看某一個資料表的客戶資料,同時查看該客戶在另一個資料表中的訂單資訊。 子表單是執行此作業的便利工具,而且 Access 也提供幾種方式可協助您快速建立子表單。

您想要做什麼?

了解子表單

子表單是插入另一個表單的表單。 主要的表單稱為主表單,附加於表單中的表單則稱為子表單。 表單/子表單的組合有時稱為階層式表單、主要/詳細表單或父/子表單。

當您想要顯示有一對多關聯之資料表或查詢的資料時,子表單尤其有效。 一對多關聯是兩個資料表之間的關聯,其中主要資料表每筆記錄的主索引鍵值會對應到相關聯資料表內多筆記錄之一或多個相符欄位的值。 例如,您可以建立顯示員工資料的表單,並包含一個子表單來顯示每個員工的訂單。 [員工] 資料表中的資料是關聯的「一」端。 [訂單] 資料表中的資料是關聯的「多」端,亦即每一個員工可能會有多個訂單。

建立包含子表單的表單

1. 主表單顯示關聯「一」端的資料。

2. 子表單顯示關聯「多」端的資料。

這種形式中的主表單和子表單互相連結,因此子表單只會顯示與主表單中目前記錄相關的記錄。 例如,當主表單會顯示方怡君的資訊時,子表單只會顯示其訂單。 如果表單和子表單未連結,子表單就會顯示所有訂單,而不只是怡君的。

下表定義一些與子表單相關的術語。 如果您使用本文中的程序,Access 會處理大部分的細節,但是如果之後需要修改,了解背後的運作原理將很有幫助。

字詞

定義

子表單控制項

此控制項可將表單內嵌至表單。 您可以將子表單控制項視為資料庫中其他物件的「檢視」,而該物件可以是另一個表單、資料表或查詢。 子表單控制項提供的屬性可讓您將控制項中顯示的資料連結到主表單上的資料。

[來源物件] 屬性

子表單控制項的這個屬性會決定控制項中顯示什麼物件。

資料工作表

以資料列及資料欄簡單顯示資料,類似於試算表。 子表單控制項會在其來源物件為資料表或查詢時,或是其來源物件是表單且 [預設檢視] 屬性設定為 [資料工作表]時,顯示資料工作表。 在這些情況下,子表單有時也稱為資料工作表或子資料工作表,而非子表單。

[連結子欄位] 屬性

子表單控制項的這個屬性會指定要連結至主表單的子表單欄位。

[連結主欄位] 屬性

子表單控制項的這個屬性會指定要連結至子表單的主表單欄位。

附註: 

  • 為獲得最佳結果,請先建立資料表關聯,再依照本文中的程序執行。 如此一來,Access 可自動建立子表單和主表單之間的連結。 若要檢視、新增或修改資料庫中數據表之間的關聯,請在 [ 資料庫工具 ] 索引卷標上,按兩下 [資料庫關聯 ] 群組中的 [ 關聯圖]

  • 子表單控制項的來源物件為表單時,會包含您放在表單上的欄位,並且能以單一表單、連續表單或資料工作表的形式來檢視。 子表單以表單物件為基礎的優點之一,是您可以在子表單中新增導出欄位,例如 [數量]*[單價]

  • 您可以建立其來源物件為資料表或查詢的子表單控制項,以將資料工作表或樞紐分析檢視插入表單。 如需詳細資訊,請參閱新增相關資料至表單但不建立子表單一節。

頁面頂端

建立或新增子表單

請使用下表來判定最適合您狀況的程序。

案例

建議程序

您要 Access 建立主表單及子表單,並且將子表單連結至主表單。

使用表單精靈建立包含子表單的表單

您想要使用現有的表單做為主表單,但是您希望 Access 建立新的子表單,並將其新增至主表單。

使用 [子表單精靈] 新增一或多個子表單至現有表單

您想要使用現有的表單做為主表單,並且想要將一或多個現有表單新增至該表單以做為子表單。

將表單拖曳到其他表單以建立子表單

使用表單精靈建立包含子表單的表單

這個程序會使用 [表單精靈] 建立新表單及子表單的組合。 如果您尚未建立要做為主表單或子表單的表單,這也是最快速的開始方式。

  1. 在 [建立] 索引標籤上,按一下 [表單] 群組中的 [表單精靈]。 

  2. 在精靈第一頁的 [資料表/查詢] 下拉式清單中,選取資料表或查詢。 在此範例中,要建立 [員工] 表單,並在子表單中顯示每個員工的訂單,因此我們選取 [資料表:員工] (一對多關聯的「一」端)。

    附註: 無論您是先選取哪一個資料表或查詢,都沒有差別。

  3. 按兩下您要從這個資料表或查詢中納入的欄位。

  4. 在精靈同一頁的 [資料表/查詢] 下拉式清單中,從清單中選取其他資料表或查詢。 在此範例中,我們選取 [訂單] 資料表 (一對多關聯的「多」端)。

  5. 按兩下您要從這個資料表或查詢中納入的欄位。

  6. 按 [下一步] 時 (假設您在啟動精靈前已正確設定關聯),精靈會詢問 [您要如何檢視您的資料?],也就是要依據哪個資料表或查詢。 選取一對多關聯之「一」端的資料表。 在這個範例中,要建立 [員工] 表單,因此我們按一下 [以員工]。 精靈會顯示一個小型表單圖表。 頁面應類似於下列圖例:

    [表單精靈] 的子表單頁面

    表單圖表下半部的方塊代表子表單。

    附註: 如果精靈沒有詢問 [您要如何檢視資料?],則表示 Access 在您選取的資料表或查詢之間未偵測到一對多關聯性。 精靈會繼續,但 Access 將不會新增子表單到表單。 您應該按一下 [取消] 並檢查資料表關聯,然後再繼續。

  7. 在精靈頁面的底端,選取 [有子表單的表單] 選項,然後按一下 [下一步]。

  8. 在 [您想要每一子表單為何種配置?] 頁面上,按一下想要的版面配置選項,然後按一下 [下一步]。 兩種版面配置樣式都會將子表單資料以資料列和資料欄的方式排列,但是表格式版面配置較能自訂。 您可以在表格式子表單中新增色彩、圖形及其他格式設定元素,而資料工作表比較精簡,像是資料表的資料工作表檢視。

  9. 在精靈的下一頁中,選取表單的格式化樣式,然後按一下 [下一步]。 如果您在前一頁選擇了 [表格式],那麼您選擇的格式化樣式也會套用至子表單。

  10. 在精靈的最後一頁上,輸入您要的表單標題。 Access 會根據您輸入的標題來命名表單,並根據您為子表單輸入的標題來標示子表單。

  11. 指定您是否要在 [表單檢視] 中開啟表單,以便檢視或輸入資訊,或是要在 [設計檢視] 中開啟,以便修改其設計,然後按一下 [完成]。

    Access 會建立兩個表單,一個為包含子表單控制項的主表單,另一個則為子表單本身。

頁面頂端

使用 [子表單精靈] 新增一或多個子表單至現有表單

使用此程序可新增一或多個子表單至現有表單。 對每個子表單,您可以選擇讓 Access 建立新表單或使用現有表單做為子表單。

  1. 以滑鼠右鍵按一下 [功能窗格] 中的表單,然後按一下 [設計檢視]。

  2. 在 [表 單設計] 索引 標籤的 [ 控件] 群組中,按下向下箭號以顯示 [ 控件] 庫,並確保已選取 [使用控件精靈]

  3. 在 [表 單設計] 索引 標籤的 [ 控件] 群組中,按兩下 [子表單/子報表] 按鈕。

  4. 按一下您要放置子表單的表單。

  5. 依照精靈的指示執行。

    您按一下 [完成] 時,Access 會新增一個子表單控制項至表單。 如果您選擇讓 Access 為子表單建立新表單,而不是使用現有的表單,Access 就會建立新表單物件,並將其新增至 [功能窗格]。

將表單拖曳到其他表單以建立子表單

如果您想要使用現有的表單做為主表單,且想要將一或多個現有表單新增至該表單做為子表單,請使用這個程序。

  1. 在 [功能窗格] 中,以滑鼠右鍵按一下要做為主表單的表單,然後按一下 [版面配置檢視]。

  2. 從 [功能窗格] 將要做為子表單的表單拖曳至主表單上。

    Access 會新增子表單控制項至主表單,並將該控制項繫結至您從 [功能窗格] 拖曳的表單。 Access 也會根據資料庫中定義的關聯,嘗試將子表單連結至主表單。

  3. 重複這個步驟,以新增其他任何子表單到主表單。

  4. 若要確認連結成功,請在 [常用] 索引標籤上,按一下 [檢視] 群組中的 [檢視],按一下 [表單檢視],然後使用主表單的記錄選取器移到前幾筆記錄。 如果每個員工的子表單篩選正確,表示該程序已完成。

如果先前的測試沒有用,Access 就無法決定如何將子表單連結至主表單,且子表單控制項的 [連結子欄位][連結主欄位] 屬性會是空白。 您必須執行下列動作,手動設定這些屬性:

  1. 以滑鼠右鍵按一下 [功能窗格] 中的主表單,然後按一下 [設計檢視]。

  2. 按一下子表單控制項以便選取。

  3. 如果未顯示 [屬性工作表] 工作窗格,請按 F4 顯示該工作窗格。

  4. 按一下 [屬性表] 中的 [資料] 索引標籤。

  5. 按兩下 [連結子字段] 屬性方塊旁 [建立器] 按鈕 [建立] 按鈕。

    隨即會出現 [子表單欄位連結器] 對話方塊。

  6. 在 [主欄位] 和 [子欄位] 下拉式清單中,選取要用來連結表單的欄位,然後按一下 [確定]。 如果您不確定要使用哪些欄位,請按一下 [建議],讓 Access 嘗試判斷連結欄位。

    提示: 如果您沒有看到要用來連結表單的欄位,可能需要編輯主表單或子表單的記錄來源,以確保當中有連結欄位。 例如,如果該表單是以查詢為基礎,您應該確保連結欄位有出現在查詢結果中。

  7. 儲存主表單並切換到 [表單檢視],然後確認該表單如預期般運作。

在 [設計檢視] 內的新視窗開啟子表單

如果您想要在 [設計檢視] 中處理主表單的時候變更其子表單的設計,您可以在獨立的視窗中開啟子表單:

  1. 按一下子表單以選取它。

  2. 在 [表 單設計] 索引 標籤的 [ 工具] 群組中,按兩下 [ 新視窗] 中的 [子窗體]

頁面頂端

變更子表單的預設檢視

您新增子表單至表單時,子表單/子報表控制項會根據子表單的 [預設檢視方法] 屬性顯示子表單。 這個屬性可以設定為下列值:

  • 單一表單

  • 連續表單

  • 資料工作表

  • 分割表單

第一次建立子表單時,此屬性可能設定為[連續表單],也可能設為 [單一表單]。 不過,如果您將子表單的 [預設檢視] 屬性設定為 [資料工作表],那麼子表單在主表單上會顯示為資料工作表。

若要設定子表單的 [預設檢視方法] 屬性:

  1. 關閉任何開啟的物件。

  2. 在 [功能窗格] 中,以滑鼠右鍵按一下子表單,然後按一下 [設計檢視]。

  3. 如果沒有顯示屬性表,請按下 F4 顯示屬性表。

  4. 在 [屬性表] 頂端的下拉式清單中,確定已選取 [表單]

  5. 在 [屬性表] 的 [格式] 索引標籤上,將 [預設檢視方法] 屬性設定為您要使用的檢視。

    附註: 如果您要使用的檢視不在清單中,請確認檢視的 [允許...檢視] 屬性是設定為 [是]。 例如,如果要將 [資料工作表] 指定為表單的預設檢視,請確認 [允許資料工作表檢視] 屬性設定為 [是]

  6. 儲存並關閉子表單,然後開啟主表單以查看結果。

頁面頂端

新增相關資料至表單但不建立子表單

您不一定得建立個別的表單物件來顯示相關的資料。 例如,如果您正在 [版面配置檢視] 或 [設計檢視] 中處理表單,並且將資料表或查詢從 [功能窗格] 拖曳到該表單,Access 就會建立子表單/子報表控制項來顯示該物件中的資料。 物件的 [預設檢視方法] 屬性會決定資料的顯示方式。 這通常是設定為 [資料工作表檢視],但您也可以將資料表或查詢的 [預設檢視方法] 屬性設定為 [單一表單]、[分割表單] 或 [連續表單],讓您有更多彈性來顯示表單上的相關資料。

附註: 變更資料表或查詢的 [預設檢視] 屬性,會影響到資料表或查詢開啟時的顯示方式 (不論是從 [功能窗格] 開啟或是在子表單/子報表控制項中檢視)。 因為若變更資料表的檢視設定,有時從 [功能窗格] 開啟資料表時可能會造成混淆,因此建議執行此程序時使用查詢,而不要使用表格。

頁面頂端

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。