《Access關(guān)系數(shù)據(jù)庫》第9章 模塊對象與VBA編程_第1頁
《Access關(guān)系數(shù)據(jù)庫》第9章 模塊對象與VBA編程_第2頁
《Access關(guān)系數(shù)據(jù)庫》第9章 模塊對象與VBA編程_第3頁
《Access關(guān)系數(shù)據(jù)庫》第9章 模塊對象與VBA編程_第4頁
《Access關(guān)系數(shù)據(jù)庫》第9章 模塊對象與VBA編程_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第9章 模塊 Microsoft Access 具有強(qiáng)大的界面功能,這使得用戶能夠方便地建立各種對象。尤其是利用宏已經(jīng)可以執(zhí)行簡單的任務(wù),如對象的修改和數(shù)據(jù)的查找。但在某些情況下,用戶需要利用模塊提供的強(qiáng)大功能,完成更難的任務(wù)。這部分內(nèi)容包括以下方面: 模塊的概念 模塊的功能 模塊的組成 模塊的分類 Visual Basic的基礎(chǔ)知識 (一)什么是模塊 模塊是和數(shù)據(jù)表、查詢、報(bào)表、宏等一樣, 是Access中的一種對象。模塊是由一種叫做VBA(Visual Basic for Application)的語言來實(shí)現(xiàn)的。VBA是微軟公司將Visual Basic的一部分代碼結(jié)合到OFFICE中而形

2、成的。模塊是存儲在一個(gè)單元中的VBA聲明和過程的集合。如果只是用Access來做一些簡單的工作,對這部分內(nèi)容只要簡單了解一下就可以了。(二)“模塊”和“宏”的比較 “模塊”和“宏”有哪些區(qū)別呢?使用“宏”更加簡單,不需要編程;而使用“模塊”,要求對編程有基本知識,比宏要復(fù)雜 。“模塊”的運(yùn)行速度快,而“宏”的運(yùn)行速度慢?!昂辍钡拿總€(gè)基本操作在“VBA”中都有相應(yīng)的等效語句,如果在“模塊”中使用這些語句就可以實(shí)現(xiàn)所有單獨(dú)的“宏”命令,所以“模塊”的功能是比宏更加強(qiáng)大的。一、模塊的概念模塊的功能主要有以下幾點(diǎn): 1、維護(hù)數(shù)據(jù)庫:可以將事件過程創(chuàng)建在窗體或報(bào)表的定義中,更有利于數(shù)據(jù)庫的維護(hù)。宏是獨(dú)立

3、于窗體和報(bào)表的,所以維護(hù)相對困難。 2、創(chuàng)建自定義函數(shù):使用這些自定義的函數(shù)就可以避免寫復(fù)雜的表達(dá)式。 3、顯示詳細(xì)的錯誤提示:可以檢測錯誤并進(jìn)行顯示。這樣就有更好的用戶界面,對用戶的下一步操作進(jìn)行幫助。 4、執(zhí)行系統(tǒng)級的操作:可以對系統(tǒng)中文件進(jìn)行處理,使用動態(tài)數(shù)據(jù)交換(DDE),應(yīng)用Windows系統(tǒng)函數(shù)和數(shù)據(jù)通訊。 二、模塊的功能通常,模塊是由以下兩部分組成: 第一部分是聲明部分:可以在這部分定義變量、常量、自定義類型和外部過程。在模塊中,聲明部分與過程部分是分割開來的,聲明部分中設(shè)定的常量和變量是全局性的,可以被模塊中的所有過程調(diào)用。 第二部分是事件過程部分:這是一種自動執(zhí)行的過程,用來

4、對用戶或程序代碼啟動的事件或系統(tǒng)觸發(fā)的事件做出響應(yīng)。包括函數(shù)和過程。三、模塊的組成模塊有兩種:類模塊和標(biāo)準(zhǔn)模塊。 在類模塊這種模塊中可以聲明一個(gè)新類。在類的聲明中,包括成員變量和成員函數(shù)的說明。可以在類模塊的基礎(chǔ)上創(chuàng)建對象實(shí)例。Access中的類模塊與窗體和報(bào)表相關(guān)聯(lián),每個(gè)窗體或報(bào)表都對應(yīng)一個(gè)類模塊。從Access97起,類模塊也可以獨(dú)立于窗體和報(bào)表而存在。 標(biāo)準(zhǔn)模塊是指存放整個(gè)數(shù)據(jù)庫中可用的過程和函數(shù)的模塊。標(biāo)準(zhǔn)模塊包括通用過程和常用過程。通用過程不與任何對象相關(guān)聯(lián),常用過程可以在數(shù)據(jù)庫的任意地方運(yùn)行。四、模塊的分類 VBA提供了對多種數(shù)據(jù)類型的支持,這樣為大家進(jìn)行編程提供了方便。各種數(shù)據(jù)類

5、型所占用的存儲空間、所表示的數(shù)據(jù)范圍大小、以及支持的數(shù)據(jù)運(yùn)算不同。在Access編程中有三種數(shù)據(jù)類型: 標(biāo)準(zhǔn)型、自定義型和對象型。1、標(biāo)準(zhǔn)型: Access共有7種標(biāo)準(zhǔn)數(shù)據(jù)類型:INTEGER(整型)、LONG(長整型)、SINGLE(單精度)、DOUBLE(雙精度)、CURRENCY(貨幣)、STRING(字符串)和VARIANT(變量)。 五、Visual Basic的基礎(chǔ)知識 (一)數(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、對象型: Access中的各種對象類型是Access面向?qū)ο缶幊痰捏w現(xiàn),也是通過代碼來操作數(shù)據(jù)庫的各種成分的關(guān)鍵途徑。 在Access中存在大量的對象及對象集合。1、變量 變量用于在程序運(yùn)行時(shí)保存臨時(shí)信息。在VBA中不必先進(jìn)行變量聲明再使用變量,但先聲明再使用是較好的編程習(xí)慣。變量可以是上一節(jié)所介紹的數(shù)據(jù)類型中的任何一種,也可以是用戶自定義的數(shù)據(jù)類型。變量名命名原則: 第一個(gè)字母必須是英文字母。 不能在變量名中使用空格、句點(diǎn)等字符。 變量名的長度不能超過255個(gè)字符。 變量名不區(qū)分大小寫。 不能在某一范圍內(nèi)

7、的相同層次中使用重復(fù)的變量名。 變量的名字不能與函數(shù)、過程的名字相同。(二)變量與常量的定義變量的定義:語法: Dim VariableName As Type Static VariableName As Type Public VariableName As Type Private VariableName As Type說明: 其中Dim等是關(guān)鍵字,說明這個(gè)語句是變量的聲明語句。VariableName是變量名, Type是這個(gè)變量對應(yīng)的類型。如果沒有As Type子句,則默認(rèn)該變量為變體(Variant)類型。2、常量 使用常量可以增加程序的可讀性:為常量起個(gè)有意義的名字,可以幫助理

8、解程序。使用常量還可以使代碼更加容易維護(hù):對使用的數(shù)據(jù)的更改就只需要更改常量聲明部分,保證了代碼的一致性。常量的定義: Public Private Const ConstName As Type=Expression 說明: 其中Const是關(guān)鍵字,ConstName是常量名, Type是這個(gè)常量對應(yīng)的類型。聲明常量時(shí)必須設(shè)置它的值Expression ,并且聲明完后,不能再加以更改。對于系統(tǒng)定義常量的常量True,False和Null,用戶可以在任何地方使用。3、數(shù)組 在編程時(shí),常常會用到一組具有相同數(shù)據(jù)類型值的變量,這時(shí)就可以聲明一個(gè)數(shù)組變量。數(shù)組中的所有元素的數(shù)據(jù)類型都相同,數(shù)組中可以

9、存儲的元素的個(gè)數(shù)稱為數(shù)組的容量。數(shù)組分為兩類,固定數(shù)組和動態(tài)數(shù)組。固定數(shù)組的容量是固定的,動態(tài)數(shù)組的容量是可以改變的。固定數(shù)組的定義: Dim VariableName(n) As Type Static VariableName(n) As Type Public VariableName(n) As Type Private VariableName(n) As Type 說明: 其中VariableName是數(shù)組變量名, Type是這個(gè)數(shù)組對應(yīng)的類型。括號中的 n代表數(shù)組的上界,默認(rèn)的下界為0。這樣數(shù)組的容量是n+1。 如果以1作為下界,則可以在聲明中以1 to n代替n放在括號中;如果

10、要定義多維數(shù)組,則可以在聲明中以n1,n2代替n放在括號中??勺償?shù)組的定義: Dim VariableName() As Type 說明: 其中VariableName是數(shù)組變量名, Type是這個(gè)數(shù)組對應(yīng)的類型。要注意的是,在括號中沒有任何參數(shù)。定義數(shù)組大小和維數(shù)的語法: ReDim Preserve VariableName (n) As NewType 說明: 這個(gè)語句只能使用在程序執(zhí)行過程中。n為新設(shè)定數(shù)組上界。如果有Preserve,則數(shù)組中原有數(shù)據(jù)可以保留。如果沒有Preserve ,則數(shù)組中原有數(shù)據(jù)在重新聲明時(shí)被清除。如果在變量聲明時(shí)的Type為Variant,則在ReDim語句

11、中可以重新設(shè)置數(shù)據(jù)類型NewType ,否則不能再設(shè)置數(shù)據(jù)類型。 根據(jù)變量的作用域的不同,Access中的變量分為三類:全局類變量、對象級變量和模塊級變量。 全局類變量只能在模塊對象中進(jìn)行;它的應(yīng)用范圍是所有模塊;用Public聲明。 對象級變量它的應(yīng)用范圍是在一個(gè)對象(如:表、查詢、報(bào)表等)之內(nèi)的任何地方使用,但不能跨越所在對象;只能在該對象中進(jìn)行,且只能使用Dim聲明。 模塊級變量是聲明在模塊的開始處的變量;它的應(yīng)用范圍僅限于當(dāng)前模塊;用Private或Dim聲明。(三)變量的作用域 過程和函數(shù)是VBA的基本代碼單元。它們都包含一系列的語句和方法,以便執(zhí)行操作或計(jì)算數(shù)值。過程用來執(zhí)行一個(gè)操

12、作或一系列操作,它不返回值。函數(shù)將返回一個(gè)值。VBA中含有許多內(nèi)置函數(shù),我們也可以創(chuàng)建自定義函數(shù)。 1、過程聲明語法: Sub SubName(VarName As Type) 過程語句: End Sub 說明: 其中Sub和End Sub括定了過程的開始和結(jié)束,SubName是過程名, VarName是這個(gè)過程的參數(shù), Type是參數(shù)的類型。如果有多個(gè)參數(shù),則參數(shù)之間以逗號分隔。過程語句也稱為過程體,決定了過程的功能。(四)過程和函數(shù)2、函數(shù)聲明語法: Function FuncName(VarName As Type) As FuncType 函數(shù)語句: FuncName= End Fun

13、ction說明: 其中Function和End Function括定了函數(shù)的開始和結(jié)束, FuncName是函數(shù)名, FuncType是這個(gè)函數(shù)的返回值數(shù)據(jù)類型。VarName是這個(gè)函數(shù)的參數(shù), Type是這個(gè)參數(shù)的數(shù)據(jù)類型。如果有多個(gè)參數(shù),則參數(shù)之間以逗號分隔。要注意的是,函數(shù)中必須要有對函數(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ùn)算符; 語

14、法:result=“目標(biāo)串”(string) Like “通配符字符串”(pattern) (五)運(yùn)算符、函數(shù)和表達(dá)式Is主要用來判斷一個(gè)表達(dá)式的值是否為空。Is和Null是兩個(gè)保留字連用,如:IsNull。Is也用來比較兩個(gè)對象的引用。 語法:result= OBJ1 Is OBJ2(3)連接運(yùn)算符:& 、+ 用來強(qiáng)制兩個(gè)表達(dá)式作字符串連接; 語法:result = exp1 & exp2(4)邏輯運(yùn)算符 And、Eqv、Imp、Or、Not、Xor2、內(nèi)部函數(shù) Access大約有140個(gè)不同的函數(shù),包括:數(shù)學(xué)函數(shù)、財(cái)會函數(shù)、數(shù)據(jù)轉(zhuǎn)換函數(shù)、串函數(shù)、日期和時(shí)間函數(shù)等等。3、表達(dá)式1、賦值語句語

15、法:Let VariableName = value Set VariableName = value說明: 賦值語句用于指定變量為某個(gè)值或?yàn)槟硞€(gè)表達(dá)式。用Let語句賦值,對應(yīng)的是原子數(shù)據(jù)類型。Let通常還可以省略。用Set語句賦值,對應(yīng)的是復(fù)雜數(shù)據(jù)類型??梢允怯脩糇远x的數(shù)據(jù)類型或?qū)ο箢愋偷臄?shù)據(jù)。VariableName是變量,value是值或表達(dá)式。(六)基本語句2、If.Then.Else 語句語法: If condition Then 語句1 Else 語句2 End if說明: 其中If和End If括定了條件語句的開始和結(jié)束, condition是判斷條件,如果為True,則執(zhí)行語

16、句1,否則執(zhí)行語句2。3、Select Case 語句語法: Select Case 表達(dá)式 Case 表達(dá)式列n 語句塊n Case Else 語句塊n+1 End Select說明: 其中Select Case和End Select括定了多分支控制語句的開始和結(jié)束; 首先實(shí)現(xiàn)計(jì)算“表達(dá)式”的值,然后與第n個(gè)Case語句的“表達(dá)式列n”相比較,如果相等就執(zhí)行“語句塊n”中的語句,如果與所有表達(dá)式都不相同的話就執(zhí)行Case Else中的語句塊。4、ForNext 語句語法:For counter = start To end Step step 循環(huán)體語句 Exit For 循環(huán)體語句 Nex

17、t說明:其中For和Next括定了循環(huán)開始和結(jié)束,counter是循環(huán)變量,從 start循環(huán)到end。開始循環(huán)時(shí),將counter與end進(jìn)行比較,如果符合循環(huán)條件,就會執(zhí)行循環(huán)體語句。當(dāng)所有循環(huán)中的語句都執(zhí)行后,step的值會加到counter中。此時(shí),再對循環(huán)條件進(jìn)行判斷。循環(huán)中的語句可能會再次執(zhí)行,也可能是退出循環(huán)并從 Next 語句之后的語句繼續(xù)執(zhí)行。 Exit For語句可以出現(xiàn)在循環(huán)中任意多次,以退出循環(huán)。循環(huán)條件:step 參數(shù)值決定循環(huán)條件,step正數(shù)或 0 :counter = end5、DoLoop 語句語法:Do While|Until條件 循環(huán)體語句 Exit Do

18、 Loop 說明:其中Do和Loop括定了循環(huán)開始和結(jié)束,當(dāng)條件為真的時(shí)候,執(zhí)行循環(huán)體語句,執(zhí)行完畢后再返回到首句,直到條件為假推出循環(huán)。Exit Do語句用以退出循環(huán)。6、WhileWend語法:While 條件 循環(huán)體語句 Wend說明:當(dāng)條件為真時(shí)執(zhí)行循環(huán)體語句,否則推出循環(huán)7、注釋語句 注釋語句可以說明一個(gè)程序段的功能,從而提高了程序的可讀性。也可以將某部分程序加以注釋,可以避免再次的程序輸入工作,從而提高了效率。(1)用進(jìn)行注釋。 如:這是一個(gè)注釋語句(2)用Rem進(jìn)行注釋。 如:Rem 這是一個(gè)注釋語句8、函數(shù)和過程的調(diào)用調(diào)用語法:Call Nameargumentlist說明:C

19、all 可選參數(shù),調(diào)用關(guān)鍵字;Name 必需參數(shù)。要調(diào)用的過程名稱;arglist 按照過程或函數(shù)的設(shè)定而進(jìn)行傳入的參數(shù)列表。 調(diào)用一個(gè)過程時(shí),并不一定要使用 Call 關(guān)鍵字。如果使用 Call 關(guān)鍵字來調(diào)用一個(gè)需要參數(shù)的過程,argumentlist 就必須要加上括號。例如:Call MyProc(0) 如果省略了 Call 關(guān)鍵字,那么也必須要省略 argumentlist 外面的括號。例如:MyProc 0 如果使用 Call 語法來調(diào)用內(nèi)建函數(shù)或用戶定義函數(shù),則函數(shù)的返回值將被丟棄。(一) VBA開發(fā)環(huán)境 打開【數(shù)據(jù)庫】窗口,選擇【模塊】對象,然后單擊【新建】按鈕, 此時(shí)就會彈出一個(gè)窗口,這就是“VBA”的“開發(fā)環(huán)境” VBA開發(fā)環(huán)境分為【主窗口】、 【模塊代碼】、 【工程資源管理器】和【模塊屬性】這幾部分。(1)【模塊代碼】部分包括2個(gè)部分:窗口上部的快捷下拉框和下部的代碼區(qū)域。窗口上部左邊的快捷下拉框是對象的列表,右邊的快捷下拉框是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論