【问题标题】:Deploying an Access Database as a Product [closed]将 Access 数据库部署为产品 [关闭]
【发布时间】:2012-12-15 12:00:42
【问题描述】:

我有一个简单的问题。我是开发世界的新手,并且创建了一些相当不错的访问数据库。这些数据库面向小企业主。目前,我有一些小型企业对我创建的数据库感兴趣,这些数据库是可以购买的潜在产品。打包访问数据库的最佳方式和方法是什么,这样用户就不必拥有完整的访问权限副本,并且将来可以更新产品。例如版本 1.1 可能是启动版本,但 1.2 可能包含数据库启动屏幕上的日期和时间?

如果需要更多信息,请告诉我,我很乐意上传更多信息。

我使用的 Access 数据库是 Access 2013。

【问题讨论】:

    标签: ms-access deployment installation package


    【解决方案1】:

    这是一个对我有用的简单设置:

    • 转换为 .accde。
    • 为用户提供访问运行时。
    • 拆分数据库。
    • 将更新的前端放入与客户共享的 Dropbox 帐户中。
    • 在启动屏幕加载事件中使用以下代码提示客户端如何查找后端。

    Private Sub Form_Load() On Error GoTo frm_error Dim RS As Recordset Dim cn As Database Set cn = CurrentDb Set RS = cn.OpenRecordset("tblX") 'Insert name of any table in backend RS.Close Exit Sub frm_error: If MsgBox("Database cannot be found. Advanced Users press OK to link the tables. Otherwise, notify an admin and press cancel to close the xProgram.", vbOKCancel) = vbOK Then RunCommand acCmdLinkedTableManager Else DoCmd.Quit End If End Sub

    我会注意到,我已经停止使用访问作为后端并切换到由 Amazon RDS 托管的 SQL Server。这对于安全、备份、前端升级和异地维护(尽管我要强调的是,您永远不会获得一个使用访问作为前端的完全安全的系统)。

    【讨论】:

      【解决方案2】:

      这是一个相当广泛的问题。整本书的章节都是关于这个主题的。我将简单地给你一个简短的解释:


      如何以及最好的方法是打包一个访问数据库,以便用户不必拥有完整的访问权限副本?

      这里最简单的做法是将您的数据库文件编译为 .mde 或 .accde。它不是防弹的,但会阻止临时用户对您的产品进行逆向工程。

      从 Access 2007 开始,Access Runtime 可免费使用。使用运行时,您的用户将无法访问数据库窗口(列出所有表、查询、表单、报告等的窗口),因此您需要为此提供备用导航。


      同时也让产品可以在未来更新

      我读过关于 Tony Toews 的 Auto FE Updater 的好消息。我没有亲自使用过它(我使用了 Inno Setup 和我编写的其他自定义脚本的组合),但我听说它非常适合您所说的。


      最后一点。 在分发之前,您绝对必须将数据库分成前端和后端。

      【讨论】:

      • 是的,前后端分离至关重要。它允许您部署新版本的应用程序,同时保持后端的客户数据不受影响。您必须实现一种机制,允许应用在启动时自动链接后端表,因为后端的文件路径很可能与您的开发 PC 上的不同。
      • 谢谢,如果我打算将数据库打包到 U 盘上用于部署和安装,这是确保安装路径始终相同的好方法吗?
      猜你喜欢
      • 2015-12-24
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 2017-08-08
      相关资源
      最近更新 更多