您从Access中挤出了哪些奇怪的功能?还有什么可以取代它的位置?
答案 0 :(得分:42)
Access不是DBMS。或者至少它不是只是一个简单的DBMS。这是一个非常好的RAD环境,一种以图形方式创建SQL代码的简单方法,以及完全成熟的DBM的常规前端。
SQL Server(Express或MSDE)以及Oracle,MySQL等都不会永远替换它,直到它们集成了简单的编程语言,类似Crystal Reports的设施和初学者的方式无需学习SQL即可四处游览。
在我的第一份专业工作中,我在Access中完全开发了一个非常大的系统。客户的前端,管理前端,管理报告和监控,每个用户的权限,特定时间运行的自动任务等等。结果我学到了很多缺陷和优势。
我见过使用它的奇妙应用程序,以及废话。我仍然将它用于个人项目,并且不会为此感到羞耻(例如,数独播放器或卡诺映射实现)。有一个MVP完全在Access中创建了一个Paint克隆,尽管我认为这是极端的。
访问'珍珠:很容易测试数据库设计理念,并为您创建草图表格,报告等。如果您更改列的名称(甚至是表,尽管有时会失败),很高兴看到对它的所有引用都自动更改为新名称。 “子形式”控制摇滚,我渴望在VB6上。并且在桌子上重复过滤的“迅雷”按钮很棒,我希望我在SSMS上有这样的东西!
答案 1 :(得分:21)
替换Access的问题 - 并且替换Access是 问题,这在我建议将Ubuntu或SUSE桌面迁移到我的业务客户端的绝大多数情况下阻止了我 - 并不是Access广泛存在用于其数据库设施:除了使用用户编写的部门应用程序中最多Micky Mouse之外,重新编码相对简单。问题是中型应用程序,其中数据很久以前就已迁移到公司SQL Server。
这是一场噩梦。他们经常编写得很糟糕(多年来我已经获得了很多管理人员)并且封装了大量的业务逻辑。在任何中重新编码它们通常会在最好的情况下引用几个人月 - 通常是两倍或三倍,并且对于这样大小的部门而言,预算是支持。此外,虽然AJAX的出现和良好的类似桌面的控件意味着这至少现在在理论上是可行的,但在实践中,这些都与MS Office桌面的其余部分大规模集成,并且几乎不可能与用户看到在短期到中期内可用性下降 - 这本身就是一个阻碍。
我真的不知道解决方案是什么,除了用其他方法创建新系统的缓慢替代,并希望现有应用程序的逐渐消亡。麻烦的是我认为Access很可能是20世纪90年代的Cobol - 它将永远支持遗留应用程序,因为从头开始重写太昂贵了。
另外,来自非Access传统Win32编码背景的其他人是否有经验发现甚至专业编写的Access应用程序的编码标准通常低于平均水平?虽然格式和变量名称等表面(但很重要)的东西通常很好,但我一遍又一遍地发现程序结构很差。我知道这可能经常是因为这些应用程序已经像Topsy一样增长,而VBA实际上并不利于良好的编码,但即使考虑到这些因素,事情看起来也会比人们预期的更糟糕。
答案 2 :(得分:12)
我认为简单的答案是什么......通常使用Access,因为它是唯一的选项,并且它是可扩展的。几乎没有任何其他东西可以安装在世界上几乎所有的商业机器上。 如果您正在寻找替代方案,Oracle Application Express是一个功能强大的基于Web的应用程序,可以在Oracle XE上运行。它是Access的潜在替代方案,但不支持Master-Detail表和访问。
答案 3 :(得分:7)
世界上有一个连续的开发者,而不是硬性和快速的界限。人员包括业务经理和IT专业人员。我认为自己是一名高级业余开发人员,介于两者之间。因此,我在工作中使用MS Access在小型建筑办公室中组织大量数据,包括时间表,财务和架构规范。当然,这个应用程序现在是一个发臭的p **,已经发展了近五年。
我一直在寻找比Access更好的东西 - 我可以在VB.NET中创建简单的应用程序但是VBA的学习曲线很大。我看过各种各样的选择。通常,您需要Crystal Reports才能获得任何类型的报告功能,或者IDE不直观,或者将字段链接到数据对象每次需要十分钟,或者根本没有与其他办公产品集成。老板也不会为炸弹付出代价。我很乐意远离Access,但我看过的任何东西都无处可读。
答案 4 :(得分:6)
关于Access的好处是它解决了大量的IT问题。它配备了MS办公室,所以它已被批准用于锁定的计算机,但我不必试图通过各个部门,编码时间来考虑申请,以及所有的测试应用程序我可以在一个下午用Access启动。肯定的SQL服务器很好用,但不值得头疼。
答案 5 :(得分:5)
我堂兄是一个严肃的FileMaker家伙。他似乎做得很好,并且已经成长了一家小公司。显然,FileMaker是一个跨平台的Mac / PC系统,用于快速开发应用程序...
也许这样的事情会随着业务用户/ RAD设置而上升?
微软可能有故意杀死这样的数据库系统的历史。我曾在Les Pinter听过一次.Net Rocks采访,他声称曾经听过一位微软高管说,每一份FoxPro的副本都会导致微软数千美元的版税损失。 FoxPro今天在哪里?从官方方面来说,它已经在2007年3月结束了。那么它是如何从促销到消亡的?好吧,莱斯说,微软已经收购了它并故意将其运入地面。
我对阴谋理论的态度通常不大,但这确实与微软那个时代的记录产生了共鸣。
无论如何,除了琐事之外,我相信会有更多RAD风格的数据库工具......他们授权非开发人员并允许开发人员快速解决某些类型的问题。我不喜欢将它们用于大型项目,不幸的是,级联 - 小型项目往往会随着时间的推移而增长。因此,我只将它们用于非常重要的事情。
至于长期后果......好吧,我看到他们没有很好地扩展的情况,所有那些支离破碎的解决方案开始看起来很像技术债务。实际上可以将Access挂钩到SQL Server后端,这解决了很多问题。
我使用Access做的最大/最奇怪的事情可能是从头开始编写EDI系统。对于那些与EDI有过第一手工作的人,你知道我在说什么。真是个愚蠢的想法。我在这里遇到的问题更多的是与VBA相比而不是Access - 我记得只是真的需要接口而没有它们。
在Codesmith之类的东西可用之前,我还用它来代码生成。它为ASP Classic生成了业务对象(CRUD和其他一些基础知识)。这真的很棒。
答案 6 :(得分:5)
我怀疑微软是否会杀掉Access。借助Access 2007的integration with Sharepoint以及SharePoint的快速增长,Access实际上可能会重新成为SharePoint网站的脱机和报告工具。
答案 7 :(得分:4)
我不认为MS有任何意图摆脱Access。他们可能会将其转换为更多的最终用户工具,而不是程序员的工具,但它永远不会消失。将Jet数据库引擎分解为随每个Windows副本一起提供的传统Jet 4版本(因为Active Directory使用Jet 4作为其数据存储)以及Access开发组拥有的版本(ACE及其ACCDB)文件格式,事实上,Jet 4.5或Jet 5)。
Access是一个非常受欢迎且非常有用的应用程序,可以在任何数量的组织(无论大小)中的所有级别中运行。
为什么没有Access的开源替代方案?
因为制作如此复杂的软件太难以完成许多不同的事情了。
答案 8 :(得分:3)
根据我的经验,Excel在团队中使用得更为广泛。我们刚才正在做一个项目,我们将~60 000个Excel文档(每个包含4-12张)转换为Sharepoint和Infopath表单。 ;)
答案 9 :(得分:2)
Microsoft希望我们转而使用Office Business Applications - 基本上将办公室应用程序连接到数据库。将SharePoint添加到组合中并且有很多可能性。 MS也有很多许可费用。
我见过用于集成和前端GIS和健康数据的访问权限。它让我不知道这个应用程序编码和记录的程度。
答案 10 :(得分:1)
Access只是迁移到桌面上的单个用户或共享数据库文件上的少数用户中的更多用户,而没有太多安全性。如果要将其提升到稍高的级别,请使用Access作为SQL Server的前端。
现在看来,Access 2010正在寻求获取SharePoint的钩子,试图“启用”Web应用程序。甚至还有适合这项技术的主机网站。也许所有那些关注Access无法扩展的人都不会再担心了?
答案 11 :(得分:1)
访问绝对有赞成和缺点,它只是另一种使用工具,但不是滥用。我曾经使用的每个成人工作都在Windows上运行,因此Access或类似的东西都会存在。我为那些陷入Access流沙或在excel地狱中迷失的地方感到遗憾。但是,我们是否忘记了所有可以通过糟糕的屁股和适当的培训来纠正和更好地预防的事情。
答案 12 :(得分:1)
我认为Access不会很快消失。 Office 2010的测试版包含更新的Access,微软博客正在大肆宣扬Access 14(2010年之后的版本)的功能,其中包括改进的Access项目(.ADP)以及对SQL Server 2005/2008及更好的支持。净整合。
如果我要寻找一个新的集成数据库开发系统,提供前端和后端功能,Oracle APEX将是主要的竞争者。前端是基于Web的,不需要在客户端上运行,整个系统可以免费下载和安装(快速版),并且几年后新用户的入口门槛有望减少,因此这是外行人可以涉足的内容。 / p>
答案 13 :(得分:1)
就我见过的最奇怪的东西挤进Access ......
我是一所小型大学的警察调度员,我们(几乎每个机构都使用)使用CAD(计算机辅助调度)和RMS(记录管理系统)系统。
我们以前的CAD / RMS软件完全建立在Access中。你打开了Access,通过一个丑陋的GUI,输入了服务呼叫,一切。官员通过同一界面撰写报告。
一开始效果很好,然后随着数据库大小的增长,它变得极其缓慢且难以使用。当州政府让你选择项目中出价最低的人时,会发生这种情况......
现在我们使用基于浏览器的CAD / RMS解决方案,由MS SQL支持。
答案 14 :(得分:1)
我欢迎Access呼吸最后一口气并加入Clippy之类的那一天。
访问是出于善意,但它已成为一个拐点。即使在拥有能干的IT员工的大型公司中,Access应用程序也可能猖獗,这为了解产品维护时的全球格局提供了一个痛点。在我看来,指向其他数据源,未维护的Access应用程序以及剪切灵活性的链接Access数据库是个问题。我认为Access实际上太强大,太灵活,而且对于自身的好处而言太过可扩展。在微软善意的尝试将快速开发带入桌面数据库领域的过程中,它确实打开了潘多拉盒子。从另一个角度来看也是如此。假设公司有一些用Access编写的应用程序。编写它们的开发人员离开了。这些应用程序非常重要,它们仍然需要使用,但不够重要,以至于IT部门批准将它们移植到技术更强大的平台上。
现在,情况是如果团队中没有人知道Access,则需要新开发人员。这意味着如果他没有传统印章,你可能不得不传递技术最全面且最合适的开发人员。我是根据经验说的。我们归结为两个传统的Access应用程序,并且正在疯狂地试图说服将功能合并到相关的基于代码的项目或者他们自己的新项目中的需求。我有一个开发人员使用Access“chops”,并且如果有人知道Access是否离开,我不打算根据候选人搜索。
答案 15 :(得分:1)
作为马克。 Access是我的第一个数据库方法,当时我发现它很强大。它有一些很好的功能,比如从“按示例查询”生成SQL。它的形式特征和能力以各种格式(例如标签纸)打印也很不错。
在缺点方面,它是专有的,并且每个新版本都与前一个版本不兼容:如果您使用Access 2000加载使用Access 97制作的基座,则无法再使用旧版本加载它......
虽然我没有做太多的个人数据库工作(主要是地址列表),但对于这样的工作,我会使用Open Office的数据库工具(尚未尝试)或者一个好的旧开源数据库(MySQL,SQLite来(作为轻量级基础),带有GUI前端,例如SQuirreL SQL Client,可能还有JasperReport作为报告前端。
不像Access那样集成,学习曲线更陡峭,但不知何故更灵活。
现在,我确信我们可以找到一些简单的旧的非关系型数据库,用于我当时的简单用法。 : - )
答案 16 :(得分:0)
FileMaker是一个很好的数据库,可以从MS Access转移。 它是一个跨平台的数据库(mac / PC)。它有一个Web Viewer,您可以通过它连接到Web世界。例如,可以在此Web查看器中显示图表,地图等。 FileMaker易于初学者使用。您还可以探索脚本机制并实现数据操作。 最新的FileMaker 10有几个新的有趣功能。我的投票是FileMaker。
答案 17 :(得分:0)
像许多人一样,多年来我一直使用和滥用访问权限,但总觉得有点脏......当我最近看到Rob Conery的这篇文章时,我感觉好一点:
http://blog.wekeroad.com/blog/hacking-your-vote/
永远不会梦想在投票系统中使用访问权限。吓人。
答案 18 :(得分:0)
PostgreSQL,MySQL,FileMaker,<插入不在此处访问的数据库名称> ,Excel,自定义解析器,自然语言导入器,Perl只因为它是瑞士军刀,grep awk sed,m4,Access的消亡之前的旧版Access,...
奇怪的功能?我使用SQL语句来访问Access,而不是通常无数的访问Access的方法。我使用的SQL语句与其他数据库以及Access一起使用 - 我知道很奇怪。
答案 19 :(得分:-1)
如果人们发现它存在,我相信File Maker Pro可能会成为一个新标准。
FMP具有Access的所有相同功能/缺点,如果您知道自己在做什么,实际上可以设置真正的客户端/服务器。
在单个文件中,您可以定义表单,报告,表格等。它也是跨平台的,可在Windows或Mac上运行,也可以根据网络进行调整。全部按设计。
从“真正的”SQL服务器到File Maker Pro在精神上真的很难,但是一旦掌握了它,我发现它非常棒。现在作为一个数据库,它没有什么特别的,但作为一个数据库应用程序开发系统,“普通”的人可以使用它真的很闪耀。
如果您在网络设置上进行计划,我建议您花时间学习如何预先将存储数据库与应用程序数据库分开。否则升级需要您进行大量的数据导出/导入,如果表格发生显着变化,可能需要一段时间或几乎不可能。
我已经建立了一个呼叫中心应用程序,可以自动处理拨入的电话号码,并使用NT上的FMP自动拨打普通的POTS电话。那是大约6年前的事情,所以我想它从那时起就得到了改善。
答案 20 :(得分:-1)
当我希望Excel可以执行“左内连接”时,我只使用了Access。否则,MS已经做了一个公平的工作,使C#/ SQL提供简单(和免费)用于轻量级RDB项目。