我开发了一个Access 2007数据库,它连接到SQL Server以进行实际的数据存储。我使用了Package Solution Wizard创建了一个可分发的安装程序,其中包括访问运行时(带有ACCDE文件),我在15台左右的PC上安装了这些安装程序。无论如何,我的问题是,将更新分发到这个数据库的最佳方法是什么?现在我需要到处移除并重新安装。这不是问题......我只是想知道是否还有另一种方式。
我已经尝试将前端留在网络共享上,但似乎大多数人建议将前端存储在本地计算机上,这是有道理的。我把它留在网络共享上时遇到的问题(至少使用Access 2003 mdbs)是我发现自己需要经常压缩和修复,我还必须杀死打开的会话(打开文件的用户)升级时。我想如果用户不在本地网络上,它还可以假设产生不必要的瓶颈。
答案 0 :(得分:5)
自动化前端分发非常简单。这是一个已经反复解决的问题。 Tony Toews的http://autofeupdater.com是一个非常容易实现并且对最终用户完全透明的解决方案。
答案 1 :(得分:4)
我们为访问应用开发了一个vbscript'启动器'。这就是在用户电脑的开始菜单上链接的内容,它执行以下操作。
为了将更新分发到用户的电脑,只需更改网络共享中version.txt中的文本即可。
也许你可以实现与此相似的东西
答案 2 :(得分:1)
批处理文件
@ECHO OFF
REM copy from network drive to local
xcopy "Your_Network_Drive\database.adp" "C:\User\database.adp" /Y /R /F
REM call your database file - Access 2007
"C:\Program Files\Microsoft Office\Office12\MSAccess.EXE" "C:\User\database.adp"
答案 3 :(得分:1)
这是一个非常古老的帖子,我使用autofeupdater直到它停止工作,所以我写了一个我自己的,它在过去几年里已经发展成为我与许多客户一起使用的东西。它使用起来非常简单,没有界面。只是一个EXE和一个非常简单的配置文件。
请在这里查看。如果没有任何配置可以满足您的需求,我也可以帮助您定制解决方案。 http://www.dafran.ca/MS-Access-Front-End-Loader.aspx
答案 4 :(得分:1)
在尝试了上述所有解决方案之后(不完全是这些解决方案,但这些是Access社区中的常见建议),我使用VBA完全在Access中开发了一个系统,允许管理员DB创建对象并将对象发布到客户端数据库需要用户干预或管理多个DB文件。
这种方法有几个好处: 1.通过将完全独立于客户端DB的开发和测试专用环境(管理DB)简化为开发过程。 2.它允许开发人员实时推送客户端数据库可以在后台实现的更新,而不涉及用户,从而简化了更新/分发过程。如果需要,还可以允许开发人员回滚到以前的版本。 3.对于希望对对象和模块进行多项更改并保留过去更改的开发人员,它可以在Access中用作一种变更管理系统。 4.通过允许管理员轻松地将特定对象分配给特定用户/角色而无需维护多个版本的DB,它允许更轻松的用户访问控制。
我希望尽快将代码发布到GitHub,我只需要从我的工作场所获得许可即可发布。我会编辑这篇文章,以便在我有这个链接时加入链接。
答案 5 :(得分:0)
我们通常将Access前端保留在网络驱动器上,并且只需要定期进行压缩和修复。无论如何,即使在本地安装它们,您也可能会发现需要这样做。
如果您必须在本地安装它,那么有各种工具可以让您“推出”软件更新,而ServerFault上的人员可以获得更多有关这些的信息。假设这些工具不可用,我能想到的唯一另一个选择是编写一个小型加载程序,根据服务器上的主副本检查本地.MDB,如果它们不同则重新复制它们。启动MDB。