部署 Access 2007 应用程序

更新时间: 2008年7月

应用到: Office Resource Kit

 

上一次修改主题: 2008-07-17

本文内容:

  • 将数据和逻辑分离

  • 使用 Access 2007 Runtime

  • 决定所使用的文件格式

  • 将应用程序打包

本文讨论有关使用 Microsoft Office Access 2007 创建的数据库应用程序的部署规划,另外还讨论 Access 2007 Runtime 的功能。若要部署无需在用户计算机上安装 Office Access 2007 就能运行的 Office Access 2007 应用程序,您可以将这些应用程序与 Access 2007 Runtime 一起分发。若要下载 Access 2007 Runtime,请访问 Access 2007 下载:Access Runtime

将数据和逻辑分离

可以创建将数据管理和应用程序逻辑组合在一个文件中的 Office Access 2007 应用程序。这就是 Office Access 2007 中的默认应用程序结构。将数据管理和应用程序逻辑组合在一个文件中,实现了一种最简单的部署方法,但此方法只在每次仅由一个人使用应用程序时效果才最好,而且它存在一些风险。例如,用户可能会因无意中删除或破坏程序文件而导致数据丢失。

在大多数情况下,您应将数据管理和应用程序逻辑分离。这有助于提高:

  • 安全性   使用服务器来存储数据有助于确保数据安全。

  • 性能  使用拆分的数据库或数据库服务器有助于减少网络流量。

  • 自定义性   导航窗格的新宏操作可以帮助您控制谁可以查看什么内容。您可以将不同的应用程序逻辑文件分发给不同的用户。

  • 便携性   “脱机工作”和“同步”命令可以为不在办公室中的用户提供帮助。

将数据和逻辑分离的一种方法是使用 Access 数据库命令(位于“数据库工具”选项卡上的“数据库工具”组中)。Access 数据库命令将数据库应用程序拆分为两个 Office Access 2007 文件:一个用于数据,另一个用于逻辑。当您使用 Access 数据库命令时,Office Access 2007 会创建文件名后缀为“_be”(表示“后端”)的文件。例如,如果原始数据库文件名是“Database1.accdb”,Office Access 2007 将会创建名为“Database1_be.accdb”的新数据库文件。

将数据管理和应用程序逻辑分离的另一种方法是,使用数据库服务器程序(如 Microsoft SQL Server)来管理数据,并使用 Office Access 2007 来提供应用程序逻辑。

若要确定单个 Office Access 2007 文件是否足以同时应付数据管理和应用程序逻辑,请考虑下列事项:

  • 数据完整性和安全性   Office Access 2007 用户必须具有包含应用程序逻辑的文件的读/写权限。如果将数据和逻辑组合在一个文件中,则数据将与应用程序逻辑承受同样的风险。使用独立的逻辑文件和数据文件的 Office Access 2007 应用程序可以通过利用 NTFS 安全功能帮助保护数据的完整性和安全性。由于用户只需要应用程序逻辑文件的显式读/写权限,因此可以使数据文件更为安全。

    您的应用程序可能需要额外的安全选项,例如控制哪些用户有权访问特定数据的能力。在这种情况下,应使用服务器产品(例如 SQL Server)或包含 Windows SharePoint Services 3.0 的 Windows 服务器操作系统来存储和管理应用程序数据,并使用 Office Access 2007 提供应用程序逻辑。

  • 可伸缩性   Office Access 2007 文件最大可以达到 2 千兆字节 (GB)。尽管 2 GB 包含数量巨大的文本数据,但对于某些应用程序仍可能不足,尤其是对于在数据库记录中存储附件的应用程序。如果将数据和逻辑分离,则应用程序可以容纳更多的数据。如果预计到用户将存储大量数据,则可以考虑使用多个 Office Access 2007 数据文件。您还应查阅 Office Access 2007 程序规范,以了解其他可伸缩性信息。

  • 网络容量   如果多个用户必须同时在网络上使用应用程序,那么,倘若将数据和逻辑组合在一个文件中,则数据更有可能损坏。此外,如果将数据和逻辑组合在一个 Office Access 2007 文件中,则无法优化 Office Access 2007 产生的网络流量。如果多个用户将同时在网络上使用您的应用程序,则应将数据和逻辑分离,方法是使用两个或多个 Office Access 2007 文件,或者使用数据库服务器产品来管理数据,并使用 Office Access 2007 来提供应用程序逻辑。

使用 Access 2007 Runtime

如果所有用户都要在各自的计算机上安装 Office Access 2007,则他们可以打开和使用应用程序,就像他们在 Office Access 2007 中打开和使用任何数据库文件一样。如果部分或全部用户不愿在各自的计算机上安装 Office Access 2007,则您需要在部署应用程序时向这些用户部署 Access 2007 Runtime。若要下载 Access 2007 Runtime,请访问 Access 2007 下载:Access Runtime

Access 2007 Runtime 是一个可再发行的程序,允许未在其计算机上安装 Office Access 2007 的用户使用 Office Access 2007 数据库应用程序。如果您使用 Access 2007 Runtime 打开 Office Access 2007 数据库,则会以运行时模式将其打开。运行时模式是一种 Office Access 2007 操作模式,在此模式下某些 Office Access 2007 功能默认无法使用。不过,其中的部分功能也可以在运行时模式下变为可用的。

Office Access 2007 中的下列功能在运行时模式下不可用:

  • 导航窗格   导航窗格在运行时模式下不可用。这有助于防止用户访问数据库应用程序中的任意对象。在使用运行时模式时,只能打开您对用户公开(例如通过提供切换面板表单来公开)的那些对象。无法使导航窗格在运行时模式下变得可用。

  • 功能区   默认情况下,功能区在运行时模式下不可用。这有助于防止用户创建或修改数据库对象,以及防止用户执行其他可能有害的操作,例如连接到新的数据源或以您不希望使用的方式导出数据。您可以创建自定义功能区,然后将该功能区与表单或报表关联。无法在运行时模式下显露默认的功能区选项卡。

  • 设计视图和布局视图   在运行时模式下,设计视图和布局视图对于任何数据库对象均不可用。这有助于防止用户修改数据库应用程序中的对象设计。无法在运行时模式下启用设计视图或布局视图。

  • 帮助   默认情况下,集成的帮助在运行时模式下不可用。由于您控制着哪些功能在运行时模式应用程序中可用,因此某些标准的集成 Office Access 2007 帮助内容可能与您的应用程序用户不相关,从而可能会使他们感到困惑或失望。如果使用 Access 2007 Developer Extensions 来打包和部署数据库应用程序,则可以随您的运行时模式应用程序一起提供自定义帮助文件。

在安装了完整版本的 Office Access 2007 的计算机上,可以在运行时模式下运行任何 Office Access 2007 数据库。若要在运行时模式下运行 Office Access 2007 数据库,请使用以下方法之一:

  • 将数据库文件的文件扩展名从 .accdb 更改为 .accdr。

  • 创建数据库的快捷方式,然后在快捷方式中加入 /Runtime 命令行开关。

尽管运行时模式限制导航和设计功能的可用性,但您不应将运行时模式用作保护数据库应用程序的主要方式。在安装了完整版本的 Office Access 2007 的计算机上,用户可能可以将运行时数据库应用程序作为常规数据库应用程序(即所有功能均可用)打开,然后更改设计或执行其他有害的操作。

即使仅在未安装完整版本的 Office Access 2007 的计算机上部署数据库应用程序,用户仍可以将应用程序传输到安装了完整版本的 Office Access 2007 的计算机,然后将运行时数据库应用程序作为常规数据库应用程序打开。

如果您要分发 Office Access 2007 应用程序,以使用户无法修改表单、报表或 Microsoft Visual Basic for Applications (VBA) 模块的设计,请考虑使用已编译的二进制文件 (.accde)。有关如何使用已编译的二进制文件的详细信息,请参阅决定所使用的文件格式。

决定所使用的文件格式

在您部署应用程序时,可以使用四种 Office Access 2007 文件格式:

  • .accdb   这是 Office Access 2007 的默认文件格式。如果您以这种格式来部署应用程序,用户便可以尽最大可能地按照自己所选的方式来自定义和导航应用程序。如果您想确保用户不会更改应用程序的设计,则应使用 .accde 文件格式。另外,用户无法轻易确定 .accdb 文件在您将它打包后是否已被更改。若要使这一点变得显而易见,请使用 .accdc 文件格式。

  • .accdc   这种格式也称为 Access 部署文件。Access 部署文件包含一个程序文件及其关联的数字签名。这种文件格式可向用户保证这一点:在您将程序文件打包后,没有人更改过程序文件。您可以将这种格式应用到默认格式的 Office Access 2007 文件 (.accdb),或应用到 Office Access 2007 的已编译二进制文件 (.accde)。您只能将一个程序文件放入 Access 部署文件中。如果您的应用程序具有独立的数据文件和逻辑文件,则可以分别将它们打包。有关如何使用 Access 部署文件的详细信息,请参阅打包并签署 Access 2007 数据库。

  • .accde   这种格式也称为已编译的二进制文件。在 Office Access 2007 中,已编译的二进制文件是指在保存时已编译了所有 VBA 代码的数据库应用程序文件。Office Access 2007 的已编译二进制文件中不再有任何 VBA 源代码。可以使用 Access 2007 Runtime 打开 Office Access 2007 的已编译二进制文件。但是,默认情况下此 Runtime 不能识别 .accde 文件扩展名。若要使用 Access 2007 Runtime 打开已编译的二进制文件,请创建指向 Access 2007 Runtime 的快捷方式,并包含希望此快捷方式打开的已编译二进制文件的路径。

    Important重要信息
    如果使用安装了 Service Pack 1 的 Office Access 2007 创建某个已编译的二进制文件,则用户无法使用未安装 Service Pack 1 的完整版本的 Office Access 2007 打开这个已编译的二进制文件。若要解决此问题,用户应安装 Service Pack 1。
  • .accdr   这种格式使您能够部署在运行时模式下打开的应用程序。虽然部署运行时应用程序并非保护应用程序安全的手段,但这样做可以帮助您控制其使用方式。

将应用程序打包

若要安装应用程序,最简单的方法是向应用程序用户提供数据库应用程序文件。但是,如果您计划将应用程序部署到大型的用户群,或者计划多次部署应用程序,则应考虑使用软件打包实用程序(例如 Access 2007 Developer Extensions 包解决方案向导),以便将应用程序打包为一个 Windows Installer 程序包(.msi 文件)。之后,您可以使用该程序包安装应用程序。

您可以使用包解决方案向导执行以下操作:

  • 创建应用程序的自定义快捷方式。可以利用向导的此功能帮助使用 Access 2007 Runtime 来运行应用程序的用户更轻松地打开已编译的二进制文件。

  • 将安装文件夹添加为可信位置。

  • 在用户的计算机上自动安装 Access 2007 Runtime(如果尚未这样做的话)。

  • 在应用程序中包含其他文件,例如自定义帮助文件。

  • 创建或修改注册表项。

  • 分发 Microsoft 软件许可条款。

  • 向“控制面板”中的“添加或删除程序”列表添加有关应用程序的信息。

将拆分的数据库打包

Access 2007 Developer Extensions 包解决方案向导不允许多个安装路径。如果应用程序具有独立的数据组件和逻辑组件,并且使用 Access 2007 Developer Extensions 将应用程序打包,则您可能需要将 Office Access 2007 数据文件手动安装在适当的位置(例如文件服务器)中。

具有独立的数据组件和逻辑组件的应用程序使用链接的表来连接这两个组件。由于每个网络都不同,因此,指定这两个组件的安装路径可能不切实际。在大多数情况下,如果使用包解决方案向导,则仅使用此向导将逻辑组件打包。

如果您有关于这两个组件的安装路径的充足信息,则可能想通过使用包解决方案向导创建两个安装程序包,以便您可以指定每个组件的安装路径。

打包并签署 Office Access 2007 数据库

在 Office Access 2007 中,签署并分发数据库的过程比在早期 Access 版本中更为轻松快速。创建 .accdb 文件或 .accde 文件后,可以将文件打包,再将数字签名应用于该包,然后将签名的包分发给其他用户。“打包并签署”功能会先将数据库放在 Access 部署 (.accdc) 文件中,再签署该包,然后将经过代码签名的包放在您指定的用户计算机上某个位置。此后,用户可以从包中提取数据库,并直接在数据库中操作,而不是在包文件中操作。

Note注意
尽管此功能也称为“打包”,但它所完成的任务不同于 Access 2007 Developer Extensions 的包解决方案向导所完成的任务。本节讨论的功能将 Office Access 2007 文件打包,并将数字签名应用于该包,以便向用户指出文件是可信的。

在您继续创建和签署包时,请记住以下几点:

  • 将数据库打包并签署该包是传递信任的方式。当您或您的用户收到包时,可通过签名来确认数据库未经篡改。如果您信任作者,则可以启用内容。

  • 新的“打包并签署”功能只适用于以 Office Access 2007 文件格式保存的数据库。Office Access 2007 提供了来自早期 Microsoft Office 版本的工具,可用于签署并分发以早期文件格式创建的数据库。不能使用早期 Office 版本中的工具签署并部署以新的 Office Access 2007 文件格式创建的文件。

  • 只能将一个数据库文件添加到包中。

  • 在打包并签署数据库时,数据库文件中的所有对象均具有代码签名,而不仅仅是宏或代码模块才会这样。“打包并签署”过程还会压缩包文件,以帮助减少下载时间。

  • 可以从位于运行 Windows SharePoint Services 3.0 的服务器上的包文件中提取数据库。

若要创建签名的包,请打开要打包并签署的数据库。

Note注意
若要完成这些步骤,您必须有至少一个可用的安全证书。如果计算机上没有安装证书,则可以使用 SelfCert 工具创建一个证书。有关如何创建专用安全证书的信息,请参阅保护 Access 2007 数据库

创建签名的包

  1. 单击“Microsoft Office 按钮”,单击“发布”,然后单击“打包并签署”。

  2. 在“选择证书”对话框中,选择数字证书,然后单击“确定”。此时将出现“创建 Microsoft Office Access 签名包”对话框。

  3. 在“保存位置”列表中,为签名的数据库包选择一个位置。

  4. 在“文件名”框中为签名的包输入名称,然后单击“创建”。Office Access 2007 将创建 .accdc 文件,并将它放入您选择的位置。