表哥的Access入门:以Excel视角快速学习数据库知识(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-04 22:32:18

点击下载

作者:林书明

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

表哥的Access入门:以Excel视角快速学习数据库知识

表哥的Access入门:以Excel视角快速学习数据库知识试读:

前言

Access都可以做什么

当你在商场或超市结账时,是否注意过收银员面前那个小小显示器上的软件?收银员利用这个软件,结合扫描设备,就可以完成扫描商品、记录销售金额、扣减库存、查看历史记录甚至退换货等操作,我们可以把这个软件叫作“卖货的软件”,如果用专业一点儿的术语来说,这其实是一个典型的“商品进销存软件”。

你可能会想,进销存软件,如此高大上的名字,不是企业里面用的吗?与我们的生活有什么关系?是的,进销存软件确实是企业里最常用的软件之一,但是,如果我告诉你,我们的生活时时刻刻都离不开类似软件,你还觉得这与你的生活无关吗?

进销存软件在本质上是数据记录和处理软件,在智能设备越来越普及的今天,其实各种智能设备无时无刻不在记录和处理关于你的数据。有时你甚至意识不到,你在计算机上的每一次网购操作,就连你的手机,可能每天都在偷偷地监视着你的行踪,记录着你每一笔移动钱包上的消费,保存着你的每一句聊天记录,并有可能偷偷上传到云端服务器,记录在数据库里。记得有人说过:“互联时代无隐私”,一点也不夸张!

在数据库无处不在、数据库思维无处不在的今天,不主动了解一点数据库知识,真的有点OUT了。特别是对于已经熟悉Excel的我们,学习点数据库知识,不但可以帮助我们理解这个数字时代,而且还能提高我们的工作效率。

回到前面超市收银台的场景,如果我告诉你,利用Office中的Access软件也能制作出功能类似的软件,并且,更为神奇的是,仅靠Access软件,你几乎不用编写一句程序代码,让普通Office用户也能过上一把软件设计的瘾,会不会感到有些惊讶?

Access作为Office的组件之一,在众多领域中发挥着作用:利用Access构建中小型企业的生产、计划、库存、销售、人事管理、培训等数据库管理系统,以及用Access建立大公司的“部门级”应用等。不仅如此,Access还是一款极具效力的个人生产力提升工具,在很多Excel难以施展其能力的场所,也能轻松应对。

一提到数据库,有些人(特别是对数据库一知半解的人)动不动就拿Oracle、SQL Server等大型数据库系统说事儿,在这里我告诉大家,如果你想学习数据库知识,Access绝对是一款最好的入门工具,理由不用多,单指其易获得性、易安装性及普及性就足够了。Access作为一款易学易用,功能灵活的小型桌面数据库软件,其能力主要体现在以下两个方面。(1)简单的操作,强大的功能

Access具有可视化的使用界面,这一点在所有的数据库软件里面是领先的。给人印象尤其深刻的是其可视化查询设计界面,至今无人能出其右,本书会重点介绍这方面知识。

由于本书是写给Excel用户作为Access的入门学习的,很多地方会以Excel作为Access的参照物进行对比。我们知道,同为Office组件之一的Excel具有灵活的数据处理和分析能力,然而,其能力是有局限的,比如,当涉及两个数据表之间的“关联”操作时,再比如两个表格之间的“一对多查找”、两个表格之间的“同步修改删除”操作,Excel几乎无能为力,而在Access中,这些都能以其内置功能轻松解决,非常容易。

利用Access中强大的查询功能,我们可以容易地进行各类统计分析操作,方便地组合多个相关的数据表格,实现灵活的表间操作。此外,在处理数据的数量方面,相对于Excel,Access在分析处理上万条记录、十几万条记录及以上的数据时,速度相当快捷且容易操作,极大地提升了部门的工作效率。

在数据处理自动化方面,Excel往往需要编写VBA程序代码来实现,而在Access中,利用其自带的“宏”功能,我们几乎可以抛弃VBA,以鼠标拖拽的方式,把Access中一个个基础的操作像搭积木一样按照自定义的顺序排列起来,形成连续、定制化地逻辑,轻松完成数据处理的自动化操作,大大降低了用户学习Access的难度。(2)Access可以用来开发软件

开发软件向来被人们认为是一种高智商的活动,对于没有接受过编程训练的人来说,学习编写程序代码不亚于学习火星文,而Access对这一切有所改变。

Access可以用来开发各种数据库相关的软件,比如生产管理、销售管理、库存管理等各类企业管理软件。利用Access,我们可以轻松建立数据之间的关系,并且在不写程序代码的情况下,模拟真实商业活动的业务逻辑,设计出功能完善的软件界面。此外,我们还可以通过Access的“报表”功能,设计出符合用户需求的各种格式报告,满足软件用户的个性化需求。通过本书的学习,你会发现,Access作为一款数据库应用的“傻瓜”软件,即使是非计算机专业人员,也能学会。

Access软件满足了那些从事企业管理工作人员的需要,让他们不需要学习那些高大上的编程语言就能开发出实现自己管理思想的软件,让他们借助用软件来规范企业的业务规则,推行其管理理念,实现先进管理思想的真正“落地”。在这个意义上,Access帮助非计算机专业的管理人员实现了开发软件的“梦想”,能够把自己变成“懂管理会编程”的复合型人才。

很多管理人员都有自己的绝妙想法和创意,他们也能很清晰地把这些想法和创意用文字表达出来,但却因为这些想法和创意需要一些计算机知识去实现,因此经常感觉束手无策。或者,不得不等待“永远很忙”的信息技术(IT)部门的支援,以至于好的想法和创意长时间无法变为现实。因此,如果我们能够花一些时间,学习一些Access知识,依靠自己的力量编写一个体现自己独特管理思想的软件,把这些创想变成现实,岂不快哉!

Access和Excel的对比(1)“自由”软件与“强规则”软件

与Access对用户的要求相比,Excel几乎是一种“自由”软件,对用户的操作行为几乎没有任何约束,用户可以在Excel单元格里输入任何内容,比如,文本、数字、日期等,甚至,如果你愿意,也可以在Excel单元格中输入一整篇文章!

Access却是一种“强规则”软件,用户在使用Access之前,必须了解一些要遵守的“规则”,否则你会处处碰壁。比如,在Access数据表中,如果某一列中规定了只能输入日期,那么其绝对不会接受日期以外的其他内容。否则,Access会以报错的方式表示抗议;再如,如果规定表格中的某一列不能有重复内容出现,你就必须遵守这个规则,除非你事先改变了规则。

这些严格的“规则”,似乎让Access变得“高傲”,不像Excel,几乎任何人都可以“调戏”它一下,在Excel工作表中随便输入点什么,然后再画个边框,就能作出一点儿看似有用的东西来。然而对于Access,如果你不懂它的规则,可能连一个字符都无法输入。但是,一旦你了解了Access中那些并不算多的几个“规则”,它就会变得服服贴贴、老老实实地听你指挥。在使用Access提升我们的工作效率之前,必须了解一些Access的规则。

民间有句俗话,叫作“没有规矩,不成方圆”,正是Access中的各种“规则”避免了将来数据处理活动中的各种“意外”的发生。君不见,在Excel中,由于用户一开始对数据组织的不规范,造成Excel报告难以理解,难以维护,难以扩展的例子比比皆是!(2)当前的Access培训存在问题

如果你恰巧是在大一点的书店翻阅本书,那么,请你随便翻阅几本其他国内作者出版的关于Access的书籍,你会发现,这些书籍基本都遵循一个套路,那就是如何建立数据表、建立查询、设计窗体和制作报表。这个逻辑本身并说不上是什么错误,然而,作为一个Access培训资料,只让读者知其然,而不知其所以然。只介绍了Access的操作,却没有介绍这些操作背后隐藏的逻辑,这是不对的。按照这种教材学习,充其量也只能成为Access操作工,而不能成为潜在的数据库管理软件的设计者。

对于当前Access的培训机构,基本也存在着同样的问题,很多培训师只是按照培训材料上的操作步骤,告诉学员先点击什么,后点击什么,经常把Access的核心内容淹没在琐碎的操作细节之中,让学员感到茫然,难以抓住培训的重点。

这本书将竭力避免当前Access书籍和培训中普遍存在的问题,以案例教学的方式,通过一个简单的小饭馆数据库管理程序的开发过程,介绍如何规范化Access数据、如何设计和查询窗体,以及如何设计Access报表和宏。本书不仅介绍Access的操作,而且详细介绍这些操作背后隐含的Access数据库方面的知识,让大家知其然,而且知其所以然。

Access作为一款流行的小型数据库软件,相对于其他数据库软件产品,易学易用,在最大程度上避免了用户的编程需求,但是有得必有失,Access为了保持其开发的灵活性,在开发过程中会涉及各种各样的设置选项,介绍Access中每个选项的设置方法和设置效果是庞杂且无趣的,所以,在本书中我们将以一个小饭馆的管理软件为例,从头到尾地介绍整个软件的设计过程。在设计过程中,我们只对案例中用到的设置选项进行详细的介绍,这样可以避免分散我们的思路,减少我们的学习负担。

本书学习指导

本书不是一本大而全的Access书籍,而是一本以案例为导向,帮助读者快速了解Access的功能,初步理解数据库思维,并能在一步步引导下,开发出一个小型数据库管理软件的案例手册。

因为本书假设读者对Excel已经有了一定程度的了解或使用经验,所以没有像大多数Access书籍那样,开始就引入了大量的数据库专业术语,而是以读者的Excel知识为基础,逐渐过渡到Access的学习之中,让读者感觉到不是在学习一门全新的Access技术,而是在已掌握的Excel技术基础上的“自然扩展”。尽最大努力减轻读者的学习负担。

本书适合那些对Excel比较熟悉,想进一步利用Access知识提升个人和部门生产力的微软Office爱好者,以及那些想进一步利用微软Office技术优化本部门工作效率的职场工作人士阅读。除此之外,对于那些已经读过一些Access“操作手册”,但对Access还没有建立一个整体印象的Access初学者,也非常适用!

最后,我们打个比方,如果说学习Excel是学习一种“技能”,那么学习Access才是学习一种“技术”。如果你已经掌握了Excel,那么学习一些Access知识会让你的数据分析和处理能力有质的飞越——还在固步于Excel?我们都在用Access了!

案例下载地址

本书所使用的案例文件请到百度云盘http://pan.baidu.com/s/1o6r1LGm下载。关注“大数据玩家”公众号,回复“×××××”,也可以获得资源链接。林书明15.9.18第1章 小饭馆也要信息化

本章内容提要:每天,我们用自己最熟悉的方式记录各种数据:日常花费、待办事项、物品的清单,等等。如果没有长远的规划,随着数据量的增加,现在可以灵活管理的数据也许在将来会变得不那么容易处理,甚至变得一塌糊涂!所以,从现在开始,你就需要对现有数据进行必要的规范化改造。1.1 饭馆里的数据

小张在一个不大不小的公司每天过着朝九晚五的生活,工作单调乏味,毫无激情与乐趣。某年某月的某一天,小张终于决定创业,开了一家小小的以送餐业务为主的饭馆。

饭馆位于一个很大的居民区,该居民区有五个大院(1号院至5号院),每个大院有几十栋高层。饭馆的主要业务就是给住在这里的居民和商户提供送餐服务。目前来看,小张的生意不错,前景良好。

随着生意的转好,小张原来那种手写笔记的管理方式渐渐显得力不从心,决定用电脑来管理客户和订单信息,虽然市场上已经有现成的饭馆管理软件出售,但小张并没有购买那些现成软件的打算,这样做的理由是:(1)刚开始创业,以节俭为原则,暂时不想花这份儿钱;(2)商品化的软件程式化,难以应付自己将来可能的业务创新;(3)小张对Excel比较熟悉,觉得Excel一定能胜任饭馆的数据管理工作。

下面的数据就是小张饭馆里的Excel格式的订餐数据。在这里,本书作者要提示大家,要学习数据库知识,最重要的一点就是对数据的了解,因此,为了让大家快速了解数据,不让我们有限的脑力被无关的业务细节所干扰,作者对小张的订餐记录做了一些非常必要的简化处理。目前,小张饭馆里的数据描述如下,具体如图1-1所示。(1)Excel表格里当前只有三位客户:张3、李4、王5。(2)张3、李4、王5各有3、4、5次订餐记录(为了好记)。(3)每次客户订餐都有一个唯一的订单编号。(4)送餐年月日的日期部分和订单编号的最后一位相同(为了好记)。图1-1

我们之所以对订餐记录这样简化,其目的是能够让我们尽快地熟悉数据,让随后的Access的学习过程变得轻松。这里的数据虽然经过了简化处理,但可以确信的是,这样的处理并不影响将来我们把本书中的理念应用于各自的工作实践。要知道,大家在继续阅读下面的内容之前,熟悉客户订单表格中的数据是必须的。

作为一个饭馆,除了客户订单外,菜品清单(也就是饭馆的“菜单”)当然是必不可少的,如图1-2所示的表格就是小张饭馆的菜品价格表。图1-2

一份客户订餐记录,一份菜品清单表,这就是目前小张饭馆的全部基础数据。饭馆在小张的悉心经营下,生意越来越好,很快就积累了几千条记录(我们并没有把几千条记录展示在这里,那样做只能扰乱我们的关注点,这里的十几行数据就足以说明问题了)。1.2 规范的数据才有价值

有一天,小张想对饭馆的经营状况进行盘点(时髦点儿的说法叫作“数据分析”),他首先想要知道的就是:汇总当前“已完成”和“未完成”的订单总金额。也就是说,小张忙活了半天,要算算自己的营业收入如何。

小张认为,饭馆每天的经营数据已经用Excel保存成了电子格式,用计算机分析起来应该不成问题,然而,一旦真正做起来,事情似乎没有想象得那么简单。

作为对于Excel比较熟悉的我们,如果饭馆的订单数据存储成如图1-3所示的格式,那么,在Excel中,只需一个SUM()函数就能汇总出一份订单的总金额。图1-3

然而,不幸的是,小张为了当时记录数据的便捷,客户的订餐数据是如图1-4这样记录的(以订单记录中的DD-00012号订单为例)。图1-4

在图1-4所示的客户的订餐记录中,客户所定的菜品“以文本格式”放在一个单元格中,几乎无法用Excel函数进行数据汇总。小张忽然意识到,自己的Excel的数据记录和管理方式也许存在严重的问题,为了避免走更多的弯路,“钱来”向我求助。

在了解了他的问题后,我半开玩笑地说:“混乱的数据不能产生价值,规范化的数据才有意义。如果你想一劳永逸地解决这个问题,必须进行‘业务流程再造’!”

我对他说,如果你想避免将来数据管理的麻烦,就必须从开始就要“规范化”你的数据。作为完全没有数据库基础知识的小张,我不能给他灌输太多数据库方面的术语,好在有实实在在的数据,再加上小张对 Excel也比较了解,我可以结合具体的数据把如何规范化数据一步一步地演示给他看。

我对小张说,为了能够灵活地对数据进行分析和处理,如果能把客户订餐记录的订单表格(图1-5中的表1)和菜品价格表(图1-5中的表2)结合起来,把一条记录拆成多条记录,变成图1-5中表3这样的数据格式就好了,这样,我们就可以轻松地汇总每种菜品的“销售数量”和“销售额”了。图1-5

在图1-5中,“表3理想表格”中:(1)“数量”列来自“表1 订单记录”中的“所定菜品”一列;(2)“单价”列数据来自“表2菜品价格”;(3)“数量×单价”是新生成的计算列。

在图1-5中,为了使数据适合 Excel 处理,我们仅以客户订餐记录中的DD-00012号订单为例,我们把“表1”中的“一条记录”(DD-00012号订单)经过处理并添加必要的信息后改造成了“表3”中的“三条记录”。

读到这里,你也许会产生这样的疑问,“表3”乍看起来并不十分理想!如果每次接到客户的订餐电话都这样记录在 Excel中,那么,本来一行数据就能解决的问题岂不需要输入多行才能完成?并且其中的“客户姓名”、“客户地址”、“联系电话”、“要求送餐时间”等信息还要重复输入很多次。

你的顾虑是符合逻辑的,可是,接着阅读本书随后的章节就会发现,“表3理想表格”并不是让我们手动输入客户订单,我们并不会直接在这个表格中输入客户订餐数据。这个表格是为了便于数据汇总,通过Excel或Access的表格关联技术“自动”生成的!第2章 数据规范化

本章内容提要:大自然看起来纷繁复杂,但本质上只是百十个化学元素的不同组合;数据五花八门,我们也需要拆解出适于数据处理和分析的基本元素,然后再合理地组合起来!然而数据的拆分并非越细越好,适可而止才是正道。2.1 拆分数据表格

图2-1是小张饭馆客户订餐记录中的一条,面对下面这样的客户订餐记录,观察“所定菜品”列中的内容。这里,表示菜品名称的“文本”和表示菜品价格的“数字”混合在同一个单元格内,根本无法进行自动数据汇总,这是很讨厌的事情,所以必须进行改造。我们必须把“能够参与计算的数字”和“不能参与计算的文本”分离开来(这是一条通用原则,在Excel中也适用哦)。图2-1

作为第一步,我们把客户订单表格中的“所定菜品”列中的内容单独拆分出来形成图2-2中的表格。为了和被拆分表格建立“关联”,我们在拆分出来的表格中也包含了“订单编号”列。这样,我们就可以对于每一条客户订餐记录,都能够以“订单编号”作为关联,到所定菜品表格中查找该订单编号下的所有菜品,如图2-2所示。图2-2

下一步,我们把“所定菜品”中的“数量”分离出来单独形成一列。同时,由于图2-2中“订单编号”合并单元格在Excel中不便于进行筛选、分组等数据分析操作,因此,我们的所定菜品表格最终改造为如图2-3所示的形式。图2-3

有了改造后的每一个订单号的所定菜品及其数量的表格,再结合图2-4所示的饭馆菜品价目表(菜单),就可以在Excel中,利用VLOOKUP()函数,把每种菜品的价目“抓取”到每一订单下所定菜品的表格中。图2-4

进一步,在此基础上,我们还可以添加新的一列,计算出每一种菜品的“数量×单价”,如图2-5所示。图2-5

就这样,最原始数据表格中的每个订单的“所定菜品”列,拆分出来并整理成上面的这个样子后,为了重新组合成理想中的、便于数据汇总的表格,可以通过“订单编号”的关联关系“重新组合回去”,形成如图2-6所示的表格。图2-6

去除合并单元格后,整理形成如图2-7所示的表格。图2-7

我们发现,曾被作为两个表格的“关联列”,第6列的“订单编号”和第1列内容重复,此时第6列的“订单编号”已经完成了它的历史使命,可以不要了。

最后,我们的整理出的“理想表格”如图2-8所示。图2-8

为了方便大家理解,综上所述,单独一条客户订餐记录的整个拆分组合过程如图2-9所示。图2-9

这里,我们只拿一个订单(订单号DD-00012)作为例子讲解如何把订单记录表格拆分组合成便于数据汇总的格式。如果对所有订单进行拆分,其拆分过程如图2-10所示。

在图2-10中,表1的客户订单拆分成了表2 和表3,然后,表3进一步整理成了表4的格式。

由于小张在记录饭馆业务的表格设计时没有想到将来的数据汇总需求,因此才造成了现在的麻烦,不得不对已有数据进行“规范化”整理。庆幸的是,这只是一次性的工作,规范化工作完成以后,新的数据就可以按照规范后的方案进行录入。

业务数据规范化的工作完成后,我们得到了表2和表4,接下来的问题(也是作为本书重点讨论的问题之一)是:如何利用计算机,以表2和表4为基础,整理出我们所期望的、便于进行各种数据汇总的“理想表格”?图2-10

作为对比,为完成这个任务,我们介绍两种方法:一种是 Excel方式,一种是Access方式。通过这两种方案的讲解,我们会亲身感受Excel和Access的差异及Access在数据管理方面的优越性。2.2 对小张的建议

在正式开始解决上一节的问题之前,本着帮人帮到底的原则,我在了解小张饭馆的基本情况后,又进一步了解了饭馆的原材料采购的管理。

关于饭馆的原材料采购,从小张处得到的反馈是:由于目前数据记录得不规范,在原材料采购方面基本无法进行准确的数据分析,食材的采购基本上是靠估计。所以,经常出现因为采购过量,过了保质期不得不扔掉,或者,因为食材准备不足而不得不推掉一些订单的情况。不过,由于目前饭馆规模还不大,一切还在可控范围之内。但在我的“开导”之下,小张确信,如果能把饭馆的数据有效地管理起来,用数据支持采购决策,恐怕效果会好很多。

根据小张的描述,为了优化饭馆的原材料采购流程,我建议小张准备一个“原材料清单”的表格。注意,这个清单不是饭馆的菜单,而是表示饭馆菜单中“各种菜品的原材料组成”的清单。

这个“原材料清单”表格列出了每一个菜品的原材料“组成成分”及其各自“用量”,有了这张表格,我们就可以结合“客户所定的具体菜品“与”菜品的原材料清单”,推算出(已经发生的和预测的)饭馆每个时间周期的原材料消耗量,实现饭馆食材采购的数据化管理,从而避免原材料采购方面的“拍脑门”决策。

在我的指导下,小张整理出下面这个饭馆当前经营的所有菜品的“原材料清单”。通过这个表格,我们可以知道每种菜品的原材料组成和用量。大家可千万别小看了这个表格,在制造业中,这个表格可以算得上企业的“核心数据”之一,在企业管理中发挥着重要作用。我们继续往下学习,你就会逐渐理解这个表格的重要。

好了,现在我们回到这个“原材料清单”的表格,如图2-11所示以夫妻肺片为例:我们观察到,每份夫妻肺片的原材料为牛肉150克、牛杂100克、调味包1袋。我们说过,在管理上,这个表格十分重要,它有一个专有名称,叫作“产品物料清单”,英文叫作BOM(Bill of Material)。

现在我们在小张的饭馆里引入了菜品的“原材料清单”的表格“物料清单”概念,接下来,我们正式对小张的饭馆实施“业务流程再造”!哈哈,话题似乎扯大了点,不过,意思差不多。图2-11第3章 Excel的故事

本章内容提要:经过对小张饭馆Excel数据的规范化处理,Excel的能力似乎也不差嘛!但是,即使Excel在某一方面的能力再强,也逃不脱它在另一方面能力的局限性。本章是Excel的告别演出,也很精彩。3.1 Excel最后的演出

通常来说,人们一旦习惯了某种工具,他就会试图用这种工具解决尽可能多的问题,而不大愿意花一些时间去学习一种全新的、更适合的工具。我们看到一些Excel熟练用户经常用它做一些原本不应该它来做的事情。诸如,用Excel来绘制办公室甚至工厂布局图、用Excel制作手工编织图样……甚至,有人竟然用Excel绘画!

小张也不例外,他觉得,如果Excel 能够解决它目前关于饭馆数据分析的问题,何必花时间去学习一种全新的工具呢?我觉得也有道理,那么让我们先试试Excel的解决方案,用事实说服他吧。

我们用 Excel对饭馆的业务数据进行了基本的规范化整理后,最终形成了 5个不同内容的表格,每个表格保存在单独的 Excel工作表里。并且,为了将来使用方便,我们给每个表格取了一个规范的名字。当然,你完全可以随心所欲地给表格命名,但规范化的表格名称会让你的数据更易于管理,通常的做法是给表格名称加一个表格编号作为前缀,这里的“T”代表Table。这些表格的名字分别是:(1)T0010_业务数据记录

记录“订单编号”、“客户姓名”、“客户地址”、“联系电话"、”要求送餐时间",以及订单是否履行完毕的“备注”等信息。(2)T0020_业务订单详情

记录每一个“订单编号”下,客户所定菜品的详情,包括“所定菜品”名称和“数量”,每一个菜品占据表格一行,在Excel中,我们可以用VLOOKUP()函数,以该表中的“订单编号”为关键字与表T0010中的“订单编号”建立联系。(3)T0030_菜品价目表

包括每个“菜品”的名称和对应的“价格(元)”。在Excel中,我们可以用该表的“菜品”与表T0020中的“所定菜品”用VLOOKUP()函数建立联系。(4)T0040_原材料清单

该表格包括每一“菜品”的“原料”名称、单位菜品原料消耗的“数量”和每一种原料的计量“单位”。这里需要我们注意的是,在Excel中,我们虽然可以用该表的“菜品”列内容与表T0020中的“所定菜品”列内容建立联系。但是,Excel中的VLOOKUP函数却难以解决这里的一个菜品对应多种原材料的“一对多”的问题!这也是我们最终不得不采用Access解决问题的原因之一。

我们把已经初步规范化的四个表格分别保存至 Excel的独立工作表中,工作表的名称就是表格的名称,四个表格的内容和最后的Excel工作簿如图3-1所示。图3-1

下面,我们的任务是:基于这四个表格,用 Excel为工具,把它们重新“组装”成适合进行数据汇总和分析的“理想表格”。

在这里,请允许我先做一下“剧透”:基于这些表格,Excel方案只能完成小张所期望的任务的一半!而任务的另一半,实在不适合在 Excel里完成,因此也就引出了本书的主角:Access。

下面先看看 Excel是如何帮助我们完成这“一半”工作的。在介绍用 Excel处理数据的详细步骤之前,我们先看看用 Excel所能完成任务的最终形式。参照图3-2,基本逻辑如下:

从工作表“T0020_业务订单详情”出发,用Excel中的VLOOKUP()函数,分别:(1)以“订单编号”作为查找关键字,从工作表“T0010_业务数据记录”中提取出“客户姓名”、“客户地址”、“联系电话”、“要求送餐时间”、“备注”等信息。(2)以“所定菜品”作为查找关键字,从工作表“T0030_菜品价目表”中提取出每个订单编号下所定的每个菜品的“价格(元)”。图3-2

如果你对 Excel 中的 VLOOKUP()函数比较熟悉,理解了上面的思路后,你就可以直接跳到下一章阅读了,因为 Excel也就只能帮到你这里了。但是,我还是建议你快速地扫描一下Excel方案的实现过程,万一里面有你不曾用过的Excel技巧呢?

如果你坚持用Excel处理数据的话,由于Excel功能上的局限性,这个Excel解决方案所能实现的最终表格,并不能达到我们的“理想表格”,它只能对饭馆的每一菜品的“销售数量”和“销售额”进行汇总分析,但是要对原材料的需求进行分析,它却无能为力。3.2 Excel数据处理过程

下面我们详细介绍如何用Excel,基于工作表“T0020_业务订单详情”、“T0010_业务数据记录”和“T0030_菜品价目表”三个表格,生成上一节所示的Excel所能完成的最终表格。

首先,给每个工作表的数据区域指定一个名称:在“公式”选项卡的“定义的名称”组中,单击“名称管理器”,如图3-3所示。图3-3

此时弹出“名称管理器”对话框,单击“新建”按钮,如图3-4所示。图3-4

此时弹出“新建名称”对话框,单击该对话框下部“引用位置”文本框右侧的“单元格区域”选择按钮,选择工作表“T0010_业务数据记录”的A:F列。我们之所以选择A到F的整列,而不是精确地选择A1:F13数据所覆盖的区域,是因为考虑到将来在表格末尾追加数据的时候,不必再重新修改 Excel名称所指定的单元格区域范围。

在“新建名称”对话框的“名称”文本框处,给刚才所选择的单元格区域自定义一个单元格区域名称,这里我给的名称是“RN_业务数据记录”,这里的自定义前缀“RN”的意思是“Range Name”的缩写,如图3-5所示。然后单击“确定”按钮,此时Excel返回“名称管理器”对话框。图3-5

在Excel“名称管理器”对话框下方的名称列表中,我们看到,列表中出现了刚才自定义的名称,如图3-6所示。单击“名称管理器”对话框右下角的“关闭”按钮,关闭“名称管理器”对话框。完成Excel单元格区域的自定义名称操作。图3-6

现在,单击 Excel公式编辑栏左侧的“组合框”右侧的展开按钮(这个组合框在Excel中叫作“名称框”),你所自定义的Excel单元格区域的名称将会显示在这里。选择刚刚定义的名称选项,你会发现,该名称所代表的单元格区域被选中了,如图3-7所示。图3-7

单元格区域的名称让我们有机会用自定义的、有意义的名称代替我们所指定的单元格区域的名称。我们在完成 Excel单元格区域自定义名称操作后,以后就可以在Excel公式和函数中,用容易理解的Excel自定义名称代替枯燥的、难以记忆的“行号列标式”的Excel单元格区域引用。

重复前面的步骤,分别定义其他几个工作表数据区的自定义名称。全部名称定义完成后,单击名称框右侧的展开按钮,我们会看到如图3-8所示的Excel自定义名称列表。分别选择每个名称,查看名称的定义是否正确。图3-8

完成自定义名称的操作,我们就可以用Excel中著名的VLOOKUP()函数把位于不同表格中的有用数据“抓”到一起来了。由于我们给每一个表格的数据都命名了一个容易理解的名称,因此,在 VLOOKUP()函数中引用相应的单元格区域时,可以使用对应的自定义名称代替。参见图3-9,其中D:H列中的内容来自数据区域“RN_业务数据记录”;第I列中的内容来自数据区域“RN_菜品价目表”。

小张得到这个表格后,就可以通过 Excel公式函数或者数据透视表按照“订单号”、“所定菜品”、“客户姓名”、“备注”等内容对菜品的销售数量和销售金额进行汇总分析。图3-93.3 Excel搞不定

到现在为止,我们通过对饭馆的原始数据进行拆分、整理,已经能够方便地对饭馆的销售数量和销售金额按照各种分组标准进行分类汇总了。以后,饭馆销售记录按照新的数据组织形式录入和管理,那么就可以随时进行销售数量和销售金额的汇总和分析了。

但是,在前面所提到的 Excel数据管理方案中,还有一个重要的问题没有解决,那就是,小张希望新的数据管理系统能够把食材(菜品原材料)的采购也有效地管理起来,能够根据客户“所订菜品的数量”和“要求送达时间”准确地推算出所需的:

① 原料的采购数量。

② 原料的运抵时间。

这样,就可以避免以前那种对食材采购的“拍脑门、估算式”决策,这将是饭馆经营管理上的一个“巨大提升”。

然而,不幸的是,即使你对Excel很熟悉,单纯用Excel解决这个问题也并非易事。所谓“并非易事”,意思是说:通过“所定菜品数量”和“每种菜品的原材料清单”推算各种原材料的需求量,虽然不能说不可以用 Excel完成,但非常麻烦!

一言以蔽之,Excel不是解决这类问题合适的工具,在微软Office组件中,解决这类问题最有效的工具是Access。

参照图3-10,通过“客户所定菜品数量”推算“原材料需求”问题的实质是:把客户订单中的每一种菜品对照“原材料清单”进行“分解”,从而得出各种原材料的需求。

我们拿编号为“DD-00001”的订单为例,该订单所定的菜品为“青椒鸡蛋”和“米饭”各1份。

对于每一份“青椒鸡蛋”,我们对照“T0040_原材料清单”可知,需要 200克青椒和150克鸡蛋;对于每一份“米饭”,对照“T0040_原材料清单”可知,需要150克米饭(假设米饭是外包的,已经做好了的成品)。

按照这个逻辑,我们就可以得到“表3 业务订单按原材料分解”虚线框中的表格。对于编号为“DD-00001”的特定订单,从图3-10中“表1 T0020_业务订单详情”虚线框A中的内容,结合“表2 T0040_原材料清单”生成“表3 业务订单按原材料分解”虚线框B中内容的过程叫作“物料清单分解”。

这个过程,Excel几乎无能为力。而在Access中,却可以自动完成!图3-10

如果把“表1 T0020_业务订单详情”中的每一条记录都按照“表2 T0040_原材料清单”进行分解,我们就会得到“表3 业务订单按原材料分解”这个表格。而“表3 业务订单按原材料分解”则是适合进行原材料采购分析的理想格式表格。

在下一章里,我们将抛弃Excel解决方案,详细讲解Access处理饭馆经营数据的过程。在下一章,我们将把在前面已经做过部分整理的Excel数据搬到Access中,并根据饭馆的业务规则,建立表格之间的关系,设计一个可操作的程序界面,最终用Access建立一个小型的“饭馆业务管理”数据库软件。第4章 Access登场

本章内容提要:本章将演示一个完整的Access小型数据库软件的开发案例,让你了解Access的能力和Access背后的数据之间的逻辑,让你具有开发小型数据库软件的初步能力。你会了解,Excel与Access,虽然都能处理数据,但Access还能通过建立原生的表间关系,自动“管理”数据,两者的逻辑完全不同。4.1 为什么是Access

很多时候,我们也许过于迷信 Excel的能力(或者是潜意识里出于新事物的抗拒),很多问题都习惯性地试图在Excel里解决,因此出现了各种关于数据分析和数据处理的复杂,甚至古怪的Excel解决方案。

如果你在某些Excel报告里见到多重IF()函数嵌套、复杂的Match()、Index()函数联合,以及令人费解的数组公式,甚至本无必要的VBA编程,等等,请不要感到奇怪。我们只能期望,你的前任不要给你留下一堆这样难以理解和维护的Excel报告。

事实上,对于很多数据分析和处理的问题,与其花大量时间寻求复杂古怪的Excel解决方案,不如换一个思路,学一些Access知识,利用Access的特有能力,化繁为简,化难为易,让我们在数据分析和处理方面的功力大增!

Access,作为微软Office家族中的一个重要组件。它与Excel、Word、PowerPoint共同称为微软Office软件中的“四大金刚”。

Access是世界上最流行的小型桌面数据库管理软件,在国外,特别是英语国家,在管理中已经得到了广泛的应用,它那“让人随手就能设计一个小软件”的特性让人印象深刻。

对于尚未熟悉Access的朋友,我们姑且认为它是一个超级Excel,它不但能存储多个数据表格,并且能够轻松实现不同数据表格之间的“联动”。此外,Access还能在不编写任何程序代码的情况下,设计出看起来还不错的软件界面,并且,Access还能实现自定义报表功能,可以说Access是一个理想的部门或个人提升生产效率的工具。

Access虽然号称“小型”数据库管理软件,但“麻雀虽小,五脏俱全”,学习它几乎能够体会到数据库软件的全部乐趣,在数据库无处不在的今天,学习Access软件是快速理解数据库思维的最好方式。

总之,Access能够解放部门和个人的生产力,让工作变得更轻松!现在,让我们带着上一章节提出的问题,看看Access是如何解决这些问题,并且做得更好的!4.2 导入数据到Access

在本书中,作为示例,我们使用的是Access 2013。事实上,Access 2007、Access 2010、Access 2013的界面布局基本类似,只是功能上有少许差异(但在本书中几乎涉及不到这些差异)。如果你的计算机上安装有Access软件的上述任一版本,均可使用本书。

启动你的Access软件,我们可以看到Access新建文件的界面。在这个界面中有多个选项,其中包括一些可以直接使用的数据库模板。事实上,在你没有理解Access数据库的基本原理之前,使用这些模板并非易事!不过,如果你对这些模板感兴趣,学习这本书里的知识是非常有帮助的。

在这里,我们希望建立一个单机运行的Access数据库文件,所以,请单击“空白桌面数据库”图标,如图4-1所示。当然,如果小张的业务进展顺利,开了多家连锁店,则可以尝试建立一个“自定义Web应用程序”(只有Access 2013才有这个选项),但本书不涉及“自定义Web应用程序”的内容。

在弹出的“创建”对话框的“文件名”处给我们的数据库文件命名为“A010_My_Small_Shop.accdb”。为了便于将来的管理 ,我喜欢在文件名称前面加一个编号作为前缀(这里的前缀是:A010),如图4-2所示。图4-1图4-2

此时进入 Access默认的创建数据表格界面,并默认表格的名称为“表 1”。Access中的表格目前可以粗略地认为相当于 Excel中的工作表(其实更像 Excel中的“列表”或“表格”),如图4-3所示。

因为我们的数据已经保存在Excel中(上一章中介绍的所有数据),现在只需将这些数据导入Access,而不需要从Access创建表格做起,所以我们单击“表1”创建界面右上角的“×”图标关闭“表1”界面。

Access中的表格是Access存储数据的地方,这一点和Excel有些类似。与Excel不同的是,在Access中,不但能存储一个一个的表格,而且还能通过Access界面建立“表格与表格之间的关系”,正是这些很多“已经建立了关系”的数据表格,形成了“关系型”数据库。图4-3

接下来的任务是把Excel中的数据表一个个地“搬”到Access中。首先,在Excel中选中工作表“T0010_业务数据记录”的数据区,然后按下快捷键[Ctrl+C]复制整个数据区域,如图4-4所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载