【发布时间】:2014-04-17 19:58:40
【问题描述】:
我创建了一个 Access 数据库以供整个部门共享,我将其分为前端和后端。不幸的是,当我添加请求的更新时,我无法找到简单的方法来确保所有用户始终在其本地计算机上使用最新版本的前端。
为了克服这个问题,我创建了一个安装批处理脚本,该脚本会在他们的桌面上创建一个快捷方式。以及在其 PC 上的自定义文件夹中嵌套前端和“更新”批处理脚本。该快捷方式实际上链接到“更新”批处理脚本,然后下载最新版本的前端(覆盖现有的),然后加载它。
理想情况下,这不会每次都下载它,而是仅在网络上的前端版本大于本地机器上的版本时才下载它。不幸的是,我似乎无法弄清楚如何使用 accdb 文件执行此操作(尽管我已经看到了有关可执行文件的信息)。我们正在使用 Access 2010 和 Access 2007 文件类型。我还没有想出如何将版本号附加到前端,但我愿意包含一个文本文件以及简单地存储该版本号。有什么建议吗?
以下是我目前用于更新文件的脚本。
@ECHO OFF
CLS
XCOPY "\\NetworkPath\Install\*.accdb" c:\Reserved\Database /y /q
XCOPY "\\NetworkPath\Install\Update.bat" c:\Reserved\Database /y /q
CLS
ECHO Starting database...
START "" "C:\Reserved\Database\FrontEnd.accdb"
【问题讨论】:
-
这听起来与我们为几个共享访问数据库实现的非常相似。但是,我相信我们的脚本每次都会重新复制它,因为我们的用户倾向于让数据库长时间保持打开状态。如果我要实现这一点,我可能会支持文本文件的想法,因为即使只是打开共享的 .accdb 来检查“版本表”也有可能导致问题。
-
我总是在前端有一个单行表,在后端有一个单行表。在该表中是区域代码默认值等内容。当然还有版本号。因此,您首先启动该应用程序,如果版本号不匹配,则您可以使用批处理文件并退出 Access。因此,bat 文件复制到前端并重新启动它。 bat 文件中的“ok”提示往往会给出“更多”,然后有足够的时间让前端退出/关闭。这种方法意味着您启动 Access 而不是要更新/复制的 bat 文件或脚本。
-
不错的主意。因此,您基本上在 vba 中编写一个宏或脚本以在数据库启动时运行,比较版本号并启动批处理脚本(可能有超时)并关闭更新并重新启动访问?
-
为什么不在本地前端表中放一个版本号,然后在后端有一个版本号。设置快捷方式以启动主应用程序 (FE)。在您的启动代码中检查版本号,如果未匹配,则退出您的启动脚本并退出前端。批处理文件的第一行应该有一个提示“即将更新”,这将为 FE 留出时间关闭 + 退出。事实上,我建议使用 VBS 脚本,因为它具有 msgbox 功能。
标签: ms-access batch-file ms-access-2007 ms-access-2010