資料

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

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

若要使用此指令...

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

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


修改資料

確定是否可以修改資料。

允許刪除

確定是否可以刪除資料。

內容

確定表單要使用的內容。內容可以是現有的表格或查詢 (已在資料庫中建立),也可以透過 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 毫秒。此延遲讓您迅速瀏覽主表單的資料記錄。如果您在該段延遲期間瀏覽至下一筆主資料記錄,則不會擷取及顯示子表單資料。