第1课我讲了Access数据库的作用和基本界面,本讲书接上回,我来讲一讲Access数据库的五大组件以及各组件的作用。
首先我们再不厌其烦的重复一遍Access数据库的五大组件以及主要功能:
1.Access数据库5大组件
表:存储数据
查询(SQL):查询分析数据
窗体:做呈现和交互
报表:做呈现和交互
VBA(宏):完成自动化计算和各种动作
这五个组件排名不分先后,都很重要,哪怕是报表都很重要(报表最能体现了Access数据库的风格和特色)
表。表不仅是Access数据库的基础,同时也是MySQL、SQLServer等专业数据库的基础。数据库、数据库,都是先有数据后有库。任何的数据都储存在表里,没有表就没有数据库。
空白表Access所有的操作,其实本质上都围绕着对表的增删改查展开,尤其是对表的查询,用得最多。
在我的实操中查询表占90%以上的时间,增删改在单机软件里用的倒是不多,互联网应用的多一点。
查询(SQL)。查询是Access的主要计算手段。单机数据库的核心,其实就是对表的查询。查询的操作,在Access中是可视化的,这也是Access数据库的优势之一。
空白查询随着对Access数据库学习的深入,查询也会越来越复杂,但主要技术原理不外乎左、右链接、相等链接、计算字段几种形式。在数据库基本原理这一点上,Access和SQLServer等专业数据库几乎没有区别,只是使用场景不同而已。
Access数据库面对一些复杂的查询,往往还需要VBA的配合使用。这又是一个非常深入的专门领域,是高级使用者研究的领域。
我近期给一个河南高中做了一个老师的课时费统计报表软件,由于这所学校的课时费计算方式很复杂,因此Access遇到的查询是比较繁琐的,其中也用到了很多VBA技术。
窗体。多数老铁认识宇哥应该是通过宇哥发表的各种动态视频认识的,这些动态视频其实主要是窗体的操作演示。
很多技术培训老师,是很不重视窗体演示的,有些技术很好,但是展示的很拉垮。。很多学员也对窗体嗤之以鼻,这种态度是不对的。
空白窗体再好的技术也需要展示、也需要进行界面操作的设计和优化,忽略窗体功能设计和优化的做法是不对的。
好的Access窗体应该一看就懂、一用就会,同时便于理解和数据追溯。但是好的窗体看起来简单,想要设计的功能完备、线条简单还需要一定的审美基础,不是那么容易掌握。
报表。报表功能是Access数据库的特色功能,其重要地位不容小觑。
我在年之前几乎不怎么用Access的报表功能,但是年开始,Access版已经支持窗体嵌入报表,报表的威力一下子倍增,不仅能够导出PDF,还能起到数据仪表盘的作用。
空白报表尤其是报表可以有层次的展示大量的统计效果,而窗体和查询表现形式相对单一,是不具备报表这样的功能的。因为报表功能简洁且好看,所以我现在做每一个Access实例,基本都要上几个报表功能。
VBA(宏)。VBA是Access数据库的外延,是一门独立的编程语言,不仅是严谨的计算机编程语言、更是一门艺术,需要想象力。
VBA界面VBA的技术文档相当之厚,而且并不完全适合Access入门水平的学员。待学员学完Access课程之后(包括一些初级VBA技术),再进行专项学习为好。
VBA和VB的语法基本相同,但是由于面向对象不同,框架是有所区别的。面对数据处理的情况,用Access的VBA功能好一些。如果做封装软件那么直接用VB会更简便。
2.Access操作要快、同时需要5个组件配合
需要强调一下,Access数据库是给办公人员用的,不是给专业编程老哥用的。Access的操作和Excel类似,强调针对办公场景的小快灵,不能做拖泥带水、一个功能折腾好几天的专业应用。
Access是办公软件,很强调办公二字。如果脱离了办公场景,Access技术势必会成为无根之木无缘之水,发挥不出它的作用。而办公场景更强调的是落地和解决问题,而且解决的时间不能太长。
虽然Access的技术比Excel要难一个层级,但是也不应该把Access用的过于呆板。Access的使用场景根Excel是一模一样的。使用Access需要具备和Excel一样拿来就用的熟练程度,这就对使用者对Access的熟悉度提出了更高的要求。
宇哥在做Access数据库的时候,发现很多学员其实是有一定的Access理论基础的,有的在大学学过、有的在免费视频里学过。但是这些有基础的学员无一例外的没有进行Access的综合应用训练,不知道如何入手设计Access软件,理论基础尚可、实操能力很弱。
而Access数据库操作是一个有机的整体,这是Access跟别的编程框架不太一样的地方。操作Access数据库有点像开车,五个部分分别代表油门、离合、挡位、方向盘、后视镜。
你操作Access就要把自己想象成个驾驶员,车辆要起步需要手脚眼配合,松离合放手刹给油,同时要打转向配合眼睛观察,才能把车开走。
Access的操作原理也是一样的,它的应用以结果为导向(有点像开车),用结果来要求各个功能怎么配合,而不能单纯的学习某一个单项技术,好比学习开车不能单学踩油门、单学挂档、单学踩离合一个道理。
目前市面上的Access培训,最大的问题就是理论讲的多,尤其是表讲的太多,纯理论的部分太多,落地场景太少,各部分的配合讲解太少,大量的理论知识堆起,很容易让初学者云里雾里。更好的讲解方法是一节课掌握一个案例,通过实操案例慢慢的植入Access各项技术,让学员学一个案例就扎扎实实的有一点进步。这是我的教学理念。
下面会以案例的形式,详细讲讲Access各个组件是如何配合的。
3.通过案例熟悉Access的各个组件
作为一名技术讲师,我个人是不赞成目前主流的Access数据库学习顺序:表、查询、窗体、VBA,这些组件虽然都很重要,但是割裂来学习的效果并不好。
由于Access技术是有机的整体,因此学员在了解一些基础数据库技术之后,应该尽快开始模仿常用的Access查询窗体,亲手做一下功能完备的一个小软件。
比如非常简单但又非常实用的分割窗体,左图右表,做起来非常简单,步骤一共就两步,一步是准备表,第二步就是直接生成窗体,分割窗体就做成了。最后在美化一下,就是一个很实用的窗体。
分割窗体演示分割窗体后台分割窗体可以当数据录入窗体、可以当通讯录、可以当学生花名册,用途相当广泛。可以说拿来就能用,但是很多教材根本不讲。厚厚的外国版《Access数据库宝典》,技术那叫一个翔实,但翻了一半也没见分割窗体的只言片语…
分割窗体需要了解表、窗体,要知道二者怎么发生关系,数据源是怎么回事,要知道表的数据怎么搞到窗体里。通过做分割窗体,能熟悉很多功能,比死磕课本要学的快得多。
还有一些案例很适合入门者学习,比如单日期查询的案例。
单日期查询演示我们有这样一个需求,给你一张销售表,上面有三个字段:销售员、销售时间、销售量。要求你做一个窗体,能够查询不同时间或者不同销售员的销量,如果能做汇总就更好了。
那么我们首先就要思考,怎么来完成这个功能?
首先就是要做一个窗体,上面要做一个下拉菜单,把日期塞进去,
然后我们要做一个查询,窗体选择一个日期,查询就要相应的做一个筛选。
第三步要生成一个子窗体,把这个子窗体搞到主窗体里。
最后要通过VBA或者宏实现自动化功能。
你看,这样一个单日期查询需求,可以说一点都不简单,要熟悉了解窗体、控件、查询、子窗体、VBA、宏等一系列技术。跑通了这样一个单日期查询,等于把上面的技术都练了一遍。是不是跟学习开车很像?
通过案例这样的学习效果是非常快的。宇哥培训的学员都是练过这样的专项训练,跑通了一个查询,就基本了解Access是做什么的了。
多说一句,学习Access数据库的最大好处,还真不仅仅是能入门VBA,学一门办公软件,它更大的好处是帮我们找到对于软件开发的这个feel,能够用一个整体视角审视软件开发和我们自己的业务流程。
有人说Access数据库是迷你ERP,这个外号不是凭空回得来的。
第二课结束。
课后题:
我们有这样一个需求,给你一张销售表,上面有三个字段:销售员、销售时间、销售量。
要求你做一个窗体,能够查询两个日期之内的销量情况。比如筛选年7月1日到年7月8号之间的销售量。要用到VBA、查询、窗体技术哈。
动手做一做哈~没有思路的评论区留言领取这个案例。
日期区间查询演示我是宇哥,业余时间专门研究Access数据库的,全网学习办公软件的女同学可以说没有不认识我的。