第9章-模塊與VBA編程基礎課件_第1頁
第9章-模塊與VBA編程基礎課件_第2頁
第9章-模塊與VBA編程基礎課件_第3頁
第9章-模塊與VBA編程基礎課件_第4頁
第9章-模塊與VBA編程基礎課件_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫技術與應用基礎

——Access第9章模塊與VBA編程基礎6/7/2023熟悉VBA的編程環(huán)境掌握VBA的基本語法和程序結構熟悉Access對象模型掌握VBA基于面向?qū)ο蟮木幊讨饕蝿盏?章模塊與VBA編程基礎6/7/20239.1模塊的基本概念 9.1.1類模塊 9.1.2標準模塊 9.2創(chuàng)建模塊 9.2.1在模塊中加入過程 9.2.2在模塊中執(zhí)行宏 9.3VBA程序設計基礎 9.3.1面向?qū)ο蟪绦蛟O計的基本概念 9.3.2VisualBasic編輯環(huán)境 9.3.3VisualBasic數(shù)據(jù)類型和數(shù)據(jù)庫對象 9.3.4變量與常量 9.3.5程序語句書寫原則 9.3.6運算符與表達式 9.3.7常用標準函數(shù) 9.4VBA流程控制語句 9.4.1順序結構 9.4.2選擇結構 9.4.3循環(huán)結構 9.4.4常用事件程序的設計 9.5宏與VBA 9.5.1 將宏轉換為VisualBasic代碼 9.5.2 將窗體或報表中的宏轉換為VisualBasic代碼 9.5.3 將宏轉換為模塊 9.5.4 在VBA過程中實現(xiàn)宏操作 主要內(nèi)容第9章模塊與VBA編程基礎6/7/20239.1模塊的基本概念

模塊是VBA代碼組織形式,在Access中模塊可分為兩類:

◆類模塊

◆標準模塊。窗體和報表模塊都是類模塊,而且它們各自與對應的窗體或報表相關聯(lián)。窗體或報表模塊通常都含有事件過程,當它們創(chuàng)建第一個事件過程時,Access將自動創(chuàng)建與窗體或報表對象相關聯(lián)的類模塊。與類模塊不同,標準模塊不與任何對象相關聯(lián)。標準模塊中的程序是通用的,可以在數(shù)據(jù)庫的位置被調(diào)用執(zhí)行。

6/7/20239.1.1類模塊

類模塊分為:獨立類模塊、窗體模塊和報表模塊。獨立類模塊不依附于窗體和報表而獨立存在,用該類模塊能創(chuàng)建自定義對象,可以為這些對象定義屬性、方法和事件。窗體模塊和報表模塊都屬于類模塊,它們從屬于各自的窗體或報表。6/7/20239.1.2標準模塊

標準模塊是指存放整個數(shù)據(jù)庫可用的函數(shù)和過程的模塊。標準模塊屬于數(shù)據(jù)庫對象,用戶可以像創(chuàng)建其他數(shù)據(jù)庫對象一樣創(chuàng)建包含VBA代碼的標準模塊。模塊內(nèi)包含了Sub過程和Function函數(shù)過程。6/7/20239.2創(chuàng)建模塊

過程是模塊的單元組成,由VBA代碼編寫而成。過程分兩種類型:Sub子過程和Function

函數(shù)過程。6/7/20239.1.2在模塊中加入過程模塊是裝著VBA代碼的容器。在窗體或報表的設計視圖里,單擊工具欄“代碼”按鈕或者創(chuàng)建窗體或報表的事件過程可以進入類模塊的設計和編輯窗口;單擊數(shù)據(jù)庫窗體中的“模塊”對象標簽,然后單擊“新建”按鈕即可進入標準模塊的設計和編輯窗口。

一個模塊包含一個聲明區(qū)域,且可以包含一個或多個子過程(以Sub開頭)或函數(shù)過程(以Function開頭)。模塊的聲明區(qū)域是用來聲明模塊使用的變量等項目。

6/7/2023例9.1創(chuàng)建一個名為Welcome的模塊,其功能是用來顯示歡迎消息框。操作步驟:(1)選擇數(shù)據(jù)庫窗口中的“模塊”對象,單擊“新建”按鈕,打開VBA編輯界面。(2)執(zhí)行“插入”|“過程”菜單命令。在彈出的“添加過程”對話框中填寫過程的名稱、選擇過程類型和范圍,單擊“確定”按鈕后,出現(xiàn)Welcome過程的編寫窗口。6/7/2023(3)編寫過程代碼。(4)單擊工具欄上的“運行子過程/用戶窗體”按鈕。(5)以Welcome為模塊名保存該模塊。6/7/20239.2.2在模塊中執(zhí)行宏在模塊的過程定義中,使用Docmd

對象的RunMacro

方法,可以執(zhí)行設計好的宏。其調(diào)用格式為:

Docmd.RunMacro

MacroName[,RepeatCount][,RepeatExpression]其中,MaoroName

表示當前數(shù)據(jù)庫中宏的有效名稱;RepeatCount

川可選項,用于計算宏運行次數(shù)的整數(shù)值;RepeatExpression可選項,數(shù)值表達式,在每一次運行宏時進行計算,結果為false時,停止運行宏。

6/7/2023VisualBasic是微軟公司推出的可視化應用程序開發(fā)語言,簡稱VB。由于VB功能強大且編程簡單易學,因此微軟公司將它的一部分代碼結合到office中,形成了VBA。VBA語法與VisualBasic編程語言互相兼容。在Access程序設計中,當某些操作不能用其他Access對象實現(xiàn),或者實現(xiàn)起來很困難時,就可以利用VBA語言編寫代碼,完成這些復雜任務。9.3VBA程序設計基礎

6/7/20239.3.1面向?qū)ο蟪绦蛟O計的基本概念對象和集合屬性和方法事件和事件過程6/7/2023VisualBasic編輯器(VBE,VisualBasicEditor)是編輯VBA代碼時使用的界面。VBE編輯器提供了完整的開發(fā)和調(diào)試工具。啟動方式有如幾種:①執(zhí)行“工具”|“宏”|“VisualBasic編輯器”命令。②新建模塊對象后,自動打開VisualBasic編輯器。③執(zhí)行“插入”|“模塊”命令或執(zhí)行“插入”|“類模塊”命令。④在模塊對象的數(shù)據(jù)庫窗口中,雙擊已有模塊。⑤打開窗體或報表的設計視圖,執(zhí)行“視圖”|“代碼窗口”命令。

9.3.2VisualBasic編輯環(huán)境6/7/2023⑥打開窗體或報表的設計視圖,在需要編寫代碼的控件上右擊,從彈出的快捷菜單中選擇“事件生成器”命令。⑦在窗體或報表上的控件上右擊,從彈出的快捷菜單中執(zhí)行“屬性”|“事件”菜單命令,單擊任何事件單元格右側的下拉箭頭,從下拉列表框中選擇“事件過程”。窗口主要由標準工具欄、工程窗口、屬性窗口和代碼窗口等組成。

6/7/2023例9.2新建窗體并在其上放置一個命令按鈕,然后創(chuàng)建該命令按鈕的“單擊”事件響應過程。操作步驟:(1)進入Access的窗體“設計”視圖,在新建窗體上添加一個命令按鈕并命名為“cmdTest”。

(2)選擇“Test”命令按鈕,單擊右鍵打開屬性窗體,單擊“事件”卡片并設置“單擊”屬性為“(事件過程)”選項。

6/7/2023(3)單擊屬性欄右旁的“

…”按鈕,即進入新建窗體的類模塊代碼編輯區(qū)。在打開的代碼編輯區(qū)里,可以看見系統(tǒng)已經(jīng)為該命令按鈕的“單擊”事件自動創(chuàng)建了事件過程的模板。此時,只需在模板中添加VBA程序代碼,這個事件過程即作為命令按鈕的“單擊”事件響應代碼,這里,僅給出了一條語句:

MsgBox“測試完畢!”,vbInformation,“title”。(4)按Alt+F11組合鍵回到窗體“設計”視圖,運行窗體,單擊“test”命令按鈕即激活命令按鈕“單擊”事件,系統(tǒng)會調(diào)用設計好的事件過程來響應“單擊”事件的發(fā)生,彈出“測試完畢!”消息框。6/7/2023標準數(shù)據(jù)類型用戶定義的數(shù)據(jù)類型數(shù)據(jù)庫對象9.3.3VisualBasic數(shù)據(jù)類型和數(shù)據(jù)庫對象

6/7/2023常量常量是指在程序運行過程中值不變的量。常量的使用能夠增加代碼的可讀性,并且使代碼易于維護。在VBA中有3種常量:直接常量、符號常量和系統(tǒng)常量。變量變量是指程序運行時值會發(fā)生變化的數(shù)據(jù)。變量名的命名,同字段命名一樣,變量命名不能包含有空格或除了下劃線字符(_)外的任何其他的標點符號,其長度不得超過255個字符。9.3.4變量與常量

6/7/2023語句書寫規(guī)定

注釋語句

采用縮進格式書寫格式

9.3.5程序語句書寫原則

6/7/2023算術運算符與表達式關系運算符與表達式

邏輯運算符與表達式

字符串運算符與表達式

9.3.6運算符與表達式

6/7/2023在VBA中,除模塊創(chuàng)建中可以定義子過程與函數(shù)過程完成特定功能外,還提供了近百個內(nèi)置的標準函數(shù),可以方便地完成許多操作。標準函數(shù)一般用于表達式中,有的能和語句一樣使用。其使用形式如下:函數(shù)名(<參數(shù)1><,參數(shù)2>=[,參數(shù)3][,參數(shù)4][,參數(shù)5]…)其中,函數(shù)名必不可少,函數(shù)的參數(shù)放在函數(shù)名后的圓括號中,參數(shù)可以是常量、變量或表達式,可以有一個或多個,少數(shù)函數(shù)為無參函數(shù)。每個函數(shù)被調(diào)用時,都會返回一個返回值。需要指出的是:函數(shù)的參數(shù)和返回值都有特定的數(shù)據(jù)類型對應。

9.3.7常用標準函數(shù)

6/7/2023數(shù)學函數(shù)字符函數(shù)日期時間函數(shù)合計函數(shù)6/7/2023VBA程序設計有三種基本控制結構:順序結構、選擇結構和循環(huán)結構。所有程序都由這三種基本控制結構組成。順序結構是程序流程中最簡單的控制結構,如果編寫較為復雜的程序需要使用選擇結構和循環(huán)結構語句來對程序進行流程控制。順序結構順序結構就是按照程序代碼編寫的順序依次執(zhí)行。順序結構主要介紹賦值語句和輸入輸出語句。

9.4VBA流程控制語句

6/7/20231、賦值語句賦值語句可以將常量或常量表達式的值賦給變量或?qū)ο蟮膶傩?,一般格式為?/p>

<變量名>=<表達式>

[<對象名>.]<屬性名>=<表達式>(1)<變量名>應符合變量的命名規(guī)則,<對象名>缺少時為當前窗體或報表。(2)首先計算“=”(賦值運算符)右邊表達式的值,將此值賦給“=”左邊的變量或?qū)ο髮傩浴?/7/20232.Print方法在VBA中可以使用Print方法在窗體、立即窗口及打印機上輸出文本數(shù)據(jù)或表達式的值。一般格式為:[對象名].Print表達式3.InputBox函數(shù)

InputBox函數(shù)可以產(chǎn)生一個輸入對話框,等待用戶輸入數(shù)據(jù)并返回所輸入的內(nèi)容。一般格式為:

InputBox(提示字符串[,對話框標題字符串][,默認輸入數(shù)據(jù)])6/7/20234.MsgBox函數(shù)和MsgBox語句

MsgBox函數(shù)或語句可以產(chǎn)生一個消息框,消息框中給出提示信息,用戶可以根據(jù)提示信息選擇后面的操作。函數(shù)格式為:

MsgBox(消息字符串[,按鈕與圖標樣式][,對話框標題字符串])語句格式為:

MsgBox

消息字符串[,按鈕與圖標樣式][,對話框標題字符串]兩種格式的區(qū)別是,MsgBox函數(shù)會產(chǎn)生一個返回值,用戶需要將返回值賦給一個變量。MsgBox語句無返回值,僅是單純的信息顯示。6/7/2023例9.4創(chuàng)建Area過程,其功能是,計算圓的面積,半徑值從鍵盤隨機輸入。操作步驟:①進入Access數(shù)據(jù)庫中的模塊,新建模塊進入VBA的編輯器。②選擇“插入”|“過程”,輸入過程名。③確定后,輸入過程代碼。④選擇“運行”|“運行子過程/用戶窗體”命令,彈出輸入對話框輸入任意半徑值后,單擊“確定”按鈕,彈出消息框顯示面積值。6/7/2023例9.5創(chuàng)建一個圓的面積的窗體,通過在文本框中輸入的半徑值,點擊計算按鈕得到計算結果。操作步驟:①進入Access數(shù)據(jù)庫中的窗體,添加標簽、文本框和命令按鈕,新建命令按鈕的單擊事件代碼,進入VBA的編輯器,輸入代碼。②選擇“運行窗體”命令,輸入任意半徑值后,單擊“計算”按鈕,彈出消息框顯示面積值。6/7/2023選擇結構又稱為分支結構,根據(jù)條件表達式的值執(zhí)行相應的操作。選擇結構可分為單分支選擇結構、雙分支選擇結構和多分支選擇結構。

1.單分支If語句格式:

If<條件表達式>Then<語句>EndIf說明:計算條件表達式的值,若值為“真”(Ture)則執(zhí)行Then后面的語句,若值為“假”(False)則退出If語句繼續(xù)執(zhí)行下面的程序。9.4.2選擇結構

6/7/2023例9.6創(chuàng)建一個求絕對值的過程,其功能是,通過輸入一個整數(shù),輸入這個數(shù)的絕對值。操作步驟:①進入Access數(shù)據(jù)庫中的模塊,新建模塊進入VBA的編輯器。②選擇“插入”|“過程”,輸入過程名,這里輸入絕對值。③確定后,輸入過程代碼。④選擇“運行”|“運行子過程/用戶窗體”命令,彈出輸入對話框,輸入任意值后,單擊“確定”按鈕,彈出消息框顯示其絕對值。

6/7/20232.雙分支If語句格式:

If<條件表達式>Then<語句1>Else<語句2>EndIf說明:計算條件表達式的值,若值為“真”(True)則執(zhí)行語句1,否則執(zhí)行語句2。6/7/2023例9.7創(chuàng)建一個判斷奇偶數(shù)的窗體,其功能是,通過輸入一個非零的整數(shù),判斷是奇數(shù)還是偶數(shù)。操作步驟:①進入Access數(shù)據(jù)庫中的窗體,添加標簽、文本框和命令按鈕,新建命令按鈕的單擊事件代碼,進入VBA的編輯器,輸入代碼。

②選擇“運行窗體”命令,彈出窗體,輸入任意非零的值后,單擊“判斷奇偶”按鈕,彈出消息框顯示。6/7/20233.多分支If語句格式:

If<條件表達式1>Then<語句1>ElseIf<條件表達式2>Then<語句2>┇ElseIf<條件表達式n>Then<語句n>Else<語句n+1>EndIf說明:計算條件表達式1的值,若值為“真”(True)則執(zhí)行語句1,否則計算條件表達式2的值,若值為“真”(True)則執(zhí)行語句2,重復上述操作。當全部條件表達式的值都不為“真”(True)則執(zhí)行語句n+1。6/7/2023例9.8創(chuàng)建一個名為Grade的過程,其功能是,判斷輸入的分數(shù)等級(優(yōu)秀、良好、中等、及格、不及格共5個等級)。操作步驟:創(chuàng)建過程的方法如上面的例子所示。選擇“運行過程”命令。6/7/20234.多分支SelectCase語句格式:

SelectCase<測試變量或表達式>Case<表達式1><語句1>Case<表達式2><語句2>┇Case<表達式n><語句n>[CaseElse<語句n+1>]EndSelect說明:SelectCase語句在執(zhí)行時,先計算測試變量或表達式的值,然后尋找該值與哪一個Case子句的表達式值匹配,找到后則執(zhí)行該Case語句,之后退出Select結構;如果測試變量或表達式的值與全部Case子句的表達式值不匹配,則執(zhí)行CaseElse語句,之后退出Select結構。6/7/2023例9.9創(chuàng)建一個判斷將英文星期轉換成中文星期的窗體,通過在文本框中輸入一個英文的星期,單擊轉換按鈕,顯示中文星期。操作步驟:①進入Access數(shù)據(jù)庫中的窗體,添加標簽、文本框和命令按鈕。

②在“轉換為中文”的命令按鈕中寫單擊事件代碼。③選擇“運行窗體”命令,彈出窗體輸入任意星期的英文后或隨便輸入一個單詞,單擊“轉換為中文”按鈕。6/7/2023在實際使用中,有些循環(huán)的次數(shù)可以事先確定,而有些循環(huán)不能確定。VBA中有三種形式的循環(huán)語句;For循環(huán)、While循環(huán)和Do循環(huán)。其中For循環(huán)多用于已知循環(huán)次數(shù)的情況下,While循環(huán)和Do循環(huán)多用于不確定循環(huán)資料的情況下。下面重點介紹For循環(huán)語句和Do循環(huán)語句。

9.4.3循環(huán)結構

6/7/20231.For循環(huán)語句格式:

For<循環(huán)變量=初值>To<終值>[step步長]<循環(huán)體>Next[循環(huán)變量]說明:For循環(huán)的執(zhí)行過程:首先把初值賦給循環(huán)變量,接著判斷循環(huán)變量的值是否超過終值,如果超過就不執(zhí)行循環(huán)體,直接跳出For循環(huán),執(zhí)行Next后面的語句;否則執(zhí)行循環(huán)體,之后將循環(huán)體變量增加步長值后再賦給循環(huán)變量,繼續(xù)判斷循環(huán)變量的值是否超過終值,重復上述步驟直到For循環(huán)正常結束。6/7/2023說明:①循環(huán)變量必須為數(shù)值型。②循環(huán)的初值、終值和步長都是數(shù)值表達式。其中,增量參數(shù)可正可負。如果沒有設置step,則增量默認為1。③Next是循環(huán)終端語句,在Next后面的循環(huán)變量與For中的循環(huán)變量必須相同。當只有單層循環(huán)(沒有嵌套)時,Next后面的循環(huán)變量可以省略。④當初值等于終值時,不管步長是正數(shù)還是負數(shù),都執(zhí)行一次循環(huán)體。⑤循環(huán)次數(shù)由初值、終值和步長決定,計算公式為:循環(huán)次數(shù)=Int((終值-初值)/步長+1)除了For語句以計數(shù)值來判斷循環(huán)是否結束之外,還可以用ExitFor語句強制結束循環(huán)。通過ExitFor語句和If語句配合使用,代表在某種特定情況下,循環(huán)中的程序不再繼續(xù)執(zhí)行。6/7/2023例9.10創(chuàng)建一個名為sum的過程,其功能是:計算100以內(nèi)的奇數(shù)和。操作步驟:①創(chuàng)建過程的方法如上面的例子所示。②選擇“運行過程”命令。6/7/2023例9.11創(chuàng)建一個求奇數(shù)和,偶數(shù)和的窗體,其功能是:通過輸入一個起始數(shù)和一個終止數(shù),分別求出這二個數(shù)之間的奇數(shù)之和,偶數(shù)之和。操作步驟:①進入Access數(shù)據(jù)庫中的窗體,添加標簽、文本框和命令按鈕。②新建奇數(shù)、偶數(shù)和命令按鈕的單擊事件代碼,進入VBA的編輯器,輸入代碼。

③選擇“運行窗體”命令。6/7/2023例9.12創(chuàng)建一個名為水仙花數(shù)的過程,其功能是:統(tǒng)計水仙花數(shù)的個數(shù)。(水仙花數(shù)是:一個三位數(shù),并且這個數(shù)中各位數(shù)字的立方和等于這個數(shù)本身)操作步驟:①創(chuàng)建過程的方法如上面的例子所示。6/7/2023例9.13創(chuàng)建一個名為求最大值最小值的過程,其功能是:從鍵盤輸入10個隨機值,用數(shù)組變量存放,找出其中最大值和最小值。操作步驟:①創(chuàng)建過程的方法如上面的例子所示。②選擇“運行過程”命令,彈出窗口要求輸入數(shù)據(jù),輸入十次后會顯示最大值和最小值。6/7/20232.Do循環(huán)語句

Do┅Loop循環(huán)用于事先不知道循環(huán)次數(shù)的循環(huán)結構。此循環(huán)語句共有4種語法格式:DoWhile┅Loop語句、Do┅LoopWhile語句、DoUntil┅Loop語句和Do┅LoopUntil語句。前兩種格式當循環(huán)條件為真時執(zhí)行循環(huán)體語句,后兩種當循環(huán)條件為假時執(zhí)行循環(huán)體語句。(1)DoWhile|Until┅Loop語句格式:

DoWhile|Until<條件表達式><循環(huán)體>[ExitDo]<循環(huán)體>Loop說明:①條件表達式的值應是邏輯型。②DoWhile和Loop應成對出現(xiàn)。③循環(huán)體中要有控制循環(huán)次數(shù)的語句,以避免出現(xiàn)死循環(huán)。④由于該循環(huán)的特點是先判斷條件,然后再決定是否要執(zhí)行循環(huán)體中的語句。所以,這種循環(huán),可以一次也不執(zhí)行循環(huán)體。⑤ExitDo表示當遇到該語句時,強制退出循環(huán),執(zhí)行Loop后的下一條語句。6/7/20

溫馨提示

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

評論

0/150

提交評論