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