我有一个简单的问题。我是开发世界的新手,并创建了一些相当不错的访问数据库。这些数据库面向小企业主。目前,我有一些小企业对我作为潜在产品购买的数据库感兴趣。如何以及什么是打包访问数据库的最佳方式,以便用户不必拥有完整的访问副本,并且还可以在将来更新产品。例如版本1.1可能是启动版本,但1.2可能包含数据库初始屏幕上的日期和时间?
如果需要更多信息,请告知我们,我将很乐意上传更多信息。
我使用的Access数据库是Access 2013.
答案 0 :(得分:3)
这是一个非常广泛的问题。书的整个章节都是针对该主题撰写的。我只是给你一个简短的解释:
打包访问数据库的最佳方式是什么,以及用户不必拥有完整的访问权限?
这里最简单的方法是将数据库文件编译为.mde或.accde。它不是防弹的,但会阻止临时用户对您的产品进行逆向工程。
从Access 2007开始,Access Runtime可免费使用。使用运行时,您的用户将无法访问数据库窗口(列出所有表格,查询,表单,报告等的内容),因此您需要为此提供备用导航。
此外,该产品将来可以更新
我读过有关Tony Toews的Auto FE Updater的好消息。我没有亲自使用它(我使用了Inno Setup和我编写的其他自定义脚本的组合),但我听说它适合你所说的。
最后一点。 在分发数据库之前,您绝对必须将数据库拆分为前端和后端。
答案 1 :(得分:3)
这是一个对我有用的简单设置:
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。这对安全性,备份,前端升级和异地维护都有好处(尽管我会强调,你永远不会得到一个使用访问作为前端的完全安全的系统)。