《Access 2007开发指南(修订版)》一一1.5 什么是数据库对象
本節(jié)書摘來自異步社區(qū)出版社《Access 2007開發(fā)指南(修訂版)》一書中的第1章,第1.5節(jié),作者: 【美】Alison Balter,更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號查看。
1.5 什么是數(shù)據(jù)庫對象
Access 2007開發(fā)指南(修訂版)
正如前面所提及,Access的數(shù)據(jù)庫由表、查詢、窗體、報表、宏和模塊組成。這些對象都有自己特定的功能。Access環(huán)境還包括好幾個雜項對象,包括關(guān)系、數(shù)據(jù)庫屬性和導(dǎo)入/導(dǎo)出規(guī)格。有了這些對象,就可以創(chuàng)建功能強(qiáng)大的、用戶友好的集成應(yīng)用程序。圖1.1所示的是Access的應(yīng)用程序窗口。請注意,在“導(dǎo)航窗格”中列出的對象類別。以下各節(jié)對Access數(shù)據(jù)庫的各個對象進(jìn)行解釋。
1.5.1 表:數(shù)據(jù)的倉庫
表是應(yīng)用程序的起點。不管是將數(shù)據(jù)存儲在Access數(shù)據(jù)庫中,還是使用鏈接表引用外部數(shù)據(jù),數(shù)據(jù)庫中所有其他對象都對表進(jìn)行了直接或間接的引用。
要想查看一個已打開的數(shù)據(jù)庫中的各個表,應(yīng)從“導(dǎo)航窗格”下拉列表中選擇“表”,如圖1.2所示(請注意,這里看不到任何隱藏的表,要查看隱藏的表,必須在“導(dǎo)航選項”對話框中選擇“隱藏對象”復(fù)選框,如圖1.3所示)。如果要查看某個表中的數(shù)據(jù),應(yīng)雙擊要瀏覽的表名。
Access將表中的數(shù)據(jù)以數(shù)據(jù)表的形式顯示,其中包括了表中的所有字段和記錄(如圖1.4所示)。注意,圖中折疊了“導(dǎo)航窗格”,這樣可使用戶更好地查看表(該技巧會在本章后面介紹)。可以修改數(shù)據(jù)表的諸多屬性,甚至還可以對數(shù)據(jù)表內(nèi)的數(shù)據(jù)進(jìn)行查找和篩選。如果某表與另外的表進(jìn)行了鏈接(如羅斯文的客戶表和訂單表),就可以打開或折疊子數(shù)據(jù)表,用以查看存儲在子表中的數(shù)據(jù)。這些簡單的技巧不會在這本書中介紹,Access的用戶手冊或其他介紹關(guān)于Access的圖書對此已經(jīng)做了介紹,例如《Sams Teach Yourself Microsoft Office Access 24 Hours》。
作為開發(fā)人員,經(jīng)常要查看表的設(shè)計,它是表的藍(lán)本,也可以說是模板。為了查看表的設(shè)計,應(yīng)該在打開表后單擊功能區(qū)開始頁面上的“視圖”圖標(biāo)(見圖1.5)。在設(shè)計視圖內(nèi),可以查看和修改所有的字段名、數(shù)據(jù)類型以及字段和表的屬性。在Access中,用戶具有自定義表的設(shè)計能力和靈活性,第2章將講述這些內(nèi)容。
關(guān)系:連接表
為了較好地維護(hù)數(shù)據(jù)的完整性并簡化與數(shù)據(jù)庫內(nèi)其他對象的操作過程,必須在數(shù)據(jù)庫中的表之間定義關(guān)系。通過使用“關(guān)系”窗口可以完成這項任務(wù)。為了瀏覽“關(guān)系”窗口,應(yīng)該選擇“數(shù)據(jù)庫工具”選項卡,然后在“顯示/隱藏”組中選擇“關(guān)系”按鈕,此時,“關(guān)系”窗口就會出現(xiàn),如圖1.6所示。
在這個窗口中,可以查看和維護(hù)數(shù)據(jù)庫中的關(guān)系。如果自己或者某個后續(xù)的開發(fā)人員已經(jīng)設(shè)計了一些關(guān)系,但是在“關(guān)系”窗口中卻看不到它們,那么在“設(shè)計”選項卡上的“關(guān)系”組中選擇“所有關(guān)系”按鈕,就可以將任何隱藏的表和關(guān)系顯示出來。
請注意圖1.6所示的關(guān)系,表之間的連接線上有一個數(shù)字1,還有一個無限符號(∞)。這說明在這些表之間有一個“一對多”關(guān)系。如果雙擊連接線,那么將出現(xiàn)“編輯關(guān)系”對話框(如圖1.7所示)。在這個對話框中,可以指定表與表之間的準(zhǔn)確關(guān)系。比如說,客戶表與訂單表之間的關(guān)系就是一對多的關(guān)系,它將執(zhí)行參照完整性規(guī)則。也就是說,對于不存在的客戶不能添加訂單。請注意,“級聯(lián)更新相關(guān)字段”這個復(fù)選框沒有選中。這就意味著,用戶不能更新客戶表中某個客戶的客戶ID。由于“級聯(lián)刪除相關(guān)記錄”這個復(fù)選框沒有選中,因此,如果客戶在訂單表中有訂單,那么它們不會從客戶表中刪除。
本書第3章將詳細(xì)地講述關(guān)系的定義和維護(hù)過程,還會介紹相關(guān)數(shù)據(jù)庫設(shè)計的基礎(chǔ)知識。不過,在設(shè)計過程中,要盡早地在概念和設(shè)計上認(rèn)識到關(guān)系的存在。要想成功地設(shè)計和實現(xiàn)應(yīng)用程序,它是必不可少的。
1.5.2 查詢:存儲應(yīng)用到數(shù)據(jù)的問題和操作
Access的查詢功能是非常強(qiáng)大的,并且具有多面性。利用選擇查詢可以對自己表中的數(shù)據(jù)進(jìn)行查看、匯總和執(zhí)行運算。利用操作查詢可以添加、更新及刪除表中的數(shù)據(jù)。為了運行查詢,應(yīng)該先從“導(dǎo)航”下拉列表中選擇“查詢”,然后雙擊要運行的查詢,或者右鍵單擊選擇要運行的查詢,然后單擊“打開”按鈕。在運行一個選擇查詢后,將出現(xiàn)一個數(shù)據(jù)表,其中包含了在查詢中指定的所有字段和與查詢規(guī)則相匹配的所有記錄,如圖1.8所示。在運行了一個操作查詢后,Access就會執(zhí)行指定的行為,例如新表的創(chuàng)建及對現(xiàn)有表的數(shù)據(jù)追加這樣的行為。一般來說,這時的查詢結(jié)果的數(shù)據(jù)會得到更新,因為查詢的結(jié)果實際上是一個動態(tài)的記錄集,又被稱為動態(tài)集,它以表中的數(shù)據(jù)為基礎(chǔ)。
當(dāng)存儲一個查詢時,實際上只有其定義、布局或者說格式屬性以及數(shù)據(jù)表存儲在數(shù)據(jù)庫中。Access為用戶設(shè)計查詢提供了直觀的、界面友好的工具。圖1.9顯示出了“查詢設(shè)計”窗口。要打開該窗口,應(yīng)該在“導(dǎo)航”窗格下拉列表中選擇“查詢”,然后選中要修改的查詢,并且單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“設(shè)計”命令。圖1.9中給出的查詢是從采購訂單、采購訂單狀態(tài)和采購價格總計表中選擇數(shù)據(jù)(注意,查詢是可以基于表和其他查詢的)。它顯示了采購訂單表中的創(chuàng)建日期、供應(yīng)商ID、運費、稅款和其他幾個字段,也顯示了采購訂單狀態(tài)表中的狀態(tài),還顯示了來自采購價格總計查詢中的價格匯總。第4章和第12章將專門講述查詢。因為查詢是絕大部分窗體和報表的基礎(chǔ),因此查詢可以應(yīng)用于數(shù)據(jù)庫中其他對象的過程,有關(guān)查詢的內(nèi)容將遍布全書。
1.5.3 窗體:顯示、修改和添加數(shù)據(jù)的手段
雖然可以在表的數(shù)據(jù)表視圖中輸入和修改數(shù)據(jù),但是,這樣做并不能很好地控制用戶的行為,也不能很好地處理數(shù)據(jù)輸入過程,而這時就需要使用窗體了。Access的窗體富有特色,而且靈活多樣、功能強(qiáng)大。
要想瀏覽某個窗體,應(yīng)該從“導(dǎo)航窗格”中選擇“窗體”。然后雙擊想要瀏覽的窗體,或者右鍵單擊需要瀏覽的窗體,在彈出的快捷菜單中選擇“打開”命令。圖1.10所示的是“窗體”視圖中的一個窗體,該窗體實際上包括4個窗體,即1個主窗體和3個子窗體。主窗體顯示的信息來自訂單表,而子窗體顯示的信息來自訂單明細(xì)表和訂單表。當(dāng)用戶一個一個地查看訂單時,與訂單相關(guān)聯(lián)的訂單明細(xì)會相應(yīng)地顯示出來。如果用戶選擇了“發(fā)貨信息”和“付款信息”選項卡,就可以看見有關(guān)該訂單的額外信息。
像表和查詢一樣,也可以在設(shè)計視圖中查看窗體。為了查看窗體的設(shè)計,應(yīng)該從“導(dǎo)航窗格”中右鍵單擊該窗體,在彈出的快捷菜單中選擇“設(shè)計”命令。圖1.11所示的是設(shè)計視圖中的訂單明細(xì)窗體。請注意主窗體中的3個子窗體,第5章和第10章將專門講述窗體。在應(yīng)用程序的一些例子中應(yīng)用窗體時也會介紹它。
1.5.4 報表:將數(shù)據(jù)整理成信息
在窗體中可以輸入和編輯信息,但是在有了報表之后,就可以用打印機(jī)打印報表信息。圖1.12所示的是一個預(yù)覽模式的報表。要想預(yù)覽某個報表,應(yīng)該從“導(dǎo)航窗格”中右鍵單擊該報表,然后在彈出的快捷菜單中選擇“打印預(yù)覽”命令,或者雙擊想要預(yù)覽的報表。請注意報表中的顏色及其他內(nèi)容,比如說列標(biāo)題的陰影區(qū)域。報表像窗體一樣,也是比較復(fù)雜的,不過它可以包含相當(dāng)豐富的信息。
也許用戶想象不到,也可以在設(shè)計視圖中瀏覽報表,如圖1.11所示。要查看某個報表的設(shè)計,應(yīng)該在“導(dǎo)航窗格”中右鍵單擊該報表,然后在彈出的快捷菜單中選擇“設(shè)計視圖”命令。圖1.12所示的報表有好幾個節(jié),從圖中可以看到報表頁眉、頁面頁眉、主體、頁面頁腳和報表頁腳,這里只給出了報表中許多節(jié)中的一些。就像窗體可以包含子窗體一樣,報表也可以包含子報表。第6章和第11章將專門討論報表。當(dāng)它用于應(yīng)用程序的一些例子中時,用戶也會看到它的應(yīng)用。
1.5.5 宏:使系統(tǒng)自動化的一種方式
Access中的宏與其他Office產(chǎn)品中的宏是不一樣的。它們不能像在Microsoft Word或Excel中那樣進(jìn)行記錄,也不能像應(yīng)用于應(yīng)用程序的Visual Basic(VBA)代碼那樣保存。對于許多在鍵盤、菜單和工具欄上手工執(zhí)行的大多數(shù)任務(wù),都可以用Access的宏來執(zhí)行。宏可以提供條件,這樣用戶就可以在應(yīng)用程序流中添加邏輯。
Access 2007中可使用嵌入式宏。嵌入式宏不是在“導(dǎo)航窗格”中作為單獨的對象出現(xiàn),而是作為它連接的對象的一部分。當(dāng)修改一個嵌入式宏時,它不影響數(shù)據(jù)庫中的任何其他宏或?qū)ο蟆R驗橛脩艨梢宰柚骨度胧胶陥?zhí)行某些潛在的不安全操作,所以它們是可以信任的(包括嵌入式宏的宏知識會在第7章中介紹)。
為了運行宏,應(yīng)該在“導(dǎo)航窗格”中選擇“宏”命令,然后右鍵單擊想要運行的宏,在彈出的快捷菜單中選擇“運行”命令。這樣,Access就會執(zhí)行宏的操作。要想查看宏的設(shè)計,應(yīng)該在“導(dǎo)航窗格”中右鍵單擊該宏,然后在彈出的快捷菜單中選擇“設(shè)計視圖”命令。圖1.13中給出4列宏。利用第1列可以指定條件,宏內(nèi)第2列的操作只有在這個操作的條件為真時才會執(zhí)行,第3列顯示了該行宏的參數(shù),利用第4列可以給宏添加注釋。宏設(shè)計窗口的下半部分用來指定用于選定操作的參數(shù)。在圖1.13中,選定的操作是OpenForm,它接收6個參數(shù),即“窗體名稱”、“視圖”、“篩選名稱”、“Where條件”、“數(shù)據(jù)模式”和“窗口模式”。
1.5.6 模塊:應(yīng)用程序開發(fā)過程的基礎(chǔ)
模塊(Modules)是任何一個應(yīng)用程序的基礎(chǔ),利用它可以建立函數(shù)庫,并將其用于整個應(yīng)用程序之中。模塊一般是由子程序和函數(shù)構(gòu)成的。函數(shù)通常要返回一個值,而子程序則不會。通過使用代碼模塊可以做以下工作:
執(zhí)行錯誤處理;
聲明和使用變量;
遍歷和操作記錄集;
調(diào)用Windows API和其他庫函數(shù);
創(chuàng)建和修改系統(tǒng)對象,如表和查詢;
執(zhí)行事務(wù)處理;
完成許多宏沒有的功能;
測試和調(diào)試復(fù)雜的過程;
創(chuàng)建系統(tǒng)庫數(shù)據(jù)庫。
這些只是使用模塊可以完成的一部分任務(wù)。為了查看一個現(xiàn)有模塊的設(shè)計,應(yīng)該在“導(dǎo)航窗格”中右鍵單擊想要修改的模塊,然后在彈出的快捷菜單中選擇“設(shè)計視圖”命令打開“模塊設(shè)計”窗口,如圖1.14所示。在圖1.14中的全局代碼模塊包含通用聲明節(jié)和5個函數(shù)。圖中可見的函數(shù)名為CreateInvoice。第8章和第13章將對模塊和VBA進(jìn)行專門的討論,不過,這本書的各章均會對它們有所論述。
總結(jié)
以上是生活随笔為你收集整理的《Access 2007开发指南(修订版)》一一1.5 什么是数据库对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下通过命令设置系统时间
- 下一篇: 《NoSQL权威指南》导读