版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第8章Access的編程工具VBA教學(xué)內(nèi)容VBA編程環(huán)境;VBA的數(shù)據(jù)類型及運(yùn)算;VBA程序流程的控制;VBA數(shù)組的概,念及用法:VBA模塊的創(chuàng)建:VBA的數(shù)據(jù)庫編程。教學(xué)要求【知識(shí)目標(biāo)】理解VBA的基本概念;了解VBA的編程環(huán)境;熟悉在窗體上調(diào)用VBA代碼的方法;熟悉和掌握Access程序設(shè)計(jì)的過程;理解并掌握三種程序控制結(jié)構(gòu)。理解各種變量類型的使用范圍及定義方法;掌握過程和常用函數(shù)的調(diào)用方法;掌握數(shù)組的基本使用方法;理解模塊的概念;了解并掌握用ADO接口訪問數(shù)據(jù)庫的一般方法。【技能目標(biāo)】掌握在模塊中創(chuàng)建Sub過程、函數(shù)過程的方法;掌握在不同過程中通過參數(shù)的傳值實(shí)現(xiàn)數(shù)據(jù)的傳遞方法;掌握使用ADO和ADO對(duì)象對(duì)數(shù)據(jù)庫進(jìn)行操作的方法;能利用VBA代碼完成對(duì)象的操作。教學(xué)重點(diǎn)VBA程序設(shè)計(jì);模塊的創(chuàng)建和使用。教學(xué)難點(diǎn)1.用ADO接口訪問數(shù)據(jù)原的一般方法;3.編寫VBA代碼。教學(xué)方法講授法、案例法、演示法課時(shí)數(shù)20課時(shí)(授課10課時(shí),實(shí)驗(yàn)10課時(shí))課程導(dǎo)入【思路】舉例:在窗體上單擊鼠標(biāo),輸入姓名后,窗體上顯示歡迎等字樣。分析:ACCESS的特點(diǎn)之一是不須編程,即可創(chuàng)建簡單的應(yīng)用系統(tǒng)。但這樣的系統(tǒng)功能有限,有時(shí)無法滿足用戶的要求。如上例。引出:編程的好處在于:■增強(qiáng)系統(tǒng)功能■滿足用戶要求■方便系統(tǒng)維護(hù)
中斷模式代表VBA程序的一種運(yùn)行狀態(tài)。在中斷模式下,程序暫停運(yùn)行,這時(shí)編程者可以查看并修改程序代碼,檢查各個(gè)變量或表達(dá)式的取值是否正確等。有兩種情況可以使程序進(jìn)入中斷模式。一種是如果程序出現(xiàn)錯(cuò)誤,無法繼續(xù)執(zhí)行,則會(huì)自動(dòng)進(jìn)入中斷模式。第二種是通過設(shè)置斷點(diǎn),或在程序運(yùn)行過程中單擊“中斷”按鈕人為進(jìn)入中斷模式。8.6.1錯(cuò)誤類型編程時(shí),可能產(chǎn)生的錯(cuò)誤有4種:語法錯(cuò)誤、編譯錯(cuò)誤、運(yùn)行錯(cuò)誤和邏輯錯(cuò)誤。語法錯(cuò)誤語法錯(cuò)誤是指輸入代碼時(shí)產(chǎn)生的不符合程序設(shè)計(jì)語言語法要求的錯(cuò)誤,初學(xué)者經(jīng)常發(fā)生此類錯(cuò)誤。編譯錯(cuò)誤編譯錯(cuò)誤是指在程序編譯過程中發(fā)現(xiàn)的錯(cuò)誤。編譯錯(cuò)誤編譯錯(cuò)誤是指在程序編譯過程中發(fā)現(xiàn)的錯(cuò)誤。4.邏輯錯(cuò)誤如果程序運(yùn)行后,得到的結(jié)果和所期望的結(jié)果不同,則說明程序中存在邏輯錯(cuò)誤。8.6.2程序調(diào)試方法為了幫助編程者更有效地查找和修改程序中的邏輯錯(cuò)誤,VBE提供了幾個(gè)調(diào)試窗口,分別是立即窗II、本地窗II和監(jiān)視窗II。設(shè)置斷點(diǎn)在程序中人為設(shè)置斷點(diǎn),當(dāng)程序運(yùn)行到設(shè)置了斷點(diǎn)的語句時(shí),會(huì)自動(dòng)暫停運(yùn)行并進(jìn)入中斷狀態(tài)。單步跟蹤也可以單步跟蹤程序的運(yùn)行,即每執(zhí)行一條語句后都自動(dòng)進(jìn)入中斷狀態(tài)。設(shè)置監(jiān)視點(diǎn)如果設(shè)置了監(jiān)視表達(dá)式,一旦監(jiān)視表達(dá)式的值為真或改變,程序也會(huì)自動(dòng)進(jìn)入中斷模式。8.7VBA的數(shù)據(jù)庫編程講授+演示【思路】在講解8.6節(jié)時(shí),通過分析講解教材中的實(shí)例,讓學(xué)生理解其中涉及的相關(guān)概念,掌握VBA數(shù)據(jù)庫編程的方法。注意:講清相關(guān)的概念。講授+演示【思路】在講解8.6節(jié)時(shí),通過分析講解教材中的實(shí)例,讓學(xué)生理解其中涉及的相關(guān)概念,掌握VBA數(shù)據(jù)庫編程的方法。注意:講清相關(guān)的概念。8.7.1數(shù)據(jù)訪問接口ADO什么是ADO?ADO(ActiveXDataObject)即ActiveX數(shù)據(jù)訪問對(duì)象,是Microsoft公司在DAO(數(shù)據(jù)訪問對(duì)象)、RDO(遠(yuǎn)程數(shù)據(jù)對(duì)象)之后推出的新的數(shù)據(jù)訪問對(duì)象。在VBA中引用ADO類庫ADO采用面向?qū)ο蠓椒ㄔO(shè)計(jì),各個(gè)對(duì)象的定義被集中在ADO類庫中。要使用ADO對(duì)象,先要引用ADO類庫。
8.7.2ADO的主要對(duì)象ADO共有9個(gè)對(duì)象和4個(gè)對(duì)象集合。ADO的對(duì)象模型同樣采用分層結(jié)構(gòu),經(jīng)常被使用的是3個(gè)處在最上層的對(duì)象,分別是Connection對(duì)象、Command對(duì)象和Recordset對(duì)象。Connection對(duì)象Connection對(duì)象的作用是用于建立與數(shù)據(jù)源的連接,這是訪問數(shù)據(jù)源的首要條件。要?jiǎng)?chuàng)建到數(shù)據(jù)源的連接,應(yīng)該先定義一個(gè)ADO的Connection對(duì)象。方法是:DimMyCnnAsADODB.ConnectionSetMyCnn=NewADODB.ConnectionCommand對(duì)象連接到數(shù)據(jù)源后,需要執(zhí)行對(duì)數(shù)據(jù)源的請(qǐng)求,以獲取結(jié)果集。ADO將這一類型的命令功能封裝在Command對(duì)象中。Command對(duì)象的作用是用來定義并執(zhí)行針對(duì)數(shù)據(jù)源運(yùn)行的具體命令使用Command對(duì)象,同樣需要先創(chuàng)建一個(gè)Command對(duì)象的實(shí)例,然后通過設(shè)置Command對(duì)象的ActiveConnection屬性使打開的連接與Command對(duì)象相關(guān)聯(lián)。再通過使用CommandTcxt屬性來定義命令(如SQL語句)的可執(zhí)行文本。最后調(diào)用Command對(duì)象的Execute方法執(zhí)行命令并返[^記錄集。Recordset對(duì)象Recordset是最常用的ADO對(duì)象。從數(shù)據(jù)源獲取的數(shù)據(jù)就存放在Recordset對(duì)象中,并旦所有Recordset對(duì)象均由記錄(行)和字段(列)組成。可以使用Recordset對(duì)象的方法和屬性定位到數(shù)據(jù)的各行,查看行中的值或者操縱記錄集中的數(shù)據(jù)。同樣使用Recordset對(duì)象需要先定義并初始化一個(gè)Recordset對(duì)象。8.7.3使用記錄集中的數(shù)據(jù)【問題】VBA編程與宏的主要區(qū)別?從數(shù)據(jù)源獲取r【問題】VBA編程與宏的主要區(qū)別?輸出記錄集中的數(shù)據(jù)插入、刪除和更新記錄集中的數(shù)據(jù)本章小結(jié)本章首先介紹了Access的內(nèi)置編程語言VBA的有關(guān)知識(shí),包括VBA的基本語法與設(shè)計(jì)方法,然后介紹Access編程中的常用對(duì)象、數(shù)據(jù)庫訪問接口ADO的使用方法,最后介紹如何在VBA程序中用ADO訪問Access數(shù)據(jù)庫。VBA(VisualBasicforApplication)是MicrosoftOffice內(nèi)置的編程語言;基本語法等來源于BASIC,是根據(jù)VB簡化的宏語言,其語法、詞法與VB基本相同,它簡單、易學(xué)。但VBA不是一個(gè)獨(dú)立的開發(fā)工具,不能獨(dú)立運(yùn)行,需要Word、Excel、Access等運(yùn)行環(huán)境,一般被嵌入到這樣的宿主軟件中。
課后練習(xí)一、問答題VBA程序設(shè)計(jì)語言有什么特點(diǎn)?與VisualBasic程序設(shè)計(jì)語言的區(qū)別是什么?VBE環(huán)境主要由哪些窗口組成?它們的作用是什么?什么是對(duì)象?什么是對(duì)象的屬性、方法和事件?VBA的循環(huán)控制語句有哪幾種?什么是過程?過程和函數(shù)的區(qū)別是什么?二、選擇題(見教材)三、填空題(見教材)實(shí)驗(yàn)內(nèi)容及要求一、實(shí)驗(yàn)?zāi)康氖煜ず驼莆誂ccess程序設(shè)計(jì)的過程。理解并掌握三種程序控制結(jié)構(gòu)。理解并掌握數(shù)組的使用方法。掌握過程和函數(shù)的創(chuàng)建及調(diào)用方法。了解并掌握用ADO接口訪問數(shù)據(jù)庫的一般方法。二、實(shí)驗(yàn)內(nèi)容創(chuàng)建“隨機(jī)數(shù)發(fā)生器”窗體,如圖8-23所示。窗體運(yùn)行后,在“從”(下限)和“到”(上限)文本框中輸入數(shù)據(jù)范圍,然后單擊“生成”按鈕,窗體中的標(biāo)簽顯示一個(gè)在此范圍內(nèi)的隨機(jī)數(shù)。請(qǐng)諭入隨機(jī)數(shù)的范圍:從匚_2到口。。請(qǐng)諭入隨機(jī)數(shù)的范圍:從匚_2到口。。圖8-23“隨機(jī)數(shù)發(fā)生器”窗體int(Rnd()*(上限-下限+1)+下限)創(chuàng)建“宋詞欣賞”窗體,如圖8-24所示。窗體運(yùn)行后,選擇窗體下方的單選按鈕,在窗體上方顯示出對(duì)應(yīng)的詩詞O創(chuàng)建“統(tǒng)計(jì)"窗體,如圖8-25所示。窗體運(yùn)行后,單擊左側(cè)的“生成”按鈕,自動(dòng)生成50個(gè)0-100之間的隨機(jī)數(shù)。單擊右側(cè)的“統(tǒng)計(jì)”按鈕,在右側(cè)的各個(gè)文本框中輸出統(tǒng)計(jì)結(jié)果。創(chuàng)建“雇員基本情況查詢”窗體。要求如下。(1)按圖8-26所示格式和內(nèi)容創(chuàng)建窗體。(2)添加查詢功能并驗(yàn)證查詢結(jié)果。如果未輸入要查詢的雇員姓名,而單擊“查詢”
按鈕,應(yīng)使用消息框給出提示,提示內(nèi)容為“對(duì)不起,未輸入雇員姓名,清輸入!”;如果輸入并找到了要查找的雇員,應(yīng)在窗體輸出結(jié)果;否則使用消息框給出未找到信息,如圖8-26所示。提示:窗體為非綁定窗體,所有的控件為非綁定式控件。飩計(jì)統(tǒng)計(jì)窗體圖8-24“宋詞欣賞”窗體16*513411027648550■生成圖8-2590-100480-897圖8-24“宋詞欣賞”窗體16*513411027648550■生成圖8-2590-100480-89770-79560-692<6032統(tǒng)計(jì)“統(tǒng)計(jì)”窗休如圖8-27所示。要求在左側(cè)的列表框中選5.創(chuàng)建“圖書銷售情況統(tǒng)計(jì)查詢”窗體,定出版社的名稱后,在右側(cè)的文本框中顯示該出版社圖書的銷售情況。圖8-26“雇員基本情況臺(tái)詢”窗體出毗H華大學(xué)出質(zhì)H中國商11出氐?社圖8-27“圖書銷罟情況統(tǒng)計(jì)企詢"窗體三、實(shí)驗(yàn)要求完成題目要求的設(shè)計(jì)及操作,運(yùn)行并查看結(jié)果。保存上機(jī)操作結(jié)果。記錄上機(jī)中出現(xiàn)的問題及解決方法。編寫上機(jī)報(bào)告,報(bào)告內(nèi)容包括如下。(1)實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)題目與要求。(2)分析與思考:實(shí)驗(yàn)過程、實(shí)驗(yàn)中遇到的問題及解決方法,實(shí)驗(yàn)的心得與體會(huì)。8.1VBA程序設(shè)計(jì)概述VBA(VisualBasicforApplication)是MicrosoftOffice內(nèi)置的編程語言,是根據(jù)VisualBasic簡化的宏語言。VBA則是根據(jù)VisualBasic簡化的宏語言,其基本語法、詞法與VisualBasic基木相同,因而具有簡單、易學(xué)的特點(diǎn)。與VisualBasic不同的是,VBA不是一個(gè)獨(dú)立的開發(fā)工具,一般被嵌入到像Word.Excel.Access這樣的宿主軟件中,與其配套使用,從而實(shí)現(xiàn)在其中的程序開發(fā)功能。8.1.1VBA編程環(huán)境在Office中使用的VBA開發(fā)界面被稱為VBE(VisualBasicEditor),它具有編輯、調(diào)試和編譯VB程序的功能。講授【補(bǔ)充】程序:命令的有序集合;程序設(shè)計(jì):編寫、調(diào)試程序的過程;程序設(shè)計(jì)語言:機(jī)器語言/匯編語言/高級(jí)語言。⑷編程的過程:講授【補(bǔ)充】程序:命令的有序集合;程序設(shè)計(jì):編寫、調(diào)試程序的過程;程序設(shè)計(jì)語言:機(jī)器語言/匯編語言/高級(jí)語言。⑷編程的過程:?規(guī)劃?編寫代碼?程序調(diào)試工具欄在VBE環(huán)境中包括標(biāo)準(zhǔn)、編輯、調(diào)試和用戶窗體工具欄。一般除了標(biāo)準(zhǔn)工具欄總是被顯示外,其他凡個(gè)工具欄可以在用到時(shí)使用菜單“視圖”一“工具欄”調(diào)出。工程資源管理器窗口工程資源管理器窗口用層次列表的形式給出了當(dāng)前應(yīng)用程序中的所有窗體、報(bào)表和VBA程序模塊,因而通過該窗口可了解當(dāng)前VBA應(yīng)用程序的構(gòu)成情況。代碼窗口講授+演示代碼窗II主要用來顯示、編輯模塊中的程序代碼。
講授+演示屬性窗口屬性窗口列出了所選對(duì)象控件的各種屬性。在前面章節(jié)設(shè)計(jì)窗體、報(bào)表等對(duì)象時(shí)也用到了屬性窗口(屬性表對(duì)話框),不過那里的屬性己經(jīng)被翻譯成了中文??梢栽贏ccess數(shù)據(jù)庫環(huán)境中的屬性窗口設(shè)置對(duì)象的各種屬性值,也可以在VBE環(huán)境的屬性窗II設(shè)置對(duì)象的各種屬性值。但是在程序代碼中必須使用控件屬性的英文形式。例如,下面的程序代碼將當(dāng)前窗體的標(biāo)題改為“身份驗(yàn)證”。注意,這里使用了“Caption”而不是"標(biāo)題"。其中的"Me"代表當(dāng)前窗體。Me.Caption—身份驗(yàn)證"立即窗口立即窗口用來在調(diào)試程序的過程中給變量臨時(shí)賦值或輸出變量或表達(dá)式的值。在Access中,通常使用Debug對(duì)象的Print方法進(jìn)行輸出。講授【思路】針對(duì)每個(gè)概念,最好通過具體實(shí)例進(jìn)行講解。如,屬性、方法、事件等。講授【思路】針對(duì)每個(gè)概念,最好通過具體實(shí)例進(jìn)行講解。如,屬性、方法、事件等。VBA采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。對(duì)象和集合對(duì)象就是構(gòu)造應(yīng)用程序元素。對(duì)象好比積木塊,它是VBA應(yīng)用程序的基礎(chǔ)構(gòu)件。在開發(fā)一個(gè)應(yīng)用程序時(shí),必須先建立各種對(duì)象,然后圍繞對(duì)象進(jìn)行程序設(shè)計(jì)。為了能在程序中對(duì)具體的數(shù)據(jù)庫進(jìn)行操作和管理,Access提供了?整套數(shù)據(jù)庫的對(duì)象,每個(gè)對(duì)象都有各自的屬性、方法和事件。類是對(duì)一類相似對(duì)象的定義和描述?!咎崾尽繉?duì)象的引用:指明某個(gè)對(duì)象的屬性(或事件、方法)的歸屬層次的描述。對(duì)象的引用的寫法:對(duì)象.屬性名【問題】是每個(gè)控件都有焦點(diǎn)事件嗎?對(duì)象集合是由一組對(duì)象組成的集合,這些對(duì)象的類型可以相同,也可以不同。例如,在AccessH4有對(duì)象集合Forms,其中包含了【提示】對(duì)象的引用:指明某個(gè)對(duì)象的屬性(或事件、方法)的歸屬層次的描述。對(duì)象的引用的寫法:對(duì)象.屬性名【問題】是每個(gè)控件都有焦點(diǎn)事件嗎?Access中的對(duì)象大多有父子關(guān)系。在VBA代碼中訪問對(duì)象,要從根對(duì)象開始,逐步取其子對(duì)象,直到要訪問的對(duì)象為止。屬性和方法對(duì)象的特征用屬性和方法來描述。屬性用來表示對(duì)象的狀態(tài),如窗體的Name(名稱)屬性Caption(標(biāo)題)屬性等。方法用來描述對(duì)象的行為,如窗體有Refresh方法,Debug對(duì)象有Print方法等。事件和事件過程事件是對(duì)象能夠響應(yīng)的各種動(dòng)作。一個(gè)對(duì)象所能響應(yīng)的事件的集合是由系統(tǒng)定義好的。應(yīng)用程序?qū)κ录奶幚砭褪鞘录^程。8.2VBA編程基礎(chǔ)程序的本質(zhì)是處理數(shù)據(jù)。在學(xué)習(xí)編程之前,應(yīng)先了解VBA是怎樣對(duì)數(shù)據(jù)進(jìn)行劃分,以及怎樣對(duì)數(shù)據(jù)進(jìn)行運(yùn)算的。講授8.2.1數(shù)據(jù)類型講授VBA的數(shù)據(jù)類型共有13種。每種數(shù)據(jù)類型的數(shù)據(jù)在存儲(chǔ)時(shí)所占的存儲(chǔ)空間和處理時(shí)
能夠進(jìn)行的運(yùn)算都不相同。數(shù)據(jù)類型決定:所占存儲(chǔ)空間的大小;能夠進(jìn)行的運(yùn)算;取值范圍.在VBA應(yīng)用程序中,需要對(duì)變量的數(shù)據(jù)類型進(jìn)行說明。VBA提供了較為完備的數(shù)據(jù)類型,Access數(shù)據(jù)表中的字段使用的數(shù)據(jù)類型(OLE對(duì)象和備注字段數(shù)據(jù)類型除外),在VBA中都有對(duì)應(yīng)的數(shù)據(jù)類型。在定義方式上,除支持符號(hào)定義方式外,還支持使用關(guān)鍵字定義方式。常量常量就是其值在程序運(yùn)行期間不變的量。常量又分為字面常量、符號(hào)常量和固有常量。字面常量字面常量是常量按照其實(shí)際數(shù)值表示。各種類型的字面常屈表示如下。各種數(shù)字型常量。字符型常量。日期型常量。布爾型常量:符號(hào)常量可以定義用符號(hào)代替常量,如用符號(hào)PI代替3.1415926.如果程序中多處用到某個(gè)常量,將其定義成符號(hào)常量是一個(gè)好方法。這樣的好處是一方面增加了代碼的可讀性,另一方面也便于維護(hù)。固有常量這是一類特殊的符號(hào)常量,通常已經(jīng)預(yù)先在類庫中定義好,編程者只要直接使用這些已經(jīng)定義好的符號(hào)常量即可。變量變量是其值在程序運(yùn)行期間變化的量。計(jì)算機(jī)處理變化的數(shù)據(jù)的方法是將數(shù)據(jù)存儲(chǔ)在內(nèi)存的一塊臨時(shí)存儲(chǔ)空間中,所以變量實(shí)際代表的就是內(nèi)存中的這塊被命名的臨時(shí)存儲(chǔ)空間?!咎崾尽渴莾?nèi)存中用于存儲(chǔ)數(shù)據(jù)的臨時(shí)空間;使用前最好先聲明。講授【提示】是內(nèi)存中用于存儲(chǔ)數(shù)據(jù)的臨時(shí)空間;使用前最好先聲明。講授【思路】選擇幾種常用函數(shù),進(jìn)行舉例說明,加深學(xué)生對(duì)函數(shù)的理解,變量的聲明一般,變量在使用前應(yīng)該先聲明。用Dim語句顯式聲明變量,格式為Dim變量名[AS類型]函數(shù)VBA提供了大量的內(nèi)置函數(shù),這些函數(shù)極大地豐富了VBA的功能,方便了使用者。函數(shù)有函數(shù)名、參數(shù)和函數(shù)值3個(gè)要素。函數(shù)名:是函數(shù)的標(biāo)識(shí)。參數(shù):是調(diào)用函數(shù)時(shí)被傳給函數(shù)的數(shù)據(jù),一般寫在函數(shù)名后的括號(hào)中,也可以沒有參并能根據(jù)所需選擇和應(yīng)用。講授【思路】通過具體實(shí)例講解表達(dá)式的概念及寫法講授+演示并能根據(jù)所需選擇和應(yīng)用。講授【思路】通過具體實(shí)例講解表達(dá)式的概念及寫法講授+演示【問題】輸入一個(gè)數(shù),判斷該函數(shù)值:是函數(shù)返回的值,函數(shù)的功能決定了函數(shù)的返回值。按照函數(shù)的功能,VBA的內(nèi)置.函數(shù)可分為數(shù)學(xué)函數(shù)、字符串函數(shù)、日期函數(shù)、轉(zhuǎn)換函數(shù)等。8.2.5表達(dá)式要對(duì)數(shù)據(jù)進(jìn)行運(yùn)算就要構(gòu)造表達(dá)式,表達(dá)式是將常量、變量、字段名稱、控件的屬性值和函數(shù)用運(yùn)算符連接而成的運(yùn)算式。VBA中有5類運(yùn)算符,使用這些運(yùn)算符可以分別構(gòu)成算術(shù)表達(dá)式、字符表達(dá)式、關(guān)系表達(dá)式、布爾表達(dá)式和對(duì)象引用表達(dá)式。算術(shù)表達(dá)式算術(shù)運(yùn)算符共有7個(gè),可以構(gòu)成算術(shù)表達(dá)式。字符串表達(dá)式字符運(yùn)算符只有1個(gè)&,作用是連接兩個(gè)字符串。關(guān)系表達(dá)式關(guān)系運(yùn)算符用來實(shí)現(xiàn)對(duì)數(shù)據(jù)的比較,結(jié)果為邏輯值True或Falseo布爾表達(dá)式布爾表達(dá)式也叫邏輯表達(dá)式,用來實(shí)現(xiàn)對(duì)邏輯量True和False的運(yùn)算。對(duì)象引用表達(dá)式如果在表達(dá)式中用到對(duì)象,則要構(gòu)造對(duì)象引用表達(dá)式,結(jié)果為被引用的對(duì)象或被引用對(duì)象的屬性值或方法。對(duì)象引用運(yùn)算符有2個(gè):“!”和??梢允褂猛暾麡?biāo)識(shí)符引用對(duì)象、對(duì)象的屬性或方法。如引用窗體“系統(tǒng)登錄”中文本框“txt密碼”的完整引用形式為:Forms![系統(tǒng)登錄]![txt密碼]。8.3VBA程序流程控制程序由語句組成。年個(gè)程序語句由關(guān)鍵字、標(biāo)識(shí)符、運(yùn)算符和表達(dá)式等組成。每條語句指明了計(jì)算機(jī)要進(jìn)行的具體操作。按照語句所執(zhí)行的功能,VBA的程序語句有聲明語句、賦值語句、注釋語句、控制語句等。VBA程序書寫原則:VBA不區(qū)分字母的大小寫,應(yīng)使用半角符號(hào);?在程序中可適當(dāng)添加空格和縮進(jìn);一行寫一條語句,多條語句寫在同一?行時(shí)用“:”分開;一條語句分多行寫時(shí)用1個(gè)空格加下劃線“續(xù)行。8.3.1程序的順序控制有些程序很復(fù)雜,但任何復(fù)雜的程序經(jīng)過分解后都可以看做是由三種基本結(jié)構(gòu)組成的。程序的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是最簡單的一種結(jié)構(gòu)。程序運(yùn)行時(shí),計(jì)算機(jī)按照語句的排列順序依次執(zhí)行程序中的每一條語句。8.3.2程序的分支控制
類似上一章的仃宏操作,分支結(jié)構(gòu)是用條件來控制語句的執(zhí)行。在VBA中,執(zhí)行分支結(jié)構(gòu)控制的語句有If語句和SelectCase語句。If?"Then?"Else語句語句格式為:If〈表達(dá)式〉Then〈語句塊1>Else〈語句塊2>EndIf執(zhí)行時(shí),先判斷表達(dá)式的值,為True則執(zhí)行語句塊1,否則執(zhí)行語句塊2?!幢磉_(dá)式》可■以是任何表達(dá)式,一般為關(guān)系表達(dá)式或布爾表達(dá)式。如果是其他表達(dá)式,則非0認(rèn)為是True,0認(rèn)為是False。If***Then***ElseIf語句如果需要用多個(gè)條件對(duì)程序進(jìn)行控制,可以使用If-Then-Elself語句。其語句格式為:If〈表達(dá)式1>Then〈語句塊1>Elself〈表達(dá)式2>Then〈語句塊2>[Elself〈表達(dá)式n>Then〈語句塊n>Else〈語句塊n+l>]EndIf運(yùn)行時(shí),從表達(dá)式1開始逐個(gè)測試條件,當(dāng)找到第一個(gè)為True的條件時(shí),即執(zhí)行該條件后所對(duì)應(yīng)的語句塊。SelectCaseVBA中的另一個(gè)多分支語句是SelectCase語句。其語句格式為:SelectCase〈變量或表達(dá)式〉Case〈表達(dá)式列表1>語句塊1Case〈表達(dá)式列表2>語句塊2???[CaseElse語句塊n+1]EndSelect數(shù)是奇數(shù)還是偶數(shù).講授+演示【思路】在講解節(jié)時(shí),可以通過演示教材中的實(shí)例,使學(xué)生了解如何實(shí)現(xiàn)程序的分支控制。4.分支嵌套使用各種分支語句時(shí)可以在其中的語句塊中嵌套另一個(gè)分支語句,這就是分支嵌套。而且各種分支語句之間也可以嵌套,例如,在If-Thon-Else語句中嵌套SelectCase語句等。8.3.3程序的循環(huán)控制循環(huán)控制結(jié)構(gòu)也叫重復(fù)控制結(jié)構(gòu)。特點(diǎn)是程序執(zhí)行時(shí),該語句中的一部分操作即循環(huán)體被重復(fù)執(zhí)行多次。在VBA中,執(zhí)行循環(huán)控制的語句有For循環(huán)語句和I)o-l.oop循環(huán)語句。For循環(huán)語句語句格式為:For〈循環(huán)變量>=〈初值〉to〈終值〉[Step〈步長>]〈語句塊〉[ExitFor]〈語句塊〉Next〈循環(huán)變量〉【)()???Loop循環(huán)語句該語句適合的范圍更廣。有以下兩種形式。形式1:Do{WhilelUntil}<條件〉語句塊[ExitDo]語句塊Loop循環(huán)嵌套與分支結(jié)構(gòu)相似,各種循環(huán)控制語句也可以嵌套,并旦分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)彼此之間也可以進(jìn)行嵌套。通過各種語句之間的這種嵌套,就可以實(shí)現(xiàn)更復(fù)雜的程序控制。兒種循環(huán)語句的比較。8.4VBA數(shù)組如果在程序中要對(duì)-?組數(shù)據(jù)進(jìn)行處理,通常的解決方法是將這組數(shù)放在數(shù)組中。數(shù)組并不是一種數(shù)據(jù)類型而是一組相同類型的變量集合。在程序vzhong使用數(shù)組的最大好處是用一個(gè)數(shù)據(jù)名代表邏輯上相關(guān)的一組數(shù)據(jù),用下標(biāo)來區(qū)別該數(shù)據(jù)組中的各個(gè)元素。8.4.1數(shù)組的概念及定義數(shù)組是一組相同類型的數(shù)據(jù)的集合。它屬于構(gòu)造數(shù)據(jù)類型,可以由變量這樣的基本類型構(gòu)造而成。1.一維數(shù)組的定義【問題】求解:1+2+3+-+10?講授+演示【思路】在講解8.3.3節(jié)時(shí),通過分析、講解和演示教材中的實(shí)例,讓學(xué)生了解如何實(shí)現(xiàn)程序的循環(huán)控制。【問題】要處理10個(gè)人的考試成績,怎么組織這些數(shù)據(jù)?講授講授+演示講授+演示【思路】在講解8.4.2節(jié)時(shí),通過分析講解教材中的實(shí)例,讓學(xué)生理解數(shù)組的概念和使用方法。講授+演示【思路】在講解8.5節(jié)時(shí),通過分析講解教材中的實(shí)例,讓學(xué)生掌握VBA模塊的創(chuàng)建中的概念及創(chuàng)建方法。注意:講清相關(guān)的概使用數(shù)組必須先定義數(shù)組,一維數(shù)組的定義格式為:Dim數(shù)組名([<下界〉to]〈上界?[As〈數(shù)據(jù)類型>]2.二維數(shù)組的定義二維數(shù)組其定義格式為:Dim數(shù)組名(K下界〉to]〈上界〉,K下界〉to]〈上界?[As〈數(shù)據(jù)類型〉]8.4.2數(shù)組的應(yīng)用一旦定義了數(shù)組,就可以用前面介紹的對(duì)變量的處理方法處理數(shù)組,并且可以用循環(huán)語句對(duì)數(shù)組進(jìn)行處理,從而簡化程序的書寫,提高程序的可讀性。數(shù)組可以看做是程序中對(duì)成組數(shù)據(jù)的組織方法,使用數(shù)組可■以提高數(shù)據(jù)的處理效率。本節(jié)主要介紹了一維和二維定長數(shù)組的定義和使用方法,關(guān)于動(dòng)態(tài)數(shù)組和多維數(shù)組等其他內(nèi)容,可參考有關(guān)書籍。8.5VBA模塊的創(chuàng)建VBA程序是由模塊組成的。使用工程資源管理器窗口就可以直觀地看到當(dāng)前所打開的Access程序的構(gòu)成。組成VBA程序的模塊有類模塊和標(biāo)準(zhǔn)模塊,類模塊通常和某個(gè)具體的對(duì)象相連,前面章節(jié)所建立的窗體和報(bào)表都屬于類模塊。8.5.1VBA標(biāo)準(zhǔn)模塊模塊是存儲(chǔ)代碼的容器。標(biāo)準(zhǔn)模塊一般用來承載在程序其他模塊中要引用的代碼,這些代碼按照其是否有返回值可以被組織成Sub過程和Function函數(shù)。因而標(biāo)準(zhǔn)模塊不與某個(gè)具體的對(duì)象相連,它的作用就是為其他模塊提供可共享的公共Sub過程和Function函數(shù)。過程的創(chuàng)建和調(diào)用過程一般是一段可以實(shí)現(xiàn)某個(gè)具體功能的代碼。與函數(shù)不同,過程沒有返回值。既可以在類模塊中創(chuàng)建過程,也可以在標(biāo)準(zhǔn)模塊中創(chuàng)建過程。8.5.3函數(shù)的創(chuàng)建和調(diào)用與過程不同,函數(shù)有返回值。VBA的函數(shù)包含內(nèi)置函數(shù)和用戶自定義函數(shù)兩種。關(guān)于內(nèi)置函數(shù)前面己有介紹,這里主要介紹如何在模塊內(nèi)創(chuàng)建自定義函數(shù)。創(chuàng)建函數(shù)與創(chuàng)建過程的方法相似,不同的是在圖8-10所示的“添加過程”對(duì)話框中應(yīng)將類型選擇為“函數(shù)”??紤]到函數(shù)有返回值,因此在定義函數(shù)時(shí)應(yīng)特別注意要指明函數(shù)的返回值的類型,并且在函數(shù)體內(nèi)給函數(shù)賦值.函數(shù)的定義形式如下:[PubliclP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度牧業(yè)產(chǎn)業(yè)扶貧項(xiàng)目承包合同范本3篇
- 2025版農(nóng)產(chǎn)品溯源與質(zhì)量認(rèn)證服務(wù)合同3篇
- 遼寧省朝陽市北票市2024-2025學(xué)年七年級(jí)上學(xué)期1月期末道德與法治試題(含答案)
- 2025年度個(gè)人公司股權(quán)結(jié)構(gòu)調(diào)整合同4篇
- 二零二五年度某局勞務(wù)分包結(jié)算與數(shù)字化轉(zhuǎn)型戰(zhàn)略合同2篇
- 天然氣在科技創(chuàng)新中的地位考核試卷
- 家禽飼養(yǎng)業(yè)質(zhì)量品牌提升與市場競爭策略考核試卷
- 供應(yīng)鏈協(xié)同采購與供應(yīng)商管理考核試卷
- 儀器儀表制造業(yè)的持續(xù)創(chuàng)新能力考核試卷
- 2025版二零二五年度美發(fā)店房東租賃合同范本:租賃合作協(xié)議4篇
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動(dòng)站儀器運(yùn)營維護(hù)項(xiàng)目操作說明以及簡單故障處理
- 2022年12月Python-一級(jí)等級(jí)考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
評(píng)論
0/150
提交評(píng)論