将Access数据库部署为产品

时间:2012-12-31 09:15:22

标签: ms-access deployment installation package sales

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

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

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

2 个答案:

答案 0 :(得分:3)

这是一个非常广泛的问题。书的整个章节都是针对该主题撰写的。我只是给你一个简短的解释:


打包访问数据库的最佳方式是什么,以及用户不必拥有完整的访问权限?

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

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


此外,该产品将来可以更新

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


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

答案 1 :(得分:3)

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

  • 转换为.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。这对安全性,备份,前端升级和异地维护都有好处(尽管我会强调,你永远不会得到一个使用访问作为前端的完全安全的系统)。