第1課我講了Access數據庫的作用和基本界面,本講書(shū)接上回,我來(lái)講一講Access數據庫的五大組件以及各組件的作用。
首先我們再不厭其煩的重復一遍Access數據庫的五大組件以及主要功能:
1.Access數據庫5大組件
表:存儲數據
查詢(xún)(SQL):查詢(xún)分析數據
窗體:做呈現和交互
報表:做呈現和交互
VBA(宏):完成自動(dòng)化計算和各種動(dòng)作
這五個(gè)組件排名不分先后,都很重要,哪怕是報表都很重要(報表最能體現了Access數據庫的風(fēng)格和特色)
表。表不僅是Access數據庫的基礎,同時(shí)也是MySQL、SQL Server等專(zhuān)業(yè)數據庫的基礎。數據庫、數據庫,都是先有數據后有庫。任何的數據都儲存在表里,沒(méi)有表就沒(méi)有數據庫。
空白表
Access所有的操作,其實(shí)本質(zhì)上都圍繞著(zhù)對表的增刪改查展開(kāi),尤其是對表的查詢(xún),用得最多。
在我的實(shí)操中查詢(xún)表占90%以上的時(shí)間,增刪改在單機軟件里用的倒是不多,互聯(lián)網(wǎng)應用的多一點(diǎn)。
查詢(xún)(SQL)。查詢(xún)是Access的主要計算手段。單機數據庫的核心,其實(shí)就是對表的查詢(xún)。查詢(xún)的操作,在A(yíng)ccess中是可視化的,這也是Access數據庫的優(yōu)勢之一。
空白查詢(xún)
隨著(zhù)對Access數據庫學(xué)習的深入,查詢(xún)也會(huì )越來(lái)越復雜,但主要技術(shù)原理不外乎左、右鏈接、相等鏈接、計算字段幾種形式。在數據庫基本原理這一點(diǎn)上,Access和SQL Server等專(zhuān)業(yè)數據庫幾乎沒(méi)有區別,只是使用場(chǎng)景不同而已。
Access數據庫面對一些復雜的查詢(xún),往往還需要VBA的配合使用。這又是一個(gè)非常深入的專(zhuān)門(mén)領(lǐng)域,是高級使用者研究的領(lǐng)域。
我近期給一個(gè)河南高中做了一個(gè)老師的課時(shí)費統計報表軟件,由于這所學(xué)校的課時(shí)費計算方式很復雜,因此Access遇到的查詢(xún)是比較繁瑣的,其中也用到了很多VBA技術(shù)。
窗體。多數老鐵認識宇哥應該是通過(guò)宇哥發(fā)表的各種動(dòng)態(tài)視頻認識的,這些動(dòng)態(tài)視頻其實(shí)主要是窗體的操作演示。
空白窗體
很多技術(shù)培訓老師,是很不重視窗體演示的,有些技術(shù)很好,但是展示的很拉垮。。很多學(xué)員也對窗體嗤之以鼻,這種態(tài)度是不對的。
再好的技術(shù)也需要展示、也需要進(jìn)行界面操作的設計和優(yōu)化,忽略窗體功能設計和優(yōu)化的做法是不對的。
好的Access窗體應該一看就懂、一用就會(huì ),同時(shí)便于理解和數據追溯。但是好的窗體看起來(lái)簡(jiǎn)單,想要設計的功能完備、線(xiàn)條簡(jiǎn)單還需要一定的審美基礎,不是那么容易掌握。
報表。報表功能是Access數據庫的特色功能,其重要地位不容小覷。
空白報表
我在2022年之前幾乎不怎么用Access的報表功能,但是2022年開(kāi)始,Access2021版已經(jīng)支持窗體嵌入報表,報表的威力一下子倍增,不僅能夠導出PDF,還能起到數據儀表盤(pán)的作用。
尤其是報表可以有層次的展示大量的統計效果,而窗體和查詢(xún)表現形式相對單一,是不具備報表這樣的功能的。因為報表功能簡(jiǎn)潔且好看,所以我現在做每一個(gè)Access實(shí)例,基本都要上幾個(gè)報表功能。
VBA(宏)。VBA是Access數據庫的外延,是一門(mén)獨立的編程語(yǔ)言,不僅是嚴謹的計算機編程語(yǔ)言、更是一門(mén)藝術(shù),需要想象力。
VBA界面
VBA的技術(shù)文檔相當之厚,而且并不完全適合Access入門(mén)水平的學(xué)員。待學(xué)員學(xué)完Access課程之后(包括一些初級VBA技術(shù)),再進(jìn)行專(zhuān)項學(xué)習為好。
VBA和VB的語(yǔ)法基本相同,但是由于面向對象不同,框架是有所區別的。面對數據處理的情況,用Access的VBA功能好一些。如果做封裝軟件那么直接用VB會(huì )更簡(jiǎn)便。
2.Access操作要快、同時(shí)需要5個(gè)組件配合
需要強調一下,Access數據庫是給辦公人員用的,不是給專(zhuān)業(yè)編程老哥用的。Access的操作和Excel類(lèi)似,強調針對辦公場(chǎng)景的小快靈,不能做拖泥帶水、一個(gè)功能折騰好幾天的專(zhuān)業(yè)應用。
Access是辦公軟件,很強調辦公二字。如果脫離了辦公場(chǎng)景,Access技術(shù)勢必會(huì )成為無(wú)根之木無(wú)緣之水,發(fā)揮不出它的作用。而辦公場(chǎng)景更強調的是落地和解決問(wèn)題,而且解決的時(shí)間不能太長(cháng)。
雖然Access的技術(shù)比Excel要難一個(gè)層級,但是也不應該把Access用的過(guò)于呆板。Access的使用場(chǎng)景根Excel是一模一樣的。使用Access需要具備和Excel一樣拿來(lái)就用的熟練程度,這就對使用者對Access的熟悉度提出了更高的要求。
宇哥在做Access數據庫的時(shí)候,發(fā)現很多學(xué)員其實(shí)是有一定的Access理論基礎的,有的在大學(xué)學(xué)過(guò)、有的在免費視頻里學(xué)過(guò)。但是這些有基礎的學(xué)員無(wú)一例外的沒(méi)有進(jìn)行Access的綜合應用訓練,不知道如何入手設計Access軟件,理論基礎尚可、實(shí)操能力很弱。
而Access數據庫操作是一個(gè)有機的整體,這是Access跟別的編程框架不太一樣的地方。操作Access數據庫有點(diǎn)像開(kāi)車(chē),五個(gè)部分分別代表油門(mén)、離合、擋位、方向盤(pán)、后視鏡。
你操作Access就要把自己想象成個(gè)駕駛員,車(chē)輛要起步需要手腳眼配合,松離合放手剎給油,同時(shí)要打轉向配合眼睛觀(guān)察,才能把車(chē)開(kāi)走。
Access的操作原理也是一樣的,它的應用以結果為導向(有點(diǎn)像開(kāi)車(chē)),用結果來(lái)要求各個(gè)功能怎么配合,而不能單純的學(xué)習某一個(gè)單項技術(shù),好比學(xué)習開(kāi)車(chē)不能單學(xué)踩油門(mén)、單學(xué)掛檔、單學(xué)踩離合一個(gè)道理。
目前市面上的Access培訓,最大的問(wèn)題就是理論講的多,尤其是表講的太多,純理論的部分太多,落地場(chǎng)景太少,各部分的配合講解太少,大量的理論知識堆起,很容易讓初學(xué)者云里霧里。更好的講解方法是一節課掌握一個(gè)案例,通過(guò)實(shí)操案例慢慢的植入Access各項技術(shù),讓學(xué)員學(xué)一個(gè)案例就扎扎實(shí)實(shí)的有一點(diǎn)進(jìn)步。這是我的教學(xué)理念。
下面會(huì )以案例的形式,詳細講講Access各個(gè)組件是如何配合的。
3.通過(guò)案例熟悉Access的各個(gè)組件
作為一名技術(shù)講師,我個(gè)人是不贊成目前主流的Access數據庫學(xué)習順序:表、查詢(xún)、窗體、VBA,這些組件雖然都很重要,但是割裂來(lái)學(xué)習的效果并不好。
由于A(yíng)ccess技術(shù)是有機的整體,因此學(xué)員在了解一些基礎數據庫技術(shù)之后,應該盡快開(kāi)始模仿常用的Access查詢(xún)窗體,親手做一下功能完備的一個(gè)小軟件。
比如非常簡(jiǎn)單但又非常實(shí)用的分割窗體,左圖右表,做起來(lái)非常簡(jiǎn)單,步驟一共就兩步,一步是準備表,第二步就是直接生成窗體,分割窗體就做成了。最后在美化一下,就是一個(gè)很實(shí)用的窗體。
分割窗體演示
分割窗體后臺
分割窗體可以當數據錄入窗體、可以當通訊錄、可以當學(xué)生花名冊,用途相當廣泛??梢哉f(shuō)拿來(lái)就能用,但是很多教材根本不講。厚厚的外國版《Access數據庫寶典》,技術(shù)那叫一個(gè)翔實(shí),但翻了一半也沒(méi)見(jiàn)分割窗體的只言片語(yǔ)…
分割窗體需要了解表、窗體,要知道二者怎么發(fā)生關(guān)系,數據源是怎么回事,要知道表的數據怎么搞到窗體里。通過(guò)做分割窗體,能熟悉很多功能,比死磕課本要學(xué)的快得多。
還有一些案例很適合入門(mén)者學(xué)習,比如單日期查詢(xún)的案例。
單日期查詢(xún)演示
我們有這樣一個(gè)需求,給你一張銷(xiāo)售表,上面有三個(gè)字段:銷(xiāo)售員、銷(xiāo)售時(shí)間、銷(xiāo)售量。要求你做一個(gè)窗體,能夠查詢(xún)不同時(shí)間或者不同銷(xiāo)售員的銷(xiāo)量,如果能做匯總就更好了。
那么我們首先就要思考,怎么來(lái)完成這個(gè)功能?
首先就是要做一個(gè)窗體,上面要做一個(gè)下拉菜單,把日期塞進(jìn)去,
然后我們要做一個(gè)查詢(xún),窗體選擇一個(gè)日期,查詢(xún)就要相應的做一個(gè)篩選。
第三步要生成一個(gè)子窗體,把這個(gè)子窗體搞到主窗體里。
最后要通過(guò)VBA或者宏實(shí)現自動(dòng)化功能。
你看,這樣一個(gè)單日期查詢(xún)需求,可以說(shuō)一點(diǎn)都不簡(jiǎn)單,要熟悉了解窗體、控件、查詢(xún)、子窗體、VBA、宏等一系列技術(shù)。跑通了這樣一個(gè)單日期查詢(xún),等于把上面的技術(shù)都練了一遍。是不是跟學(xué)習開(kāi)車(chē)很像?
通過(guò)案例這樣的學(xué)習效果是非??斓?。宇哥培訓的學(xué)員都是練過(guò)這樣的專(zhuān)項訓練,跑通了一個(gè)查詢(xún),就基本了解Access是做什么的了。
多說(shuō)一句,學(xué)習Access數據庫的最大好處,還真不僅僅是能入門(mén)VBA,學(xué)一門(mén)辦公軟件,它更大的好處是幫我們找到對于軟件開(kāi)發(fā)的這個(gè)feel,能夠用一個(gè)整體視角審視軟件開(kāi)發(fā)和我們自己的業(yè)務(wù)流程。
有人說(shuō)Access數據庫是迷你ERP,這個(gè)外號不是憑空回得來(lái)的。
第二課結束。
課后題:
我們有這樣一個(gè)需求,給你一張銷(xiāo)售表,上面有三個(gè)字段:銷(xiāo)售員、銷(xiāo)售時(shí)間、銷(xiāo)售量。
要求你做一個(gè)窗體,能夠查詢(xún)兩個(gè)日期之內的銷(xiāo)量情況。比如篩選2022年7月1日到2022年7月8號之間的銷(xiāo)售量。要用到VBA、查詢(xún)、窗體技術(shù)哈。
動(dòng)手做一做哈~沒(méi)有思路的評論區留言領(lǐng)取這個(gè)案例。
日期區間查詢(xún)案例
我是宇哥,業(yè)余時(shí)間專(zhuān)門(mén)研究Access數據庫的,全網(wǎng)學(xué)習辦公軟件的女同學(xué)可以說(shuō)沒(méi)有不認識我的。