Excel / Access的replace或迁移策略

有没有一种方法可以提供最终用户在灌输集中式ITpipe理时所喜爱的Excel / Access开发的灵活性,以便数据和逻辑是安全的,备份的,版本控制等。常见的选项是在C#/ ASP.Net / Java / Python / Your Choice,但是这会从用户手中夺走控制权。 有没有更好的方法,你在你的网站做什么?

有一个普遍的问题,用户创build非常有用的Excel / Access迷你应用程序,IT部门想要控制。 用户喜欢Excel提供的灵活性,尤其是在dynamic更改,graphics和数据导入/导出时。 在Access中,我们拥有出色的QBE。 不足之处在于,一段时间以后,一大批失控的电子表格/ mdbs成为关键任务,业务逻辑知之甚less,而且代码很脆弱,尤其是在员工前进的过程中,他们非常痛苦。

这使得IT部门处于一个尴尬的位置,他们希望支持这些应用程序,但对这些应用程序不够了解。 这样做比较困难,因为它们通常没有零文件而不安全。

你有没有考虑过看SharePoint的部门级应用程序? 许多专业开发人员会忽略使用Sharepoint进行“应用程序开发”的想法,但它真的可以成为“高级用户”开始将他们的数据和工具放在一个托pipe框架中的好方法。

使用SharePoint,您可以pipe理网站的整体结构,然后在各自的部门中使用提升的权限设置用户。 有一些很棒的第三方工具可以帮助您了解SharePoint网站上正在发生的事情。

SharePoint不是任何方式的灵丹妙药,但是对于许多需要跟踪数据列表的多用户应用程序来说,这非常棒。


(以下和我上面的答案没有什么关系,但是你的问题真的打到了家,我想我会分享我的类似经验和见解。)

我们公司在不久的将来也将经历类似的过程。 我处于事物的“最终用户”一边,可以同情许多凯文·罗斯所说的话 。 有时,Access和Excel是我可以完成工作的最佳工具。

以下是一个例子:几年前,我被问到要为中国的供应商创build一个采购订单系统,为其提供3个月的交货时间。 我们的ERP软件有几个采购function,但是没有什么能够接近我们所面临的复杂情况。 多年以后,在Excel( VLOOKUP是一个救生员)中经历了几次应用程序的迭代之后,Access(“ 就是为什么人们使用关系数据库真棒!),并回到Excel(”让我们不要这么复杂“) ,我仍然发现这些Micorosft Office应用程序是完成工作的最佳工具。

使用这些工具完成工作的成本是多less?

  • 与我们的ERP供应商签订合同,为此订购stream程添加一项特殊function:您在开玩笑吗? 我们可能会花费数万美元来购买一个用户体验非常不灵活的单一应用程序…而且我们仍然会在Excel中结束。
  • 购买专门为这一过程devise的第三方软件:我看过一个现场演示的软件,它完全符合我的采购stream程。 起价为$ 100,000。 我们可能还有其他工具可以获得几千美元,但是在这个价位上,我已经在我自己的应用程序中模拟了大部分function。
  • 试着“手工完成”。 : 哈! 我是一名程序员,这意味着我很懒惰。 如果坐在办公桌前需要花费一周的时间来处理采购订单(实际上需要很长时间),那么我们可以打赌,我将会制定一个解决scheme,这样只需要几个小时(现在它确实)。 也许后面的人会回去做大部分的工作,但我会用我的工具箱中的工具来节省时间和精力。

很难find完美的应用程序,以便在用户端获得最大的创造性,但仍然允许IT“pipe理”它。 一旦你认为你find了一个解决scheme,你意识到它不会做别的。 我可以在这个解决scheme中写我可打印的报告,就像我以前在Access中做的那样? 我可以编写复杂的Excel公式,将多个数据源从不同的工作表连接在一起(“你想让我学习什么吗?不,我从来没有听说过”SQuirre L查询“, VLOOKUP是很好,谢谢你)我可以将结果通过电子邮件发送给我部门的人员?能否像我在Excel和Access中那样自动从我们的后端数据库中提取数据?我可以编写自己的代码,VBA或其他方式,使我的工作更轻松吗?继续。

最后,我可以给任何IT经理提供最好的build议,就是尊重贵公司的其他员工。 让他们知道他们的工作是重要的(即使它只对他们和下一个桌子上的人有用)。 让他们知道你不是在努力工作。 不要以为他们是在办公室生产力软件中创build关键任务应用程序的白痴; 他们只是试图用手头的工具完成工作,而且通常都是非常有能力和聪明的人 。 邀请他们您一起探索不同的解决scheme而不是仅仅删除他们目前在工具箱中的工具,然后replace他们不知道如何使用的工具。

在一天结束的时候,如果你有足够聪明的用户通过在Excel和Access中创build复杂的应用程序来开始自己的脚步,他们可能足够聪明,学会使用适当的工具来完成相同的任务。 投入时间和精力让他们参与到这个过程中,最终你会得到一个适合每个人的解决scheme。

在篱笆的两边,我会去追究问题的根源。 为什么使用自己的小应用程序? 因为它太难/昂贵/耗时/在通过“适当”渠道时从来没有变得正确。

另一方面,他们倾向于非常了解业务,虽然他们的编码可能不是很好,但他们对需要做什么的了解是非常好的。

那么我们能做些什么来对付这个问题呢? 我个人认为他们应该是一个IT小组,他们的工作(或者他们的工作之一)是开发这些小应用程序。 他们应该和最终用户密切合作,不要被锁在IT的象牙塔里。

在我目前的angular色中,我在非IT领域,我有一些相当重要的应用程序需要开发,所以我要求在SQL服务器上安装visual studio和一些空间。 我拒绝了我的请求。 所以我只是要求SQL服务器空间,再次请求被拒绝(每个请求需要大约一个星期才能通过)所以最后我被“卡住”访问。

现在,这些都是非常好的访问应用程序与版本控制,评论(震惊!)和所有其他好东西,但在一天结束时,我试图做的事情“正确”的方式,结果被迫下来的访问路线。 所以当我的应用程序试图扩大规模,并且引用很长一段时间来重写谁是责任?

你可以尝试一种混合的方法:允许你的用户使用Excel / Access来自己制作专门的工具,但是把任务关键的东西放在IT控制之下。 有几个策略可以帮助你:

  • 确保您的IT部门在VBA上是坚定的。 不是“每个人都可以写几行”的知识types,而是深入的培训,就像你是一个不那么简单的编程语言一样。 虽然“真正的程序员”会告诉你,但是可以在VBA中编写大而稳定的应用程序。
  • 如果您当前在Access数据库中有数据 ,请将其移出并将其迁移到SQL Server。 这使您可以进行集中的备份和pipe理,同时还可以让高级用户将这些SQL Server表“连接”到Access前端。
  • 常用的业务逻辑应该在IT部门的控制之下。 这可以通过VBA来完成,通过创build由用户链接的访问库,或者使用COM互操作以任何.net语言创build。 后者听起来比以前复杂得多,它会提高您的IT部门的满意度,因为在.net中开发比VBA(版本控制可能等)更有价值。

我会第二个凯文·罗斯的要点之一:

我个人认为他们应该是一个IT小组,他们的工作(或者他们的工作之一)是开发这些小应用程序。 他们应该和最终用户密切合作,不要被锁在IT的象牙塔里。

我认为任何拥有大量使用Access / Excel的用户的IT部门都应该至less有一位经过培训和经验丰富的专家在这些平台上开发应用程序。 那个人将是中间人,以确保:

  1. IT的优先事项和政策可以在本土应用程序中正确实施。

  2. 最终用户可以获得专家的帮助,将他们自己的努力转化为更稳定和精心devise的东西。

我认为Tony的观点是,任何与最终用户合作修改这些应用程序以符合IT标准的人应该与用户并肩工作。 Access / Excel专家应该是最终用户的倡导者,也是IT策略必须遵循的。

我也认为IT部门可以有一两个专家,但是也应该有一个专职的Access和/或Excel开发人员作为顾问,因为在职人员可能可以处理日常问题和应用程序的pipe理,而专业顾问可以被要求进行规划和架构,以及执行更复杂的function集。

但是,所有这些都取决于组织的规模和所涉及的应用程序的数量。 我不知道有什么人只能是Access / Excel的专家,这是不可取的,因为所有受薪雇员的问题与顾问相比都是一样的 – 雇员看不到这么宽作为一个具有相同专业化的积极顾问的各种情况可能会看到,因此顾问将有更广泛的经验。

当然,我认识到很多公司不喜欢把任何东西外包,或者不是那么重要。 我认为这是不明智的,但是再次,我是被决定去做的人雇用的人!

如果是关键任务,而且是在Access或Excel中,则build立得不好,没有人理解,现在可能是正确重build它的时候了。

当“用户”在控制之下时,通常意味着一个特定的人在控制体系结构,devise,编码和文档…除了他们通常省略文档步骤。 源代码pipe理和错误报告是软件开发的试金石,通常是不存在的。 由于Office应用程序(通常embedded到文档中的代码模块)和VBA(小OOP,大多数VBA编码器不使用实现等)的性质,很less有代码重用的实例。 这一切都意味着由此产生的应用程序不会受到适当的审查,质量可能会受到影响,这意味着可能存在维护问题,特别是当一个用户离开时。 我知道,因为我曾经是那个人;)

所以为了满足IT部门需要适当的stream程。 那个“强大的”用户可以继续拥有devise和编码,但是会得到同行评审,或许需要技术作者和专门testing人员的服务,使用源代码pipe理,或者考虑与企业系统集成等。

没有得到使用Excel / Access的使用。 这是可用的,仍然非常强大和灵活。 最好的办法是提供一些关于如何查看和设置文件的指导。 如果每个人都使用类似的标准,那么除了创作者在公司的任期之外,这些文件将会活得更久更有生命力。

关于处理事情的人和业务方面你有一些很好的答案。 所以我的回应会更具技术性。

如果您要重新devise应用程序,开发人员与用户在同一办公室工作。 给用户每天更新一两次。 如果用户有一些小的build议在一两天之内给用户。 超频应用程序部署

给高级用户一个访问MDB / ACCDB链接到一堆起始查询的表。 让他们创build查询他们需要将数据导出到Excel为自己的目的和分配给客户端。