




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Access實例教程,潘明寒 趙義霞 主編 中國水利水電出版社,ACCESS實例教程,模塊的操作(第8章),1,模塊的基本概念 2,VBA程序設計基礎 3,VBA函數(shù)的使用 4,模塊的建立與使用 5,過程與參數(shù)傳遞,本章要點:,8.1 認識模塊對象,模塊是由聲明、語句和過程組成的集合,以VBA(Visual Basic for Application)語言編寫,作為一個已命名的單元存儲在一起。 模塊有2種類型:類模塊和標準模塊。使用模塊可以在實際開發(fā)中實現(xiàn)較為復雜的功能。,(1)模塊 模塊由一個或多個過程組成,每個過程實現(xiàn)一個或幾個功能。模塊的執(zhí)行通過特定事件激發(fā)相應的事件過程實現(xiàn)。 (2)事
2、件過程 事件過程是一組代碼,用于響應窗體事件或報表事件。 (3)類模塊 類模塊是包含代碼和數(shù)據(jù)的集合,可以看作是沒有物理表示的控件,總是與某一特定的窗體或報表相關聯(lián)。窗體模塊和報表模塊都屬于類模塊。 (4)標準模塊 標準模塊是代碼的集合,包含的過程不與任何其他對象相關聯(lián),是數(shù)據(jù)庫對象使用的公共過程,保存在數(shù)據(jù)庫窗口中。,8.1.1 模塊的基本概念,8.1.2 啟動Access的編程界面,Access的編程界面稱為VBE(Visual Basic Editor),是Microsoft Office所有組件公用的程序編輯系統(tǒng)。 方法1:在窗體或報表設計視圖中選控件單擊標準工具欄的“生成器”按鈕在“
3、選擇生成器”對話框中選擇“代碼生成器”。 方法2:右擊窗體或報表設計視圖中控件快捷菜單中選“事件生成器”“選擇生成器”對話框中選擇代碼生成器”。,8.1.3 VBE窗口,編寫模塊對象的代碼在代碼窗口進行。 (1)窗口頂部有2個組合框,左邊對象框顯示所有對象名稱,右邊過程框顯示當前對象能識別的所有事件名稱。選定一個對象,再選定一個事件,系統(tǒng)會自動生成相應事件過程的起始行與結束行,只須在兩行中間添加過程代碼即可。 “通用” 過程可以被所有控件調(diào)用。某控件的過程只在關聯(lián)事件中有效。 (2)窗口中央代碼區(qū)有聲明區(qū)和過程區(qū),聲明區(qū)中聲明模塊使用的變量,過程區(qū)顯示一個或多個過程,之間用一條灰線分隔。 (3
4、)窗口底部有2個按鈕,單擊“過程視圖”按鈕,只顯示當前過程。單擊右邊“完整的模塊視圖”按鈕,窗口顯示全部過程。,8.1.4 標準工具欄,例:一個類模塊,例:一個標準模塊,8.1.7 使用提示與幫助,在代碼窗口輸入代碼時,系統(tǒng)會自動顯示提示信息,包括關鍵字列表、屬性列表、過程參數(shù)列表等,在列表中選取一項后雙擊鼠標,所選值會自動添加到當前光標處。,8.2 VBA程序設計基礎,8.2.1 面向?qū)ο蟮某绦蛟O計的基本概念,(1)對象 在自然界中,一個對象就是一個實體,如一輛汽車就是一個對象。在面向?qū)ο蟮某绦蛟O計中,對象代表應用程序中的元素,如表、窗體、按鈕等。 (2)屬性 屬性是對象的特征。如汽車有顏色
5、和型號屬性,按鈕有標題和名稱屬性。對象的類別不同,屬性會有所不同。同類別對象的不同實例,屬性也有差異。例如,同是命令按鈕,名稱屬性不允許相同。,(3)事件 事件是對象能夠識別的動作。如按鈕可以識別單擊事件、雙擊事件等。在類模塊每一個過程的開始行,都顯示對象名和事件名。如:Private Sub c1_Click()。 (4)方法 方法是對象能夠執(zhí)行的動作,決定了對象能完成什么事。不同對象有不同的方法。如close方法能關閉一個窗體。 (5)集合 集合由許多與對象有關的鍵和值組成,其中的鍵和值是配對的。如一本書是一個對象,書的頁碼是鍵,頁碼對應的內(nèi)容是值。所有配對的頁碼和內(nèi)容組成了書對象的集合。
6、,(6)過程 過程是由代碼組成的單元,包含一系列計算語句和執(zhí)行語句。每一個過程都有名字,過程名不能與所在模塊的模塊名相同。過程有兩種類型:sub過程(無返回值),function過程(有返回值)。,例:動態(tài)設置控件屬性,(1)在窗體中建1個文本框名稱為t1。 (2)在窗體中建1個標簽名稱為b1標題為“新年好!”。 (3)在窗體中建3個命令按鈕名稱分別為c1、c2、c3標題 分別為“紅色”、“綠色”、“藍色”。,(4)設置各按鈕的前景色,在屬性窗口可查看顏色值。,(5)c1的click事件代碼: t1.BackColor = 255 b1.ForeColor = 255,(6)c2的click事
7、件代碼: t1.BackColor = 33792 b1.ForeColor = 33792 (7)c3的click事件代碼: t1.BackColor = 16711680 b1.ForeColor = 16711680,執(zhí)行結果:,Docmd是Access的一個特殊對象,用來調(diào)用內(nèi)置方法,在程序中實現(xiàn)對Access的操作,諸如打開窗口、關閉窗體、打開報表、關閉報表等。 DoCmd 對象的大多數(shù)方法都有參數(shù),有些參數(shù)是必需的,有些則是可選的。若省略可選參數(shù),參數(shù)將采用默認值。,8.2.2 Docmd對象,(1)用DoCmd 對象打開窗體 格式:DoCmd.OpenForm 窗體名 功能:用默
8、認形式打開指定窗體。 例如:DoCmd.OpenForm 文本框練習,(2)用DoCmd 對象關閉窗體 格式1:DoCmd.Close acForm, 窗體名 功能:關閉指定窗體。 例如:DoCmd.Close acForm, 文本框練習 格式2:DoCmd.Close 功能:關閉當前窗體。 (3)用DoCmd 對象打開報表 格式:DoCmd.OpenReport 報表名,acViewPreview 功能:用預覽形式打開指定報表。 例如:DoCmd.OpenReport 工資報表,acViewPreview,(4)用DoCmd 對象關閉報表 格式1:DoCmd.Close acReport,
9、報表名 功能:關閉指定報表。 例如:DoCmd.Close acReport, 工資報表 格式2:DoCmd.Close 功能:關閉當前報表。 (5)用DoCmd 對象運行宏 格式:DoCmd.RunMacro 宏名 功能:運行指定宏。 例如:DoCmd.RunMacro 宏1 (6)用DoCmd 對象退出Access。 格式:DoCmd.Quit 功能:關閉所有Access對象和Access本身。,(1)在窗體中建立5個按鈕名稱分別為c1、c2、c3、c4、c5標題分別為“打開文本框練習窗體”、“關閉文本框練習窗體”、“打開工資報表”、“關閉工資報表”、“退出Access” 。,例:使用Do
10、Cmd對象,(2)c1代碼:DoCmd.OpenForm 文本框練習 (3)c2代碼:DoCmd.Close acForm, 文本框練習 (4)c3代碼:DoCmd.OpenReport 工資報表,acViewPreview (5)c4代碼:DoCmd.Close acReport, 工資報表 (6)c5代碼:DoCmd.Quit,(7)轉(zhuǎn)到窗體視圖單擊不同按鈕執(zhí)行不同操作。,8.2.3 數(shù)據(jù)類型與數(shù)據(jù)類型轉(zhuǎn)換,(1)標準數(shù)據(jù)類型,(2)數(shù)據(jù)類型轉(zhuǎn)換函數(shù),例:在立即窗口中計算函數(shù)值 (1)在VBE界面“視圖”菜單“立即窗口”,顯示立即窗口。 (2)輸入表達式x=“true”回車輸入表達式y(tǒng)=“
11、false”回車輸入表達式 ?x+y回車,顯示結果為:truefalse。 (3)輸入表達式 ?cbool(x)+cbool(y)回車,顯示結果為:-1。 說明:每行寫完后必須回車才能生效。問號與print語句相同,在立 即窗口顯示計算結果。,(3)用戶定義的數(shù)據(jù)類型,定義格式:type 數(shù)據(jù)類型名 域名1 as 數(shù)據(jù)類型 域名2 as 數(shù)據(jù)類型 end type 例如:type student xh as string*6 xm as string xb as string*1 nl as integer end type,8.2.4 變量,變量是指程序運行時值會發(fā)生變化的數(shù)據(jù)。系統(tǒng)會按照變
12、量的數(shù)據(jù)類型在內(nèi)存中為變量分配一定數(shù)量的存儲單元,程序中用變量名調(diào)用存儲的數(shù)據(jù)。所以,變量實際上是一個符號地址,代表了命名的存儲位置。 (1)變量命名規(guī)則 由字母、數(shù)字、下劃線組成,用英文字母開頭。 不能包含空格以及除下劃線之外的標點符號。 不能用VBA的關鍵字(如:dim)和保留字(如:str)。 字符個數(shù)不得多于255個。 變量名不區(qū)分大小寫。,格式: dim 變量名 as 類型 說明: 如果不用as定義類型,則變量為變體類型。變體類型變量 比其他類型變量占用更多的內(nèi)存資源。 可以用dim同時定義多個變量,變量之間用西文逗號分隔, 每一個變量都應該用as聲明類型。 例如:dim a1 as
13、 integer,a2 as boolean 用dim定義的變量是局部變量,會按照數(shù)據(jù)類型自動設置默 認值。,(2)用dim語句聲明變量,(3)用類型說明符聲明變量類型,在變量名后加VBA的類型說明符,隱式的聲明了變量類型。 例如:b1%=125 變量b1是整型,值是125。 既沒有顯式聲明,也沒有加類型說明符,隱式聲明了變體型變量。 例如:c1=125 變量c1是變體型,值是125。,圖1-15 層次模型,(4)一個特殊的模塊變量 本地窗口打開時,自動生成一個名為“Me”的特殊模塊變量。對于類模塊,定義為Me。Me是對象的引用,引用當前模塊中當前類的實例。 Me變量不需要專門定義,直接使用即
14、可。 例如,用代碼定義“學生信息”窗體中“Lab”標簽的標題屬性,以下兩種方法效果是一樣的: 標準方法:Forms! 學生信息!Lab.Caption=學生信息瀏覽 常用方法:Me!Lab.Caption=學生信息瀏覽,8.2.5 變量的作用域和生命周期,1變量的作用域 變量的作用域是變量在程序中起作用的范圍。分3個層次,從低到高依次為:局部、模塊、全局。 (1)局部變量 又稱為本地變量,僅在聲明變量的過程中有效。在過程和函數(shù)內(nèi)部用dim聲明或不用聲明接使用的變量,都是局部變量。局部變量在本地擁有最高級,當存在同名的模塊級變量時,模塊級變量被屏蔽。 (2)模塊變量 模塊變量在所聲明模塊的所有函
15、數(shù)和所有過程都有效,變量定義在模塊所有過程之外的起始位置,通常是窗體變量或標準模塊變量。 (3)全局變量 全局變量又稱為公共變量,定義在標準模塊所有過程之外,在所有模塊的所有過程和函數(shù)中都有效。 定義格式:public 變量名 as 數(shù)據(jù)類型,變量的生命周期是指變量從首次出現(xiàn)到變量消失的代碼執(zhí)行時間。變量首次出現(xiàn)是指聲明變量并為其分配存儲空間,變量消失是指變量所在的程序執(zhí)行完畢。 局部變量的生命周期從過程或函數(shù)被調(diào)用到運行結束。全局變量的生命周期從聲明到Access應用程序結束。 過程中用dim定義的變量,每次調(diào)用過程時都重新開始,過程結束時立即消失。用static代替dim定義變量,可以在過
16、程實例間保留局部變量的值。用static定義的變量稱為靜態(tài)變量,作用范圍與dim相同,在整個模塊執(zhí)行時一直存在。,2變量的生命周期,例:用static和dim定義局部變量,(1)在窗體中建立2個文本框分別命名為t1和t2附加標簽的標題分別為“靜態(tài)變量”和“局部變量”。 (2)在窗體中建立命令按鈕名稱為c1標題為“計算”。,(3)c1的click代碼: Static x As Integer Dim y As Integer x = x + 1:y = y + 1 t1 = x:t2 = y,(4)執(zhí)行時不斷單擊命令按鈕,靜態(tài)變量文本框中的值每次增加1,而局部變量文本框中的值總是1。,8.2.6
17、 常量,常量是在程序運行過程中其值不能改變的量,如數(shù)字常量123、字符串常量abc、日期常量#2008-8-8# 等。這樣的常量是直接常量,也稱為字面常量。 系統(tǒng)還提供3種常量:符號常量、系統(tǒng)常量、內(nèi)部常量。,1符號常量 用符號常量表示在編程中反復使用的相同值。符號常量名一般用大寫字母,以便與變量名區(qū)分。 定義格式:Const 符號常量名=常量值 說明: (1)如果符號常量定義在模塊聲明區(qū),所有模塊的過程都能使用該變量,通常在前面加上Global或Public。 如:Public Const PI=3.14 (2)如果符號常量定義在事件的過程中,該符號常量只在本過程中可用。 (3)符號常量定義
18、時不用指明數(shù)據(jù)類型。,2系統(tǒng)常量 系統(tǒng)常量是Access啟動時就建立的常量,可以在所有程序編碼時直接使用。 系統(tǒng)常量有:true、false、yes、no、on、off、null。 3內(nèi)部常量 內(nèi)部常量又稱為固有常量,是VBA提供的一些預定義的內(nèi)部符號常量,主要用來作為DoCmd對象的參數(shù)。 內(nèi)部常量用前兩個字母指明該常量的對象庫:以ac開頭的是Access的庫常量,以vb開頭的是VBA的庫常量,以db開頭的是DAO的庫常量,以ad開頭的ADO的庫常量。 這些內(nèi)部常量名不能作為用戶自定義的變量名或符號常量名。,1數(shù)組的概念 VBA中的數(shù)組是一組具有相同數(shù)據(jù)類型、同一名字、不同下標的變量集合。數(shù)
19、組變量由變量名和數(shù)據(jù)下標組成,數(shù)組下標用圓括號括起來。 說明: (1)數(shù)組要先定義后使用,VBA不允許隱式聲明數(shù)組。 (2)同一過程中數(shù)組名不能與其他變量重名。,8.2.7 數(shù)組,2聲明一維數(shù)組 格式1:dim 數(shù)組名(下標上限) as 數(shù)據(jù)類型 格式2:dim 數(shù)組名(下標下限 to 下標上限) as 數(shù)據(jù)類型 例如:dim a(6) as integer 功能:聲明了有7個元素的數(shù)組a,元素下標從0到6,默認值均為0。 例如:dim b(1 to 6) as string 功能:聲明了有6個元素的數(shù)組b,下標從1到6,默認值均為空串。 說明: (1)如果不定義數(shù)組下標的下限,默認下標下限為
20、0。 (2)數(shù)組定義中的參數(shù)必須是常數(shù)。 (3)如果使用as語句定義數(shù)組類型,同一數(shù)組只能存放相同類型數(shù)據(jù)。,3聲明多維數(shù)組 格式:dim 數(shù)組名(下標上限1,下標上限2,) as 數(shù)據(jù)類型 例如:dim c(3,4) as integer 功能:聲明有20個元素的數(shù)組c,行下標從0到3,列下標從0到4。 例如:dim d(1 to 3,2 to 4) as integer 功能:聲明有9個元素的數(shù)組d,行下標從1到3,列下標從2到4。 4使用數(shù)組 聲明數(shù)組后,每個數(shù)組元素都被當作單個變量使用。 一維數(shù)組元素的引用格式:數(shù)組名(下標) 二維數(shù)組元素的引用格式:數(shù)組名(下標1,下標2),例:使用
21、符號常量和數(shù)組,(1)在窗體建文本框名稱為t1。 (2)在窗體建命令按鈕名稱為c1標題為“確定”。 (3) c1的代碼:,const AA = “歡迎你!” 定義符號常量 dim b(1) As String 定義數(shù)組 b(0) = AA b(1) = t1 MsgBox b(0) : bb = 標點符號 Case Else: bb = 特殊字符 End Select MsgBox bb,(3)轉(zhuǎn)到窗體視圖文本框中輸入字母單擊按鈕顯示消息框 。,8.4.4 選擇函數(shù)與計時器事件,1iif函數(shù) 格式:iif(條件,表達式1,表達式2) 功能:如果條件為真,函數(shù)值為表達式1的值,否則,函數(shù)值為表達
22、式2的值。 例:y=iif(ab,a大,b大) 2switch函數(shù) 格式:switch(條件1,表達式1,條件2,表達式,條件n,表達式n) 功能:從左到右依次判斷,遇到第一個條件為真時返回對應表達式的值。 說明:條件與表達式成對,當多個條件為真時,只取第一個條件的對應表達式。 例:y=switch(x0,1),3choose函數(shù) 格式:choose(索引式,值1,值2,值n) 功能:根據(jù)索引項的值,返回對應的值。 說明:索引項通常是整型變量名,取值范圍1n,超出范圍時返回NULL。 例如:y=choose(x,優(yōu)秀,良好,中等,及格,不及格),4計時器事件 VBA沒有直接提供時間控件,通過t
23、imer事件實現(xiàn)定時功能。 方法:首先設置窗體的計時器間隔屬性TimerInterval,然后給timer事件寫過程代碼。打開窗體時,每隔一個時間間隔激發(fā)一次timer事件,事件的過程就被執(zhí)行一次,從而實現(xiàn)“定時”處理功能。 計時器間隔的時間單位為毫秒,1000毫秒=1秒。,例:顯示電子表,(1)建立2個標簽名稱為b1和b2標題都為數(shù)字1。 (2)打開窗體的屬性窗口單擊“事件”選項卡設置計時器 間隔屬性為1000。 (3)在VBE窗口“通用-聲明”寫代碼: Public a As Boolean a為邏輯型,默認false (4)Form的Timer事件代碼: a = Not a b1.Cap
24、tion = Time() b2.Caption = CInt(b2.Caption) + 1 b2.ForeColor = IIf(a = True, 255, 16711680),(5)轉(zhuǎn)到窗體視圖。b1中顯示系統(tǒng)當前時間,b2中的數(shù)字每秒增加1,數(shù)字的顏色紅、藍交替,每秒換一次。,8.4.5 驗證函數(shù),VBA的常用驗證函數(shù),例:檢驗字符串類型,(1)建文本框名稱為t1附加標簽標題為“輸入年齡:”。 (2)建命令按鈕名稱分別為c1標題為“驗證”。 (3)c1的click事件代碼: If t1 = Or IsNull(t1) Then MsgBox 不能為空!, vbCritical, 提示
25、 ElseIf IsNumeric(t1) = False Then MsgBox 必須是數(shù)字!, vbCritical, 提示 ElseIf t1 = 150 Then MsgBox 超出范圍!, vbCritical, 提示 Else MsgBox 驗證通過!, vbInformation, 提示 End If,(4)轉(zhuǎn)到窗體視圖在文本框中輸入一個字母單擊“驗證”按鈕消息框顯示消息“必須是數(shù)字!”。,8.4.6 循環(huán)語句,當某一程序段需要反復執(zhí)行,用循環(huán)結構實現(xiàn)。循環(huán)結構對應兩類循環(huán)語句: 先判斷后執(zhí)行的循環(huán)語句(當型循環(huán)結構) 先執(zhí)行后判斷的循環(huán)語句(直到型循環(huán)結構),1for-next
26、循環(huán) for-next循環(huán)能使語句序列運行指定次數(shù),循環(huán)中有一個計數(shù)器變量,變量的值隨每一次循環(huán)增加或減少。 for-next是當型循環(huán)結構,先判斷后執(zhí)行。 (1)格式:for 循環(huán)變量=初值 to 終值 step 步長 語句序列 next (2)功能 先將初值賦給循環(huán)變量,再將循環(huán)變量的當前值與終值做比較,如果比較結果為真執(zhí)行語句序列,增加一個步長,再進行比較,如果比較結果仍為真,繼續(xù)循環(huán)。如果比較結果為假,結束循環(huán)。,(3)說明 步長大于0時判斷循環(huán)變量的當前值是否大于終值,步長小于 0判斷循環(huán)變量的當前值是否小于終值。步長為0時導致循環(huán) 無法結束,所以步長不要設置為0。 步長可以是整數(shù)或
27、小數(shù),步長為1時可以省略。 除第一次循環(huán)以外,其他循環(huán)增加一個步長后與終值比較。 for循環(huán)可以嵌套。 在for循環(huán)中可以用exit for語句強行中止循環(huán)。,練習:閱讀下面程序段,循環(huán)結束后,各變量的值是多少? dim s as integer, i as integer s=0 for i=1 to 10 step 2 s=s+i i=i+2 next 結論:循環(huán)結束后,變量i的值是13,變量 s 的值是15。,例:顯示Fibonacci數(shù)列的第15個元素,(Fibonacci數(shù)列的前兩個數(shù)都是1,從第3個數(shù)開始,每個數(shù)都是前兩個數(shù)之和。),(1)建立文本框名稱為t1建立命令按鈕名稱為c1
28、。 (2)c1的click事件代碼: Dim f(15) As Integer f(1) = 1:f(2) = 1 For i = 3 To 15 f(i) = f(i - 1) + f(i - 2) Next t1 = f(15),2do-while-loop循環(huán) do-while-loop循環(huán)是當型循環(huán)結構,先判斷后執(zhí)行。 (1)格式 do while 循環(huán)條件 語句序列 loop (2)功能 先檢查循環(huán)條件是否成立,若條件為真,執(zhí)行語句序列。遇到loop語句時返回循環(huán)開始處重新判斷,若條件仍然為真,再次執(zhí)行語句序列。當條件為假時退出循環(huán)。,(3)說明 可以用exit do強行中止循環(huán)。
29、要考慮循環(huán)變量賦初值和給循環(huán)變量增加步長的問題。 如果將while換成until,當條件為真時循環(huán)結束。 練習:閱讀下面的程序(注:大寫字母A的ASCII碼是65。) dim a(26) as string, b(26) as integer, dim i as integer i=1 給循環(huán)變量賦初值 do while i=26 a(i)=chr(i+64) 將ASCII碼變?yōu)樽帜?b(i)=Lcase(a(i) 將大寫字母變?yōu)樾懽帜?i=i+1 使循環(huán)變量增加1 loop,3do-loop-while循環(huán) 是直到型循環(huán)結構,先執(zhí)行后判斷。 (1)格式 do 語句序列 Loop while
30、 循環(huán)條件 (2)功能 先執(zhí)行語句序列,遇到loop語句時判斷循環(huán)條件,若條件為真,再次執(zhí)行語句序列。當條件為假時退出循環(huán)。 (3)說明 可以用exit do強行中止循環(huán)。 要考慮給循環(huán)變量賦初值和給循環(huán)變量增加步長的問題。 如果將while換成until,當條件為真時循環(huán)結束。,4for-each 循環(huán)語句 for each循環(huán)用來遍歷數(shù)組或?qū)ο蠹现忻恳粋€元素,不需要指定循環(huán)次數(shù),每個元素只遍歷一次。如果不知道一個集合有多少個元素,用for each循環(huán)非常方便。 (1)格式 for each 循環(huán)變量 in 集合或數(shù)組 語句序列 next (2)功能 用循環(huán)變量依次遍歷數(shù)組或?qū)ο蠹现忻?/p>
31、一個元素,直到遍歷結束。,練習:閱讀下面程序。 dim a(50) as integer, i as integer, s as integer for i=1 to 50 給數(shù)組賦值 a(i)=i next s=0 for each i in a 遍歷a中元素 if i mod 20 then s=s+i 計算奇數(shù)之和 next,8.5 過程調(diào)用與參數(shù)傳遞,8.5.1 認識過程和參數(shù),1過程 過程是用來執(zhí)行特定任務的一段獨立的程序代碼,這段代碼能被反復調(diào)用。VBA的模塊以過程為單元組成。 VBA的過程根據(jù)是否返回值分為兩類:Sub過程和Function過程。Sub過程只執(zhí)行操作不返回值,不能
32、用在表達式中,調(diào)用時就象使用基本語句一樣。Function過程又稱為用戶自定義函數(shù),執(zhí)行操作后返回結果,常用在表達式中,調(diào)用時就象使用基本函數(shù)一樣。 過程名是標識符,不要與模塊名重名,否則調(diào)用時會出現(xiàn)混亂。同一模塊中,Sub過程也不要與Function過程重名。 過程不能嵌套定義,但可以嵌套調(diào)用。,2參數(shù) 如果在調(diào)用過程中,主調(diào)方(調(diào)用過程的語句)與被調(diào)方(過程)存在數(shù)據(jù)傳遞關系,表現(xiàn)這種傳遞關系的數(shù)據(jù)就是參數(shù)。 參數(shù)分為形參(形式參數(shù))和實參(實際參數(shù))。形參用在被調(diào)方,只能是變量名或數(shù)組名。實參用在主調(diào)方,可以是常量、已賦值的變量、有計算結果的表達式。 當形參和實參都是變量時,存在兩種參數(shù)
33、傳遞方式:值傳遞與地址傳遞。值傳遞只能把實參的值傳給形參,是“單向傳遞”。地址傳遞能在實參與形參之間實現(xiàn)參數(shù)的“雙向傳遞”,不但將實參的值傳給形參,形參的值也可以傳給實參。,8.5.2 sub過程,sub 過程是包含在 sub 和 end sub 之間的一組代碼,調(diào)用sub過程時只執(zhí)行其中的操作,不返回值。 1定義sub過程的格式 sub過程名(形參1 as 數(shù)據(jù)類型,形參2 as 數(shù)據(jù)類型,) 語句序列 end sub 2調(diào)用sub過程 格式1:call 過程名(實參1 ,實參2,) 格式2:過程名 實參1,實參2,,3說明 (1)參數(shù)之間用逗號分隔,對應的形參與實參之間要類型匹配。 (2)
34、用格式1調(diào)用sub過程必須加括號,用格式2調(diào)用sub過程不加括號。 (3)用 exit sub 語句立即從 sub 過程中退出。 (4)定義sub過程時即使無任何參數(shù),也必須包含空括號()。 (5)sub之前可以用public或private或static定義過程作用域。 (6)標準模塊中的過程可以被所有對象調(diào)用,類模塊中的過程只在本模塊中有效。,例:sub過程練習,(1)建2個文本框名稱分別為t1和t2附加標簽標題分別為“輸入矩形長:”和“輸入矩形寬:”。 (2)建命令按鈕名稱為c1標題為“計算”。 (3)建立標準模塊 以“過程模塊”為名保存模塊。 (4)在“過程模塊”中定義jxmj過程,代
35、碼如下: Public Sub jxmj (h As Integer, w As Integer) Dim s As Integer s = h * w 計算矩形面積 MsgBox 矩形面積為: & s 顯示矩形面積 End Sub,(5)命令按鈕c1的click事件代碼: Dim a1 As Integer, a2 As Integer a1 = t1:a2 = t2 Call jxmj (a1, a2) 用格式1調(diào)用sub模塊 (6)轉(zhuǎn)到窗體視圖輸入矩形長和寬單擊“計算”按鈕。,8.5.3 function過程,1定義function過程的格式 function過程名(形參1,形參2,)as 數(shù)據(jù)類型 語句序列 過程名=表達式 end function 2調(diào)用f
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療培訓中的教育技術工具應用
- 教育法律法規(guī)在課外輔導機構的應用
- 股骨髁上骨折護理查房
- 板材貨場規(guī)劃方案
- 教育信息化助力學校辦公現(xiàn)代化
- 人防工程消防管制方案
- 醫(yī)療輔助型教育機器人的發(fā)展趨勢
- 商業(yè)培訓中的游戲化策略提升團隊凝聚力
- 醫(yī)療教育中生命教育的政策研究
- 醫(yī)療教育中游戲化寓教于樂的實踐案例
- 專班日常管理制度
- 弘揚家風文化班會課件
- 推動高??蒲信c產(chǎn)業(yè)創(chuàng)新深度融合的策略及實施路徑
- 云南省昆明市2023-2024學年七年級下學期7月期末考試數(shù)學試題(含答案)
- 主管護師《專業(yè)知識》考試真題及答案(2025年新版)
- 2025年下半年佛山市圖書館招考工作人員易考易錯模擬試題(共500題)試卷后附參考答案
- 社區(qū)社會工作課件
- 《國際貿(mào)易理論與實務》考試復習題庫(含答案)
- 浙江省杭州市拱墅區(qū)2025年中考英語一模試卷(含筆試答案無聽力答案、原文及音頻)
- 2025-2030全球及中國綜合設施管理(IFM)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 公路工程標準施工招標文件第八章-工程量清單計量規(guī)則(2018年版)
評論
0/150
提交評論