Microsoft Office

Access 数据库与 Sharepoint 集成

Peter Serzo

 

概览:

  • Access 与 SharePoint 集成的优势
  • 向 Sharepoint 迁移 Access 数据
  • 使用 Sharepoint 扩展 Access 的功能

我与最终用户讨论 Microsoft Office SharePoint Server (MOSS) 2007 时,通常会请他们告诉我使用何种工具及如何使用这些工具。我发现的一个普遍现象是:

公司内一定会有部分人在使用 Microsoft® Office AccessTM 处理重要的业务。对于许多公司而言,Access 仍是主要的工具和重要的资产。

MOSS 2007 能让基于 Access 的应用程序充分发挥功效,并可将其集成到 SharePoint® 之中,从而产生一个功能突飞猛进的新解决方案。本文重点介绍 MOSS 如何与 Access 实现集成、两者的集成位置以及最终用户怎样配置它们形成解决方案。

MOSS 为 Access 引进的基础技术中包括工作流、常用存储库 (SQL Server®) 和 基于 Web 的界面(浏览器)。SharePoint 的功能包括文档管理、工作区、设置自定义列表、利用内置的工作流和现成的 Web 部件,其内容包罗万象:从广告活动、建立联系人列表或事件列表,到管理用户创建的表单,应有尽有。此外,由于采用的是最终用户所熟悉且使用便利的 Office 技术,使其感觉能运用自如。由此可见,MOSS 对正在使用的解决方案有益无损。由于不必重新编写应用程序,最终用户可以将精力集中在解决业务问题上,无需顾虑技术问题,从这个角度上,MOSS 还使效率大为提高。

受益的不只是最终用户。IT 部门和管理员需要帮助公司内各个最终用户维护其五花八门的自定义数据库,这是他们面临的一项艰巨任务。许多人只有在出现一定问题时(例如存储限制、多用户访问、安全、修复损坏的数据库、Web 使用、Access 版本不兼容及部署跨多个桌面的更改等),才意识到是在使用 Access 达成重大的业务目标。SharePoint 是解决上述症状的一剂良药。

虽然 Access 有其自身的局限性,但它的确有强大的功能且使用方便,尤其是对于不编写代码的人来讲更是如此。它为您汇集了可配置的关系表、简单查询(和复杂查询)、拖放式前端窗体创建器、基于数据的报告和配置多用户的功能。以 Access 和 SharePoint 为基础创建解决方案既适合需要集中资源和技能的组织,也适合想要利用原有应用程序和技能的个体。

入门

Access 2007 可通过几种途径与 MOSS 2007 集成。如图 1 所示,其中包括:从 SharePoint 列表导入数据、向 SharePoint 站点发布数据、创建 SharePoint 列表、使用 SharePoint 数据做为外部资源、将 Access 数据库迁移到新的或现有的 SharePoint 站点及脱机访问 SharePoint 数据。

Figure 1 Access 2007 可轻松与 SharePoint 实现集成。

Figure 1** Access 2007 可轻松与 SharePoint 实现集成。 **(单击该图像获得较大视图)

最好先通过 Access 表创建 SharePoint 列表。SharePoint 列表与 Access 中的表格极为相似。它保存在 SQL Server 内容数据库中,包含特定的字段属性并支持查询。

创建 SharePoint 列表时请牢记一些限制条件:Microsoft 建议每个视图最多包括 2,000 项目以便取得最佳性能,SharePoint 不强制要求参考完整性,OLE 对象不会导入 SharePoint 且数据的验证受到限制。

要通过 Access 表创建 SharePoint 列表,首先选择“外部数据”选项卡,然后单击“导出”组下启用的“SharePoint 列表”按钮。现在您必须通过填写“导出 - SharePoint 站点”对话框来指定激活此列表的 SharePoint 站点(如图 2 所示),或在表上单击右键,然后选择“导出到 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) 用户信息列表。同时创建一个称为“向 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 Server(最初于 Access 97 中引入)。

将 Access 数据库完整移至 SharePoint 的益处是:所有表格均转换成 SharePoint 列表;生成 Access 数据库的副本;列表自动成为 Access 中链接的表格;您可移动整个数据库,而不只是表格且数据库保持原有的工作方式。

单击“Move to SharePoint”(移动到 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 视图。为此,请浏览找到您将创建视图的列表,选择“Views”(视图)>“Create View”(创建视图)。您会看到“Access 视图”选项,您可使用该选项根据列表创建窗体和报表。单击此选项并选择 Access 数据库,会弹出如图 6 中所示的对话框。如您所见,现在您可定义格式(窗体类型、PivotChart、PivotTable 或报表),完成后,它们会成为 Access 数据库中的链接窗体或报表。

Figure 6 创建 Access 视图

Figure 6** 创建 Access 视图 **(单击该图像获得较大视图)

脱机访问

在现实中,关键任务应用程序能力的扩大会带来投资回报。为扩大集成 Access/SharePoint 应用程序的使用范围,可以指出不必连接 SharePoint 就能进行使用。为了能提高灵活性,Access 2007 引进了脱机工作功能。在连接服务器前,信息缓存在数据库的本机副本中。要使用脱机数据库,单击功能区中“外部数据|SharePoint 列表”组内的“Work Offline”(脱机工作)按钮。

做好重新连接 SharePoint 的准备后,可选择“脱机工作”或“同步”。它们均会上载数据并提交冲突以供审核,选择“同步”时会上载数据,但应用程序仍是脱机状态。

对于“SharePoint 列表”组,您还需要了解其“丢弃更改”功能,它有两个选项:第一个是丢弃所有更改,但不更新 Access 中的 SharePoint 数据。第二个是丢弃所有更改并更新 SharePoint 数据(链接的列表)。

Access 模板

Access 2007 有几个预建的模板,用于帮助用户快速创建业务解决方案,单击表格组中“Create”(创建)选项卡下的“SharePoint Lists”(SharePoint 列表)按钮后,您就可以看到这些模板(如图 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 所示,您可以使用 Access 应用程序添加 Visual Basic® for Applications (VBA) 代码来更新元数据。不必重新编写应用程序。员工既可以访问 Web,又能继续使用其所熟悉的工具,供应商可以依据其权限访问外联网(他们仅能看到有权看到的事项),不会出现并发或数据库大小问题。

Figure 9 使用代码更新元数据

Figure 9** 使用代码更新元数据 **(单击该图像获得较大视图)

内置安全性

将 Access 应用程序移入 SharePoint 的一个最大益处是能够充分利用 SharePoint 安全模型,它内置了 Active Directory® 验证。这样,就无需担心怎样通过创建架构和表格,然后添加用户来在 Access 应用程序中实现安全性。有了 SharePoint 列表,您就可以利用安全修整,用户只能看到允许看的项目,这是 SharePoint 中固有的属性。此外,如果有您不想移动到 SharePoint 的数据库元件,您可以不移动它们。

SharePoint 提供了基于角色的精细安全模型。确定数据库移动方法和目标位置时,您应在迁移前先设计站点和安全性。设置和测试权限也变得更为简单。此外,迁移的故障更少且 Access 数据库的效率也大为提高。

引用完整性

如果我漏掉了引用完整性,那就是我的疏忽。实际上,SharePoint 并不象 Access 那样强制要求引用完整。许多安装都在一定程度上做了规格化处理。要使这些用于关键任务的 Access 数据库正常工作,必须考虑到这一点。幸运的是,我们已经有了一些能增强现有系统的解决办法。

我在前面提到过,在您将数据库移动到 SharePoint 时,如果您移动子表,父表也会移动。此外,当 SharePoint 认识到字段选项是基于另一表格时,它会使用查询字段。例如,假定选择了一个客户且在 Northwind Trader 数据库中放入了订单。如果这些表格移入了 SharePoint,客户字段将成为订单列表中的查询。

级联更新/删除和更多复杂操作又会是怎样的情况呢?在这种情形下,可以考虑使用 SharePoint 及其工作流。还是以 Northwind Trader 数据库为例,假定客户调用后又取消了一份现有订单,这一操作会随后触发几个操作。必须恢复库存、通知供应商、与订单有关的员工必须跟踪客户、取消送货并更新帐目。其中涉及大量移动部件和协调工作。

通过使用 SharePoint Designer,可以在 SharePoint 中创建工作流,在订单状态更改时协助完成上述所有步骤。共有 22 个现成的工作流,它们可以组合并入数百项操作中。SharePoint Designer 对于推广站点和创建工作流而言都是很好的工具

如使用 SharePoint Designer 创建工作流,了解 Access 编程的用户可以使用其熟悉的技巧,这是它的一项最大优势。.这意味着创建 Access 应用程序的用户可轻松将其技能过渡并用于工作流创建。使用 SharePoint Designer 创建工作流时,不必编写代码,并且这些工作流的部署也非常简单。

Peter Serzo 是 CDW Berbee 的高级工程师。他的专长是为全球各家公司构建 SharePoint Enterprise 解决方案。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.