Share via


Microsoft Office

整合 Access 資料庫與 SharePoint

Peter Serzo

 

摘要:

  • 整合 Access 與 SharePoint 的優點
  • 將 Access 資料移轉至 SharePoint
  • 透過 SharePoint 擴充 Access 功能

當我跟使用者談到 Microsoft Office SharePoint Server (MOSS) 2007 時,我總是要他們示範所使用的工具,還有使用的方法。屢試不爽,

公司裡面始終有人使用 Microsoft® Office AccessTM 來解決基本的商務需求。Access 仍是可行的工具,而且是許多公司的重要資產。

使用 MOSS 2007,您可以運用以 Access 為基礎建置而成的應用程式,將它們整合至 SharePoint® 中,建立範圍更加廣泛的全新解決方案。本文的重點是要說明 MOSS 是如何還有在什麼地方與 Access 整合,以及使用者要如何設定這兩種產品來建置解決方案。

MOSS 帶入 Access 的基本技術結合了工作流程、通用儲存機制 (SQL Server®),以及以網路為基礎的介面 (瀏覽器)。SharePoint 的功能包括文件管理、工作空間,以及設定自訂清單和利用內建工作流程及現成網頁組件的功能,範圍從通告事件到建置連絡人清單或問題清單,到管理使用者建立的表單等,應有盡有。此外,使用便利性和熟悉的 Office 技術也將強化使用者的掌控能力。您將看到,MOSS 並不會對現行的解決方案造成威脅。MOSS 反而會提高效率,因為您不用重新撰寫應用程式,藉此讓使用者把重心放在解決商務問題上,而不是技術問題上。

從中受益的還不只是使用者而已。設法協助使用者維護公司中林立的所有自訂資料庫的 IT 部門和系統管理員也受益匪淺。許多人甚至等到碰到特定的問題,才知道原來 Access 是解決任務關鍵商務問題的主角,這些問題包括儲存限制、多使用者存取、安全性、修復損毀資料庫、網路使用、不相容的 Access 版本,以及在多部桌上型電腦間部署變更等。SharePoint 可一一解答上述各個問題。

雖然 Access 有其限制,但它的功能強大而且容易使用,特別是對那些不會寫程式碼的人來說。您可以在同一個地方取得可設定的關聯式資料表、簡單的查詢 (和複雜的查詢)、拖放前端表單建立工具、以資料為主的報表,以及設定多使用者的功能。根據 Access 和 SharePoint 來建置解決方案對於尋求聯合資源和專才的公司,以及想要利用多年累積的應用程式和技能的個人來說,都很合適。

快速入門

Access 2007 提供好幾個與 MOSS 2007 整合的出發點。如您在 [圖 1] 中所見,這些包括:從 SharePoint 清單匯入資料,將資料發佈到 SharePoint 網站,建立 SharePoint 清單,使用 SharePoint 資料作為外部來源,將 Access 資料庫移轉到全新或現有的 SharePoint 網站,以及離線存取 SharePoint 資料。

Figure 1 Access 2007 提供與 MOSS 2007 整合的簡易進入點。

Figure 1** Access 2007 提供與 MOSS 2007 整合的簡易進入點。 **(按影像可放大)

從 Access 資料表建立 SharePoint 清單是一個不錯的起點。SharePoint 清單與 Access 中的資料表非常類似,它是儲存在 SQL Server 內容資料庫中,內含特定的欄位屬性,而且支援查閱。

建立 SharePoint 清單時要牢記在心的一些限制包括:Microsoft 建議每個檢視都有 2,000 個項目的上限以達到最佳效能;SharePoint 並不會強制參考完整性;OLE 物件不會匯出到 SharePoint;還有資料的驗證有限。

若要從 Access 資料表建立 SharePoint 清單,先選取 [外部資料] 索引標籤,然後在 [匯出] 群組下按一下啟用的 [SharePoint 清單] 按鈕。您現在必須指定啟用此清單的 SharePoint 網站,您可以在此處填寫 [圖 2] 所示的 [匯出 - SharePoint 網站] 對話方塊,或是在資料表上按一下滑鼠右鍵,然後選取 [匯出資料至 SharePoint 清單]。要注意的是,如果資料表是關聯性當中的子系,也會一併匯出所有的父系資料表。

Figure 2 Access 資料表會匯出到您指定的 SharePoint 網站

Figure 2** Access 資料表會匯出到您指定的 SharePoint 網站 **(按影像可放大)

匯出程序完成後,會提供選項讓您儲存匯出步驟,這樣一來您就不用重複步驟。這時候,您可以前往 SharePoint 網站並查看上載的資料。這項簡單的作業對於移動資料到 SharePoint,然後讓使用者存取來說蠻實用的。好處是可以提高安全性,因為資料現在是儲存在 SQL Server 資料庫中,而且加上資訊可透過瀏覽器取得,因此非常方便存取。

不過,另外一項作業 — 將 SharePoint 中的清單連結成 Access 中的資料表 — 反而是更有效整合 Access 與 SharePoint 的方法。要進行這項作業,在 Access 中按一下 [外部資料] 索引標籤,然後選取 [匯入] 群組下的 [SharePoint 清單]。這會顯示 [圖 3] 中的對話方塊。

Figure 3 連結 Access 到 SharePoint

Figure 3** 連結 Access 到 SharePoint **(按影像可放大)

選取包含要作為連結資料來源之 SharePoint 清單的網站,然後選取您要連結的清單。此作業完成時,清單會在 Access 中顯示成連結資料表,而且在應用程式的右下角,您會看到一個 [與 SharePoint 連線] 的指示器。Access 與 SharePoint 之間現在會雙向同步處理,支援從 SharePoint 或 Access 新增、變更和刪除作業。如您所見,您可以對資料表編寫程式碼來提供額外的功能。

當在 Access 中連結到 SharePoint 清單時,您會看到預設還會匯入和連結另一個資料表,那就是 Windows® SharePoint Services (WSS) Users Information List。另外還會建立一個叫做「移至 SharePoint 網站議題」的議題資料表。您可以在此處檢閱與資料發生的任何衝突。

如需有關移轉資料,以及資料類型在交談期間是如何處理的詳細資訊,請參閱<Access 如何在Access 與 SharePoint 資料類型之間轉換> (office.microsoft.com/en-us/access/HP010477131033.aspx),以及<移動 Access 資料庫中的資料表至 SharePoint 網站並加以連結> (office.microsoft.com/en-us/access/HA101314681033.aspx) 一文的「移轉限制」一節。

第三種整合資料表和清單的方法是透過 SharePoint 起始。選擇一份清單,然後在 [動作] 索引標籤下,按一下 [以 Access 開啟] 選項。接著會出現一個對話方塊,詢問資料庫的名稱 (全新或現有的)。輸入資料庫的名稱之後,您將選擇是否要直接連結到 SharePoint 網站上的資料,還是要將資料直接匯出至 Access (見 [圖 4])。

Figure 4 使 SharePoint 資料可透過 Access 存取

Figure 4** 使 SharePoint 資料可透過 Access 存取 **(按影像可放大)

移動資料庫至 SharePoint

到目前為止,我們討論了將 SharePoint 清單匯入成連結的資料表,以及將資料表當作清單匯出至 SharePoint,但若是您需要存取整個資料庫的話怎麼辦呢?許多公司都有任務關鍵應用程式在 Access 中執行,而且需要這些應用程式從遠端也能使用,以便讓個人執行報表和查詢,以及輸入資料。在這種情況下,重寫應用程式不一定永遠可行 — 無論是從成本上或是可用技能方面考量。SharePoint 和 Access 提供了 [移至 SharePoint] 選項來解決這個問題,這個選項可在 [存取 SharePoint 清單] 索引標籤下找到。它跟使用「SQL 轉換精靈」移至 SQL Server 的選項類似,這個精靈首先是出現在 Access 97。

將整個 Access 資料庫移動到 SharePoint 的好處是,所有的資料表都會轉換成 SharePoint 清單;會製作 Access 資料庫的備份;清單自動在 Access 中變成連結的資料表;您可以移動整個資料庫,而不只是資料表;而且資料庫的運作方式跟移動前沒有什麼出入。

在按下 [移至 SharePoint] 按鈕後,會出現 [圖 5] 中的對話方塊。指定網站之後,您必須決定是否要選取要儲存資料庫的選項。若要這麼做,整個資料庫便會儲存至選定的文件庫中。這表示整個資料庫 (包括表單、報表、查詢和巨集) 會儲存到 SharePoint 中,因此能在伺服器上使用。當使用者想要存取資料庫時,他只要導覽至資料庫所在的程式庫,在它上面按一下滑鼠按鍵,該資料庫就會自動部署到他的桌面。

Figure 5 指定您要移動資料庫的 SharePoint 網站

Figure 5** 指定您要移動資料庫的 SharePoint 網站 **(按影像可放大)

選擇移動整個資料庫時,功能區下方會出現一個 [發佈變更] 訊息列。這可讓您將本機上的設計和資料的變更與伺服器上的複本保持同步。如果沒有選取這個選項,則只有資料表會轉換成清單並連結至 Access。若是發生這種情形,使用者社群將無法使用整個資料庫,而且資料庫也不會備份成 SharePoint 中的物件。

選取其中一個選項之後,資料庫及其相關的資訊就可以透過您所選的 SharePoint 網站提供。而且還會自動建立一個叫做「移至 SharePoint 網站議題」的資料表。這裡會記錄任何因移轉作業而產生的衝突。您可以檢閱 Access 在 SharePoint 網站上上載資料表時遇到的任何問題。

檢視、表單及報表

資料庫一旦移動後,您就應該測試它的功能性。開始前,確定您看得到 [與 SharePoint 連線] 指示器。請注意,Access 查詢會變成 SharePoint 檢視;SharePoint 檢視與 Access 查詢非常類似。

當移動整個資料庫時,會將現有的查詢當作檢視複製到 SharePoint 中。Access 使用者知道撰寫查詢可讓他們看到資料的子集。學著在 SharePoint 檢視中進行這樣作業有助您了解資料在 SharePoint 清單內的排列方式。

您可以建立的其中一個最實用的檢視是 Access 檢視。要建立檢視的話,導覽至您要建立檢視的清單,依序選取 [檢視]、[建立檢視]。您在該處會看到 [Access 檢視] 選項,可讓您根據清單建立表單和報表。按一下此選項並選取 Access 資料庫時,會出現一個像 [圖 6] 中的對話方塊。您可以看到,現在您可以定義格式 (表單類型、樞紐分析圖、樞紐分析表或報表),而且當程序完成之後,Access 資料庫中會有一個連結的表單或報表。

Figure 6 建立 Access 檢視

Figure 6** 建立 Access 檢視 **(按影像可放大)

離線 Access

在真實世界中,擴充任務關鍵應用程式的影響範圍,可獲得投資報酬。要擴充整合式 Access/SharePoint 應用程式的影響範圍,其中一個方法是了解您不一定要連線到 SharePoint 才能使用它。為了提升這方面的效率,Access 2007 引進了離線工作的功能。資訊在連接到伺服器之前,會快取到資料庫的本機複本中。若要使資料庫離線,按一下功能區上 [外部資料|SharePoint 清單] 群組上的 [離線工作] 按鈕。

準備好重新連線到 SharePoint 時,就可以選擇 [線上工作] 或 [同步處理]。兩個選項都會上載資料並顯示當中的衝突以供檢閱;不過,要是使用 [同步處理] 的話,資料會上載,但應用程式會保持離線。

在 [SharePoint 清單] 群組中還有另外一個項目要注意的是 [捨棄變更],它有兩個選項。第一個是捨棄全部變更,但不在 Access 中更新 SharePoint 資料。第二個選項是捨棄全部變更,並更新 SharePoint 資料 (連結的清單)。

Access 範本

Access 2007 有幾個預先建置的範本可協助使用者快速建立商務解決方案,您可以在 [資料表] 群組中按一下 [建立] 索引標籤下的 [SharePoing 清單] 按鈕看到這些範本 (見 [圖 7])。選取其中一個範本會自動為連結至 SharePoint 的資料表定義結構描述。目前只支援連絡人、工作、議題和事件。也就是說,假如您匯出一個包含當中一種資訊的資料表,則資料最後會變成相對應的 WSS 內容類型 (例如,議題對議題)。

Figure 7 選擇清單類型

Figure 7** 選擇清單類型 **

您也可以建立可用於 SharePoint 清單的自訂範本,或是使用自我連結的 Access 2007 資料庫建立 SharePoint 網站範本。這麼做需要有 Access 2007 Developer Extensions,也必須設定資料表的 WSSTemplateID。這個屬性會追蹤哪個資料表擁有相等的 SharePoint 清單範本。

Access 和中繼資料

擁有運作穩固的 Access 應用程式的企業並不一定能夠或想要將所有這些應用程式移到 SharePoint。碰到這種情況,有時候在 Access 中撰寫程式碼來更新 SharePoint 比較合理。您可以透過程式碼,把 SharePoint 與 Access 結合在一起。

舉 Northwind Trader 的資料庫這個簡單的例子,它會儲存關於產品、供應商和客戶訂單的資訊。每個產品一般都有相關產品表,廠商會以 .pdf 檔案提供。Access 資料庫會追蹤產品表上所含的全部資訊,例如地理位置、產品編號、修訂記錄,以及公司部門代碼。這項資訊需要透過 SharePoint 外部網站讓供應商和廠商使用。

接下來會設立 SharePoint 網站,而且所有文件也會移到連結的文件庫中,但是中繼資料欄位會留白 (見 [圖 8]),因為 Access 中會追蹤資料 (而且監視資料的人使用 Access 非常得心應手,一點也不急著做任何改變)。

Figure 8 在 SharePoint 中檢視不含中繼資料的 Northwind 文件

Figure 8** 在 SharePoint 中檢視不含中繼資料的 Northwind 文件 **(按影像可放大)

幸好,如 [圖 9] 所示,您可以加入 Visual Basic® for Applications (VBA) 程式碼透過 Access 應用程式來更新中繼資料,而不必重寫應用程式。員工可繼續使用他所熟悉的工具,並同時發展到網路,廠商可以根據他們的權限存取外部網站 (因此只能查看他們應該可以查看的內容),而沒有一致性或資料庫大小的問題。

Figure 9 使用程式碼更新中繼資料

Figure 9** 使用程式碼更新中繼資料 **(按影像可放大)

內建安全性

將 Access 應用程式移至 SharePoint 最大的好處之一,就是能夠利用 SharePoint 安全性模型,這種模型有內建的 Active Directory® 驗證。也就是說,您不必再藉著建立結構描述和資料表,然後加入使用者來在 Access 應用程式中實作安全性。透過 SharePoint 清單,您可以利用安全性調整,當中使用者只能查看允許他們查看的內容;這是 SharePoint 特有的功能。此外,如果您不想將某些資料庫元件移往 SharePoint,您不必移動它們。

SharePoint 提供一種細微的角色型安全性模型。在決定要如何和何時移動資料庫時,您應該先設計網站和安全性,然後再進行移轉。這樣的話,設定和測試權限比較容易。另外,移轉的問題也會比較少,而且 Access 資料庫執行起來也比較有效率。

參考完整性

我一定得討論一下參考完整性這個主題,不然就是我的疏忽。事實上,SharePoint 並不會像 Access 一樣強制參考完整性。許多安裝在某些程度上都已正規化。若要讓這些任務關鍵 Access 資料庫順利運作的話,也必須把這列入考量。好在,實際上有幾項因應措施可當做現有系統的增強。

我之前有提到,在移動資料庫到 SharePoint 時,如果移動子資料表的話,父資料表也會跟著移動。此外,SharePoint 如果認出欄位選擇是根據其他資料表而決定的,便會使用查閱欄位。比方說,假設在 Northwind Traders 資料庫中選取了一個客戶,也下了一張訂單。若將這些資料表移到 SharePoint,則客戶欄位會在訂單清單中變成查閱。

那麼串聯更新/刪除和比較複雜的作業呢?這時候應該考慮採用 SharePoint 和它的工作流程作為可能的解決方案。回到 Northwind Traders 資料庫的例子,假設客戶打電話取消現有的訂單,這隨之會觸發幾項動作:庫存必須放回,必須通知供應商,負責訂單的員工必須連絡客戶處理後續事宜,送貨必須取消,而且也需要更新會計。這牽涉到很多移動組件和協調工作。

利用 SharePoint Designer,您可以在 SharePoint 中建立工作流程,以便在訂單狀態一變更時,立刻完成上述所有動作。有 22 種現成的工作流程可混搭成上百個動作。SharePoint Designer 是建立您的網站品牌以及建立工作流程的絕佳工具。

最棒的是,使用者只要熟悉如何為 Access 進行「程式設計」,就等於具備以 SharePoint Designer 建立工作流程的技能。換句話說,建立 Access 應用程式的使用者不需要費太多功夫,就可以轉換和擴展他們的技能來建立工作流程。利用 SharePoint Designer 建立工作流程完全不用寫程式碼,而且部署這些工作流程也很簡單。

Peter Serzo 在 CDW Berbee 擔任資深工程師一職,他主要負責為全球各地的公司建構 SharePoint Enterprise 解決方案。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.