《Access數據庫實用教程》第九章模塊和VBA程序設計_第1頁
《Access數據庫實用教程》第九章模塊和VBA程序設計_第2頁
《Access數據庫實用教程》第九章模塊和VBA程序設計_第3頁
《Access數據庫實用教程》第九章模塊和VBA程序設計_第4頁
《Access數據庫實用教程》第九章模塊和VBA程序設計_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、9.1 VBA程序設計初步 在Office中包含有Visual Basic for Application(VBA),它是Visual Basic的語言的一個子集,與Visual Basic具有相同的語言的功能。 9.1.1 面向對象編程面向對象編程 程序設計語言主要分為面向對象和面向過程兩大類,程序設計語言主要分為面向對象和面向過程兩大類,而而VBA就是一種面向對象的程序設計語言,對象是就是一種面向對象的程序設計語言,對象是Visual Basic程序設計語言的核心,而程序設計語言的核心,而Access更是基更是基于對象的,對象在數據庫編程中無處不在:窗體、報于對象的,對象在數據庫編程中無處

2、不在:窗體、報表、數據頁甚至數據庫本身,都是一種對象。表、數據頁甚至數據庫本身,都是一種對象。 在在Access中,常用對象有中,常用對象有23個,它們之間多為樹形個,它們之間多為樹形關系,根據它們的相對關系,可分為根對象和非根對關系,根據它們的相對關系,可分為根對象和非根對象兩大類,其介紹如下。象兩大類,其介紹如下。 在VBA中,對象是封裝數據和相應代碼的客體,是代碼和數據的結合,使用對象可更方便地管理數據和代碼。對象具有屬性、方法和事件。 1屬性 屬性是對象的一個特征,它定義了對象的大小、顏色等特征。根據對象的類別不同,其屬性也有所不同,而同一對象的不同實例屬性構成也可能有所不同。我們可以

3、通過修改對象的屬性值來改變對性的特征。 2方法 方法是對象能夠執(zhí)行的一個操作,是與對象相關聯(lián)的過程和函數。不同的對象擁有不同的方法集合。例如窗體具有GoToPage方法,而其他對象則不具備此方法。 3事件 Access事件是指操作Access的某個數據對象時發(fā)生的特定情況,是對象可以識別的動作??梢酝ㄟ^兩種方式處理事件響應:一是使用宏對象來設置事件屬性,二是為某個事件編寫VBA代碼完成動作,這樣的代碼稱為事件過程。 在Access中,事件可分為焦點、鼠標、鍵盤、窗體、打印、數據、篩選和系統(tǒng)環(huán)境事件八大類。 Access為每個事件都定義了一個相對應的屬性,屬性名為“On”+事件名。如GotFoc

4、us的屬性名為OnGotFocus。每個對象的所有事件屬性在對象屬性對話框的“事件”選項卡中均能找到,為事件屬性指定值即為該事件定義了相應的響應操作。在Access中,事件的響應分為兩種類型:宏響應和事件響應。9.1.2 VBA簡介簡介 VBA(Visual Basic for application)是Access的開發(fā)語言,其語法與Visual Basic編程語言相互間融,通過它可以像編寫VB語言一樣來編寫VBA程序。概括地說,VBA有以下一些特點: 1操作簡單 Access為VBA提供了一個典型的Winows風格的集成開發(fā)環(huán)境VBE,通過它上面的菜單、工具和各種子窗口,用戶可以方便地編譯

5、、調試和運行程序。 2面向對象 VBA是面向對象的,這是它也傳統(tǒng)編程語言的重要區(qū)別。 3事件驅動 VBA用事件驅動程序,即當某個控件或對象相關的事件發(fā)生時,會自動啟動相應得程序。9.1.3 VBA編程環(huán)境 Access所提供的VBA開發(fā)界面成為VBE(Visual Basic Editor,VB編輯器),它為VBA程序的開發(fā)提供了完整的開發(fā)和調試工具。 1進入VBE 由于Access模塊分為類模塊和標準模塊(詳見9.2.1),進入VBE的方式也有所不同。 對于類模塊有兩種方式: (1)單擊屬性窗體的“事件”選項卡,選中某個事件并將其屬性設置其為“事件過程”,再單擊屬性欄右側的“.”按鈕,即可進

6、入。 (2)在屬性窗體的“事件”選項卡下,直接單擊時間屬性欄右側的“.”按鈕,打開如圖9-2所示的“選擇生成器”對話框,選擇“代碼生成器”,單擊確定即可進入。 對于標準模塊,有三種進入方式: (1)模塊已經存在時,在數據庫的“模塊”窗口下,雙擊已存在的模塊對象即可進入。 (2)新建模塊時,在數據庫的“模塊”窗口下,單擊工作欄上的“新建”按鈕即可進入。 (3)在數據庫對象窗體中,單擊“工具”菜單中的“宏”級聯(lián)菜單的“Visal Basic編輯器”選項即可進入。 2VBE窗口 VBE窗口可分為標準工具欄、工程窗口、屬性窗口和代碼窗口4部分,如圖9-3所示。 另外,還有對象窗口、對象瀏覽器、立即窗口

7、、本地窗口和監(jiān)視窗口等,可以通過“視圖”菜單的相應選項選擇顯示。 1標準工具欄 標準工具欄中包括創(chuàng)建模塊時常用的命令按鈕,可通過選中或撤消“視圖”菜單中“工具欄”菜單中的“標準”按鈕來確定顯示還是隱藏標準工具欄。標準工具欄及其上按鈕如圖9-4所示。 2工程窗口 工程窗口又叫工程資源管理器窗口,用于顯示應用程序中用到的模塊文件列表。通過它可以控制代碼窗口、對象窗口以及對象文件夾的顯示。 雙擊工程窗口上的模塊或類,相應的代碼就會在代碼窗口中顯示出來。 3屬性窗口 用于顯示所選對象的屬性,可“按字母序”和“按分類序”查看并編輯這些對象的屬性,這種修改對象屬性的方法屬于“靜態(tài)”設置方法。還可以在代碼窗

8、口中使用VBA代碼編輯對象的屬性,這種方法屬于“動態(tài)”設置方法。 4代碼窗口 用于輸入和編輯VBA代碼。用戶可以打開多個代碼窗口用來查看各個模塊的代碼。在代碼窗口中,關鍵字和普通代碼的顏色是不同的,可以很容易地區(qū)分。 9.2 模塊概述模塊概述 模塊以VBA語言為基礎,由聲明和過程兩部分組成。9.2.1 模塊的分類 Access 2003有兩個模塊類型:類模塊和標準模塊。 1類模塊 類模塊是與某一特定窗體或報表相關聯(lián)的過程集合。它屬于Access數據庫對象,即新建一個類模塊救創(chuàng)建一個新對象。類模塊主要包括窗體模塊和報表模塊和自定義模塊,其中窗體模塊和報表模塊從屬于各自的窗體或報表。 2標準模塊

9、標準模塊即數據庫中的可用函數模塊和子程序,只包含通用只一些通用過程和常用過程,并不與任何對象相關聯(lián),通常用來存放供其他Access數據庫對象使用的公共過程。 3類模塊和標準模塊的區(qū)別 這兩種模塊的主要區(qū)別在于其存儲方式和生命周期不同。 類模塊的數據由類實例創(chuàng)建,獨立于應用程序。標準模塊只有一個備份,因此當其中的公共變量發(fā)生變化時,其后的程序再讀取該變量時,得到的是變量變化后的值。 類模塊的作用域是類實例對象的存活期,其中的聲明或存在的任何變量或常量的值,都僅在該代碼運行時有效。而標準模塊的變量在聲明為Public時,在工程的任何地方都可見。9.1.2 模塊和過程 模塊由若干過程組成。過程是VB

10、A程序代碼的容器,是程序中的若干較小的邏輯部件,可分為子程序和函數過程,每種過程都有其獨特的功能。過程可以簡化程序設計任務,還可以增強或擴展Visual Basic的構件。另外,過程還可用于共享任務或壓縮重復任務,如減少頻繁運算等。 1子過程 子過程是由Sub和End Sub語句包含起來的VBA語句其格式如下: Private|Public|Friend Sub 子過程名(參數列表) Exit Sub End Sub 2函數過程 函數過程是由Function和End Function語句包含起來的VBA語句,其格式如下: Private|PublicStaticFunction 函數名(參數行

11、)As 數據類型 Exit Function End Function9.3 創(chuàng)建模塊創(chuàng)建模塊9.3.1 創(chuàng)建新模塊創(chuàng)建新模塊 1創(chuàng)建標準模塊 打開數據庫,單擊數據庫窗口左邊對象列表中的“模塊”選項,然后單擊工具欄上的“新建按鈕”,即“Visual Basic編輯器”,顯示模塊設計視圖并創(chuàng)建空白標準模塊,或單擊“Visual Basic編輯器”菜單欄中“插入”按鈕,在彈出的下拉列表中選擇“模塊”選項,也會出現一個空白的標準模塊,如圖9-5所示。此時在代碼窗口即可進行編輯。 2創(chuàng)建類模塊 類模塊可根據與窗體、報表的相關性分為與窗體報表相關的類模塊和與窗體報表不相關的類模塊。 創(chuàng)建與窗體或報表相關

12、的類模塊過程如下: 雙擊工程窗口中的窗體名稱,然后在彈出的新建模塊代碼窗口中輸入代碼即可,如圖9-6所示。 創(chuàng)建與窗體或報表不相關的類模塊步驟如下: 單擊“數據庫”窗口或“Visual Basic編輯器”的菜單欄上“插入”,在彈出下拉列表中選擇“類模塊”,即可在“Visual Basic編輯器”中看到一個空白的類模塊。將所需的聲明或過程添加到類模塊設計視圖中,進行保存即可。 設計的類模塊可以作為新類型來創(chuàng)建用戶自定對象,類中定義的變量為對象的屬性,子過程和函數則將成為對象的方法??梢酝ㄟ^對象來引用其屬性和方法。9.3.2 將宏轉換為模塊將宏轉換為模塊 將窗體或報表上的宏轉換為VBA代碼的方法如

13、下: (1)使用“設計”視圖的模式打開窗體或報表。 (2)單擊菜單欄上的“工具”按鈕,在彈出下拉列表中選擇“宏”命令,然后選擇“將窗體(報表)的宏轉換為Visual Basic代碼”。 (3)在彈出的“轉換宏”對話框中,選擇所需項,單擊“轉換”按鈕即可。 將全局宏轉換為VBA代碼的方法如下: (1)在“數據庫”窗口中,單擊左側對象列表中的“宏”對象按鈕,在宏對象列表框中選擇要轉換的宏名。 (2)執(zhí)行菜單命令“文件”“另存為”,然后在“另存為”對話框中輸入保存的文件名,在“保存類型”中選擇“模塊”,結束單擊“確定”。 (3)在彈出的“轉換宏”對話框中,選擇所需選項,單擊“轉換”按鈕。9.4 VB

14、A編程基礎 VBA是Visual Basic語言的一個子集,集成了整個Office產品套件中的開發(fā)語言和開發(fā)環(huán)境,是Office產品系列中的重要組成部分。 9.4.1 數據類型數據類型 在創(chuàng)建表對象的時候,我們已經接觸過數據類型了。數據類型實際上就是指具有相同特征數據對象的集合,包括相同的取值集合和可對其實行的操作。VBA提供了豐富的數據類型,常用數據類型如表9-2所示。9.4.2 常量 VBA的常量包括數值常量、字符常量、符號常量、固有常量和系統(tǒng)定義常量五種。 1數值常量 數值常量即我們常說的常數,相當于數據類型中的整型、小數型和浮點型。 2字符常量 字符常量是由字符串定界符雙引號(”)括起

15、來的一串字符。 3符號常量 對于程序中經常出現以及難以記憶的數值,可以表示為符號常量,以便增加程序的可讀性和可維護性。一般使用Const語句來聲明一個符號常量,其格式如下: Const 常量名As 類型名表達式 4固有常量 固有常量是Access或引用庫的一部分,代表固定系統(tǒng)值所有固有常量均可在宏或VBA代碼中使用。 固有常量的類型有:操作常量、ADO常量、DAO常量、事件過程常量、鍵盤代碼常量、其他類型常量、RunCommand方法常量、安全性常量、VBA常量和VarType函數常量等。通常,固有常量通過前兩個字母來指明定義該常量的對象庫。來自Microsoft Access庫的常量以“ac

16、”開頭,來自ActiveX Data Objects(ADO)庫的常量以“ad”開頭,而來自VB庫的常量以“vb”開頭。 5系統(tǒng)常量 Access和VBA有3個系統(tǒng)常量:True、False和Null。True和False是系統(tǒng)定義的邏輯值,而Null用于指明字段中數據沒有或未知值。系統(tǒng)常量可以用在所有應用程序中。 注意: 不能借用系統(tǒng)常量名稱作為其他對象的名稱,否則會出現如下錯誤:“編譯錯誤:缺少:標志符”。9.4.3 變量 變量是指程序運行過程中,其值可以發(fā)生變化的量。變量可以是任意VBA所支持的數據類型。 變量由變量名標識,其命名規(guī)則是:以字母或字符開頭,不超過255個字符的字符串。使用

17、變量可以增加程序代碼的可讀性和可維護性。 1對簡單變量的聲明 對簡單變量的聲明可以使用類型說明符、Dim語句和DefType語句。 1)使用類型說明符 使用類型說明符聲明變量時,將其放在說明變量的最后。 2)使用Dim語句聲明 可以使用Dim語句聲明一個或多個變量,其格式如下: Dim 變量名 As 數據類型 3)使用DefType語句 DefType語句主要用于模塊級通用聲明部分,一般用來聲明變量或傳送給過程的參數的數據類型,或用來聲明指定字符開頭的Function或Property Get過程的返回值類型。 DefType語句格式如下: DefType 字母,字母范圍 2數組 數組是在有規(guī)

18、則的結構中包含一種數據類型的一組數據,也稱數組元素變量。數組中的元素數據類型相同而且連續(xù)可索引,并且每個元素具有唯一的索引號,更改其中的一個元素不影響其他元素。數組元素變量由數組名和數組下標組成,其中數組名標志數組元素變量位于同一個數組,下標為索引號,用于標志同一數組中不同的數組元素。 9.4.4 表達式 表達式是由關鍵字、運算符、常量、變量、函數、字段名、控件和屬性等組合而成的,用來執(zhí)行運算、操作字符或測試數據。 在Access中,表達式無處不再,大體可分為5種形式:算術表達式、字符串表達式、關系表達式、布爾表達式和對象運算表達式。 1算術表達式 算術表達式也稱數值表達式或數學表達式,是由算

19、術運算符連接數值型常量、變量、函數以及各種對象屬性而形成的運算式。 將Access種的算術運算符按其優(yōu)先順序由高到低排列如表9-5所示。 2字符串表達式 字符串表達式由字符串運算符連接而成,用于完成字符串的連接運算。字符串運算符又稱字符串連接運算符,主要包括3種,如表9-6所示。 3關系表達式 關系表達式是由關系運算符組成的表達式,其結果是一個邏輯值,即真(True)或假(False)。關系運算符又稱比較運算符或條件運算符,可用于任意數據類型數據的比較(但運算符兩邊的操作數據的數據類型必須一樣)。 比較運算符如表9-7所示 4布爾表達式 布爾表達式又稱邏輯表達式,是由邏輯運算符連接布爾邏輯類型

20、常量、變量、函數、表達式以及各種對象屬性組合而成的運算式,根據邏輯運算符兩邊的邏輯值進行運算。其返回值為邏輯值,主要用于條件判斷。 按優(yōu)先級由高到低的順序排列,邏輯運算符如表9-8所示。 5對象表達式 對象表達式即引用對象或對象屬性的表達式,其運算符主要有兩種:“!”和“.”,其介紹如表9-10所示。9.5 VBA程序流程控制程序流程控制9.5.1 程序書寫規(guī)范 1語句書寫規(guī)則 (1)源程序不分大小寫,英文字母的大小寫是等價的(字符串除外)。但是為了提高程序的可讀性,VBA編譯器對不同的程序部分都有默認的書寫規(guī)則,當程序書寫不符合這些規(guī)則時,編譯器會自動進行轉換。例如,關鍵字默認首字母大寫,其

21、他字母小寫。 (2)通常一個語句寫在一行,但一行最多允許255個字符。當語句較長,一行寫不下時,可以用續(xù)行符“_”將語句連續(xù)寫在下一行。 (3)如果一條語句輸入完成,按回車后該行代碼呈紅色,說明該行語句有錯誤,應及時修改。 2添加注釋 注釋是為了提高程序的可讀性而在程序需要解釋的地方加入的標志性說明語句。一個好的程序一般都有注釋語句。 在VBA中,注釋語句一般用單引號或Rem關鍵字作為起始符。單引號可以在VBA代碼行的任何位置,此時VBA編譯器會將單引號后面同一行的所有內容看成注釋內容。使用Rem關鍵字引導注釋語句時,Rem關鍵字必須是注釋語句的第一個詞,即注釋必須單獨成行。9.5.2 VBA

22、程序結構類型程序結構類型 1順序結構 順序結構是結構化程序設計中最常見的程序結構,它按代碼從上到下順序依次執(zhí)行關鍵字控制下的代碼。 另外,在順序結構中可使用WithEnd With對同一對象執(zhí)行一系列語句,這些語句按順序執(zhí)行,并可省略對象名。該關鍵字的語法格式如下所示。 With 對象名 Commands End With 2選擇結構 選擇結構的程序根據條件式的值來選擇程序運行的語句。主要有以下一些結構: 1)If語句 If 條件表達式1 Then 條件表達式1為真時要執(zhí)行的語句 Else If 條件表達式2 Then 條件表達式1為假,并且條件表達式2為真時要執(zhí)行的語句 End If語句 2)Select Case語句 Select Case語句是多分支選擇語句,即可根據測試條件中表達式的值來決定執(zhí)行幾組語句中的依據。使用格式如下: Select Case 表達式 Case 表達式1 表達式的值與表達式1的值相等時執(zhí)行的語句 Case 表達式2 表達式的值介于表達式2和表達式3之間時執(zhí)行的語句 Case Else 上述情況均不符合時執(zhí)行的語句 End Select 3)函數 除了以上兩種方式外,VBA還提供了3個函數完成相應的操作。 IIf函數 IIf函數的調用格式如下: IIf(條件式,表達式1,表達式2) 它的跳轉由最左邊的“條件式”控制,當條件式為真(True)時,

溫馨提示

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

評論

0/150

提交評論