InfoPath 教程 使用指南將InfoPath表單連接到Access數據庫 | |||
簡介通過使用 Microsoft Office InfoPath,您可以設計連接到 Microsoft Office Access 數據庫的表單。通過同時使用這兩個程序,您可以充分感受到 InfoPath 的數據集合優勢以及 Access 的數據存儲優勢。 InfoPath 的優點包括:用戶可以在脫機時填寫表單,擁有大量易於設計和填寫的控件以及在表單連接到數據庫時可自動導入的數據驗證 (數據驗證:測試數據準確性的過程;可應用到控件以指定用戶可輸入的數據類型和範圍的一組規則。)規則。 將 InfoPath 表單連接到 Access 數據庫時,您可以選擇是否將數據庫設置爲表單的主數據源 (數據源:爲 InfoPath 表單定義和存儲數據的域和組的集合。表單中的控件綁定到數據源中的域和組。)或輔助數據源。如果希望能夠通過在 InfoPath 表單中填寫字段來編輯記錄並向數據庫中添加記錄,您應該將數據庫設置爲表單的主數據源。 本文說明了如何將用於表單的數據庫設置爲主數據源,方法如下:
安裝程序要求要完成本文中的課程,您的計算機上必須裝有 Access 2003 和用於 Access 的羅斯文示例數據庫。默認情況下,示例數據庫將安裝在您計算機的以下位置:C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\。 註釋 如果在計算機上找不到羅斯文示例數據庫,您可能需要安裝該數據庫。要進行安裝,請啓動 Access,指向“幫助”菜單上的“示例數據庫”,然後單擊“羅斯文示例數據庫”。
第 1 課:創建表單本課講述如何創建新的 InfoPath 表單,以及如何使用“數據連接嚮導”將表單連接到 Access 中的羅斯文示例數據庫。完成本課後,您的表單將被連接到羅斯文示例數據庫中的兩個表上,然後您就能夠添加、編輯並查詢那些表中的記錄了。 要將 Access 數據庫用作 InfoPath 表單的主數據源,必須以一個新表單開始。您無法修改現有的表單以向主數據源中添加連接。請按照以下步驟創建基於 Access 中示例數據庫的新 InfoPath 表單:
通過先選擇“供應商”表,您將“供應商”表設置爲數據連接 (數據連接:InfoPath 表單和外部源之間的連接,例如,數據庫、Web 服務、SharePoint 庫或 XML 文件都是外部源。數據連接用於查詢和提交數據。)的主表。現在您必須將“產品”表添加到數據連接中。與此同時,這些表將創建一個一對多的關係,這意味着每位供應商可提供多種產品。在 Access 中,通過使用將一個表中的記錄與另一個表中的記錄相關聯的鍵字段定義此關係。 在此一對多的關係中,“一”端的表中包含一個主鍵字段,唯一指定了表中的每個記錄。“多”端的表中包含一個外鍵字段,該字段與其他表的主鍵相匹配。主鍵字段和外鍵字段常常使用同一名稱。在這種情況下,“供應商”表中包含主鍵字段“供應商 ID”,“產品”表中包含外鍵字段“供應商 ID”。 將表單連接到數據庫中的多個表上時,InfoPath 要求使用鍵字段將這些表連接起來。此外,數據連接中的主表必須有一個與您添加的任何其他表相對應的一對多連接或一對一連接。 向您的表單添加主表後,您就可以添加其他表了:
默認情況下,InfoPath 將連接到表中的所有字段。但是,您可能希望排除某個字段,因爲該字段使用了 InfoPath 無法連接到的數據類型 (數據類型:域的屬性,定義該域可存儲的數據種類。數據類型包括文本、格式文本、整數、小數、真/假、超鏈接、日期和時間以及圖片等。),或者您不想使表中某一特定字段的值起作用。在本課中,您必須排除主頁字段,因爲它是一種 InfoPath 不支持的“超鏈接”數據類型。“超鏈接”數據類型與“備註”數據類型相似,也是一種長數據類型。因此,InfoPath 無法連接到“超鏈接”數據類型。
在完成“數據連接嚮導”之前,必需命名數據連接並驗證所創建的連接是否正確建立:
最後生成的表單應包含查詢數據的“視圖” (視圖:表單特定的顯示設置,可通過表單模板來保存,並可在填寫表單時應用到表單數據中。用戶可在視圖之間進行切換,以便選擇表單中顯示的數據量。)按鈕、輸入新記錄的按鈕以及兩個可向其插入控件的表。 在您繼續下一課之前,應保存表單:
第 2 課:查看 InfoPath 數據源在 InfoPath 表單與 Access 數據庫之間創建主數據連接時,InfoPath 將基於 Access 數據庫的結構創建數據結構。具體地講,InfoPath 將創建與數據庫中的字段和表相匹配的字段和組。例如,InfoPath 將在數據源中創建一個與 Access 中的“產品”表相對應的“產品”組。對於“產品”表中的每個字段,InfoPath 數據源中都有一個與之對應的字段。 註釋 由於 InfoPath 先存儲數據,然後再將數據提交給 Access,因此您可以將信息輸入表單中— 即使處於脫機狀態,也可以— 在您準備好後,將該信息提交到數據庫。 對於主數據連接,InfoPath 實際上創建了兩個非常相似的數據結構:一組查詢字段和一組數據字段。您可以使用查詢字段將值輸入到表單中,然後查詢數據庫。同時,您可以使用數據字段向數據庫中輸入新的記錄並修改數據庫中現有的記錄。每組字段都與數據庫中的表和字段相匹配。 要想更好地瞭解 InfoPath 數據結構是如何關聯到 Access 數據結構的,最好查看一下表單中的數據字段。
最後生成的數據結構應像這樣: 請該注意數據結構與 Access 數據庫中的兩個表的相似程度。
“供應商”組包含“產品”組。 “供應商”表與“產品”表形成一對多關係。
對於 Access 數據庫中的每個表,InfoPath 表單中都有一個與之對應的組。對於 Access 表中的每個字段,InfoPath 組中都有一個與之對應的字段。此外,組和字段之間與字段和表之間都有一個與之對應的組— 這是因爲每個供應商都可能有多種產品。 第 3 課:設計表單版面基於 Access 示例數據庫創建了表單並且熟悉了 InfoPath 數據源後,現在您可以開始設計表單版面了。要創建用戶可向其中輸入信息的控件,您可以從“數據源”任務窗格中將字段和組拖到表單上。將一個字段拖到表單時,InfoPath 將創建一個控件,如一個文本框;將一組字段拖到表單上時,InfoPath 將創建一組控件,如一個包含一組文本框的節。
提示 添加到表單中的控件的類型和特性取決於字段的類型,而字段的類型取決於 Access 數據庫中的特定字段。例如,數據類型是“日期”的 Access 字段會生成數據類型是“日期”的 InfoPath 字段。如果您將該類型的字段拖到表單上,在默認情況下,InfoPath 將創建一個日期選取器。
當您創建基於數據庫的表單時,InfoPath 將創建具有兩個版式表的單一視圖。在第一個表中,可以添加查詢字段,它能夠使您的用戶查詢用於記錄的數據庫。在第二個表中,可以添加數據條目字段,它能夠使您的用戶修改現有記錄並向數據庫中添加新的記錄。 處理查詢字段之前,必須向表單添加 dataFields 的完整組,它會在您的表單中實現一組完整的控件。然後可以刪除任何不必要的控件。有些控件是不需要的,因爲這些控件包含了多餘的信息,或者包含的信息不適用於您所使用的兩個表。例如,“類別 ID”文本框就是不需要的,因爲它用於與“類型”表建立關係,而在本數據連接中不使用此功能。 註釋 刪除控件並不會刪除數據源中的基礎字段。例如,當您刪除類別 ID 文本框時,類別 ID 字段仍然存在於數據源中並且可能包含數據。
InfoPath 通過使用重複節 (重複節:表單上包含其他控件且可根據需要進行重複的控件。填寫表單時,用戶可插入多個節。)啓用多個記錄。在此表單中,用戶可輸入多個供應商以及每個供應商的多個產品。表單中的控件反映了此項功能— 產品控件位於一個重複節中,後者包含在“供應商”重複節中,如以下示例所示。 爲了便於用戶使用這些重複節,請按照以下步驟添加邊框和底紋並插入描述性標題:
表單數據輸入部分的版式表格現在看起來類似於下面這樣。 通過在表單中輸入數據向 Access 數據庫提交新的記錄時,Access 將自動創建“供應商 ID”。正因如此,您的用戶纔不必編輯或鍵入新的供應商 ID,這表明您可以將“供應商 ID”文本框的屬性設置爲只讀,以防止用戶試圖修改該值。要將“供應商 ID”文本框屬性設置爲只讀,請按照以下說明操作:
您已完成表單數據輸入部分的版面設計。您現在可以處理查詢部分了,用戶可在其中輸入值以向數據庫查詢現有記錄。
第 4 課:處理按鈕和查詢字段創建用於查詢數據的控件之前,讓我們來看一下添加到表單中的兩個按鈕:“新建記錄”和“運行查詢”按鈕。本課將解釋這些按鈕的作用並用演示如何對其進行修改。 “運行查詢”按鈕基於前一個控件中的值查詢數據庫。然後數據庫返回與那些值匹配的任何記錄。例如,如果您在“公司名稱”框中輸入 Tokyo Traders ,然後單擊“運行查詢”按鈕,則會返回有關 Tokyo Traders 供應商的記錄,以及 Tokyo Traders 提供的所有產品。返回的記錄顯示在表單的數據輸入部分,在其中可進行編輯並隨後將更改後的內容提交到數據庫。 “新建記錄”按鈕清除表單數據輸入部分中的值,允許您輸入新的供應商及其產品。 爲幫助您的用戶更好地理解表單的查詢和數據輸入部分的區別,您可以向表單中添加標題和文本:
接下來,您可以向表單的查詢部分添加標題和控件:
繼續之前,讓我們刪除對您的用戶來說多餘的控件。這裏,我們假設用戶僅基於供應商的 ID、公司名稱和國家/地區來查詢值。
現在,您的用戶可以查詢“供應商”表中的值、修改返回的記錄、添加新記錄並將結果提交回數據庫。 第 5 課:自定義提交選項用戶填寫表單時,可以修改現有的記錄並添加新的記錄。要用所做的修改更新數據庫,必須將完成後的表單提交到數據庫。默認情況下,InfoPath 的“提交”命令在“文件”菜單和“常用”工具欄中都可用,以便用戶可以輕鬆提交完成後的表單。除了這些選項,直接在表單中提供可使用戶提交數據的按鈕也很有用。本課講述瞭如何爲表單設置標準的“提交”按鈕和自定義其他提交選項。
您已經將“提交”按鈕添加到了表單中,現在可以設置表單,使表單在提交後關閉並打開一個新的空白表單。另外,您可以編寫自己的消息,指定是否成功提交了表單:
第 6 課:查詢、編輯和添加記錄您已經完成了表單的創建並將其連接到了 Access 數據庫,現在應該對錶單進行測試以確保可供用戶正常使用。在本課中,您將扮演用戶的角色,通過查詢數據庫、修改現有記錄以及添加新記錄來測試表單。 首先,您應該嘗試打開一個新的表單並添加新記錄:
應該出現一個說明供應商和產品信息已被成功更新的對話框;單擊“確定”後,該表單應關閉,並打開一個新的表單。 您已經驗證了用戶可以使用您的表單向數據庫中添加新記錄,現在可以嘗試修改其中一個記錄:
Chardonnay 記錄將從數據庫中被刪除,而 Merlot 記錄將在數據庫中被更新。這時應該出現一個對話框,指出供應商和產品信息已成功更新。當您單擊“確定”時,該表單應關閉並打開一個新表單。 總結將這些步驟應用於您自己的數據庫時,請記住以下關鍵問題:
|