




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第9章 模塊 Microsoft Access 具有強(qiáng)大的界面功能,這使得用戶能夠方便地建立各種對(duì)象。尤其是利用宏已經(jīng)可以執(zhí)行簡(jiǎn)單的任務(wù),如對(duì)象的修改和數(shù)據(jù)的查找。但在某些情況下,用戶需要利用模塊提供的強(qiáng)大功能,完成更難的任務(wù)。這部分內(nèi)容包括以下方面: 模塊的概念 模塊的功能 模塊的組成 模塊的分類 Visual Basic的基礎(chǔ)知識(shí) (一)什么是模塊 模塊是和數(shù)據(jù)表、查詢、報(bào)表、宏等一樣, 是Access中的一種對(duì)象。模塊是由一種叫做VBA(Visual Basic for Application)的語(yǔ)言來(lái)實(shí)現(xiàn)的。VBA是微軟公司將Visual Basic的一部分代碼結(jié)合到OFFICE中而形
2、成的。模塊是存儲(chǔ)在一個(gè)單元中的VBA聲明和過(guò)程的集合。如果只是用Access來(lái)做一些簡(jiǎn)單的工作,對(duì)這部分內(nèi)容只要簡(jiǎn)單了解一下就可以了。(二)“模塊”和“宏”的比較 “模塊”和“宏”有哪些區(qū)別呢?使用“宏”更加簡(jiǎn)單,不需要編程;而使用“模塊”,要求對(duì)編程有基本知識(shí),比宏要復(fù)雜 。“模塊”的運(yùn)行速度快,而“宏”的運(yùn)行速度慢?!昂辍钡拿總€(gè)基本操作在“VBA”中都有相應(yīng)的等效語(yǔ)句,如果在“模塊”中使用這些語(yǔ)句就可以實(shí)現(xiàn)所有單獨(dú)的“宏”命令,所以“模塊”的功能是比宏更加強(qiáng)大的。一、模塊的概念模塊的功能主要有以下幾點(diǎn): 1、維護(hù)數(shù)據(jù)庫(kù):可以將事件過(guò)程創(chuàng)建在窗體或報(bào)表的定義中,更有利于數(shù)據(jù)庫(kù)的維護(hù)。宏是獨(dú)立
3、于窗體和報(bào)表的,所以維護(hù)相對(duì)困難。 2、創(chuàng)建自定義函數(shù):使用這些自定義的函數(shù)就可以避免寫復(fù)雜的表達(dá)式。 3、顯示詳細(xì)的錯(cuò)誤提示:可以檢測(cè)錯(cuò)誤并進(jìn)行顯示。這樣就有更好的用戶界面,對(duì)用戶的下一步操作進(jìn)行幫助。 4、執(zhí)行系統(tǒng)級(jí)的操作:可以對(duì)系統(tǒng)中文件進(jìn)行處理,使用動(dòng)態(tài)數(shù)據(jù)交換(DDE),應(yīng)用Windows系統(tǒng)函數(shù)和數(shù)據(jù)通訊。 二、模塊的功能通常,模塊是由以下兩部分組成: 第一部分是聲明部分:可以在這部分定義變量、常量、自定義類型和外部過(guò)程。在模塊中,聲明部分與過(guò)程部分是分割開(kāi)來(lái)的,聲明部分中設(shè)定的常量和變量是全局性的,可以被模塊中的所有過(guò)程調(diào)用。 第二部分是事件過(guò)程部分:這是一種自動(dòng)執(zhí)行的過(guò)程,用來(lái)
4、對(duì)用戶或程序代碼啟動(dòng)的事件或系統(tǒng)觸發(fā)的事件做出響應(yīng)。包括函數(shù)和過(guò)程。三、模塊的組成模塊有兩種:類模塊和標(biāo)準(zhǔn)模塊。 在類模塊這種模塊中可以聲明一個(gè)新類。在類的聲明中,包括成員變量和成員函數(shù)的說(shuō)明??梢栽陬惸K的基礎(chǔ)上創(chuàng)建對(duì)象實(shí)例。Access中的類模塊與窗體和報(bào)表相關(guān)聯(lián),每個(gè)窗體或報(bào)表都對(duì)應(yīng)一個(gè)類模塊。從Access97起,類模塊也可以獨(dú)立于窗體和報(bào)表而存在。 標(biāo)準(zhǔn)模塊是指存放整個(gè)數(shù)據(jù)庫(kù)中可用的過(guò)程和函數(shù)的模塊。標(biāo)準(zhǔn)模塊包括通用過(guò)程和常用過(guò)程。通用過(guò)程不與任何對(duì)象相關(guān)聯(lián),常用過(guò)程可以在數(shù)據(jù)庫(kù)的任意地方運(yùn)行。四、模塊的分類 VBA提供了對(duì)多種數(shù)據(jù)類型的支持,這樣為大家進(jìn)行編程提供了方便。各種數(shù)據(jù)類
5、型所占用的存儲(chǔ)空間、所表示的數(shù)據(jù)范圍大小、以及支持的數(shù)據(jù)運(yùn)算不同。在Access編程中有三種數(shù)據(jù)類型: 標(biāo)準(zhǔn)型、自定義型和對(duì)象型。1、標(biāo)準(zhǔn)型: Access共有7種標(biāo)準(zhǔn)數(shù)據(jù)類型:INTEGER(整型)、LONG(長(zhǎng)整型)、SINGLE(單精度)、DOUBLE(雙精度)、CURRENCY(貨幣)、STRING(字符串)和VARIANT(變量)。 五、Visual Basic的基礎(chǔ)知識(shí) (一)數(shù)據(jù)類型2、自定義型: 使用Type關(guān)鍵字可以定義任何結(jié)構(gòu)型數(shù)據(jù)類型。例如: Type Person Name As String Birthdate As Date Sex As integer End T
6、ype 這樣就定義了“人”這種數(shù)據(jù)類型,包括“姓名”、“生日”、“性別”三個(gè)數(shù)據(jù)域。3、對(duì)象型: Access中的各種對(duì)象類型是Access面向?qū)ο缶幊痰捏w現(xiàn),也是通過(guò)代碼來(lái)操作數(shù)據(jù)庫(kù)的各種成分的關(guān)鍵途徑。 在Access中存在大量的對(duì)象及對(duì)象集合。1、變量 變量用于在程序運(yùn)行時(shí)保存臨時(shí)信息。在VBA中不必先進(jìn)行變量聲明再使用變量,但先聲明再使用是較好的編程習(xí)慣。變量可以是上一節(jié)所介紹的數(shù)據(jù)類型中的任何一種,也可以是用戶自定義的數(shù)據(jù)類型。變量名命名原則: 第一個(gè)字母必須是英文字母。 不能在變量名中使用空格、句點(diǎn)等字符。 變量名的長(zhǎng)度不能超過(guò)255個(gè)字符。 變量名不區(qū)分大小寫。 不能在某一范圍內(nèi)
7、的相同層次中使用重復(fù)的變量名。 變量的名字不能與函數(shù)、過(guò)程的名字相同。(二)變量與常量的定義變量的定義:語(yǔ)法: Dim VariableName As Type Static VariableName As Type Public VariableName As Type Private VariableName As Type說(shuō)明: 其中Dim等是關(guān)鍵字,說(shuō)明這個(gè)語(yǔ)句是變量的聲明語(yǔ)句。VariableName是變量名, Type是這個(gè)變量對(duì)應(yīng)的類型。如果沒(méi)有As Type子句,則默認(rèn)該變量為變體(Variant)類型。2、常量 使用常量可以增加程序的可讀性:為常量起個(gè)有意義的名字,可以幫助理
8、解程序。使用常量還可以使代碼更加容易維護(hù):對(duì)使用的數(shù)據(jù)的更改就只需要更改常量聲明部分,保證了代碼的一致性。常量的定義: Public Private Const ConstName As Type=Expression 說(shuō)明: 其中Const是關(guān)鍵字,ConstName是常量名, Type是這個(gè)常量對(duì)應(yīng)的類型。聲明常量時(shí)必須設(shè)置它的值Expression ,并且聲明完后,不能再加以更改。對(duì)于系統(tǒng)定義常量的常量True,False和Null,用戶可以在任何地方使用。3、數(shù)組 在編程時(shí),常常會(huì)用到一組具有相同數(shù)據(jù)類型值的變量,這時(shí)就可以聲明一個(gè)數(shù)組變量。數(shù)組中的所有元素的數(shù)據(jù)類型都相同,數(shù)組中可以
9、存儲(chǔ)的元素的個(gè)數(shù)稱為數(shù)組的容量。數(shù)組分為兩類,固定數(shù)組和動(dòng)態(tài)數(shù)組。固定數(shù)組的容量是固定的,動(dòng)態(tài)數(shù)組的容量是可以改變的。固定數(shù)組的定義: Dim VariableName(n) As Type Static VariableName(n) As Type Public VariableName(n) As Type Private VariableName(n) As Type 說(shuō)明: 其中VariableName是數(shù)組變量名, Type是這個(gè)數(shù)組對(duì)應(yīng)的類型。括號(hào)中的 n代表數(shù)組的上界,默認(rèn)的下界為0。這樣數(shù)組的容量是n+1。 如果以1作為下界,則可以在聲明中以1 to n代替n放在括號(hào)中;如果
10、要定義多維數(shù)組,則可以在聲明中以n1,n2代替n放在括號(hào)中??勺償?shù)組的定義: Dim VariableName() As Type 說(shuō)明: 其中VariableName是數(shù)組變量名, Type是這個(gè)數(shù)組對(duì)應(yīng)的類型。要注意的是,在括號(hào)中沒(méi)有任何參數(shù)。定義數(shù)組大小和維數(shù)的語(yǔ)法: ReDim Preserve VariableName (n) As NewType 說(shuō)明: 這個(gè)語(yǔ)句只能使用在程序執(zhí)行過(guò)程中。n為新設(shè)定數(shù)組上界。如果有Preserve,則數(shù)組中原有數(shù)據(jù)可以保留。如果沒(méi)有Preserve ,則數(shù)組中原有數(shù)據(jù)在重新聲明時(shí)被清除。如果在變量聲明時(shí)的Type為Variant,則在ReDim語(yǔ)句
11、中可以重新設(shè)置數(shù)據(jù)類型NewType ,否則不能再設(shè)置數(shù)據(jù)類型。 根據(jù)變量的作用域的不同,Access中的變量分為三類:全局類變量、對(duì)象級(jí)變量和模塊級(jí)變量。 全局類變量只能在模塊對(duì)象中進(jìn)行;它的應(yīng)用范圍是所有模塊;用Public聲明。 對(duì)象級(jí)變量它的應(yīng)用范圍是在一個(gè)對(duì)象(如:表、查詢、報(bào)表等)之內(nèi)的任何地方使用,但不能跨越所在對(duì)象;只能在該對(duì)象中進(jìn)行,且只能使用Dim聲明。 模塊級(jí)變量是聲明在模塊的開(kāi)始處的變量;它的應(yīng)用范圍僅限于當(dāng)前模塊;用Private或Dim聲明。(三)變量的作用域 過(guò)程和函數(shù)是VBA的基本代碼單元。它們都包含一系列的語(yǔ)句和方法,以便執(zhí)行操作或計(jì)算數(shù)值。過(guò)程用來(lái)執(zhí)行一個(gè)操
12、作或一系列操作,它不返回值。函數(shù)將返回一個(gè)值。VBA中含有許多內(nèi)置函數(shù),我們也可以創(chuàng)建自定義函數(shù)。 1、過(guò)程聲明語(yǔ)法: Sub SubName(VarName As Type) 過(guò)程語(yǔ)句: End Sub 說(shuō)明: 其中Sub和End Sub括定了過(guò)程的開(kāi)始和結(jié)束,SubName是過(guò)程名, VarName是這個(gè)過(guò)程的參數(shù), Type是參數(shù)的類型。如果有多個(gè)參數(shù),則參數(shù)之間以逗號(hào)分隔。過(guò)程語(yǔ)句也稱為過(guò)程體,決定了過(guò)程的功能。(四)過(guò)程和函數(shù)2、函數(shù)聲明語(yǔ)法: Function FuncName(VarName As Type) As FuncType 函數(shù)語(yǔ)句: FuncName= End Fun
13、ction說(shuō)明: 其中Function和End Function括定了函數(shù)的開(kāi)始和結(jié)束, FuncName是函數(shù)名, FuncType是這個(gè)函數(shù)的返回值數(shù)據(jù)類型。VarName是這個(gè)函數(shù)的參數(shù), Type是這個(gè)參數(shù)的數(shù)據(jù)類型。如果有多個(gè)參數(shù),則參數(shù)之間以逗號(hào)分隔。要注意的是,函數(shù)中必須要有對(duì)函數(shù)名的賦值,才能結(jié)束函數(shù)。1、運(yùn)算符 在Access中有4種運(yùn)算符:算術(shù)運(yùn)算符、比較運(yùn)算符、連接運(yùn)算符和邏輯運(yùn)算符 (1)算術(shù)運(yùn)算符 提供了7種:、*、/、Mod、+、-;(2)比較運(yùn)算符 提供了6種:、=、=和。還有兩種特別的比較運(yùn)算符:Is 和 Like Like語(yǔ)句用來(lái)檢測(cè)字符是否匹配的運(yùn)算符; 語(yǔ)
14、法:result=“目標(biāo)串”(string) Like “通配符字符串”(pattern) (五)運(yùn)算符、函數(shù)和表達(dá)式Is主要用來(lái)判斷一個(gè)表達(dá)式的值是否為空。Is和Null是兩個(gè)保留字連用,如:IsNull。Is也用來(lái)比較兩個(gè)對(duì)象的引用。 語(yǔ)法:result= OBJ1 Is OBJ2(3)連接運(yùn)算符:& 、+ 用來(lái)強(qiáng)制兩個(gè)表達(dá)式作字符串連接; 語(yǔ)法:result = exp1 & exp2(4)邏輯運(yùn)算符 And、Eqv、Imp、Or、Not、Xor2、內(nèi)部函數(shù) Access大約有140個(gè)不同的函數(shù),包括:數(shù)學(xué)函數(shù)、財(cái)會(huì)函數(shù)、數(shù)據(jù)轉(zhuǎn)換函數(shù)、串函數(shù)、日期和時(shí)間函數(shù)等等。3、表達(dá)式1、賦值語(yǔ)句語(yǔ)
15、法:Let VariableName = value Set VariableName = value說(shuō)明: 賦值語(yǔ)句用于指定變量為某個(gè)值或?yàn)槟硞€(gè)表達(dá)式。用Let語(yǔ)句賦值,對(duì)應(yīng)的是原子數(shù)據(jù)類型。Let通常還可以省略。用Set語(yǔ)句賦值,對(duì)應(yīng)的是復(fù)雜數(shù)據(jù)類型??梢允怯脩糇远x的數(shù)據(jù)類型或?qū)ο箢愋偷臄?shù)據(jù)。VariableName是變量,value是值或表達(dá)式。(六)基本語(yǔ)句2、If.Then.Else 語(yǔ)句語(yǔ)法: If condition Then 語(yǔ)句1 Else 語(yǔ)句2 End if說(shuō)明: 其中If和End If括定了條件語(yǔ)句的開(kāi)始和結(jié)束, condition是判斷條件,如果為True,則執(zhí)行語(yǔ)
16、句1,否則執(zhí)行語(yǔ)句2。3、Select Case 語(yǔ)句語(yǔ)法: Select Case 表達(dá)式 Case 表達(dá)式列n 語(yǔ)句塊n Case Else 語(yǔ)句塊n+1 End Select說(shuō)明: 其中Select Case和End Select括定了多分支控制語(yǔ)句的開(kāi)始和結(jié)束; 首先實(shí)現(xiàn)計(jì)算“表達(dá)式”的值,然后與第n個(gè)Case語(yǔ)句的“表達(dá)式列n”相比較,如果相等就執(zhí)行“語(yǔ)句塊n”中的語(yǔ)句,如果與所有表達(dá)式都不相同的話就執(zhí)行Case Else中的語(yǔ)句塊。4、ForNext 語(yǔ)句語(yǔ)法:For counter = start To end Step step 循環(huán)體語(yǔ)句 Exit For 循環(huán)體語(yǔ)句 Nex
17、t說(shuō)明:其中For和Next括定了循環(huán)開(kāi)始和結(jié)束,counter是循環(huán)變量,從 start循環(huán)到end。開(kāi)始循環(huán)時(shí),將counter與end進(jìn)行比較,如果符合循環(huán)條件,就會(huì)執(zhí)行循環(huán)體語(yǔ)句。當(dāng)所有循環(huán)中的語(yǔ)句都執(zhí)行后,step的值會(huì)加到counter中。此時(shí),再對(duì)循環(huán)條件進(jìn)行判斷。循環(huán)中的語(yǔ)句可能會(huì)再次執(zhí)行,也可能是退出循環(huán)并從 Next 語(yǔ)句之后的語(yǔ)句繼續(xù)執(zhí)行。 Exit For語(yǔ)句可以出現(xiàn)在循環(huán)中任意多次,以退出循環(huán)。循環(huán)條件:step 參數(shù)值決定循環(huán)條件,step正數(shù)或 0 :counter = end5、DoLoop 語(yǔ)句語(yǔ)法:Do While|Until條件 循環(huán)體語(yǔ)句 Exit Do
18、 Loop 說(shuō)明:其中Do和Loop括定了循環(huán)開(kāi)始和結(jié)束,當(dāng)條件為真的時(shí)候,執(zhí)行循環(huán)體語(yǔ)句,執(zhí)行完畢后再返回到首句,直到條件為假推出循環(huán)。Exit Do語(yǔ)句用以退出循環(huán)。6、WhileWend語(yǔ)法:While 條件 循環(huán)體語(yǔ)句 Wend說(shuō)明:當(dāng)條件為真時(shí)執(zhí)行循環(huán)體語(yǔ)句,否則推出循環(huán)7、注釋語(yǔ)句 注釋語(yǔ)句可以說(shuō)明一個(gè)程序段的功能,從而提高了程序的可讀性。也可以將某部分程序加以注釋,可以避免再次的程序輸入工作,從而提高了效率。(1)用進(jìn)行注釋。 如:這是一個(gè)注釋語(yǔ)句(2)用Rem進(jìn)行注釋。 如:Rem 這是一個(gè)注釋語(yǔ)句8、函數(shù)和過(guò)程的調(diào)用調(diào)用語(yǔ)法:Call Nameargumentlist說(shuō)明:C
19、all 可選參數(shù),調(diào)用關(guān)鍵字;Name 必需參數(shù)。要調(diào)用的過(guò)程名稱;arglist 按照過(guò)程或函數(shù)的設(shè)定而進(jìn)行傳入的參數(shù)列表。 調(diào)用一個(gè)過(guò)程時(shí),并不一定要使用 Call 關(guān)鍵字。如果使用 Call 關(guān)鍵字來(lái)調(diào)用一個(gè)需要參數(shù)的過(guò)程,argumentlist 就必須要加上括號(hào)。例如:Call MyProc(0) 如果省略了 Call 關(guān)鍵字,那么也必須要省略 argumentlist 外面的括號(hào)。例如:MyProc 0 如果使用 Call 語(yǔ)法來(lái)調(diào)用內(nèi)建函數(shù)或用戶定義函數(shù),則函數(shù)的返回值將被丟棄。(一) VBA開(kāi)發(fā)環(huán)境 打開(kāi)【數(shù)據(jù)庫(kù)】窗口,選擇【模塊】對(duì)象,然后單擊【新建】按鈕, 此時(shí)就會(huì)彈出一個(gè)窗口,這就是“VBA”的“開(kāi)發(fā)環(huán)境” VBA開(kāi)發(fā)環(huán)境分為【主窗口】、 【模塊代碼】、 【工程資源管理器】和【模塊屬性】這幾部分。(1)【模塊代碼】部分包括2個(gè)部分:窗口上部的快捷下拉框和下部的代碼區(qū)域。窗口上部左邊的快捷下拉框是對(duì)象的列表,右邊的快捷下拉框是
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 莆田學(xué)院《空間分析與決策支持》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川汽車職業(yè)技術(shù)學(xué)院《生物信息學(xué)(雙語(yǔ))》2023-2024學(xué)年第二學(xué)期期末試卷
- Unit 2 Different families Part A Let's talk Let's learn融合課(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 山東女子學(xué)院《統(tǒng)計(jì)建模與軟件》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西警官職業(yè)學(xué)院《大學(xué)語(yǔ)文》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院《工程測(cè)量》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南建筑職業(yè)技術(shù)學(xué)院《生物統(tǒng)計(jì)與試驗(yàn)設(shè)計(jì)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東技術(shù)師范大學(xué)《老年學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- Unit 5 Into the wild 單元教學(xué)設(shè)計(jì) -2024-2025學(xué)年高中英語(yǔ)外研版(2019)必修第一冊(cè)
- Unit 4 What can you do PB Let's learn (教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版英語(yǔ)五年級(jí)上冊(cè)
- 2025年度智慧醫(yī)療服務(wù)平臺(tái)建設(shè)合同范本
- 2024項(xiàng)目管理人員安全培訓(xùn)考試題(審定)
- 2025四川宜賓市高縣縣屬國(guó)企業(yè)第一次招聘3人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年全國(guó)職業(yè)院校技能大賽中職組(母嬰照護(hù)賽項(xiàng))考試題庫(kù)(含答案)
- 2024 年國(guó)家公務(wù)員考試《申論》(地市級(jí))真題及答案
- 2024年沈陽(yáng)職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 《榜樣9》觀后感心得體會(huì)一
- 2024年上海普陀區(qū)司法局招聘人民調(diào)解員考試真題
- 駕照考試題庫(kù)及答案(完整版)
- 2024年3、6、9月青少年軟件編程Python等級(jí)考試一級(jí)真題(全3套 含答案)
- 大族激光打標(biāo)機(jī)培訓(xùn)
評(píng)論
0/150
提交評(píng)論