access 比较时间作为条件_解决方案


作者:Luke Chung


在Excel与Access之间抉择

Microsoft Office的高级用户经常问我们,为什么要使用Access?什么时候应该使用Access,而不是Excel?特别是当他们Excel用起来非常顺手的时候。以下是我们的观点。

给信息工作者赋能

我们认为,这不是二选一的问题。它们各自都有各自的优势,并且天然的相辅相成。了解它们的差异,并在不同的情况下,选择适合的一个的人,可以为他们自己以及所属的企业带来竞争优势。

Microsoft Office产品为个人(微软称之为信息工作者)赋能,使其可以独立完成任务。这样,你就可以充分利用你对工作内容的理解,为要做的事情弄一个解决方案。这要比你将问题提交到”IT专业人士”那里,去寻求帮助而高效得多。因为你需要让他了解你的技术需求,而他很可能对你的业务背景一无所知。当他还没有搞清楚状况,就去创建技术解决方案,结果可想而知。

Microsoft Excel的优点

Excel的学习曲线非常短,所以使用Excel很容易,而且生产效率很高。需要IT人员创建Excel的情况很少,信息工作者们可以自己做。

Excel可以轻松的存储数据,执行数值计算,格式化单元格,调整布局,生成结果或报告分享给他人。还有一些高级功能,例如,分类汇总,数据透视表,数据透视图,分析工具包,以及许多模板。这些高级功能使得Excel能够轻松完成各种任务。它甚至可以与SQL Server的分析服务(商业智能)集成,获取数据后,调整一下布局,字体,颜色等,得到你想要的报表。

Microsoft Excel的缺点

不幸的是,Excel的灵活性是有代价的。虽然创建公式,引用单元格,复制粘贴数据,以及将多个工作表和工作簿链接在一起都很容易,但随着工作变得越来越复杂,Excel数据变得越来越难管理。诚然,Excel是创建一次性分析的理想选择,但是随着时间的推移,数据会不断增长,业务会不断演化,Excel会变得问题多多。当新的行和列被添加进来后,汇总区域和公式可能需要修改或新增,数据和公式如果更新不一致,会导致错误的结果和决定。

Excel面临的挑战在于,随着时间推移,数据量不断增加,要准确的维护它们,是非常有难度的。

Microsoft Access的优点

Excel专家一般很难理解Access提供的那些Excel并不具备的功能。Access有以下几个特性:

  • 通过多个表让数据结构化和规范化
  • 可扩展性:可以自由的增加更多的数据记录
  • 数据和参照完整性
  • 查询和报表
  • 通过宏和VBA代码模块自动化

表结构和验证

使用Access,你可以很容易做到,将信息存储在一个地方,而在多个地方引用它。例如,你可以将客户信息(可能有客户姓名,地址,电话号码,电子邮件等)保存在客户表中。而这些信息可能会在其他的地方(可能是查询,窗体,报表等)被引用。如果客户的信息发生变化了,新的信息会在所有被引用的地方自动更新。设计表的时候,你会加入一些约束限制,例如设定字段为数值型,日期型,或者文本型等,从而获得比电子表格更高质量的数据。而设定字段类型仅仅只是一个开始。

Access中的记录可以自由的增减

Access与Excel最大的区别就是,在Access中,记录的增减是自由的。只要设计得当,新的数据记录可以随时不断的添加进来,而不需要填加任何新的字段(列)。所有的查询,窗体和报表会照常工作,而无需任何调整。当然,你可能会使用不同的筛选条件,但出来的结果一定是一致的。新的数据添加进来后,不需要重新测试或调整单元格公式。这样每年,每季度,每月,每周或每日,你都能生成准确的报告。

数据和参照完整性

有句话说“垃圾进,垃圾出”(garbage in – garbage out)。Access为规避这一点提供了许多工具,来保证数据质量。在Access表中,你可以很容易将查阅列表和验证规则应用于单个字段(列)和记录上。在窗体上做数据输入的时候,你还可以添加额外的规则来响应用户的选择和事件。Access还提供表间的参照完整性,以确保数据在多个表中有一致的定义。

查询和报表

你可以使用Access的查询和报表来切分数据,并以详细或者汇总的形式来呈现它,而不用去考虑数据是如何存储的和排序的。它提供了大量的功能和灵活性来分析和呈现结果。使用分组功能时,聚合信息可以随着数据的变动而自动增减。

通过宏与VBA模块进行自动化

在Access宏或者VBA模块中,你可以使用Docmd.TransferSpreadsheet命令将数据从Access表或查询中导出到Excel(使用acExport选项)。

使用acImport选项,TransferSpreadsheet命令还可以将Excel中的数据导入到Access表。

实际上,如果使用Office VBA自动化,你可以在Access中打开一个Excel文件,并将数据写入到指定的单元格,自动的更新Excel中的数据。

Microsoft Access的缺点

Access最大的缺点就是,做为一个数据库,它需要你掌握更多的知识和技能才能使用。搞清楚如何定义规范化的表,将他们连接在一起,并结构化好数据,使其易于编辑,查询和生成报表,这些内容对于初学者来说是很有挑战性的。但是这是设计所有关系型数据库,都需要面对的问题,一旦掌握了,你就可以将其应用于其他数据库。

构建数据库,创建查询和设计报表布局的学习曲线可能看起来相当艰巨。这肯定要比在Excel单元格中敲入数据要复杂得多。另外,很可能让你感到十分沮丧的是,在Access中,你无法轻松的复制和粘贴单元格区域,你也无法在Access的报表结构中做任何特别的调整。(例如,想通过特殊字体或备注来突出显示某个值或者某一行)虽然你可以利用Access的VBA代码模块来做定制化,但是相对于Excel所见即所得(WYSIWYG)的设计来说,你要花费更多的精力。此外,一些数据分析功能,比如power pivot,在Access中是没有的。

结论

Excel可以非常灵活的生成个性化的报表,并且可以在任何地方自由的设定格式或添加批注。Access回报给你的则是,一旦设计完毕投入使用,它就能提供长期的数据准确性和一致性,毕其功于一役。对于一次性的分析来讲,使用Access当然就是用牛刀杀鸡,但如果数据需要长期维护,报表需要定时生成的话,使用Excel往往会遇到困难。大多数企业都有许多“相似”的Excel表,相互之间只存在一点点细微的差异,但是随着时间的推移,很快它们就变得不一致。精心设计的Access数据库就不存在这种难以管理的挑战。也就是说,Access和Excel都有其优点和缺点。

最佳实践就是将Excel和Access两者的优点结合起来,形成一个混合解决方案,将Access中的数据导出或复制到Excel。Access数据库的数据参照完整性,严格定义的数据以及有质量保证的数据输出,再结合适宜临时分析的Excel,可以让你充分利用两者的优势。而使用自动化流程,可以让数据在Excel与Access之间的平滑的交互和共享。

根据我们的经验,这些解决方案会随着时间的推移,以一种非常不可预知的方式进化升迁。掌握这种混合解决方案,能让你快速灵活的响应业务变化,使你和企业有效的完成任务。

祝你好运!