3

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

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

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

4

2 回答 2

3

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


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

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

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


并且还可以在将来更新产品

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


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

于 2012-12-31T15:13:42.967 回答
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。这对于安全性、备份、前端升级和异地维护(尽管我要强调的是,您永远不会获得一个使用访问作为前端的完全安全的系统)。

于 2012-12-31T16:50:26.463 回答