MS Access 前端:有哪些风险?

Wil*_*son 2 oracle ms-access frontend project-management

我正在考虑为 Oracle 数据库构建 MS Access 前端。

我不是开发人员(我是公共工程人员),但我确实了解 MS Access 和 Oracle。用户数量将是 5,可能会增长到 10-20。前端主要是报告,具有用于数据输入的奇怪形式。安全不是主要问题;由数据库处理,信息不敏感。

我知道 MS Access 项目往往最终成为灾难性的怪物。据我所知,MS Access 并不是一个企业系统。

然而我正在考虑它,因为,好吧,我没有任何其他选择。我不是 IT 部门的,我的 IT 部门根本没有资源可以提供帮助。在我的组织中,一个合适的、企业的、开箱即用的系统需要 5 到 10 年的时间。我等不了那么久了。相反,我可以使用 MS Access。

我希望如果我坚持一些关键原则,前端不会最终成为一个脆弱的、灾难性的怪物,而是一个可持续和强大的系统。

我希望:

  • 让它尽可能简单。如果功能不是绝对必要的,那么就不要实现它。迫使利益相关者证明他们的要求是合理的。
  • 仅将其视为原型,而不是正式的企业系统。让所有利益相关者郑重宣誓最终将其迁移到适当的企业系统中。
  • 配置,不要自定义。仅将自定义 (VBA) 作为绝对的最后手段。即便如此,在诉诸定制之前,请考虑不做任何事情。我这样说,因为我是办公室里唯一一个知道如何编写脚本的人,而且我什至不擅长脚本。
  • 定期举行“消防演习”。如果它坏了,而我不在身边帮忙,会发生什么?定期举行培训/知识共享会议,向同事介绍该系统。
  • 照料系统就像照料花园一样。保持领先地位。通过使其更简单、更高效并删除不必要的功能来不断改进它。

尽管如此,即使我设法做这些事情,我猜仍然存在与在 MS Access 中制作企业系统相关的问题。

与企业 MS Access 前端相关的风险和固有问题是什么?

小智 6

首先,你应该给自己信用!你绝对不会听起来没有经验。恰恰相反。您构建和维护系统的方法听起来是一流的。关于您的限制,听起来您需要一个报告工具,而且 Access 是您唯一的选择。我知道这里有一条评论建议使用 Oracle Apex,但我认为这不适合您。使用对 Oracle 的本机访问方法的产品肯定会比 Access 执行得更好,但这并不意味着您已经走到了死胡同。如果您了解它的局限性,Access 是一个强大的工具(我指的不仅仅是 2GB 的文件大小限制;我怀疑您会遇到这种情况)。以下是我可以提供的一些建议,希望这不会听起来很陌生:

  1. 如果您有能力将 SQL 编写为 Oracle 中的存储过程或视图,那么请执行此操作。
  2. 不要链接到 Oracle 中的表,这会非常缓慢。
  3. 不要使用 ADO 将数据从 Oracle 传输到 Access,这也会很慢,因为它需要逐行处理。
  4. 使用 SQL 传递查询连接到 Oracle 并执行您的存储过程/视图/SQL。这将是您最快的选择,因为 Access 只将您的查询发送到服务器执行;它本身不做任何事情来运行它(或估计如何运行它)。
  5. 尝试在 Oracle 中执行所有逻辑。意思是,如果您没有编写存储过程的能力,并假设您需要创建临时表,那么在 oracle 会话中或在您通过 SQL 传递查询执行的 SQL 脚本中执行此操作。
  6. 如果您需要将数据传输到 Access,请尝试对其进行限制。您可能不会创建 200 页的报告,因此不要返回不需要访问的数据;充分利用服务器的处理能力。
  7. 假设您已完成所有这些工作,现在准备分发 Access 文件。不要将数据库放在网络驱动器上并与用户共享。为每个用户提供自己的副本。现在,这个话题本身将是一个很长的讨论,因为版本控制之类的东西开始发挥作用,但我不会在这里讨论。如果用户每次需要使用它时都可以访问网站并下载干净的 Access 文件,那么就这样做。如果没有,他们将始终启动他们的本地副本,您需要对 Access 中的任何本地数据实施一些清理例程,然后启用压缩时关闭设置,以便消除可能影响性能的混乱。
  8. 如果您对 Oracle 的查询效果不佳,并且您的报告最终变得缓慢,请不要害怕寻求帮助。DBA 不会喜欢您所做的任何会影响其数据库性能的事情,因此请利用它们来帮助调整您的 SQL。