序言
讀者們好!《表哥的Access 入門:以Excel 視角快速學(xué)習(xí)數(shù)據(jù)庫開發(fā)》(第2 版)終于與大家見面了。本書第1 版早是以電子版的形式發(fā)布在網(wǎng)絡(luò)平臺(tái)上的,在收到大量的讀者好評(píng)后改寫出版了紙質(zhì)版。在紙質(zhì)版圖書出版后,同樣受到讀者的熱烈歡迎,僅第1 版就重印了近20 次,著實(shí)讓筆者受寵若驚,感覺有責(zé)任對(duì)本書的第1 版做一些優(yōu)化和內(nèi)容上的擴(kuò)充,用于回饋?zhàn)x者的厚愛。
本書除了在第1 版的基礎(chǔ)上更新了所有配圖以適應(yīng)Access 版本,還增加了如下內(nèi)容:
- Access 交叉表查詢、生成表查詢、追加查詢的講解。
- Access 中的AutoExec 自動(dòng)執(zhí)行宏的重要應(yīng)用。
- 如何以Access 可視化查詢?yōu)檩o助工具快速入門SQL。
本書保留了第1 版通俗易懂、一氣呵成的特色,在內(nèi)容上更完善,并且力爭(zhēng)讓讀者在不對(duì)照電腦操作的情況下也能輕松閱讀。本書的目標(biāo)是大幅減輕讀者的學(xué)習(xí)負(fù)擔(dān),讓讀者輕松、快速地掌握Access 的相關(guān)知識(shí)與技能,幫助讀者構(gòu)建全新的數(shù)據(jù)觀。畢竟,Excel 的高級(jí)應(yīng)用階段離不開數(shù)據(jù)庫知識(shí)。
祝廣大讀者學(xué)習(xí)愉快!問題交流請(qǐng)關(guān)注筆者微博@MrExcel。
作 者
前言
為什么要學(xué)習(xí)數(shù)據(jù)庫知識(shí)?
當(dāng)你在商場(chǎng)或超市結(jié)賬時(shí),是否注意過收銀員面前顯示器上的軟件?收銀員利用這個(gè)軟件,結(jié)合掃描設(shè)備,就可以完成掃描商品、記錄銷售金額、扣減庫存、查看歷史記錄、退貨、換貨等操作,我們可以將這個(gè)軟件稱為一個(gè)賣貨的軟件,用專業(yè)一點(diǎn)兒的術(shù)語來說,這其實(shí)
是一個(gè)典型的商品進(jìn)銷存軟件。
你可能會(huì)想:商品進(jìn)銷存軟件,如此高大上的名字,不是只有在企業(yè)中才用的嗎?它與我們的生活有什么關(guān)系?是的,商品進(jìn)銷存軟件確實(shí)是企業(yè)中常用的軟件之一,但其實(shí)我們的生活時(shí)時(shí)刻刻都離不開類似的軟件。
商品進(jìn)銷存軟件本質(zhì)上屬于數(shù)據(jù)記錄和處理軟件,在人工智能技術(shù)廣泛應(yīng)用的今天,智能設(shè)備無時(shí)無刻不在記錄和處理著與你有關(guān)的數(shù)據(jù),很多時(shí)候你甚至意識(shí)不到。
在數(shù)據(jù)庫無處不在、數(shù)據(jù)思維無處不在的今天,不主動(dòng)了解一點(diǎn)數(shù)據(jù)庫知識(shí),真的有點(diǎn)OUT了。特別是對(duì)于已經(jīng)熟悉Excel 的我們來說,學(xué)習(xí)點(diǎn)兒數(shù)據(jù)庫知識(shí),不僅可以幫助我們深刻理解這個(gè)數(shù)字時(shí)代的世界,還可以提高我們的工作效率,從而構(gòu)建全新的數(shù)據(jù)觀。
為什么要學(xué)習(xí)Access ?
回到前面超市收銀臺(tái)的場(chǎng)景,利用Microsoft Office 中的Access 也能制作出具有類似功能的軟件,并且?guī)缀醪挥镁帉懘a,即可讓Office用戶過把軟件設(shè)計(jì)的癮。
Access 作為Microsoft Office 組件之一,在眾多領(lǐng)域中發(fā)揮著作用:利用Access 可以構(gòu)建中小型企業(yè)的生產(chǎn)、計(jì)劃、庫存、銷售、人事管理、培訓(xùn)等數(shù)據(jù)庫管理系統(tǒng),可以開發(fā)大公司的部門級(jí)應(yīng)用,等等。不僅如此,Access 還是一款極具效力的個(gè)人工作效率提升工具,在很多Excel 難以施展能力的場(chǎng)所,Access 能輕松應(yīng)對(duì)。
提到數(shù)據(jù)庫,有些人(特別是對(duì)數(shù)據(jù)庫一知半解的人)動(dòng)不動(dòng)就拿Oracle、SQL Server 等大型數(shù)據(jù)庫系統(tǒng)說事兒。筆者在這里告訴大家,如果你想學(xué)習(xí)數(shù)據(jù)庫知識(shí),Access 是一款優(yōu)秀的入門工具,原因很簡(jiǎn)單,Access 具有易獲得性、易安裝性及普及性。Access 作為一款易學(xué)、易用、功能靈活的小型桌面數(shù)據(jù)庫管理系統(tǒng),其能力主要體現(xiàn)在以下兩
方面。
1.簡(jiǎn)單的操作,強(qiáng)大的功能
Access 具有強(qiáng)大的可視化操作能力,這一點(diǎn)在所有的數(shù)據(jù)庫管理系統(tǒng)中是領(lǐng)先的。Access 讓人印象尤其深刻的是其查詢、窗體、報(bào)表及宏的可視化設(shè)計(jì)方式,它讓用戶無須編寫代碼,就能開發(fā)數(shù)據(jù)庫應(yīng)用程序。
由于本書的目標(biāo)是使Excel 用戶快速入門Access 數(shù)據(jù)庫知識(shí),因此很多地方會(huì)以Excel 為Access 的參照物進(jìn)行對(duì)比。我們知道,同為Office 組件之一的Excel 具有靈活的數(shù)據(jù)處理和分析能力,然而其能力是有局限的。例如,對(duì)數(shù)據(jù)的規(guī)范化存儲(chǔ)與管理、表間的同步修改及刪除、無代碼應(yīng)用程序的開發(fā)等功能,如果使用Excel 實(shí)現(xiàn),則會(huì)非常麻煩,甚至無能為力;如果使用Access 實(shí)現(xiàn),則可以以其內(nèi)置功能輕松完成。
利用Access 中強(qiáng)大的查詢功能,可以非常容易地進(jìn)行各類統(tǒng)計(jì)分析操作,并且可以方便地組合多個(gè)相關(guān)的數(shù)據(jù)表,從而實(shí)現(xiàn)靈活的表間操作。此外,在處理數(shù)據(jù)的數(shù)量方面,與Excel 相比,Access 在分析處理幾十萬、上百萬行數(shù)據(jù)時(shí),速度優(yōu)勢(shì)相當(dāng)明顯,能夠大幅提升工作效率。在數(shù)據(jù)處理自動(dòng)化方面,如果使用Excel,那么通常需要編寫復(fù)雜的VBA 程序代碼來實(shí)現(xiàn);如果使用Access,那么利用其自帶的宏功能,我們幾乎可以拋棄VBA,簡(jiǎn)單地以拖曳鼠標(biāo)的方式,就像拼七巧板一樣,將Access 中的基礎(chǔ)操作按照自定義的順序排列起來,形成連續(xù)、定制化的業(yè)務(wù)邏輯,從而輕松實(shí)現(xiàn)數(shù)據(jù)業(yè)務(wù)的自動(dòng)化操作,這樣不但顯著提升了數(shù)據(jù)庫應(yīng)用程序的開發(fā)效率,還大大降低了用戶的學(xué)習(xí)難度。
2.使用Access 可以開發(fā)軟件
對(duì)沒有接受過編程訓(xùn)練的人來說,學(xué)習(xí)編程不亞于學(xué)習(xí)火星文,而Access改變了這一切,讓我們可以輕松開發(fā)出實(shí)用的數(shù)據(jù)庫應(yīng)用程序。使用Access 可以開發(fā)各種數(shù)據(jù)庫應(yīng)用程序,如生產(chǎn)管理、銷售管理、庫存管理等企業(yè)管理軟件。利用Access,我們可以輕松地建立數(shù)之間的關(guān)系,在不編寫代碼的情況下模擬真實(shí)商業(yè)活動(dòng)的業(yè)務(wù)邏輯,從而設(shè)計(jì)出功能完善的軟件界面。此外,我們可以通過Access 的報(bào)表功能,設(shè)計(jì)出滿足用戶需求的各種格式的單據(jù)報(bào)表。通過對(duì)本書內(nèi)容的學(xué)習(xí),你會(huì)發(fā)現(xiàn),Access 作為一款開發(fā)數(shù)據(jù)庫應(yīng)用程序的傻瓜軟件,即使是非計(jì)算機(jī)專業(yè)人員,也能快速掌握。
Access 軟件滿足了企業(yè)管理人員的需求,使其無須學(xué)習(xí)編程語言,就能開發(fā)出實(shí)現(xiàn)自己管理思想的軟件,并且使其能夠借助軟件來規(guī)范企業(yè)的業(yè)務(wù)規(guī)則,推行其管理理念。Access 可以幫助非計(jì)算機(jī)專業(yè)的管理人員實(shí)現(xiàn)開發(fā)軟件的夢(mèng)想,使其成長(zhǎng)為懂管理、會(huì)編程的復(fù)合
型人才。
很多管理人員有絕妙的想法和創(chuàng)意,他們也能夠很清晰地將這些想法和創(chuàng)意以圖文形式表達(dá)出來,但由于這些想法和創(chuàng)意需要一些計(jì)算機(jī)技能來實(shí)現(xiàn),因此束手無策,或者不得不求助永遠(yuǎn)很忙的信息技術(shù)(IT)部門的支援,以至于好的想法和創(chuàng)意長(zhǎng)時(shí)間無法變?yōu)楝F(xiàn)實(shí)。如果他們能夠花一些時(shí)間,學(xué)習(xí)一些Access 知識(shí),自己編寫一個(gè)體現(xiàn)自己獨(dú)特管理思想的軟件,將這些想法和創(chuàng)意變成現(xiàn)實(shí),豈不快哉!
Access 和Excel 對(duì)比,有什么優(yōu)勢(shì)?
讀到這里,你可能會(huì)產(chǎn)生這樣的疑問:Access 的功能如此強(qiáng)大,為什么用戶普及率遠(yuǎn)遠(yuǎn)不如Excel 呢?筆者認(rèn)為,造成這種現(xiàn)狀的主要原因有以下兩點(diǎn)。
1.自由軟件與強(qiáng)規(guī)則軟件
與Access 對(duì)用戶的要求相比,Excel 幾乎是一款自由軟件,Excel 界面對(duì)用戶的操作行為幾乎沒有任何約束,用戶可以在Excel 的單元格中輸入任何內(nèi)容,包括文本、數(shù)字、日期等,甚至可以在Excel單元格中輸入幾千字的文章。
Access 是一款強(qiáng)規(guī)則軟件,用戶在使用Access 前,必須預(yù)先了解Access 中必須遵守的一些規(guī)則。在Access 數(shù)據(jù)表中,如果規(guī)定了在某一列中只能輸入日期,那么該列不會(huì)接收其他類型的數(shù)據(jù),如果強(qiáng)行輸入,那么Access 會(huì)以報(bào)錯(cuò)的方式拒絕接收。如果規(guī)定
Access 數(shù)據(jù)表中的某一列中不能有重復(fù)內(nèi)容出現(xiàn),那么在該列中不能輸入重復(fù)內(nèi)容。
民間有句俗話,叫作沒有規(guī)矩,不成方圓,正是Access 中的各種規(guī)則,避免了數(shù)據(jù)處理活動(dòng)中各種意外的發(fā)生。要知道,在Excel 中,由于用戶組織數(shù)據(jù)不規(guī)范,造成Excel 報(bào)告難以理解、難以維護(hù)、難以擴(kuò)展的例子比比皆是。因此,用自律才能自由這句話描
述Access 簡(jiǎn)直再合適不過了。
2.當(dāng)前的Access 培訓(xùn)存在問題
如果你恰巧在書店翻閱本書,那么,請(qǐng)你隨手翻閱幾本其他關(guān)于Access 的書籍,你會(huì)發(fā)現(xiàn),這些書籍基本遵循一個(gè)套路,那就是如何創(chuàng)建數(shù)據(jù)表、創(chuàng)建查詢、設(shè)計(jì)窗體和制作報(bào)表。
這個(gè)套路本身沒有錯(cuò)誤,然而,大部分Access 培訓(xùn)資料只讓讀者
知其然,而不知其所以然;只介紹Access 的操作,卻不介紹這些操作背后隱藏的邏輯。按照這種教材學(xué)習(xí),充其量只能成為Access的操作工,很難成為Access 數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì)者。
當(dāng)前的Access 培訓(xùn)機(jī)構(gòu)基本也存在同樣的問題,很多培訓(xùn)師只是按照培訓(xùn)資料上的操作步驟,告訴學(xué)員先進(jìn)行什么操作,后進(jìn)行什么操作,一個(gè)界面控件的排列介紹幾十分鐘,將Access 的核心內(nèi)容淹沒在瑣碎的操作細(xì)節(jié)中,讓學(xué)員感到茫然,難以抓住培訓(xùn)的重點(diǎn)。
本書特點(diǎn)
本書會(huì)竭力避免當(dāng)前Access 書籍和培訓(xùn)中普遍存在的問題,以案例教學(xué)的方式,通過一個(gè)簡(jiǎn)單的小飯館數(shù)據(jù)庫管理軟件的開發(fā)案例,介紹如何規(guī)范Access 數(shù)據(jù)、創(chuàng)建查詢和設(shè)計(jì)窗體,以及如何制作Access報(bào)表和宏。本書不僅會(huì)介紹Access 的操作,而且會(huì)詳細(xì)介紹這些操作背后隱含的Access 數(shù)據(jù)庫的相關(guān)知識(shí),讓讀者不但知其然,還知其所以然。
Access 作為一款流行的小型數(shù)據(jù)庫管理系統(tǒng),與其他數(shù)據(jù)庫管理系統(tǒng)相比,具有易學(xué)、易用的特點(diǎn),在很大程度上避免了對(duì)用戶的編程要求。但是有得必有失,Access 為了保持其開發(fā)的靈活性,在開發(fā)過程中會(huì)涉及各種各樣的設(shè)置選項(xiàng),介紹Access 中全部選項(xiàng)的設(shè)置方法和設(shè)置效果是龐雜且無趣的。所以,本書以一個(gè)小飯館數(shù)據(jù)庫管理軟件為例,從頭到尾介紹整個(gè)軟件的設(shè)計(jì)過程。在設(shè)計(jì)過程中,我們只對(duì)案例中用到的設(shè)置選項(xiàng)進(jìn)行詳細(xì)介紹,從而避免打斷思路、分散注意力,并且減輕學(xué)習(xí)負(fù)擔(dān)。
本書不是一本大而全的Access 書籍,而是一本以案例為導(dǎo)向,幫助讀者快速了解Access 功能、理解數(shù)據(jù)庫思維,指導(dǎo)讀者開發(fā)一個(gè)小型數(shù)據(jù)庫管理軟件的案例手冊(cè)。
因?yàn)楸緯僭O(shè)讀者對(duì)Excel 已經(jīng)有了一定程度的了解或使用經(jīng)驗(yàn),所以沒有像大部分Access 書籍那樣,一開始就引入大量的數(shù)據(jù)庫專業(yè)術(shù)語,而是以讀者的Excel 知識(shí)為基礎(chǔ),逐步過渡到Access 相關(guān)知識(shí),讓讀者感覺自己不是在學(xué)習(xí)一門全新的技術(shù),而是將已掌握的Excel 技術(shù)自然擴(kuò)展到Access 技術(shù),從而減輕讀者的學(xué)習(xí)負(fù)擔(dān)。
本書適合對(duì)Excel 比較熟悉,并且想進(jìn)一步利用Access 技術(shù)提升個(gè)人能力的Microsoft Office 技術(shù)愛好者,以及想進(jìn)一步利用Access 技術(shù)提高個(gè)人及本部門工作效率的職場(chǎng)人士閱讀。此外,對(duì)于已經(jīng)讀過一些Access 操作手冊(cè),但對(duì)Access 還沒有建立一個(gè)清晰邏輯的Access 初學(xué)者,本書也非常適用。
后,我們打個(gè)比方,如果說學(xué)習(xí)Excel 是學(xué)習(xí)一項(xiàng)技能,那么學(xué)習(xí)Access 是學(xué)習(xí)一項(xiàng)真正的技術(shù)。如果你已經(jīng)掌握了Excel,那么,學(xué)習(xí)一些Access 知識(shí)會(huì)幫助你建立全新的數(shù)據(jù)觀,讓你的數(shù)據(jù)分析和處理能力有質(zhì)的飛越。
作 者
目錄
第1 章 小飯館也要信息化. 1
1.1 小飯館里的數(shù)據(jù)3
1.2 規(guī)范的數(shù)據(jù)才有價(jià)值5
第2 章 數(shù)據(jù)規(guī)范化8
2.1 拆分?jǐn)?shù)據(jù)表10
2.2 對(duì)小張的建議.14
第3 章 Excel 的故事17
3.1 Excel 后的演出.19
3.2 Excel 搞不定23
第4 章 Access 登場(chǎng)26
4.1 為什么是Access.28
4.2 從Excel 到Access 29
4.3 重新組裝數(shù)據(jù)36
4.4 Access 簡(jiǎn)單查詢57
4.5 Access 表間聯(lián)接..70
4.6 Access 高級(jí)查詢..77
4.7 Access 實(shí)體數(shù)據(jù)表的設(shè)計(jì)..86
4.8 根據(jù)時(shí)間做決策 .. 91
4.9 Access 交叉表查詢 . 100
4.10 Access 系統(tǒng)界面設(shè)計(jì) ..105
4.11 讓用戶操作更方便.120
4.12 數(shù)據(jù)的添加、修改和刪除125
第5 章 關(guān)系型數(shù)據(jù)庫. 133
5.1 數(shù)據(jù)表之間的原生關(guān)系.135
5.2 Access 的核心 . 146
第6 章 設(shè)計(jì)報(bào)表.. 148
6.1 創(chuàng)建報(bào)表..150
6.2 制作打印按鈕 ..164
第7 章 按鈕背后的故事171
7.1 不寫代碼也能編程 ...173
7.2 導(dǎo)出Excel 格式的報(bào)告 ...177
7.3 那些隱藏的宏操作184
第8 章 Access 與工作自動(dòng)化... 191
8.1 追加查詢與生成表查詢 ...193
8.2 自動(dòng)存檔的Access 宏..203
8.3 睡著懶覺就把活兒干了212
第9 章 Access 與SQL 查詢220
9.1 什么是SQL..222
9.2 SELECT…FROM ...226
9.3 GROUP BY ...234
9.4 HAVING..239
結(jié)束語242