1

我将 ms 访问文件形式保存在每个人都可以访问的网络中。每个人的桌面上都有指向网络中文件的链接。每次我更改文件时,我都必须确保每个人都关闭了 ms 访问文件。

我真的不想到处寻找应用程序是否关闭。我也将文件设置为只读,但没有运气......

4

2 回答 2

2

市场上 MOST 软件的基本概念是您有两个应用程序部分:

Word文档(数据)+word程序可执行文件

Excel文档(数据)+word程序可执行文件。

那么在贵公司工作了 20 年,您如何部署软件?

回答:

您在每台计算机上安装程序。

所以你说的是你开发的软件程序。仅仅因为您使用 c++、vb.net 或 Access to CREATE SOFTWARE,那么您就不会违反此规则。数据文件、文档和计算机程序之间存在差异。

COMPUTER 程序具有代码、表单和用户界面。因此,如果您的计算机支持人员不知道文档和计算机程序之间的区别,那么这将是您问题的根源。

因此,您不允许多人进入一个程序。我的意思是,如果你大楼里的一个人说话有问题,每个人都会回家吗?

当您使用软件的 NEXT 伟大版本时,用户不应该关心。

所以,这意味着:

像您的大多数软件一样,您将其部署到每个用户的工作站。这将使您能够处理软件的下一个出色版本。

完成更改并添加新代码和新功能后,您可以:

将程序编译为可执行文件(在 Access 中,这是一个 mde,或者现在是一个 accDE。然后将其部署到每个用户的工作站。

因此,上述方法允许您使用软件的 NEXT GREAT 版本。您可以将一些更新代码添加到您的软件中,或者甚至只是采用一个登录脚本,将该软件的下一个出色版本复制到每个用户的桌面。

结果是:

您不关心用户是否使用他们当前版本的软件,因为您正在处理未锁定的副本。

因此,您应该分发软件的编译版本,并且像大多数软件一样,您真的希望将该软件分发到每个用户的工作站。

最后但并非最不重要的:

Word 或 Excel 等程序具有所谓的可重入代码。因此,如果您在终端服务器环境中工作,那么这些办公程序可以容忍该服务器上的多个用户,但您使用 Access 创建的程序则不能。因此,即使在这种情况下,每个登录用户都将收到他们自己创建的编译程序的单独副本。

因此,c++ 的工作方式、vb.net、VB6 或在这种情况下 Access 的工作方式对于大多数程序来说都是相同的:

您将该程序分发到每个用户的桌面,因此您在下一个出色版本上工作的问题不是问题。您只需设置并采用一种方法来检查新版本。这意味着您分发程序更新,而不是单个表单更新。即使在更改来代码或修改报告的情况下,也会导致您喜欢 MOST 软件不得不发布新版本。

因此,如果您发布新版本的软件,您就不会遇到您概述的问题。这些用户不必退出他们当前的版本,因为您正在处理该程序的副本。

因此,您需要采用一些系统和代码,以便您向每个用户推出该更新。

我不仅详细解释了你应该运行一个数据和表分开的拆分数据库(正如你所拥有的那样),而且还解释了为什么要分发编译版本以及为什么每个桌面都应该在这里收到这个新程序的副本:

http://www.kallal.ca/Articles/split/index.htm

因此,您需要掌握的唯一基本概念是在计算机和软件行业中,我们有一个计算机程序的概念。一旦你能够掌握你正在创建一个计算机程序,那么你现在就可以掌握这样的概念,即在你创建这样的程序之后,或者在你修改或创建该程序的新版本之后,你然后将这个新程序分发给您的用户群。这就是所有软件的工作原理,Access 在这方面也没有什么不同。

您不会尝试将一种表单包含到生产软件中,而是添加新表单,修改代码,然后将软件编译为可执行文件。事实上,强烈建议使用已编译的 Access 应用程序,因为未处理的错误永远不会重新设置全局变量,因此您的软件变得更加可靠,甚至包括没有错误处理的代码,因为本地和全局变量永远不会重新设置.

于 2013-02-20T15:21:33.303 回答
1

一种解决方案是在与表不同的数据库中维护所有表单、报告、模块、查询等(前端代码)的副本。然后,您可以将表链接到共享网络 Access DB 中的第二个数据库(后端)。前端数据库将部署到每个工作站,而后端数据库是共享的。显然,这引入了更新每个工作站的需要,但这意味着当您需要推出新的前端逻辑时,您不必立即将所有人踢出去。

否则,可悲的是,您需要在数据库上获得一个排他锁,而唯一的方法就是成为唯一一个打开它的锁。

借助脚本,您可以自动拉取最新的“客户端”。您可以只要求所有用户退出应用程序并双击从某个网络位置复制前端的批处理文件。

于 2013-02-20T14:26:38.750 回答