模塊的設(shè)計與使用_第1頁
模塊的設(shè)計與使用_第2頁
模塊的設(shè)計與使用_第3頁
模塊的設(shè)計與使用_第4頁
模塊的設(shè)計與使用_第5頁
已閱讀5頁,還剩187頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ACCESS數(shù)據(jù)庫技術(shù)與應(yīng)用第9章模塊的設(shè)計與使用現(xiàn)在是1頁\一共有192頁\編輯于星期六

模塊的基本概念VBA程序設(shè)計基礎(chǔ)VBA函數(shù)的使用

模塊的建立與使用

過程與參數(shù)傳遞本章要點:現(xiàn)在是2頁\一共有192頁\編輯于星期六

9.1模塊概述模塊是一個或多個過程組成的集合,用模塊的名字存儲在一起,其中的每個過程都能實現(xiàn)特定操作。

模塊是由聲明、語句和過程組成的集合,以VBA(VisualBasicforApplication)語言編寫,作為一個已命名的單元存儲在一起?,F(xiàn)在是3頁\一共有192頁\編輯于星期六(1)模塊:模塊由一個或多個過程組成,每個過程實現(xiàn)一個或幾個功能。模塊的執(zhí)行通過特定事件激發(fā)相應(yīng)的事件過程實現(xiàn)。(2)模塊有2種類型:類模塊和標(biāo)準(zhǔn)模塊。使用模塊可以在實際開發(fā)中實現(xiàn)較為復(fù)雜的功能。類模塊:類模塊是包含代碼和數(shù)據(jù)的集合,可以看作是沒有物理表示的控件,總是與某一特定的窗體或報表相關(guān)聯(lián)。窗體模塊和報表模塊都屬于類模塊。標(biāo)準(zhǔn)模塊:標(biāo)準(zhǔn)模塊是代碼的集合,包含的過程不與任何其他對象相關(guān)聯(lián),是數(shù)據(jù)庫對象使用的公共過程,保存在數(shù)據(jù)庫窗口中。模塊的基本概念

現(xiàn)在是4頁\一共有192頁\編輯于星期六(3)事件過程:事件過程是專為特定事件編寫的一組代碼,被窗體或報表的特定事件調(diào)用,實現(xiàn)特定的操作,并對用戶的操作做出響應(yīng)。事件過程只能在類模塊中定義。(4)通用過程:通用過程是與特定事件無關(guān)的一組代碼,能被多個同類型或不同類型的事件調(diào)用。在類模塊和標(biāo)準(zhǔn)模塊中都可以定義通用過程。模塊的基本概念現(xiàn)在是5頁\一共有192頁\編輯于星期六類模塊的建立。例9.1:窗體中建立標(biāo)簽,單擊標(biāo)簽顯示問候信息。(1)新建名為win9-1的窗體。(2)窗體中建立標(biāo)簽→標(biāo)簽“標(biāo)題”為:問候→標(biāo)簽“名稱”為:hello→背景色:淡黃色→邊框顏色:黑色。(3)右擊標(biāo)簽控件→快捷菜單中選:事件生成器→在【選擇生成器】對話框中選:代碼生成器→【確定】。模塊的基本概念現(xiàn)在是6頁\一共有192頁\編輯于星期六(4)在事件過程中輸入代碼:MsgBox“你好!”。模塊的基本概念(5)轉(zhuǎn)到窗體視圖,單擊標(biāo)簽顯示問候信息。現(xiàn)在是7頁\一共有192頁\編輯于星期六標(biāo)準(zhǔn)模塊的建立例9.2:建立標(biāo)準(zhǔn)模塊,在標(biāo)準(zhǔn)模塊中建立一個通用過程,運行過程顯示問候信息。(1)單擊“模塊”對象→單擊“新建”按鈕。(2)輸入:subhello()→回車,回車后系統(tǒng)自動建立過程的起始行subhello()與過程的結(jié)束行endsub。模塊的基本概念現(xiàn)在是8頁\一共有192頁\編輯于星期六例9.2:建立標(biāo)準(zhǔn)模塊,在標(biāo)準(zhǔn)模塊中建立一個通用過程,運行過程顯示問候信息。(1)單擊“模塊”對象→單擊【新建】按鈕。(2)輸入:subhello()→回車,回車后系統(tǒng)自動建立過程的起始行subhello()與過程的結(jié)束行endsub。(3)在subhello()與endsub之間輸入:MsgBox"你好!"。模塊的基本概念(4)單擊【保存】按鈕→為模塊起名:模塊1→單擊【確定】。(5)【運行】菜單→【運行子過程】,數(shù)據(jù)庫窗口顯示問候信息?,F(xiàn)在是9頁\一共有192頁\編輯于星期六VBE(VisualBasicEditor)是Access的編程界面,也是MicrosoftOffice所有組件公用的程序編輯系統(tǒng),編寫和調(diào)試代碼在VBE窗口進(jìn)行。編程界面方法1:在窗體或報表設(shè)計視圖中選控件→單擊標(biāo)準(zhǔn)工具欄的“生成器”按鈕→在“選擇生成器”對話框中選擇“代碼生成器”。方法2:右擊窗體或報表設(shè)計視圖中控件→快捷菜單中選“事件生成器”→“選擇生成器”對話框中選擇代碼生成器”。

現(xiàn)在是10頁\一共有192頁\編輯于星期六編程界面工程窗口-選擇對象屬性窗口-選擇對象的屬性代碼窗口選擇事件現(xiàn)在是11頁\一共有192頁\編輯于星期六(1)代碼窗口

代碼窗口用來顯示、編寫以及修改VBA代碼。對象框過程框編程界面代碼區(qū)聲明區(qū)現(xiàn)在是12頁\一共有192頁\編輯于星期六(2)

“工程資源管理器”窗口也稱工程窗口,一個數(shù)據(jù)庫應(yīng)用系統(tǒng)就是一個工程;系統(tǒng)中的所有類模塊及標(biāo)準(zhǔn)模塊對象都在該窗口中顯示出來。編程界面標(biāo)準(zhǔn)模塊類模塊現(xiàn)在是13頁\一共有192頁\編輯于星期六(3)屬性窗口

屬性窗口列出了選定對象的屬性,可以在設(shè)計時查看、改變這些屬性。編程界面現(xiàn)在是14頁\一共有192頁\編輯于星期六(4)標(biāo)準(zhǔn)工具欄編程界面(1)“Access視圖”按鈕

,單擊按鈕由VBE窗口切換到數(shù)據(jù)庫窗口。(2)“插入模塊”按鈕

,單擊下拉箭頭選擇要插入模塊的類型,打開一個新模塊窗口。(3)“運行子過程/用戶窗體”按鈕

,單擊按鈕運行標(biāo)準(zhǔn)模塊的過程?,F(xiàn)在是15頁\一共有192頁\編輯于星期六編程界面(4)“中斷”按鈕

,單擊按鈕暫停正在運行的程序。(5)“重新設(shè)置”按鈕

,單擊按鈕結(jié)束正在運行的程序(6)“設(shè)計模式”按鈕

,單擊按鈕打開或退出模塊的設(shè)計模式,是開關(guān)鍵。(7)“工程資源管理器”按鈕

,單擊按鈕打開“工程資源管理器”窗口。(8)“屬性窗口”按鈕

,單擊按鈕打開“屬性”窗口。現(xiàn)在是16頁\一共有192頁\編輯于星期六9.2數(shù)據(jù)類型、常量和變量VBA(VisualBasicforApplication)是MicrosoftOffice系列軟件的內(nèi)置編程語言,VBA的語法與獨立運行的VisualBasic編程語言互相兼容,也是面向?qū)ο蟮某绦蛟O(shè)計語言,功能強(qiáng)大,具有可視化編程環(huán)境。程序是對數(shù)據(jù)進(jìn)行處理的。現(xiàn)在是17頁\一共有192頁\編輯于星期六VBA在數(shù)據(jù)類型和定義方式上均繼承了傳統(tǒng)的Basic語言的特點。Access數(shù)據(jù)表中的字段使用的數(shù)據(jù)(OLE對象和備注字段數(shù)據(jù)類型除外)在VBA中都有對應(yīng)的類型。在VBA中,數(shù)據(jù)類型用來決定變量可以保存何種數(shù)據(jù)。VBA支持多種數(shù)據(jù)類型,為用戶編程提供了方便。數(shù)據(jù)類型——標(biāo)準(zhǔn)數(shù)據(jù)類型

現(xiàn)在是18頁\一共有192頁\編輯于星期六數(shù)據(jù)類型——標(biāo)準(zhǔn)數(shù)據(jù)類型

VBA類型符號字段類型取值范圍字節(jié)數(shù)Byte字節(jié)0~255之間的整數(shù)1Integer%整型-32768~32767之間的整數(shù)2Long&長整型-2147483648~2147483647之間的整數(shù)4Single!單精度負(fù)數(shù):-3.402823E38~-1.401298E-45正數(shù):1.401298E-45~3.402823E384Double#雙精度負(fù)數(shù):-1.79769313486232E308~-4.94065645841247E-324正數(shù):4.94065645841247E-324~1.79769313486232E3088Currency@貨幣-922337203685477.5808~922337203685477.58078String$文本0~65535個字符Boolean是/否true或false1Date日期/時間January1,100到December31,99998Variant無現(xiàn)在是19頁\一共有192頁\編輯于星期六數(shù)據(jù)類型2.默認(rèn)值變體類型Variant,是VBA的默認(rèn)數(shù)據(jù)類型,凡是沒有定義數(shù)據(jù)類型變量,都被默認(rèn)為變體類型。變體型變量默認(rèn)值為empty。Boolean型,也稱為邏輯型,只有2個值:真(true)和假(false)。布爾型變量默認(rèn)值為false。字符串類型String,用單引號或雙引號括起來的一組字符,每個字符占1個字節(jié)。字符串型變量默認(rèn)值為空串。與數(shù)字有關(guān)的數(shù)據(jù)類型,默認(rèn)值為0?,F(xiàn)在是20頁\一共有192頁\編輯于星期六3.數(shù)據(jù)類型轉(zhuǎn)換函數(shù)函數(shù)轉(zhuǎn)換后類型說明CByte(x)Bytex取值范圍同Byte,小數(shù)部分四舍五入,超出范圍顯示“溢出”CInt(x)Integerx取值范圍同Integer,小數(shù)部分四舍五入CLng(x)Longx取值范圍同Long,小數(shù)部分四舍五入CSng(x)Singlex取值范圍同SingleCDblDoublex取值范圍同DoubleCCurCurrencyx取值范圍同CurrencyCBool(x)Booleanx取值范圍是任何有效數(shù)字或字串CDate(x)Datex取值范圍是任何有效日期表達(dá)式CStr(x)String無CVar(x)Variantx如果是數(shù)值范圍同Double,否則,與String相同數(shù)據(jù)類型現(xiàn)在是21頁\一共有192頁\編輯于星期六常量常量是指在程序運行的過程中,其值不能被改變的量。在Access中,常量的類型有3種:直接常量、符號常量、系統(tǒng)常量(1)直接常量(字面常量)

如:10,20%(整型),123.0,345#(雙精度),345.12@(貨幣型),#2010-9-10#

(日期型),“VBA程序設(shè)計”等現(xiàn)在是22頁\一共有192頁\編輯于星期六(2)符號常量

在程序中,某個常量多次被使用,則可以使用一個符號來代替該常量,這樣不僅在書寫上方便,而且有效地改進(jìn)了程序的可讀性和可維護(hù)性。

VBA中使用關(guān)鍵字Const

聲明符號常量。其格式如下:

Const常量名常數(shù)表達(dá)式如:

Const

PI#=3.1415926常量現(xiàn)在是23頁\一共有192頁\編輯于星期六說明:符號常量名一般用大寫字母,以便與變量名區(qū)分。如果符號常量定義在模塊聲明區(qū),所有模塊的過程都能使用該變量,通常在前面加上Global或Public。

如:PublicConstPI=3.14如果符號常量定義在事件的過程中,該符號常量只在本過程中可用。符號常量定義時不用指明數(shù)據(jù)類型。常量現(xiàn)在是24頁\一共有192頁\編輯于星期六(3)系統(tǒng)常量系統(tǒng)建立的常量,如:true、false、yes、no、on、off、null等。系統(tǒng)常量可以在程序設(shè)計中直接使用。

內(nèi)部符號常量用前兩個字母指明該常量的對象庫;以ac開頭的是Access的庫常量;以vb開頭的是VBA的庫常量;以db開頭的是DAO的庫常量;以ad開頭的是ADO的庫常量。

常量現(xiàn)在是25頁\一共有192頁\編輯于星期六變量是指在程序運行過程中值會發(fā)生變化的數(shù)據(jù)。變量的三要素:變量名、變量類型、變量的值。1.變量命名規(guī)則由字母、數(shù)字、下劃線組成,用英文字母開頭。不能包含空格以及除下劃線之外的標(biāo)點符號。不能用VBA的關(guān)鍵字(如:dim)。字符個數(shù)不得多于255個。變量名不區(qū)分大小寫。變量名必須惟一,同一個過程不能有2個變量有相同的名字。

變量

現(xiàn)在是26頁\一共有192頁\編輯于星期六2.變量的顯式聲明

顯式聲明變量的格式:dim

變量名as

類型說明:(1)如果省略“as類型”,默認(rèn)變體類型,變體類型比其他類型占用更多內(nèi)存資源。(2)一個dim關(guān)鍵字可以定義多個變量,變量之間用逗號分隔。例如:dima1asinteger,a2asboolean(3)用dim定義的變量是局部變量,系統(tǒng)按照數(shù)據(jù)類型自動設(shè)置默認(rèn)值。變量

現(xiàn)在是27頁\一共有192頁\編輯于星期六3.變量的隱式聲明

變量沒有顯式聲明,而是通過一個值指定給變量名,稱為變量的隱式聲明。隱式聲明變量類型,不加類型說明符,變量默認(rèn)為變體類型。例如:b1%=125

‘隱式聲明變量b1是整型。

c1=125’變量c1是變體型,值是125變量

現(xiàn)在是28頁\一共有192頁\編輯于星期六例9.3程序中變量和符號常量的使用要求:建立窗口win9-3,在文本框中輸入字符串,回車后顯示為標(biāo)簽和窗體的標(biāo)題。(1)新建窗體win9-3。(2)窗體中建立文本框→“名稱”為t1。(3)窗體中建立標(biāo)簽→“名稱”為b1→“標(biāo)題”為b1。(4)進(jìn)入VBE界面→在“通用-聲明”中輸入代碼:ConstPP="你好!"→回車。

變量

現(xiàn)在是29頁\一共有192頁\編輯于星期六(5)選t1→事件選:AfterUpdate→輸入代碼如下:

Rem文本框t1的更新后事件過程b1.Caption=PP+t1Me.Caption=PP+t1

變量

(6)轉(zhuǎn)到窗體視圖→在文本框中輸入:張國華→回車,標(biāo)簽和窗體的標(biāo)題均顯示字符串“你好!張國華”。

現(xiàn)在是30頁\一共有192頁\編輯于星期六VBA中的運算符可分為4種類型:算術(shù)運算符、字符串運算符、關(guān)系運算符和邏輯運算符。(1)算術(shù)運算符算術(shù)運算符是常用的運算符,用來執(zhí)行簡單的算術(shù)運算,VBA提供了8個算術(shù)運算符。

乘冪(^)、負(fù)數(shù)(-)乘法(*)、除法(/)、整數(shù)除法(\)、求模(mod)、加法(+)、減法(-)。運算符與表達(dá)式現(xiàn)在是31頁\一共有192頁\編輯于星期六(1)算術(shù)運算符運算符與表達(dá)式現(xiàn)在是32頁\一共有192頁\編輯于星期六(2)關(guān)系運算符將兩個操作數(shù)進(jìn)行大小比較,結(jié)果為邏輯值,即真(True)或假(False)。相等=、不相等<>、大于>、大于等于>=、小于<、小于等于<=。注意:

字符串比較,則按字符的ASCII碼值從左到右一一比較,直到出現(xiàn)不同的字符為止。運算符與表達(dá)式現(xiàn)在是33頁\一共有192頁\編輯于星期六(2)關(guān)系運算符運算符與表達(dá)式現(xiàn)在是34頁\一共有192頁\編輯于星期六將操作數(shù)進(jìn)行邏輯運算,結(jié)果是邏輯值。與and、或or、非not。(3)邏輯運算符運算符與表達(dá)式現(xiàn)在是35頁\一共有192頁\編輯于星期六(4)連接運算符

字符串運算就是將兩個字符串連接起來生成一個新的字符串。 字符串運算符包括:

&運算符

+運算符運算符與表達(dá)式現(xiàn)在是36頁\一共有192頁\編輯于星期六●

&運算符:

將兩個不同類型的數(shù)據(jù)(表達(dá)式的值)作字符串連接。例如:1&“+”&2&“等于”&1+2‘結(jié)果為:“1+2等于3”注意:由于符號“&”還是長整型的類型定義符,在字符串變量后使用運算符“&”時,變量與運算符“&”之間應(yīng)加一個空格。運算符“&”兩邊的操作數(shù)可以是字符型,也可以是數(shù)值型。例如:12&56‘結(jié)果為“1256”運算符與表達(dá)式現(xiàn)在是37頁\一共有192頁\編輯于星期六●+運算符:

用來連接兩個字符串表達(dá)式,形成一個新的字符串。注意:“+”運算符要求兩邊的操作數(shù)都是字符串。

【例】“+”運算符應(yīng)用示例。 “4321”+1234‘結(jié)果為數(shù)值:5555 “4321”+“1234” ‘結(jié)果為"43211234" "abcd"+1234'出錯

4321+“1234”&100 ‘結(jié)果為"5555100"運算符與表達(dá)式現(xiàn)在是38頁\一共有192頁\編輯于星期六5.對象運算符

對象運算符有“!”和“.”兩種。(1)“!”運算符:作用是指定隨后為用戶引用的內(nèi)容。使用“!”運算符可以引用一個開啟的窗體、報表或開啟窗體或報表中的控件。例如:引用打開的“學(xué)生信息”窗體。

forms![學(xué)生信息]

引用“學(xué)生成績”窗體中的名稱為t1的控件。

forms![學(xué)生成績]!t1

運算符與表達(dá)式現(xiàn)在是39頁\一共有192頁\編輯于星期六5.對象運算符

(2)“.”運算符:通常為對象指定相應(yīng)的值或內(nèi)容。使用“.”運算符可以引用窗體、報表或控件等對象的屬性。例如:將“學(xué)生信息”窗體中名稱為Lab的標(biāo)簽的文字的顏色設(shè)置為紅色。

forms![學(xué)生信息]!Lab.forecolor=255

運算符與表達(dá)式現(xiàn)在是40頁\一共有192頁\編輯于星期六6.運算優(yōu)先級(1)算術(shù)運算符的優(yōu)先級:冪>取負(fù)>乘和除>整數(shù)除法>求模>加和減。(2)關(guān)系運算符的優(yōu)先級相同,同級運算按從左到右方向進(jìn)行。(3)邏輯運算符的優(yōu)先級:not>and>or。(4)連接運算符的優(yōu)先級相同。

算術(shù)運算符>連接運算符>關(guān)系運算符>邏輯運算運算符與表達(dá)式現(xiàn)在是41頁\一共有192頁\編輯于星期六函數(shù)實際上是系統(tǒng)事先定義好的內(nèi)部程序,用來完成特定的功能。VBA提供了大量的內(nèi)部函數(shù),供用戶在編程時使用。函數(shù)的調(diào)用形式為:函數(shù)名(參數(shù)表)其中,參數(shù)可以是常量、變量或表達(dá)式,可以有一個或多個,參數(shù)之間用逗號分隔。每個函數(shù)被調(diào)用時,都會有一個返回值。根據(jù)函數(shù)的不同,參數(shù)與返回值都有特定的數(shù)據(jù)類型與之對應(yīng)。9.3內(nèi)置函數(shù)

現(xiàn)在是42頁\一共有192頁\編輯于星期六1.常用算術(shù)函數(shù)

算術(shù)函數(shù)主要包括:求絕對值、取整、產(chǎn)生隨機(jī)數(shù)等。

算術(shù)函數(shù)

函數(shù)功能說明abs(x)返回x的絕對值x是任意實數(shù)int(x)返回x的整數(shù)部分返回值小于等于xfix(x)返回x的整數(shù)部分x<0時,返回值大于等于xsqr(x)返回x的平方根要求x大于等于0rnd(x)返回0~1之間的隨機(jī)數(shù)為單精度類型,不包含0和1round(x,n)返回有n位小數(shù)的xn是小數(shù)位數(shù),n位以后的數(shù)四舍五入現(xiàn)在是43頁\一共有192頁\編輯于星期六2.隨機(jī)函數(shù)關(guān)于隨機(jī)函數(shù)說明如下:(1)若x>0,每次產(chǎn)生不同的隨機(jī)數(shù)。x>0時可直接寫Rnd,省略括號和參數(shù)。(2)若x=0,產(chǎn)生與最近隨機(jī)數(shù)相同的數(shù)。(3)若x<0,先產(chǎn)生一個不同的隨機(jī)數(shù),以后每次產(chǎn)生與前一個相同的數(shù)。

算術(shù)函數(shù)

現(xiàn)在是44頁\一共有192頁\編輯于星期六3.函數(shù)驗證用立即窗口驗證下列表達(dá)式:?int(100*Rnd)’產(chǎn)生0~99之間的隨機(jī)整數(shù)。?int(101*Rnd)’產(chǎn)生0~100之間的隨機(jī)整數(shù)。?int(100*Rnd+1)’產(chǎn)生1~100之間的隨機(jī)整數(shù)。?int(101*Rnd+100)’產(chǎn)生100~200之間的隨機(jī)整數(shù)。

算術(shù)函數(shù)

現(xiàn)在是45頁\一共有192頁\編輯于星期六字符串函數(shù)

字符串函數(shù)主要包括:求字符串長度、求子字符串、測定子字符串位置等。

1.常用字符串函數(shù)

函數(shù)功能說明len(x)返回x的長度x為字符串或變量space(x)返回x個空格組成的字符串x為數(shù)字ucase(x)將x中的小寫字母轉(zhuǎn)大寫x為字符串lcase(x)將x中的大寫字母轉(zhuǎn)小寫x為字符串trim(x)去掉x的首部和尾部空格x為字符串現(xiàn)在是46頁\一共有192頁\編輯于星期六字符串函數(shù)

1.常用字符串函數(shù)

函數(shù)功能說明ltrim(x)去掉x的首部空格x為字符串rtrim(x)去掉x的尾部空格x為字符串left(x,n)從x左邊開始取n個字符,得到子字符串x為字符串right(x,n)從x右邊開始取n個字符,得到子字符串x為字符串mid(x,m,n)從x第m個字符開始取n個字符x為字符串instr(x,y)返回y在x中的位置x和y均為字符串現(xiàn)在是47頁\一共有192頁\編輯于星期六字符串函數(shù)

2.instr()函數(shù)格式:instr(起始位置,字串1,字串2,比較方式)功能:返回字串2在字串1中最早出現(xiàn)的位置。說明:(1)返回值是一個整數(shù)。如果返回值為0,說明字符串2不在字符串1中。(2)起始位置是可選項,默認(rèn)從第一個字符開始檢索。(3)比較方式是可選項,0:按區(qū)分大小寫比較;1:按不區(qū)分大小寫比較;1:是默認(rèn)值?,F(xiàn)在是48頁\一共有192頁\編輯于星期六字符串函數(shù)

3.函數(shù)驗證?ucase("abcdABCD")返回“ABCDABCD”。?lcase("abcdABCD")返回“abcdabcd”。?trim("ABCD")返回“ABCD”,只處理兩端空格,中間空格不做處理。?len("2010年計算機(jī)等級考試")返回12,一個漢字當(dāng)作一個字符。x=123

回車后把123賦給變量x。?Len(x)返回3,len函數(shù)可以返回數(shù)字變量所含的數(shù)字個數(shù)。?instr(1,"abcABC","A",0)返回4,按區(qū)分大小寫比較。?instr(1,"abcABC","A",1)返回1,按不區(qū)分大小寫比較。?instr(“abcABC”,"A")返回1,使用默認(rèn)值?,F(xiàn)在是49頁\一共有192頁\編輯于星期六1.常用日期時間函數(shù)日期時間函數(shù)

函數(shù)功能說明weekday(x,n)返回1~7的整數(shù),表示星期幾x為日期值hour(x)返回x的小時數(shù)x為時間值minute(x)返回x的分鐘數(shù)x為時間值second(x)返回x的秒數(shù)x為時間值date()返回計算機(jī)系統(tǒng)日期函數(shù)無參數(shù)now()返回計算機(jī)系統(tǒng)日期和時間函數(shù)無參數(shù)year(x)返回x的年份x為日期值month(x)返回x的月份x為日期值day(x)返回x的日期號碼x為日期值現(xiàn)在是50頁\一共有192頁\編輯于星期六2.weekday()函數(shù)格式:weekday(x,n)功能:返回1~7的整數(shù),表示星期幾。說明:(1)x是日期數(shù)據(jù),n為可選項,默認(rèn)1。(2)若n為1,星期天返回1,星期一返回2,…,依次類推。若n為2,星期一返回1,星期二返回2,…,依次類推。3.函數(shù)驗證?weekday(date,2)如果當(dāng)前是星期二,返回數(shù)字2。

日期時間函數(shù)

現(xiàn)在是51頁\一共有192頁\編輯于星期六1.常用轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù)函數(shù)功能說明asc(x)返回x首字符的ASCII碼x是字符串或字符串變量名chr(x)返回數(shù)字x對應(yīng)的字符x為數(shù)字,ASCII碼str(x)將x轉(zhuǎn)成字符串x為數(shù)字序列val(x)將x轉(zhuǎn)換為數(shù)字x是數(shù)字字符組成的字符串現(xiàn)在是52頁\一共有192頁\編輯于星期六2.函數(shù)驗證?asc("ABC")‘返回65,大寫字母A的ASCII碼是65。?asc("a")‘返回97,小寫字母a的ASCII碼是97。?asc(“0”)‘返回48,字符0的ASCII碼是48。?chr(66)‘返回大寫字母B。?chr(50)‘返回數(shù)字字符2。?str(12)+str(34)‘返回字符串“1234”,12和34前均有一個空格,字符串長度6。?val("12")+val("34")‘返回數(shù)值46。?val("12")‘返回數(shù)值12。?val("12ab34")‘返回數(shù)值12。轉(zhuǎn)換函數(shù)現(xiàn)在是53頁\一共有192頁\編輯于星期六輸入函數(shù)與輸出函數(shù)1.輸入函數(shù)inputbox格式:inputbox("提示信息","標(biāo)題",默認(rèn)值)功能:提示用戶輸入一個字符串或數(shù)值。說明:(1)“提示信息”是一個字符串,顯示在對話框窗口中,必選項。(2)“標(biāo)題”是一個字符串,顯示在對話框窗口標(biāo)題欄中,可選項,省略此項,標(biāo)題欄將顯示應(yīng)用程序名。(3)默認(rèn)值可以是字串或數(shù)字,可選項,指定的默認(rèn)值顯示在對話框的輸入框中。(4)函數(shù)返回值是在輸入框中輸入的數(shù)字或字符串,返回值的類型為string?,F(xiàn)在是54頁\一共有192頁\編輯于星期六輸入函數(shù)與輸出函數(shù)2.輸出函數(shù)MsgBox格式:msgbox("信息",按鈕+圖標(biāo),"標(biāo)題")功能:顯示一個消息框。說明:(1)“信息”是一個字符串,顯示在消息框中,必選項,最大長度為1024個字符,可以用Chr(13)(回車)或Chr(10)(換行)將消息框中字符串分行顯示。(2)格式中的“按鈕”是一個數(shù)字或VB符號常量,用來定義消息框中按鈕個數(shù)和按鈕作用,可選項,默認(rèn)值為0?,F(xiàn)在是55頁\一共有192頁\編輯于星期六輸入函數(shù)與輸出函數(shù)(3)格式中的“圖標(biāo)”是一個數(shù)字或VB符號常量,配合消息顯示在消息框中,起警示作用,可選項。按鈕取值符號常量按鈕個數(shù)和作用0VbOKOnly只顯示確定按鈕,是默認(rèn)值。1VbOKCancel顯示確定、取消按鈕。2VbAbortRetryIgnore顯示終止、重試、忽略按鈕。3VbYesNoCancel顯示是、否、取消按鈕。4VbYesNo顯示是、否按鈕。5VbRetryCancel顯示重試、取消按鈕。圖標(biāo)取值符號常量圖標(biāo)樣式說明16VbCritical顯示臨界信息圖標(biāo)。圓圈中間有叉號32VbQuestion顯示查詢圖標(biāo)。圓圈中間有問號48VbExclamation顯示警告圖標(biāo)。三角形中間有嘆號64VbInformation顯示消息圖標(biāo)。標(biāo)注圓圈中間有倒立的嘆號現(xiàn)在是56頁\一共有192頁\編輯于星期六輸入函數(shù)與輸出函數(shù)說明:“按鈕+圖標(biāo)”項可以在輸入代碼時從提示框中選取系統(tǒng)提供的vb符號常量。例如:MsgBox"要退出嗎?",vbYesNo+vbQuestion,"確認(rèn)",代碼使用vb符號常量定義消息框的按鈕和圖標(biāo),顯示結(jié)果(4)“標(biāo)題”是一個字符串,可選項,省略此項,標(biāo)題欄顯示應(yīng)用程序名。(5)函數(shù)返回值是整數(shù)或vb符號常量,反映了用戶在消息框中單擊的按鈕

.返回值符號常量單擊的按鈕1VbOK“確定”按鈕2VbCancel“取消”按鈕3VbAbort“終止”按鈕4VbRetry“重試”按鈕5VbIgnore“忽略”按鈕6VbYes“是”按鈕7VbNo“否”按鈕現(xiàn)在是57頁\一共有192頁\編輯于星期六輸入函數(shù)與輸出函數(shù)輸入輸出函數(shù)的使用

例9-4:用輸入函數(shù)輸入數(shù)據(jù),用輸出函數(shù)顯示相加的結(jié)果。(1)新建窗體win9-4。(2)窗體中建立2個命令按鈕→“標(biāo)題”分別為:c1、c2→“名稱”分別為:c1、c2。(3)按鈕c1的click事件代碼如下:

a=InputBox("請輸入

a=")'a是變體類型

b=InputBox("請輸入

b=")'b是變體類型

c=MsgBox(“表達(dá)式a+b="&a+b,1+64,"輸出框")

現(xiàn)在是58頁\一共有192頁\編輯于星期六輸入函數(shù)與輸出函數(shù)(4)按鈕c2的click事件代碼如下:

Dimaasinteger,basintegera=InputBox("請輸入

a=")'a是整型

b=InputBox("請輸入

b=")'b是整型

c=MsgBox(“表達(dá)式a+b="&a+b,1+64,"輸出框")(5)轉(zhuǎn)到窗體視圖→單擊命令按鈕c1→第1個輸入框中輸入6→【確定】→第2個輸入框中輸入3→【確定】。(6)顯示第1個消息框,信息為:a+b=63,這是字符相連

現(xiàn)在是59頁\一共有192頁\編輯于星期六輸入函數(shù)與輸出函數(shù)(7)單擊【取消】按鈕→顯示第2個消息框,信息是前一個消息框單擊按鈕的返回值,因為單擊了【取消】按鈕,返回值是2。(8)單擊命令按鈕c2→第1個輸入框中輸入6→【確定】→第2個輸入框中輸入3→【確定】→顯示消息框,信息為:a+b=9,這是數(shù)字相加。

現(xiàn)在是60頁\一共有192頁\編輯于星期六聚合函數(shù)

聚合函數(shù)包括:Dcount、Davg、Dsum、Dmax、Dmin、Dlookup,用來顯示非數(shù)據(jù)源的信息,聚合函數(shù)也可以在代碼中使用。例9-5:建立有2個文本框的窗體,第1個文本框輸入數(shù)據(jù),第2個文本框顯示用DLookup函數(shù)檢索的相應(yīng)值。(1)新建窗體win9-5。(2)用數(shù)據(jù)表視圖打開“課程”表。(3)建立2個文本框→“名稱”分別為:t1、t2→附加標(biāo)簽的“標(biāo)題”分別為:輸出課程名(101-105)、課程名。

現(xiàn)在是61頁\一共有192頁\編輯于星期六聚合函數(shù)

(4)建立命令按鈕→“標(biāo)題”為:確定→“名稱”為:c1。(5)命令按鈕c1的click事件代碼如下:t2=DLookup("課程名","課程","課程編號=t1")(6)轉(zhuǎn)到窗體視圖→在文本框t1中輸入103→單擊【確定】→課程名顯示在文本框t2中。

現(xiàn)在是62頁\一共有192頁\編輯于星期六函數(shù)Nz函數(shù)可以將Null值轉(zhuǎn)換為數(shù)字0、空字串或自定義的返回值,用來測試可能包含Null值的表達(dá)式。格式:Nz(變量/表達(dá)式/字段屬性名[,指定值])說明:(1)若被Nz函數(shù)測試的數(shù)據(jù)不為空,函數(shù)原樣返回數(shù)據(jù)值。(2)若被Nz函數(shù)測試的數(shù)據(jù)為空,數(shù)字型數(shù)據(jù)返回0,字符串型數(shù)據(jù)返回空串。(3)若設(shè)置了指定值,并且被測試的數(shù)據(jù)為空,函數(shù)返回指定值,是可選項。

現(xiàn)在是63頁\一共有192頁\編輯于星期六例9-6:建立有1個文本框的窗體,用Nz函數(shù)測試文本框的值。(1)新建窗體win9-6。(2)窗體中建立文本框→“名稱”為:t1→附加標(biāo)簽的“標(biāo)題”為:輸入姓名。(3)窗體中建立命令按鈕→“標(biāo)題”為:確定→“名稱”為:c1。(4)按鈕c1的click事件代碼如下:DimaaAsStringaa=Nz(t1.Value,"姓名不能為空!")MsgBoxaa&"你好!"

函數(shù)現(xiàn)在是64頁\一共有192頁\編輯于星期六(5)轉(zhuǎn)到窗體視圖,文本框空著,單擊命令按鈕,結(jié)果:函數(shù)(6)在文本框輸入字串“張國華”,單擊命令按鈕,顯示結(jié)果:

現(xiàn)在是65頁\一共有192頁\編輯于星期六9.4面向?qū)ο蟪绦蛟O(shè)計基本概念基本概念(1)對象在自然界中,一個對象就是一個實體,如一輛汽車就是一個對象。在面向?qū)ο蟮某绦蛟O(shè)計中,對象代表應(yīng)用程序中的元素,如表、窗體、按鈕等。(2)類類是某種類型對象的原型。Access數(shù)據(jù)庫窗口左邊的7個類對象:表、查詢、窗體、報表、頁、宏、模塊,應(yīng)該準(zhǔn)確的稱為7個對象類?,F(xiàn)在是66頁\一共有192頁\編輯于星期六基本概念(3)屬性屬性是對象的特征。如汽車有顏色和型號屬性,按鈕有標(biāo)題和名稱屬性。在面向?qū)ο蟮某绦蛟O(shè)計,如果在“屬性”窗口給對象定義屬性,稱為屬性的靜態(tài)設(shè)置。如果用代碼給對象設(shè)置屬性,稱為屬性的動態(tài)設(shè)置。用代碼給對象設(shè)置屬性的格式:對象名.屬性名=屬性值用代碼引用對象屬性的格式:對象名.屬性名例如:c1.forecolor=vbRed將命令按鈕c1的前景色設(shè)置為紅色。Msgboxme.caption顯示當(dāng)前窗體的標(biāo)題。現(xiàn)在是67頁\一共有192頁\編輯于星期六(4)事件事件是對象能夠識別的動作。如按鈕可以識別單擊事件、雙擊事件等。在類模塊每一個過程的開始行,都顯示對象名和事件名。如:PrivateSubc1_Click()。(5)方法方法是對象能夠執(zhí)行的動作,決定了對象能完成什么事。不同對象有不同的方法。如close方法能關(guān)閉一個窗體?;靖拍瞵F(xiàn)在是68頁\一共有192頁\編輯于星期六1.鍵盤事件過程鍵盤事件是指當(dāng)用戶在窗體或控件獲得焦點的情況下,按下鍵盤時(或者使用SendKeys操作或語句發(fā)送擊鍵信息)所發(fā)生的事件。2.鼠標(biāo)事件過程鼠標(biāo)事件是指當(dāng)用戶在窗體或控件獲得焦點的情況下,操作鼠標(biāo)時所引發(fā)的事件。鼠標(biāo)事件包含6個,最常用的是單擊事件(Click)和雙擊事件(DblClick)。常用事件過程現(xiàn)在是69頁\一共有192頁\編輯于星期六3.窗體事件過程窗體事件使用戶打開或關(guān)閉一個窗體時所觸發(fā)的事件。Open:在窗體已經(jīng)打開,但第一條記錄尚未顯示時,觸發(fā)Open事件。Load:窗體打開且顯示器中的記錄時觸發(fā)Load事件。Open事件與Load事件之間的顯著差別是:Open事件能被取消,而Load事件不能被取消。例如,如果在一個事件過程中窗體的Open事件動態(tài)地創(chuàng)建窗體的記錄源,尚無記錄可顯示,則可取消窗體的打開操作。Close:當(dāng)窗體被關(guān)閉并從屏幕消失時,觸發(fā)Close事件。Unload事件能夠被取消,但Close事件卻不能。常用事件過程現(xiàn)在是70頁\一共有192頁\編輯于星期六用代碼設(shè)置窗體屬性和事件1.關(guān)鍵字MeMe是VBA編程中使用頻率很高的關(guān)鍵字,Me是“包含這段代碼的對象”的簡稱,可以代表當(dāng)前對象。在類模塊中,Me代表當(dāng)前窗體或當(dāng)前報表。例如:=“生信息一覽表”------定義窗體中標(biāo)簽Lab的caption屬性。現(xiàn)在是71頁\一共有192頁\編輯于星期六用代碼設(shè)置窗體屬性和事件2.用代碼設(shè)置窗體屬性

主要包括:窗體標(biāo)題、窗體數(shù)據(jù)源、背景圖片等屬性。例9-7:窗體中建立文本框t1和命令按鈕c1,單擊命令按鈕完成以下3件事:(1)使窗體標(biāo)題顯示當(dāng)前日期。(2)在窗體中插入背景圖片。(3)設(shè)置窗體的數(shù)據(jù)源為“學(xué)生信息”表,將第一條記錄的姓名顯示在t1中?,F(xiàn)在是72頁\一共有192頁\編輯于星期六用代碼設(shè)置窗體屬性和事件(1)新建窗體win7。(2)窗體中建立文本框t1→命令按鈕c1→命令按鈕標(biāo)題為:設(shè)置。(3)右擊命令按鈕c1→【事件生成器】→【代碼生成器】→【確定】。(4)c1的click事件過程代碼如下:PrivateSubc1_Click()Me.Caption=Date()Me.Picture=CurrentProject.Path+"\a1.bmp"Me.RecordSource="學(xué)生信息"t1=[姓名]Endsub(5)轉(zhuǎn)到窗體視圖→單擊命令按鈕,顯示結(jié)果?,F(xiàn)在是73頁\一共有192頁\編輯于星期六用代碼設(shè)置窗體屬性和事件3.用代碼設(shè)置窗體事件常用窗體事件:(1)打開窗體會依次發(fā)生的事件:open(打開)→load(加載)。(2)關(guān)閉窗體會依次發(fā)生的事件:unload(卸載)→close(關(guān)閉)?,F(xiàn)在是74頁\一共有192頁\編輯于星期六用代碼設(shè)置窗體屬性和事件例9-8:給窗體4個事件寫代碼,觀查窗體事件的發(fā)生順序。(1)新建窗體“事件順序”。(2)打開【屬性】窗口→對象框選【窗體】→單擊【事件】卡。(3)事件選:打開→過程代碼:MsgBox"這是open事件!"。(4)事件選:加載→過程代碼:MsgBox"這是load事件!"。(5)事件選:卸載→過程代碼:MsgBox"這是unload事件!"。(6)事件選:關(guān)閉→過程代碼:MsgBox"這是close事件!"。(7)轉(zhuǎn)到窗體視圖,打開窗體時先發(fā)生open事件,再發(fā)生load事件。關(guān)閉窗體時先發(fā)生unload事件,再發(fā)生close事件。現(xiàn)在是75頁\一共有192頁\編輯于星期六Docmd是Access的一個特殊對象,用來調(diào)用內(nèi)置方法,在程序中實現(xiàn)對Access的操作,諸如打開窗口、關(guān)閉窗體、打開報表、關(guān)閉報表等。DoCmd對象的大多數(shù)方法都有參數(shù),有些參數(shù)是必需的,有些則是可選的。若省略可選參數(shù),參數(shù)將采用默認(rèn)值。對象

(1)用DoCmd對象打開窗體

格式:DoCmd.OpenForm"窗體名"

功能:用默認(rèn)形式打開指定窗體。

例如:DoCmd.OpenForm"文本框練習(xí)"現(xiàn)在是76頁\一共有192頁\編輯于星期六(2)用DoCmd對象關(guān)閉窗體格式1:DoCmd.CloseacForm,"窗體名"

功能:關(guān)閉指定窗體。

例如:DoCmd.CloseacForm,"文本框練習(xí)"

格式2:DoCmd.Close

功能:關(guān)閉當(dāng)前窗體。(3)用DoCmd對象打開報表

格式:DoCmd.OpenReport"報表名",acViewPreview

功能:用預(yù)覽形式打開指定報表。

例如:DoCmd.OpenReport"工資報表",acViewPreview對象

現(xiàn)在是77頁\一共有192頁\編輯于星期六(4)用DoCmd對象關(guān)閉報表格式1:DoCmd.CloseacReport,"報表名"

功能:關(guān)閉指定報表。

例如:DoCmd.CloseacReport,"工資報表"

格式2:DoCmd.Close

功能:關(guān)閉當(dāng)前報表。對象

現(xiàn)在是78頁\一共有192頁\編輯于星期六(5)用DoCmd對象運行宏

格式:DoCmd.RunMacro"宏名"

功能:運行指定宏。

例如:DoCmd.RunMacro"宏1"(6)用DoCmd對象退出Access。

格式:DoCmd.Quit

功能:關(guān)閉所有Access對象和Access本身。對象

現(xiàn)在是79頁\一共有192頁\編輯于星期六例9-9:新建窗體,窗體中建立6個命令按鈕,單擊按鈕打開和關(guān)閉指定窗體、打開和關(guān)閉指定報表、退出窗體、退出Access。

(1)新建窗體win9-9。(2)在窗體中建立6個命令按鈕→“名稱”分別為:c1~c6→“標(biāo)題”分別為:打開窗體win9-1、關(guān)閉窗體win9-1、打開排序報表、關(guān)閉排序報表、退出當(dāng)前窗體、退出Access。對象

現(xiàn)在是80頁\一共有192頁\編輯于星期六(3)按鈕c1的click事件代碼如下:DoCmd.OpenForm"win9-1"(4)按鈕c2的click事件代碼如下:DoCmd.CloseacForm,"win9-1"(5)按鈕c3的click事件代碼如下:DoCmd.OpenReport"排序",acViewPreview(6)按鈕c4的click事件代碼如下:DoCmd.CloseacReport,"排序"(7)按鈕c5的click事件代碼如下:DoCmd.Close(8)按鈕c6的click事件代碼如下:DoCmd.Quit

對象

現(xiàn)在是81頁\一共有192頁\編輯于星期六9.5程序結(jié)構(gòu)及程序控制語句程序結(jié)構(gòu)1.語句和程序語句:是一條能完成某項操作的命令,語句中可以包含關(guān)鍵字、運算符、變量、常量和表達(dá)式。語句按功能分為2類:聲明語句和執(zhí)行語句。(1)聲明語句用來定義變量、符號常量等。(2)執(zhí)行語句用來給變量賦值、實現(xiàn)各種流程控制、調(diào)用過程等。現(xiàn)在是82頁\一共有192頁\編輯于星期六程序結(jié)構(gòu)程序:是語句的集合,告訴計算機(jī)要完成的任務(wù),程序的執(zhí)行順序由程序結(jié)構(gòu)決定,程序有3種結(jié)構(gòu):順序、選擇、循環(huán)。(1)順序結(jié)構(gòu),按語句排列順序依次執(zhí)行語句代碼。(2)選擇結(jié)構(gòu),又稱為條件結(jié)構(gòu),根據(jù)條件成立與否選擇執(zhí)行不同的語句代碼。(3)循環(huán)結(jié)構(gòu),重復(fù)執(zhí)行某段程序代碼?,F(xiàn)在是83頁\一共有192頁\編輯于星期六2.聲明語句聲明語句用來定義符號常量、變量、數(shù)組和過程等的語句。定義的同時也包括了初始化值、生命周期、作用域的設(shè)置等內(nèi)容。例如:dimaasinteger程序結(jié)構(gòu)現(xiàn)在是84頁\一共有192頁\編輯于星期六3.賦值語句賦值語句是程序設(shè)計中最常用的執(zhí)行語句,用來給變量指定一個值。格式:變量名=表達(dá)式功能:將表達(dá)式的值賦給變量。例如:a=12,b=a+86程序結(jié)構(gòu)現(xiàn)在是85頁\一共有192頁\編輯于星期六3.賦值語句說明:(1)賦值號“=”與數(shù)學(xué)的等號意義不同。例如,語句a=a+1的功能是將變量a的當(dāng)前值加1后賦給變量a。(2)賦值號左邊只能是變量名,不能是常量和表達(dá)式。(3)賦值語句有計算功能,對表達(dá)式先計算后賦值。(4)賦值號兩邊的數(shù)據(jù)類型要匹配。例如,表達(dá)式a%="abc"返回錯誤提示,因為該操作把字符串賦給整型變量。程序結(jié)構(gòu)現(xiàn)在是86頁\一共有192頁\編輯于星期六4.注釋語句

注釋語句是非執(zhí)行語句,用來提高程序的可讀性,不被解釋和編譯。注釋語句顯示為綠色。格式1:rem注釋內(nèi)容說明:用rem引導(dǎo)的注釋語句,如果放在其他語句后面,之間用冒號分隔。格式2:

'注釋內(nèi)容說明:用單引號引導(dǎo)的注釋語句,放在其他語句后面時無需使用冒號分隔。程序結(jié)構(gòu)現(xiàn)在是87頁\一共有192頁\編輯于星期六例如:

dima1asinteger,a2asinteger:rem定義兩個整型變量

a1=12'給兩個變量賦值

a2=34a1=a1+a2'將兩個變量的和賦給變量a1

rem用消息框顯示結(jié)果

msgbox"a1+a2="&a1,vbInformation,"消息框"程序結(jié)構(gòu)現(xiàn)在是88頁\一共有192頁\編輯于星期六5.語句書寫規(guī)則(1)一條語句一行寫不下時,用續(xù)行符“_”作為第一行結(jié)尾,將剩余語句寫在下一行。(2)語句較短時可以幾條語句寫在一行,語句之間用冒號分隔。(3)如果一行語句輸入完成后顯示為紅色,表示該語句存在錯誤。(4)盡量使用提示信息。(5)代碼不區(qū)分大小寫。程序結(jié)構(gòu)現(xiàn)在是89頁\一共有192頁\編輯于星期六6.程序的縮進(jìn)格式

用縮進(jìn)格式書寫的程序能清楚的顯示程序結(jié)構(gòu),不僅幫助閱讀程序,而且有利于程序維護(hù)。例如:

Rem下面的代碼定義文本框t1的前景色和背景色

PrivateSubc1_Click()‘c1是命令按鈕t1.BackColor=vbYellow‘定義t1的背景色為黃色t1.ForeColor=vbRed‘定義t1的前景色為紅色

Endsub

程序結(jié)構(gòu)現(xiàn)在是90頁\一共有192頁\編輯于星期六7.使用提示與幫助在“代碼”窗口輸入代碼時,凡是系統(tǒng)對象和數(shù)據(jù)庫中定義的對象,在輸入了對象名稱和點運算符以后,系統(tǒng)會自動顯示信息列表。程序結(jié)構(gòu)將光標(biāo)置于某個語句命令上,按F1鍵,或單擊標(biāo)準(zhǔn)工具欄的【幫助】按鈕,系統(tǒng)會顯示關(guān)于與該語句命令的幫助信息。現(xiàn)在是91頁\一共有192頁\編輯于星期六可以用立即窗口顯示或計算變量值、函數(shù)值和表達(dá)式的值。?與print語句相同,在立即窗口顯示計算結(jié)果。例9-10:在立即窗口計算表達(dá)式的結(jié)果。(1)單擊【模塊】對象→【新建】,進(jìn)入VBE界面。(2)【視圖】菜單→【立即窗口】,顯示立即窗口。(3)輸入表達(dá)式:?cint(true)→回車,顯示結(jié)果:-1。(4)輸入表達(dá)式:printfalse>true→回車,顯示結(jié)果:true(5)輸入表達(dá)式:?cbool(5)+cbool(true)→回車,顯示結(jié)果:-2。

8.使用立即窗口

現(xiàn)在是92頁\一共有192頁\編輯于星期六順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)就是按語句出現(xiàn)的先后依次執(zhí)行。順序結(jié)構(gòu)的語句主要是賦值語句和輸入/輸出語句等?!纠?-11】順序結(jié)構(gòu)程序要求:建立窗體,輸入基本工資和本月的營業(yè)額,計算實發(fā)工資。實發(fā)工資等于基本工資+本月營業(yè)額的提成費,提成費等于本月營業(yè)額的5%。操作步驟:(1)打開“學(xué)生管理系統(tǒng).mdb”→新建窗體win9-11→設(shè)置“記錄選擇器”、“導(dǎo)航按鈕”、“分隔線”均不顯示?,F(xiàn)在是93頁\一共有192頁\編輯于星期六順序結(jié)構(gòu)程序設(shè)計(2)建立1個標(biāo)簽→“名稱”為:b1→“標(biāo)題”:為:計算月實發(fā)工資。

(3)建立1個命令按鈕→“標(biāo)題“為:本月實發(fā)工資→“名稱”為:c1。(4)按鈕c1的click事件代碼如下:Dimjbgz,sfgz,yygasSingleJbgz=val(inputbox(“請輸入基本工資”,“計算實發(fā)工資”,300))Yyg=val(inputbox(“請輸入本月營業(yè)額”,“本月營業(yè)額”))Sfgz=jbgz+yyg*5%Msgbox(“實發(fā)工資為:”,sfgz)(6)轉(zhuǎn)到窗體視圖→輸入信息框分別輸入:1000、20000→單擊命令按鈕,結(jié)果顯示如圖所示?,F(xiàn)在是94頁\一共有192頁\編輯于星期六選擇結(jié)構(gòu)程序設(shè)計

能實現(xiàn)選擇結(jié)構(gòu)的語句包括:if-then語句、if-then-else語句、if-then-elseif語句、selectcase語句。1.if-then語句

格式1:if條件then語句序列格式2:if條件then語句序列endif功能:若條件成立,執(zhí)行語句序列,否則,什么也不做。說明:(1)如果語句寫在一行,可省略endif語句。(2)如果語句不同行,則endif語句不可省略?,F(xiàn)在是95頁\一共有192頁\編輯于星期六例如:rem輸出兩個數(shù)據(jù)中的最大數(shù)dimaasinteger,basintegera=12:b=8

ifa<bthena=b

msgbox"最大值為:"&a,vbInformation,"消息框"或者:dimaasinteger,basintegera=12b=8

ifa<bthena=bendifmsgbox"最大值為:"&a,vbInformation,"消息框"1.if-then語句現(xiàn)在是96頁\一共有192頁\編輯于星期六例9-12:建立窗體,在3個文本框輸入數(shù)值,數(shù)值從小到大排序,顯示在3個標(biāo)簽中。(1)新建窗體win17。(2)建立3個文本框→水平排列→“名稱”分別為:t1~t3→刪除附加標(biāo)簽→文本框上方建立標(biāo)簽→標(biāo)簽“標(biāo)題”為:輸入3個數(shù)字。(3)建立3個標(biāo)簽→水平排列→“名稱”分別為:b1~b3→“標(biāo)題:分別為:b1~b3。(4)建立命令按鈕→“標(biāo)題“為:從小到大排序→”名稱“為:c1。

1.if-then語句現(xiàn)在是97頁\一共有192頁\編輯于星期六(5)按鈕c1的click事件代碼如下:DimaAsInteger,bAsInteger,cAsInteger,tAsIntegera=t1:b=t2:c=t3

Ifa>bThent=a:a=b:b=tIfa>cThent=a:a=c:c=tIfb>cThent=b:b=c:c=tb1.Caption=ab2.Caption=bb3.Caption=c(6)轉(zhuǎn)到窗體視圖→文本框分別輸入:7、9、3→單擊命令按鈕→標(biāo)簽顯示:3、7、9,結(jié)果:

1.if-then語句現(xiàn)在是98頁\一共有192頁\編輯于星期六格式:if條件then

語句序列1else

語句序列2endif功能:若條件成立,執(zhí)行語句序列1,否則,執(zhí)行語句序列2。2.if-then-else語句

現(xiàn)在是99頁\一共有192頁\編輯于星期六【例9-13】在文本框中輸入包裹重量,用標(biāo)簽顯示計算出來的包裹運輸費。收費方法:重量小于等于30公斤的,每公斤收費0.5元,超過30公斤時,超出部分每公斤0.8元。操作步驟:(1)打開“學(xué)生管理系統(tǒng).mdb”→新建窗體win9-13→設(shè)置“記錄選擇器”、“導(dǎo)航按鈕”、“分隔線”均不顯示。(2)建立3個標(biāo)簽→“標(biāo)題”分別是:計算包裹運輸費、運費、00→“名稱”為:b1、b2和b3。(3)建立文本框→附加標(biāo)簽為:包裹重量→“名稱”為:t1。(4)建立1個命令按鈕→“標(biāo)題”分別為:計算→“名稱”分別為:c1。2.if-then-else語句

現(xiàn)在是100頁\一共有192頁\編輯于星期六(5)“計算”命令按鈕c1的click事件代碼如下:PrivateSubC1_Click()DimwAsSingle ‘w表示包裹重量DimpAsSingle ‘p表示運輸費w=T1.ValueIfw>30Thenp=(w-30)*0.8+30*0.5‘大于30公斤時的運輸費Elsep=w*0.5 ‘小于等于30公斤的運輸費EndIfb2.Caption=p ‘在b2標(biāo)簽中顯示計算出的運費EndSub現(xiàn)在是101頁\一共有192頁\編輯于星期六if語句的嵌套嵌套通常有2種:(1)嵌套結(jié)構(gòu)1:

if

條件1then

語句序列1

else

if

條件2then

'必須另起一行語句序列2

else

語句序列3

endif

'if要與endif成對出現(xiàn)

endif

現(xiàn)在是102頁\一共有192頁\編輯于星期六if語句的嵌套(2)嵌套結(jié)構(gòu)2:if條件1thenif條件2then'必須另起一行

語句序列1else

語句序列2endif

'

if要與endif成對出現(xiàn)else

語句序列3endif現(xiàn)在是103頁\一共有192頁\編輯于星期六3.if-then-elseif語句(多分支結(jié)構(gòu))使用格式:if條件1then

語句序列1elseif條件2then'else與if之間沒有空格

語句序列2

……else

語句序列3endif現(xiàn)在是104頁\一共有192頁\編輯于星期六3.if-then-elseif語句(多分支結(jié)構(gòu))例9-15:在文本框輸入分?jǐn)?shù),根據(jù)分?jǐn)?shù)顯示相應(yīng)等級。(1)新建窗體win9-15。(2)建立文本框→“名稱”為:t1→附加標(biāo)簽的“標(biāo)題”為:請輸入成績。(3)建立標(biāo)簽→“標(biāo)題”和“名稱”都是:b1。(4)建立命令按鈕→“標(biāo)題”為:確定→“名稱”為:c1。

現(xiàn)在是105頁\一共有192頁\編輯于星期六3.if語句的嵌套(5)命令按鈕c1的click事件代碼如下:DimaAsInteger,bAsStringa=t1Ifa>=90Thenb="優(yōu)秀"ElseIfa>=80Thenb="良好"ElseIfa>=70Thenb="中等"ElseIfa>=60Thenb="及格"Elseb="不及格"EndIfb1.Caption=b

現(xiàn)在是106頁\一共有192頁\編輯于星期六4.selectcase語句

electcase語句又稱為多分支選擇語句。

格式:selectcase表達(dá)式

case值1語句序列1case值2語句序列2……case值n語句序列ncaseelse語句序列n+1endselect現(xiàn)在是107頁\一共有192頁\編輯于星期六2.功能:首先計算表達(dá)式的值,然后將表達(dá)式值與每個case的值比較,如果找到匹配的值,執(zhí)行該case后的語句塊,如果沒有相匹配的值,執(zhí)行caseelse后面的語句。3.說明(1)多個分支中只能選擇執(zhí)行一個,執(zhí)行了第一個符合條件的分支以后,即使有其他分支符合條件也不再執(zhí)行。(2)selectcase后面的表達(dá)式通常是一個變量的名字。(3)selectcase與endselect要成對出現(xiàn),endselect之間有空格。(4)case后面的值有4種寫法:

1.

單一數(shù)值

2.

一行并列數(shù)值,之間用逗號分隔。

3.

數(shù)值1to數(shù)值2,前一個值必須比后一個值小。

4.

用is開頭的簡單條件式,如is>10。不允許復(fù)雜條件式。語句

現(xiàn)在是108頁\一共有192頁\編輯于星期六例9-16:建立文本框用來輸入字符串,建立命令按鈕用來檢驗字符串類型,結(jié)果顯示在消息框中。

(1)新建窗體win20。(2)建立文本框→“名稱”為:t1→附加標(biāo)簽的“標(biāo)題”為:請輸入字符。(3)建立命令按鈕→“名稱”為:c1→“標(biāo)題”為:檢測。(4)按鈕c1的click事件代碼:

語句

現(xiàn)在是109頁\一共有192頁\編輯于星期六DimaAsString,bAsStringa=t1SelectCasea

Case"a"To"z"b="英文字母"

Case"0"To"9"b="數(shù)字"

Case"!","?",":",".",",",";"b="標(biāo)點符號"

CaseElseb="特殊字符"

EndSelectMsgBoxb(5)轉(zhuǎn)到窗體視圖→文本框中輸入%→單擊“檢測”按鈕

語句

現(xiàn)在是110頁\一共有192頁\編輯于星期六5.選擇函數(shù)

1.iif函數(shù)格式:iif(條件,表達(dá)式1,表達(dá)式2)功能:如果條件為真,函數(shù)值為表達(dá)式1的值,否則,函數(shù)值為表達(dá)式2的值。例:y=iif(a>b,"a大","b大")現(xiàn)在是111頁\一共有192頁\編輯于星期六5.選擇函數(shù)

2.switch函數(shù)格式:switch(條件1,表達(dá)式1,條件2,表達(dá)式,…,條件n,表達(dá)式n)功能:從左到右依次判斷,遇到第一個條件為真時返回對應(yīng)表達(dá)式的值。說明:條件與表達(dá)式成對,當(dāng)多個條件為真時,只取第一個條件的對應(yīng)表達(dá)式。例:y=switch(x<0,-1,x=0,1,x>0,1)現(xiàn)在是112頁\一共有192頁\編輯于星期六3.choose函數(shù)格式:choose(索引式,值1,值2,…,值n)功能:根據(jù)索引項的值,返回對應(yīng)的值。說明:索引項通常是整型變量名,取值范圍1~n,超出范圍時返回NULL。例如:y=choose(x,"優(yōu)秀","良好","中等","及格","不及格")5.選擇函數(shù)

現(xiàn)在是113頁\一共有192頁\編輯于星期六例9-17:在命令按鈕的單擊事件中使用iif函數(shù),控制文本框的顯示與可用狀態(tài)。(1)新建窗體win9-17。(2)建立1個文本框,“名稱”為t1,附加標(biāo)簽的“標(biāo)題”為“輸入字符”。(3)建立2個命令按鈕,“名稱”分別為c1、c2,“標(biāo)題”分別為“不可用”、“隱藏”。(5)通用-聲明中定義模塊變量:Dima

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論