2011-06-06 98 views
5

我有一个与MySql服务器交谈的前端Access 2007应用程序。如何自动更新MS-Access 2007应用程序

我想要一个功能,用户计算机上的应用程序可以检测到网络上有新版本(这并不困难),并将最新版本下载到本地驱动器并启动它。

有没有人有任何知识或经验如何做到这一点?

感谢

回答

5

你真的需要需要找出是否有更新的版本?

我们也有类似的设置,我们只是每次都复制前端和所有相关文件有人启动应用程序。

我们的用户不启动Access或前端本身。他们真正开始一个批处理文件,它看起来是这样的:

@echo off 
xcopy x:\soft\frontend.mde c:\app\ /Y 
c:\app\frontend.mde 

当我们开始写我们的应用程序,我们想到了自动更新,以及和决定,只是复制一切每次就足够了。

我们有足够的带宽,所以复制不会产生任何性能问题(约200名用户)。

另外,当我确信每次启动应用程序时,前端都会被覆盖,这使得我作为开发人员更容易一些。
我不必关心在关闭前端时自动压缩前端(以及用户抱怨关闭应用程序需要很长时间......),并且在崩溃后我不必处理损坏的前端。


@Lumis - 关于自定义图标:
好吧,也许我应该让这更清楚。只有一个批处理文件,并且它位于与前端相同的网络文件夹中。
用户的桌面上只有链接,它们都指向网络文件夹中的同一批处理文件。
这意味着:

  1. 批处理文件未来的变化很容易,因为它只是一个单一的 文件中的一个中心位置
  2. 我们可以更改图标,因为 什么用户看到的是一个正常的Windows链接

(顺便说一句,我们确实不变化图标。我们的应用程序仅供内部使用,而且我在一家制造公司工作,这意味着只有极少数用户绝对不是技术人员,并且不会在乎图标,只要所有机器上的相同他们知道它是怎么样的,所以他们可以在桌面上快速找到它...)

+0

该解决方案有效,但我无法将自定义图标分配给批处理文件,这对于更加用户友好和专业的外观至关重要。我同意,当用户每天启动一次数据库时,数据流量不会太大。 – Lumis 2011-06-06 15:36:37

+3

为什么你首先考虑自动压缩(紧密关闭)FE?如果您的应用程序对临时数据或用户特定数据使用本地表,请将它们放在单独的本地数据库中,并链接到FE中的这些表。看起来非常不寻常,你会有任何其他原因来压缩MDE FE。无论如何,避免自动压缩。 – HansUp 2011-06-06 15:40:17

+0

@HansUp:是的,只因为本地表。虽然好点,但我们从未想过将临时表放入单独的本地数据库中。 – 2011-06-06 15:46:51

2

托尼·托斯有一个:Access Auto FE Updater

这似乎是免费的,但我不是100%肯定。

+1

是的,它的免费和相当不错,我推出了我自己的使用相同的想法之前,我发现了一个 – 2011-06-06 15:00:12

+0

我不知道这是如何工作,我必须每次有更新电子邮件用户或他们只是点击桌面上的相同链接,最初由该实用程序生成? – Lumis 2011-06-06 15:07:07

+0

Free in b ** r - no。这是15天后的唠叨。 – BIBD 2011-06-07 17:29:24

0

Lumis的选项是稳定的,但是如果你想检查版本,并且只有当它们是新版本时才复制数据库,在后端表中有'版本'字段,在前端模块中有'版本'常量。保持这些与每个新的生产版本同步。当前端数据库的主窗体打开时,将表格版本与模块中的版本进行比较。

如果它们不匹配,请关闭数据库,但让数据库调用一个批处理文件作为它关闭时运行的最后一个代码位。数据库应该在批处理文件开始复制之前完成关闭。如果需要,请在批处理文件代码中稍微加一点延迟,以确保没有文件锁定问题。