如何将更新分发到Access数据库前端?

时间:2010-02-05 00:06:04

标签: ms-access-2007

我开发了一个Access 2007数据库,它连接到SQL Server以进行实际的数据存储。我使用了Package Solution Wizard创建了一个可分发的安装程序,其中包括访问运行时(带有ACCDE文件),我在15台左右的PC上安装了这些安装程序。无论如何,我的问题是,将更新分发到这个数据库的最佳方法是什么?现在我需要到处移除并重新安装。这不是问题......我只是想知道是否还有另一种方式。

我已经尝试将前端留在网络共享上,但似乎大多数人建议将前端存储在本地计算机上,这是有道理的。我把它留在网络共享上时遇到的问题(至少使用Access 2003 mdbs)是我发现自己需要经常压缩和修复,我还必须杀死打开的会话(打开文件的用户)升级时。我想如果用户不在本地网络上,它还可以假设产生不必要的瓶颈。

6 个答案:

答案 0 :(得分:5)

自动化前端分发非常简单。这是一个已经反复解决的问题。 Tony Toews的http://autofeupdater.com是一个非常容易实现并且对最终用户完全透明的解决方案。

答案 1 :(得分:4)

我们为访问应用开发了一个vbscript'启动器'。这就是在用户电脑的开始菜单上链接的内容,它执行以下操作。

  • 它检查位于网络共享上的version.txt文件,以查看它是否包含与本地存储副本不同的文本
  • 如果文本不同,则会将访问mdb和新版本.txt复制到用户的硬盘中。
  • 最后,它在访问
  • 中运行mdb

为了将更新分发到用户的电脑,只需更改网络共享中version.txt中的文本即可。

也许你可以实现与此相似的东西

答案 2 :(得分:1)

  • 在服务器(网络驱动器)上制作批处理文件。
  • 创建指向该批处理文件的快捷方式链接。
  • 将快捷方式复制到用户桌面。
  • 当用户双击快捷方式时,它会将新的副本从网络复制到本地。
  • 更新新版本时,请替换服务器驱动器上的旧database.adp。
  • 每个用户都在其计算机上获取database.adp的副本。
  • 从网络共享中打开文件时删除安全警告here

批处理文件

@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。