Module
Contents
Index 🔎︎

# 資料

[資料]標籤頁定義表單屬性，這些屬性針對與表單連結的資料庫。

定義表單使用的資料源，或者指定使用者是否可以編輯資料。除了排序和篩選功能外，您還可以找到建立子表單所需的全部屬性。

若要使用此指令...

已選取表單項目的右鍵功能表「表單...」- 選項標籤「資料」

開啟 [資料庫控制項] 工具列或 [資料庫表單設計] 工具列，按一下表單圖示 - [資料] 標籤

## 修改資料

確定是否可以修改資料。

## 允許刪除

確定是否可以刪除資料。

## 內容

確定表單要使用的內容。內容可以是現有的表格或查詢 (已在資料庫中建立)，也可以透過 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」的變數名稱，例如：「Ｘ」。

子表單應顯示訂單表格 (「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 毫秒。此延遲讓您迅速瀏覽主表單的資料記錄。如果您在該段延遲期間瀏覽至下一筆主資料記錄，則不會擷取及顯示子表單資料。