我目前在一个 4 人团队中,负责开发和维护旧版 MS Access 应用程序。
该应用程序非常大,有数百个表单、报告、查询和表格。
目前,我们将前端分为大约 7 个 mde 组件,每个组件本质上都是一个应用程序,并由一个通用前端连接,该前端本质上只是一个菜单 GUI。
我们使用链接表将此前端连接到 MS Access 后端,在代码本身中使用 OpenDatabase(C:\access.mdb) 调用。这个应用程序已经存在了一段时间,因此使用 DAO 连接到 Access 97 后端。
这意味着应用程序的每个用户都有自己的数据库本地副本以进行更改。我们有一个精心控制变更的环境,确保一次只有一个人可以处理数据,他们必须在将主数据库传递给下一个人之前验证所有更改。
委婉地说,这种变更控制环境令人窒息,很快我们将需要在一个时间范围内进行更多的数据更改,这使得单用户访问变得不可行。
所以,我们需要转向多用户访问,但多用户我的意思是只有大约 4 人。这些人可能不在同一个办公室,因此需要某种形式的远程数据库连接。
整个应用程序可能会在一两年内重新设计,将前端和后端都从 MS Access 移开。但是,我们需要尽快进行多用户访问。
那么,多用户幸福的最快途径是什么?
我们正在考虑的建议包括:
- 设置 VPN 以便 MS Access 认为它正在访问常规网络驱动器。这看起来会很慢,我不确定 VPN 是否足够可靠,但这只是我们追求的临时解决方案。
- 将 mdb 后端转换为供多用户远程使用的东西,例如 SQL Server。我们只是不知道如何快速轻松地做到这一点(例如,我们依赖于字段验证规则)我们可能还必须转换回 MS Access 格式,因为其他应用程序接受相同的 .mdb 文件作为数据输入。
- 几乎可以由 1 或 2 个人在几个月内完成的任何事情。
编辑:回应以下评论。
应用程序处理的数据是高度安全的关键数据。它很少更改,并且在导出之前必须经过验证以显示没有逻辑错误。实际上,数据比应用程序本身受到更重的限制!
数据以非平凡的方式相互关联。因此,由于复杂的业务逻辑,对一个表中的记录的更改可能会使另一个表中的记录无效。因此,目前,mdb 数据文件的一份副本被指定为主数据库。任何时候只有一个人拥有主人。如果要对其进行更改,则必须从当前拥有该数据库的人那里获取该数据库。这通常不是问题,因为数据更改很少,以至于有足够的时间发生这种情况。
然而,一个巨大的变化即将到来,我们没有足够的时间来以这种方式工作。我们必须让多人同时处理数据。现在我知道您可以在网络驱动器上共享 mdb 文件,并让同一个办公室的多人在几乎没有风险的情况下处理该文件,但我们需要来自不同公司的人员同时处理数据. 据我了解,设置 VPN 来共享数据是一个糟糕的计划。
我相信我们必须将后端从 MS Access 更改为类似 SQL Server 的东西。但是以这种方式转换模式有多容易?SQL Server 中如何表示 MS Access 表验证规则?