資料
[資料]標籤頁定義表單屬性,這些屬性針對與表單連結的資料庫。
定義表單使用的資料源,或者指定使用者是否可以編輯資料。除了排序和篩選功能外,您還可以找到建立子表單所需的全部屬性。
修改資料
確定是否可以修改資料。
允許刪除
確定是否可以刪除資料。
內容
確定表單要使用的內容。內容可以是現有的表格或查詢 (已在資料庫中建立),也可以透過 SQL 陳述式來定義。輸入資料來源之前,您需要在 [內容類型] 中定義明確的類型。
如果在 [內容類型] 中選取了「表格」或「查詢」,則該方塊中會列出選取的資料庫中設定的所有表格和查詢。
分析 SQL 指令
指定 LibreOffice 是否會分析 SQL 陳述式。若設定為 [是],則可以按一下 [內容] 清單方塊旁的 [...] 按鈕。將開啟一個視窗,您可以在此以圖形方式建立資料庫查詢。關閉該視窗時,會將已建立之查詢的 SQL 陳述式插入 [內容] 清單方塊中。
只增加資料
決定表單是否只允許新增加資料 (是) 或也允許加入其他特性 (否)。

如果將[僅新增資料]設定為「是」,則無法變更或刪除資料。
增加資料
確定是否可以新增資料。
循環
確定如何使用 Tab 鍵進行瀏覽。使用 Tab 鍵,可以在表單中向前移動。如果您同時按 Shift 鍵,則以相反的方向瀏覽。如果到達最後一個 (或第一個) 欄位,再次按 Tab 鍵,可以產生多種效果。使用下列選項定義鍵控制項:
選項 |
涵義 |
預設 |
此設定可使現存的資料庫連結的做自動循環。若表單中存有資料庫連結,以製符鍵在退出最後一個欄位時,會跳到下一個/前一個資料條目 (如所有資料條目所示)。若無資料庫連結則會跳到下一個表單 (如此頁所示)。 |
全部資料條目 |
此選項僅適用於資料庫表單,用於瀏覽所有的資料條目。如果您使用 TAB 鍵退出表單的最後一個欄位,則會變更目前的資料條目。 |
目前的資料條目 |
此選項僅適用於資料庫表單,用於瀏覽目前的資料條目。如果您使用 TAB 鍵退出表單的最後一個欄位,則會變更目前的資料條目。 |
目前頁面 |
退出表單的最後一個欄位時,游標會跳至下一表單的第一個欄位。對於 HTML 表單而言,這是標準設定,因此,此選項對於 HTML 表單尤為重要。 |
排序
指定表單中資料的排序條件。排序條件的規格遵循 SQL 規則,但不使用 ORDER BY 子句。例如,如果您要將資料庫中所有的資料條目在一個欄位中以向上順序排序,在另一個欄位中以向下順序排序,可輸入:Forename ASC, Name DESC (假設 Forename 和 Name 為資料欄位的名稱)。
在使用者模式中,可以使用 [表單瀏覽] 工具列中的相應圖示進行排序:[向上排序]、[向下排序]和[排序]。
瀏覽位址列
指定是否可以使用底部表單列中的瀏覽功能。
[父表單] 選項用於子表單。若為子表單選擇此選項,則可在游標位於子表單時,使用主表單的條目進行瀏覽。由於子表單按照 1:1 關係連結到父表單,因此一律會在父表單上執行瀏覽。
篩選
輸入篩選表單中的資料所需的條件。篩選規格遵循 SQL 規則,但不使用 WHERE 陳述式。例如,若要顯示名為「Mike」的所有資料條目,可在資料欄位中鍵入:Forename = 'Mike'。您還可以使用組合條件:Forename = 'Mike' OR Forename = 'Peter'。螢幕上將顯示所有符合條件的資料條目。
在使用者模式下,可以透過 [表單瀏覽] 工具列中的 [自動篩選] 和 [表單瀏覽] 圖示使用篩選功能。
資料來源
定義表單要參照的資料來源。 按一下 [...] 按鈕可呼叫 [開啟舊檔] 對話方塊,您可以在其中選擇一個資料來源。
資料源類型
定義是否使用現有的資料庫表格或查詢作為資料來源,或者是否基於 SQL 陳述式來產成表單。
如果您選擇「表格」或「查詢」,則表單將會參考您在資料來源底下指定的表格或查詢。如果您想要建立一個新的查詢或子表單,則您必須選擇「SQL」選項。接著您可以直接在 [清單內容] 方塊中輸入 SQL 查詢或子表單的陳述式。表單隨後會在指定陳述的基礎下產生。
連結從
如果您建立子表單,請輸入父表單中負責父子表單之間同步的資料欄位。 若要輸入多個值,請在每個輸入行後按 Shift + Enter 組合鍵。
子表單是以 SQL 查詢為基礎;更明確地說,是以 [參數查詢] 為基礎。如果欄位名稱是在 [連結主欄位] 方塊中輸入,則在主表單的該欄位中包含的資料會被讀取為必須在 [連結從屬欄位] 中輸入的變數。在相對應的 SQL 陳述式中,此變數會與子表單參考的表格資料進行比較。您也可以選擇在 [連結主欄位] 方塊中輸入欄名稱。
如下範例所示:
例如,在一個資料庫表格中設定客戶資料庫 (「客戶」),在其中您將客戶一一編號並納入名稱為「Customer_ID」的表格欄位中。而用其他的資料庫表格管理客戶的訂單資料。現在,您在表單中鍵入客戶名稱時,也想同看到此客戶的訂單資料。所以,請先進入子表單,然後在「連結從」下輸入客戶資料庫的資料欄位,也就是「Customer_ID」。在「連結至」中填入一個可以套用在「Customer_ID」的變數名稱,例如:「X」。
子表單應顯示訂單表格 (「Orders」) 中每個客戶 ID 對應的資料 (Customer_ID -> x)。前提是,在訂單表格中將每個訂單唯一指定給一個客戶。您也可以使用另一個名為 Customer_ID 的欄位,但為確保此欄位不與主表單中的 Customer_ID 欄位混淆,可以將其命名為 Customer_Number。
現在請比較「Orders」表格中的 Customer_Number 和「Customers」表格中的 Customer_ID,比較時可以使用 x 變量和以下 SQL 陳述式:
SELECT * FROM 訂單 WHERE Kunden_Nr =: x (若要子表單顯示「訂單工作表」的全部資料)
或:
SELECT Articel FROM Bestellungen WHERE Kunden_Nr =: x (若要子表單自顯示「訂單工作表」中的「Article」欄位資料)
您可以在「資料源」欄位中輸入 SQL 陳述式,或是設定藉以建立子表單的參數查詢。
連結至
如果要建立子表單,請輸入用於儲存父表單欄位之可能值的變量。如果子表單是基於查詢的,則輸入查詢中定義的變量。如果您是使用在 [資料來源] 欄位中輸入的 SQL 陳述式來建立表單的,則輸入陳述式中使用的變量。可以選擇任何變量名稱。如果要輸入多個值,則按 Shift + Enter 組合鍵。
例如,若是您在作為上一層欄位的「連結從」下輸入「CustomerID」資料庫欄位,則便可在「連結至」 下設定可在其中讀取「CustomerID」資料庫欄位數值的變量名稱。如果您現在在「資料源」欄位中透過變量來指定某個 SQL 陳述,則便會在子表單中會顯示出對應的數值。
什麼是子表單呢?
表單是依據資料庫表格或資料庫查詢所建立的。先整理好資料,並且可以用來重新輸入或是變更已現存的資料,可在依據表單的資料庫表格或查詢中儲存這些資料。
如果您需要的表單可以參照某個表格或查詢中的資料,還可以顯示其他表格中的資料,則應建立子表單。 例如,子表單可以是用於顯示其他資料庫表格中資料的文字方塊。
子表單是主表單的附加元件。主表單可稱為「父表單」或「主控表單」。當您希望從表單中存取多個表格時即需要子表單。每個附加的表格其本身都需要子表單。
建立表單後,可以變更為子表單。若要執行此作業,輸入 [設計模式],並開啟 [表單助手]。在 [表單助手] 中,拖曳表單 (將成為子表單) 至其他表單 (將成為主表單)。
您文件的使用者將不會看見表單中還有子表單。使用者只會看見已輸入資料的文件或是顯示現有資料的文件。
指定主表單中資料欄位內的 [連結] 主欄位。在子表單中,可將 [連結] 從屬欄位的內容設為與 [連結] 主欄位內容相同。
當使用者瀏覽資料時,表單一律顯示目前的資料記錄。如果定義了子表單,子表單內容的顯示將會稍微延遲約 200 毫秒。此延遲讓您迅速瀏覽主表單的資料記錄。如果您在該段延遲期間瀏覽至下一筆主資料記錄,則不會擷取及顯示子表單資料。