ms-access - MS Access 作为企业软件?

标签 ms-access

我的用户经常遇到的事情是他们希望快速获得解决方案,这意味着他们有时会说“哎呀,我会卷起袖子在 Access 中做这件事——它安装在我的桌面上”。

有时,我们很幸运,创建 Access 数据库的人将其后端到 SQL Server,因此至少经常出现的 mdb 文件问题不是问题。

但是,我认为将 Access 前端部署到 SQL Server 数据库作为具有数千个用户和数十万行的企业解决方案仍然存在问题。

您对此有何看法?有哪些潜在的陷阱?

或者

这是一个完全可以接受、稳定、可维护和健壮的解决方案吗?

最佳答案

我已经在这种情况下做了很多工作。事实上,作为一名顾问/开发人员, Access 前端 SQL Server 后端一直是我过去 10 年的主要工作。这并不意味着我喜欢 Access ;-)

在 AJAX 被普遍采用之前,它是一个完全合理的解决方案。仍然有大量的中小型应用程序放在 Access 中,它们完美地运行定制的业务系统,我怀疑它会在 future 10 年或更长时间内消失——事实上,Access/SQL 可能会成为21 世纪的 Cobol。如果您在“绿地”站点上工作,那么在从头开始构建时几乎没有理由部署 Access - 但如果您确实继承了现有应用程序,那么重写的成本可能不值得并且难以通过用户。

Access 确实具有一些仍然很重要的优势 - 如果提议转换为 Web 应用程序,可能会出现问题

  • 很快。对于简单的 CRUD 工作,它的编写和部署速度与任何其他现实解决方案一样快。
  • 鉴于系统,内置报告易于运行并且非常强大。按需为用户创建和部署新报告通常非常容易。
  • 它与 Office 很好地集成在一起。当希望将 Access 应用程序移至 Web 应用程序时,这一点往往会成为阻碍。对于“部门规模”的 Access 应用程序来说, Access 是非常常见的。紧紧的与 Outlook、Word 或 Excel 集成 - 通常三者兼而有之。
    这是 处理实际情况时的主要问题。编码人员很容易低估这一点对于此类系统的日常使用的重要性,即使是对用户施加很小程度的额外麻烦,通常也会遇到很大的阻力 - 通常足以完全破坏项目。
  • 如果你在一个规模合理的部门工作——十几个人——办公室里有人把自己想象成一个计算机巫师是很常见的。如果处理不当,这些人可能是一大痛苦,但同样可能是一项重要 Assets 。如果我有这样的人,我会尝试让管理层向他们发送一两个 Access 类(class),以便他们可以编写简单的查询和报告,并为他们设置一个单独的 Access 应用程序,他们拥有该应用程序具有适当(受限) Access 权限SQL 数据库。然后,您可以信任此人为他们的同事处理生成简单的报告等。这可能是一个真正的双赢——你得到了一个站在你这边的人,并将把你当作导师——在部门里为你提供现成的倡导者——他们让你不必担心繁重的报告工作。他们获得了很多荣誉和工作满意度——甚至是潜在的职业道路。用除 Access 之外的任何其他系统来做这种事情要困难得多,几乎不可能。

  • 主要的实际缺点
  • 部署可能是一场噩梦。通常,如果您有一个定义非常严格的环境 - 一家小公司、单个部门、基于 citrix 或分布在一个密切控制其 PC 的 IT 部门,那么您就可以了。部署为跨多个公司的商业应用程序 - 只有在您可以收取大量维护费用(去过那里)的情况下。
  • 代码无法扩展。 Access VBA 代码,即使是由专业人士编写的,也很容易腐烂成腐烂的意大利面条。最终得到一个易于维护的 Access 应用程序是很常见的,但随着依赖项的增加逐渐变得不可维护。

  • 所以我想说 Access 仍然有一席之地,它的使用在许多现实世界的情况下都是可以辩护的,但如果情况允许,最好选择更现代的解决方案。

    关于ms-access - MS Access 作为企业软件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/469436/

    相关文章:

    c# - 如何删除 Access Db 的临时 ldb 文件

    c# - ListBox 项目在 OwnerDrawFixed 模式下不显示

    sql - 如何对过去 3 个月的列中每个字段进行 SUM()

    c++ - 来自 MFC 的调用 Access 2007 报告

    mysql - 将access 2007链接到mysql

    ms-access - 在哪里可以找到 Microsoft Access SQL 的完整引用资料?

    excel - vba 宏读取带分隔和非分隔空格的字符串

    vba - 在 VBA 中使用 Unicode 文件名(使用 Dir、FileSystemObject 等)

    sql - 遍历行并根据表名进行计数

    ms-access - 打开事件表单的VBA代码