第8章 模塊與VBA程序設(shè)計(jì)_第1頁(yè)
第8章 模塊與VBA程序設(shè)計(jì)_第2頁(yè)
第8章 模塊與VBA程序設(shè)計(jì)_第3頁(yè)
第8章 模塊與VBA程序設(shè)計(jì)_第4頁(yè)
第8章 模塊與VBA程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Access2010數(shù)據(jù)庫(kù)應(yīng)用江西農(nóng)業(yè)大學(xué)計(jì)算機(jī)與信息工程學(xué)院信息管理與信息系統(tǒng)教研室學(xué)習(xí)要點(diǎn)模塊的基礎(chǔ)知識(shí)新建模塊VBA概述VBA程序設(shè)計(jì)基礎(chǔ)知識(shí)第8章模塊與VBA程序設(shè)計(jì)學(xué)習(xí)目標(biāo)通過(guò)本章的學(xué)習(xí),讀者應(yīng)該掌握模塊的基礎(chǔ)知識(shí),并學(xué)會(huì)建立各類模塊,并能夠使用VBA進(jìn)行數(shù)據(jù)庫(kù)編程。第3章表的創(chuàng)建與使用對(duì)象(Objectt)屬性(Property)方法(Method)事件(Event)8.1模塊的基礎(chǔ)知識(shí)8.1.1對(duì)象、屬性、方法、事件模塊是將VisualBasicforApplications中的聲明和過(guò)程作為一個(gè)單元進(jìn)行保存的集合。模塊是由一個(gè)或多個(gè)過(guò)程組成的,每個(gè)過(guò)程可以實(shí)現(xiàn)一種或幾種功能,利用模塊可以將各種數(shù)據(jù)庫(kù)對(duì)象聯(lián)接起來(lái),從而使其構(gòu)成一個(gè)完整的系統(tǒng)。類模塊標(biāo)準(zhǔn)模塊過(guò)程

(1)Sub過(guò)程

(2)函數(shù)過(guò)程8.1模塊的基礎(chǔ)知識(shí)8.1.2什么是模塊Data事件Keyboard事件Error和Timing事件Mouse事件Filter事件Focus事件Window事件8.1模塊的基礎(chǔ)知識(shí)8.1.3事件的類型窗體和報(bào)表模塊都是類模塊,而且它們都依附于某一窗體或報(bào)表而存在。窗體和報(bào)表模塊通常都含有自己所包含的對(duì)象。每種對(duì)象都有自己固有的事件過(guò)程,該過(guò)程用于響應(yīng)窗體或報(bào)表中的事件??梢允褂檬录^(guò)程來(lái)控制窗體或報(bào)表的行為,以及它們對(duì)用戶操作的響應(yīng)。例8-1:創(chuàng)建窗體類模塊例8-2:創(chuàng)建報(bào)表類模塊8.2新建模塊8.2.1創(chuàng)建與窗體和報(bào)表相關(guān)的類模塊使用類模塊也可以創(chuàng)建不屬于窗體或報(bào)表的類模塊8.2.3創(chuàng)建標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊包含的是普通過(guò)程,這些普通過(guò)程是獨(dú)立存在的過(guò)程,不與任何對(duì)象相關(guān)聯(lián)。8.2新建模塊識(shí)8.2.2創(chuàng)建與窗體和報(bào)表不相關(guān)的普通類模塊VBA是VisualBasicforApplicaton的縮寫,是VB語(yǔ)言在微軟Office系列產(chǎn)品中的應(yīng)用,它是由VisualBasicForWindows發(fā)展而來(lái),是VisualBasic的子集。VBA的語(yǔ)法結(jié)構(gòu)與VisualBasicForWindows基本相似,如果你有VisualBasic基礎(chǔ),那么你的學(xué)習(xí)將更加輕松而有效率。VBA具有以下特征:(1)VBA是一種解釋性語(yǔ)言。(2)VBA是一種面向?qū)ο蟮恼Z(yǔ)言。(3)VBA支持可視化的編程環(huán)境。(4)VBA不能單獨(dú)被執(zhí)行,只能被office程序(Word、Excel、Access和PowerPoint等)所調(diào)用。(5)VBA是事件驅(qū)動(dòng)的。8.3.1VBA簡(jiǎn)介8.3VBA概述VBA與VB的主要區(qū)別。1.VB可以創(chuàng)建獨(dú)立的應(yīng)用程序,而VBA是被嵌入在Microsoft的Office產(chǎn)品中來(lái)執(zhí)行的。2.VB具有自己的開(kāi)發(fā)環(huán)境,VBA寄生在已有的Office軟件中。3.VB開(kāi)發(fā)的應(yīng)用程序通常是以可執(zhí)行文件的方式存在于計(jì)算機(jī)中,而VBA開(kāi)發(fā)的程序必須依賴于它的“父”應(yīng)用程序(Offic)。8.3.2VBA與VB8.3VBA概述VBA的開(kāi)發(fā)環(huán)境是指開(kāi)發(fā)VBA程序所使用的“設(shè)計(jì)器”,通常叫它“VBA開(kāi)發(fā)環(huán)境”在access2010中,單擊“創(chuàng)建”→宏與代碼中的“VisualBasic”或單擊“數(shù)據(jù)庫(kù)工具”→“VisualBasic”或按下組合鍵“Alt+F11”都會(huì)彈出一個(gè)窗口,這就是VBA的“開(kāi)發(fā)環(huán)境”。也可以在打開(kāi)一個(gè)數(shù)據(jù)庫(kù)后,單擊access2010窗口中的“創(chuàng)建”,然后單擊其下的“模塊”或“類模塊”來(lái)進(jìn)入VBA的開(kāi)發(fā)環(huán)境。8.3.3認(rèn)識(shí)VBA開(kāi)發(fā)環(huán)境8.3VBA概述1.VBA開(kāi)發(fā)環(huán)境窗口8.3.3認(rèn)識(shí)VBA開(kāi)發(fā)環(huán)境8.3VBA概述選擇事件代碼窗口工程資源管理器屬性窗口1.VBA數(shù)據(jù)類型8.4.1數(shù)據(jù)類型、常量及變量8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)類型標(biāo)識(shí)符數(shù)據(jù)類型占用內(nèi)存(字節(jié))有效數(shù)值范圍Boolean布爾型2True或FalseByte字節(jié)型10~255的整數(shù)Integer整數(shù)型2-32768~32767Long長(zhǎng)整數(shù)型4-2,147,483,648~2,147,483,647Single單精度浮點(diǎn)型4負(fù)數(shù):-3.402823E38~-1.401298E-45正數(shù):1.401298E-45~3.402823E38Double雙精度浮點(diǎn)型8負(fù)數(shù):-1.10000000000231E308~-4.10000000000247E-324正數(shù):4.10000000000247E–324~1.10000000000231E3081.VBA數(shù)據(jù)類型類型標(biāo)識(shí)符數(shù)據(jù)類型占用內(nèi)存(字節(jié))有效數(shù)值范圍Currency變比整型8-922,337,203,685,477.5808~922,337,203,685,477.5807Decimal小數(shù)型14不含小數(shù)時(shí):+/-10000000000100000000003950335包含小數(shù)時(shí):+/-7.1000000000010000000000950335最小非零值:+/-0.1000000000010000000000000001Date日期型81/1/100~12/31/99991.VBA數(shù)據(jù)類型類型標(biāo)識(shí)符數(shù)據(jù)類型占用內(nèi)存(字節(jié))有效數(shù)值范圍String(定長(zhǎng))定長(zhǎng)字符串型字符串長(zhǎng)度定長(zhǎng)字符串最多可包含大約65,400個(gè)字符String(變長(zhǎng))變長(zhǎng)字符串型10字節(jié)+字符串長(zhǎng)度變長(zhǎng)字符串最多可包含大約20億(2^31)個(gè)字符Object對(duì)象型4對(duì)象變量可用來(lái)引用任何對(duì)象Variant(數(shù)字)變體型16數(shù)值數(shù)據(jù)時(shí),最大可達(dá)Double的范圍+/-10000000000100000000003950335

包含小數(shù)時(shí):

+/-7.1000000000010000000000950335

最小非零數(shù)字:+/-0.1000000000010000000000000001Variant(字符)變體型22字節(jié)+字符串長(zhǎng)度與變長(zhǎng)字符串的范圍相同2.常量在程序的執(zhí)行過(guò)程中,其值不能被改變的數(shù)據(jù)稱為常量,也可以這么說(shuō),常量就是固定值,如19,3.14,0.625e+3,-2.89E-2。符號(hào)常量在VBA中,符號(hào)常量可以用Const語(yǔ)句來(lái)定義,并且可在模塊中使用。例如,ConstPI=3.141593ConstAuthor="張三"8.4.1數(shù)據(jù)類型、常量及變量8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)3.變量變量是數(shù)據(jù)在程序中的一種表現(xiàn)形式,在程序的執(zhí)行過(guò)程中,變量的值可以發(fā)生改變。變量主要用來(lái)保存程序運(yùn)行時(shí)用戶輸入的數(shù)據(jù)、表達(dá)式的結(jié)果、函數(shù)的返回值和程序要輸出的數(shù)據(jù)。變量包括以下4個(gè)組成部分:變量名、變量的數(shù)據(jù)類型、變量所占的存儲(chǔ)空間和變量的值。8.4.1數(shù)據(jù)類型、常量及變量8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)3.變量變量在使用前應(yīng)進(jìn)行聲明,這就是所謂的聲明變量,也就是說(shuō)明一個(gè)或多個(gè)變量的名字,以及這些變量可以保存何種類型的數(shù)據(jù)。在VBA中,可以使用兩種方式來(lái)聲明變量,一種為顯式聲明,另一種為隱式聲明。顯式聲明要用到Dim語(yǔ)句,Dim即Dimension的意思,Dim語(yǔ)句的格式如下:(1)Dim變量名稱As數(shù)據(jù)類型(2)Dim變量名稱1,變量名稱2,……,變量名稱n As數(shù)據(jù)類型(3)Dim變量名稱1As數(shù)據(jù)類型1,變量名稱2As數(shù)據(jù)類型2,……,變量名稱nAs數(shù)據(jù)類型nVBA中常用的運(yùn)算符可分為以下幾類:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和字符串的連接運(yùn)算符。由運(yùn)算符和運(yùn)算數(shù)按一定的格式組成的式子叫作表達(dá)式。具體來(lái)說(shuō),表達(dá)式是由數(shù)字、字符串、常量、變量、對(duì)象成員、函數(shù)以及運(yùn)算符組成的運(yùn)算式。每一個(gè)表達(dá)式經(jīng)過(guò)運(yùn)算后都會(huì)產(chǎn)生一個(gè)確定的值(這一運(yùn)算過(guò)程稱為表達(dá)式求值),這個(gè)值就稱為表達(dá)式的值。VBA的表達(dá)式可分為算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式和字符串表達(dá)式。8.4.2運(yùn)算符與表達(dá)式8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)除了在模塊創(chuàng)建中可以定義子過(guò)程與函數(shù)過(guò)程以完成特定功能外,VBA還提供了近百個(gè)內(nèi)置的標(biāo)準(zhǔn)函數(shù),可以方便地完成許多操作。標(biāo)準(zhǔn)函數(shù)一般用于各種表達(dá)式中,有的能像語(yǔ)句一樣使用。其使用格式如下:

函數(shù)名(參數(shù)列表)或

函數(shù)名()VBA的標(biāo)準(zhǔn)函數(shù)可分為:算術(shù)函數(shù)、字符串函數(shù)、日期/時(shí)間函數(shù)和類型轉(zhuǎn)換函數(shù)。8.4.3VBA的常用函數(shù)8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)VisualBasic中的語(yǔ)句是一個(gè)完整的命令。它可以包含關(guān)鍵字、運(yùn)算符、變量、常量以及表達(dá)式。每一個(gè)語(yǔ)句都屬于下列3種類別之一。(1)聲明語(yǔ)句(2)賦值語(yǔ)句(3)可執(zhí)行語(yǔ)句1.VBA中語(yǔ)句的特點(diǎn)(1)VBA允許將單個(gè)語(yǔ)句分成多行書寫。(2)VBA允許在代碼中加入注釋。例8-3:在程序中使用注釋的方法。8.4.4VBA中的語(yǔ)句8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)2.VBA中的聲明語(yǔ)句例8-4:聲明語(yǔ)句使用實(shí)例。3.賦值語(yǔ)句例8-5:指定InputBox函數(shù)的返回值給變量name。8.4.4VBA中的語(yǔ)句8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)4.選擇控制語(yǔ)句(1)If…Then…語(yǔ)句例8-6:隨機(jī)出一道兩位數(shù)的加法題讓小學(xué)生回答。例8-7:輸入一整數(shù),判斷其奇偶并顯示相應(yīng)的判斷結(jié)果。例8-8:使用塊條件語(yǔ)句改寫例8-7的程序。(2)塊結(jié)構(gòu)條件語(yǔ)句例8-9:收入稅計(jì)算。8.4.4VBA中的語(yǔ)句8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)(3)SelectCase語(yǔ)句例8-10:根據(jù)當(dāng)前時(shí)間,判斷現(xiàn)在是上午、中午、下午、晚上,還是午夜。例8-11:根據(jù)百分制成績(jī)返回成績(jī)等級(jí)。成績(jī)大于等于0且小于60,則返回“不及格”,成績(jī)介于60到70之間(含60,但不含70),則返回“及格”,成績(jī)介于70到90之間(含70,但不含90),則返回“良好”,成績(jī)介于90到99之間(含80和99),則返回“優(yōu)秀”,成績(jī)?yōu)?00分則返回“滿分”,如果成績(jī)小于0或者大于100,提示則提示成績(jī)值錯(cuò)誤。要求利用一個(gè)Function過(guò)程來(lái)處理。8.4.4VBA中的語(yǔ)句8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)5.循環(huán)控制語(yǔ)句(1)Do循環(huán)DoWhile…Loop循環(huán)Do…LoopWhile循環(huán)DoUntil…Loop循環(huán)Do…LoopUntil循環(huán)例8-12:編寫過(guò)程求S=1+2+3+…+100例8-13:使用Do…LoopWhile循環(huán)改寫例8-12所得的過(guò)程。8.4.4VBA中的語(yǔ)句8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)5.循環(huán)控制語(yǔ)句例8-14:編寫過(guò)程求n!例8-15:使用Do…LoopUntil循環(huán)改寫例8-14所得的過(guò)程。5.循環(huán)控制語(yǔ)句(2)For循環(huán)For…Next循環(huán)ForEach…Next循環(huán)例8-17:使用For…Next循環(huán)重寫例8-12的過(guò)程。例8-18:編寫程序,由鍵盤輸入一個(gè)自然數(shù)n,判斷它是否是素?cái)?shù)。素?cái)?shù)就是,除1以外,只能被1和它自己整除的自然數(shù)。例8-20:利用ForEach…Next循環(huán)輸出一個(gè)長(zhǎng)度為20的隨機(jī)數(shù)組,并求數(shù)組中各元素的和以及大于50的元素的個(gè)數(shù)。5.循環(huán)控制語(yǔ)句(3)雙重循環(huán)和多重循環(huán)雙重循環(huán)和多重循環(huán)統(tǒng)稱為循環(huán)的嵌套,是指在一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)語(yǔ)句塊中又包含了另一個(gè)循環(huán)結(jié)構(gòu),并且這種嵌套可以是多層的。例8-21:在VBA立即窗口輸出九九乘法口決表。過(guò)程是由兩部分組成的,即聲明部分和過(guò)程代碼實(shí)現(xiàn)部分。聲明部分用于聲明當(dāng)前過(guò)程所用到的標(biāo)識(shí)符。如變量、常量、數(shù)組等。1.Sub過(guò)程Sub過(guò)程是沒(méi)有返回值的過(guò)程,它主要用來(lái)完成某種操作,其語(yǔ)法結(jié)構(gòu)如下:Sub過(guò)程名([參數(shù)表])語(yǔ)句組EndSub8.4.5建立過(guò)程8.4BA程序設(shè)計(jì)基礎(chǔ)知識(shí)1.Sub過(guò)程例8-22:一個(gè)帶有兩個(gè)參數(shù)的Sub過(guò)程,顯示兩個(gè)整數(shù)相加、相減的結(jié)果。而標(biāo)準(zhǔn)模塊中的Sub過(guò)程是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論