VBA程序設(shè)計基礎(chǔ)ppt課件_第1頁
VBA程序設(shè)計基礎(chǔ)ppt課件_第2頁
VBA程序設(shè)計基礎(chǔ)ppt課件_第3頁
VBA程序設(shè)計基礎(chǔ)ppt課件_第4頁
VBA程序設(shè)計基礎(chǔ)ppt課件_第5頁
已閱讀5頁,還剩87頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十章VBA程序設(shè)計根底n本章要點:n熟習(xí)VBA編程環(huán)境n掌握VBA語法n掌握VBA的流程控制構(gòu)造10.1 VBA編程環(huán)境n認(rèn)識VBAnVisual Basic for Applicationn與VB開發(fā)工具很類似,包括各種主要的語法構(gòu)造、函數(shù)命令等。n與VB的主要區(qū)別是VBA主要面向Office辦公軟件開發(fā)工具加強(qiáng)Word、Excel等軟件的自動化才干,提供了很多VB中沒有的函數(shù)和對象,這些對象都是針對Office運(yùn)用的。n宏的每個根本操作在VBA中都有相應(yīng)的等效語句。10.1 VBA編程環(huán)境nVBA編程環(huán)境:VBE窗口10.1 VBA編程環(huán)境nAccess 2003數(shù)據(jù)庫中包含的程序模塊可

2、以分為兩種類型:n獨立程序模塊規(guī)范模塊n綁定型程序模塊類模塊10.1 VBA編程環(huán)境n綁定性程序模塊n是指包含在窗體、報表、頁等數(shù)據(jù)庫根本對象之中的事件處置過程,這樣的程序模塊僅在所屬對象處于活動形狀下有效。n也稱類模塊。作用范圍局限在所屬的窗體和報表內(nèi)部,具有部分特性。10.1 VBA編程環(huán)境n綁定模塊代碼設(shè)計步驟:n選中控件的對應(yīng)事件選事件過程:10.1 VBA編程環(huán)境n綁定模塊代碼設(shè)計步驟2:n選中事件過程后點 按鈕。10.1 VBA編程環(huán)境n編輯獨立的程序模塊n獨立程序模塊是指Access2003數(shù)據(jù)庫中的“模塊對象。這些模塊對象可以在數(shù)據(jù)庫中被任一個對象所調(diào)用。n也稱為規(guī)范模塊。普通

3、用于存放公共過程,不如其他任何Access對象相關(guān)聯(lián)。通常為整個運(yùn)用系統(tǒng)設(shè)置全局變量或通用過程,供其他窗體或報表等數(shù)據(jù)庫對象在類模塊中運(yùn)用或調(diào)用。n規(guī)范模塊中的公共變量和公共過程具有全局性,其作用范圍為整個運(yùn)用系統(tǒng)。10.1 VBA編程環(huán)境n規(guī)范模塊的創(chuàng)建步驟:n1.選擇模塊對象,點“新建10.1 VBA編程環(huán)境n規(guī)范模塊的創(chuàng)建步驟:n2.規(guī)范模塊界面10.1 VBA編程環(huán)境n兩種模塊:10.1 VBA編程環(huán)境nVBE窗口的組成10.1 VBA編程環(huán)境n主要按鈕引見:n視圖切換:從VBE視圖切換到Access數(shù)據(jù)庫對象視圖。n插入模塊:用于插入新模塊對象,并置新模塊對象為操作目的。n運(yùn)轉(zhuǎn):執(zhí)行

4、模塊程序。n中斷:中止正在運(yùn)轉(zhuǎn)的程序,進(jìn)入設(shè)計方式。n重新設(shè)置:中止程序n設(shè)計方式:在設(shè)計方式和非設(shè)計方式之間切換。10.1 VBA編程環(huán)境n主要按鈕的功能:n工程資源管理器:選中當(dāng)前程序模塊。10.1 VBA編程環(huán)境n屬性窗口:10.1 VBA編程環(huán)境n對象閱讀器:10.1 VBA編程環(huán)境n創(chuàng)建模塊n添加過程10.2 模塊根底nSub過程nPublic|Private Static Sub 子過程(形參) As 數(shù)據(jù)類型n子過程語句nExit SubnEnd SubnPublic可以使該過程能被一切模塊的一切其他過程調(diào)用。nPrivate可以使該過程只能被同一模塊的其他過程調(diào)用。n在一個過程

5、中也可以調(diào)用其他子過程或翻開窗體等10.2 模塊根底n子過程的定義:nPublic Sub ccc()nDoCmd.OpenForm LoginnEnd Subn子過程的調(diào)用:nCall 子過程實參n或者子過程(實參)nCall ccc()nCcc()10.2 模塊根底nFunction函數(shù)nPublic|Private Static Function 函數(shù)過程名形參AS 數(shù)據(jù)類型n函數(shù)過程語句n函數(shù)過程名表達(dá)式nExit FunctionnEnd Functionn和Sub過程很類似,但通常都具有前往值。nStatic定義靜態(tài)函數(shù),函數(shù)中定義的值不斷保管。nAs 數(shù)據(jù)類型,定義函數(shù)前往值類型

6、。10.2 模塊根底n函數(shù)定義nPrivate Function ddd(r As Double) As Integern Dim pi As Doublen pi = 3.1415926n ddd = pi * r * rnEnd Function10.2 模塊根底n窗體按鈕事件中調(diào)用模塊過程或函數(shù):n用表達(dá)式生成器選擇10.2 模塊根底n表達(dá)式生成器選擇規(guī)范模塊函數(shù)方法:10.3 VBA面向?qū)ο缶幊谈譶屬性與方法的援用方式:n對象.屬性名,對象.方法名n這里的對象普通采用:父對象類名!子對象名n對于窗體上的控件可以用:me.xx 方式來援用,me代表當(dāng)前窗體。n例如訪問窗體上標(biāo)簽:nFo

7、rm_模塊運(yùn)用!Lb1.Caption“他好啊nMe.lb1.caption“他好啊n規(guī)范模塊只能用:父對象類名!子對象名,而窗體模塊兩種方式都可以運(yùn)用,引薦運(yùn)用me.方式。10.3 VBA面向?qū)ο缶幊谈譶訪問窗體文本框:n訪問或設(shè)置文本框中的字符串n讀:msgboxme.text1.valuen賦值:me.Text1.value“他好啊n設(shè)置或者訪問文本框被選中內(nèi)容nMe.text3.setfocusnMe.Text3.SelStart = 2nMe.Text3.SelLength = 2nMsgBox (Me.Text3.SelText)10.3 VBA面向?qū)ο缶幊谈自O(shè)置文本框的輸入掩

8、碼:Me.Text3.InputMask = Password“設(shè)置文本框的可用性:鎖定控件,即只讀:Me.Text3.Locked = True禁用控件:Me.Text3.Enabled = true設(shè)置文本框焦點:DoCmd.GoToControl (Text3)Me.Text3.SetFocus10.3 VBA面向?qū)ο缶幊谈譶訪問切換控件Togglen程序判別能否按下n讀/賦值:me.Toggle.Valuen值為:true1,false0n該控件較少被運(yùn)用到10.3 VBA面向?qū)ο缶幊谈譶單項選擇控件Optionn程序判別選中與否n讀/賦值:me.Option1.value=tru

9、en值為:true1,false0n復(fù)選框Checkn程序判別選中與否n讀/賦值:me.check1.valuen值為:true1,false010.3 VBA面向?qū)ο缶幊谈譶組合框Combon程序訪問選中的內(nèi)容、選中的序號、遍歷整個下拉列表,以及添加和刪除內(nèi)容。n重要屬性:nMsgBox (Mebo13.ListIndex),前往組合框被選項的序號,從1開場;沒有被選擇的初值為1。nMsgBox (Mebo13.Value),前往組合框被選項的值,必需有內(nèi)容被選擇后才干運(yùn)用。nMsgBox (Mebo13.ListCount),前往組合框中選項數(shù)量,可以用它實現(xiàn)對組合框數(shù)據(jù)的遍歷。10.3

10、 VBA面向?qū)ο缶幊谈譶組合框下拉列表值集合:mebo13.ItemData(i),前往i序號位置列表項值。n組合框特征屬性:n手動輸入的文本:mebo13.Text,可以結(jié)合按鍵事件,將手動輸入的內(nèi)容添加到組合框中。n這個屬性是列表框所沒有的。n組合框重要方法:nMebo13.AddItem (“ccc),對組合框添加新下拉項,參數(shù)是下拉項的值,即顯示出的字符串。nMebo13.RemoveItem (3),刪除組合框中指定序號位置的下拉項。10.3 VBA面向?qū)ο缶幊谈譶列表框Listn除了外觀方式外,常用屬性方法與組合框大體類似。n特征屬性:n多重選擇屬性:Me.List18.Mul

11、tiSelect,值是0,1,2,但是運(yùn)轉(zhuǎn)只讀屬性,只能在運(yùn)轉(zhuǎn)之前設(shè)置。n判別列表項能否被選中屬性:Me.List18.Selected(i),前往對應(yīng)序號的列表值能否被選中。10.3 VBA面向?qū)ο缶幊谈譶圖片框imagen普通選擇鏈接方式顯示圖片,圖片顯示用縮放。n動態(tài)更改圖片:nMe.Image22.Picture = “E:教學(xué)資源1.jpg,要給出圖片的途徑。10.3 VBA面向?qū)ο缶幊谈譶分頁控件選項卡控件n重要屬性:nPages屬性,主要經(jīng)過它指定新當(dāng)前頁,修正頁的標(biāo)題、隱藏和顯示指定頁。nMe.xxk.Pages.Item(2).SetFocusnMe.xxk.Pages.

12、Item(1).Caption = ccnMe.xxk.Pages.Item(0).Visible = False10.3 VBA面向?qū)ο缶幊谈譶Access運(yùn)用程序內(nèi)置對象nApplication對象,包含大量的屬性、方法和子對象,部分全局性操作經(jīng)過它完成。調(diào)用時先輸入“Application.即可顯示其包含的各個子內(nèi)容。nDocmd對象,是Application的一個子對象。主要功能是經(jīng)過調(diào)用Access內(nèi)置的方法,在VBA中實現(xiàn)特定的操作。調(diào)用時先輸入“Docmd.即可以選用其下屬子屬性和方法。該對象后續(xù)內(nèi)容將大量運(yùn)用。10.4 VBA編程根底nVBA程序書寫規(guī)范n不區(qū)分大小寫,但是標(biāo)

13、點符號、括號必需是半角英文格式。一個變量或者函數(shù)名第一次定義或者運(yùn)用后,其后程序?qū)⒆詣影凑盏谝淮味x或運(yùn)用除格式顯示。n語句書寫,普通一句一行,假設(shè)一行寫不下,可以在要續(xù)行的行尾用續(xù)行符空格+_,然后在下一行續(xù)寫語句代碼。n注釋語句:用Rem開頭或者 “開頭一行表示注釋。10.4 VBA編程根底n1.VBA中的根本數(shù)據(jù)類型n字節(jié)型,關(guān)鍵字Byte,占1個字節(jié),在0255內(nèi)取值。n主要用于存儲一些小型整數(shù)。nDim i As BytenDim x, y, z As Byteni=100nX=In沒有表示符號10.4 VBA編程根底n邏輯型,關(guān)鍵字Boolean,占2字節(jié),取True,F(xiàn)alse。

14、0為false,非0為True,如-1。n主要用于存儲一些邏輯運(yùn)算結(jié)果nDim x as booleannX=truenX=0nX=1000nX=-199n常量沒有特殊表示符號10.4 VBA編程根底n整型,關(guān)鍵字Integer,占2字節(jié),取3276832767之間。n最常用的整型。nDim I as integerni=100ni=1+1n其常量用表示,如99。10.4 VBA編程根底n長整型,關(guān)鍵字Long,占4字節(jié),取值范圍在正負(fù)20億之間取值。n主要用于存儲特別大的整型數(shù)值。nDim x as longnX=19999n其常量用&表示,如99&等。10.4 VBA編程根底n單精度型,關(guān)

15、鍵字Single,占4字節(jié),在正負(fù)10-45之間取值。nDim salary as singlenSalary=3000n保管小數(shù)n其常量用!表示,如100.89!10.4 VBA編程根底n雙精度數(shù),關(guān)鍵字Double,占8個字節(jié),比單精度數(shù)更大的表達(dá)才干。nDim distance as DoublenDistance=300000n最常用的浮點數(shù)表示類型。可以兼容一切其他數(shù)值類型。n其常量用表示,如200.910.4 VBA編程根底n貨幣型n關(guān)鍵字:Currency,占8字節(jié),15位整數(shù),4位有效小數(shù)。nDim money as CurrencynMoney=99999999.9999n其

16、常量標(biāo)志為,如199。10.4 VBA編程根底n日期型包括時間,實踐是日期時間類型n關(guān)鍵字Data,占8字節(jié)nDim today as DatenToday=Now 得到當(dāng)前日期和時間nToday=Date 得到當(dāng)前日期nTodayTime 得到當(dāng)前時間n日期常量必需用#括起來,如#10-11-2006#10.4 VBA編程根底n對象型n關(guān)鍵字:Object,占4個字節(jié),可以指向任何對象。n普通不生成這種通用對象類型,而是根據(jù)需求生成公用的對象。10.4 VBA編程根底n字符型n關(guān)鍵字:String,最多可以存放64K字符。n常量表示字符$,如“hello!$n字符和字符串一樣表示方式,如A“

17、,AB,只需一個字符的字符串就可以作為字符。這點和C+不同。n長度為0的字符串為空串。10.4 VBA編程根底n變長類型n類型關(guān)鍵字:Varient,可以存儲任何類型。n默許情況下,沒有定義數(shù)據(jù)類型的變量都屬于Varient類型。函數(shù)沒有定義前往值類型時,默許也是Varient類型。10.4 VBA編程根底n用戶自定義類型n如構(gòu)造nPrivate|Public Type 數(shù)據(jù)類型名n元素1 As 數(shù)據(jù)類型n元素2 As 數(shù)據(jù)類型nnEnd Typen然后nDim x as 自定義類型名nX.元素1.10.4 VBA編程根底n變量、常量、數(shù)組nVBA中運(yùn)用變量可以不需求闡明就直接運(yùn)用。nA100

18、n也可間接顯式定義nA100,是整型的標(biāo)志,所以A為整型。n最常用就是dim語句定義。10.4 VBA編程根底n變量、常量、數(shù)組n值常量n100,100,True等等。n常值變量nConst PI3.1415926n固有常量n系統(tǒng)曾經(jīng)定義的環(huán)境常量10.4 VBA編程根底n數(shù)組nVBA中不允許隱式闡明數(shù)組,必需先定義后運(yùn)用。nDim x(10) as integer,普通1維數(shù)組nDim y(-2 to 3) as integer,下標(biāo)2開場的數(shù)組nDim z(3,5) as integer,2維數(shù)組nDim w() as integer ,動態(tài)1維數(shù)組。動態(tài)數(shù)組可以反復(fù)運(yùn)用Redim重新確定

19、大小。如:Redim w(10),重新定義時可以用Preserve標(biāo)志保管原有值。Redim Preserver W20,這樣前面10個值得以保管,否那么原有數(shù)據(jù)全部喪失。Preserve不能改動維數(shù)。n默許情況下數(shù)組下標(biāo)從0開場,上標(biāo)n1。10.4 VBA編程根底n數(shù)據(jù)庫對象變量n可以定義變量代表對應(yīng)數(shù)據(jù)庫對象上各種控件nDim myform as controlnSet myform=Forms!Form_登錄!txtUsernamenVB或VBA中Set的作用就是讓變量指定對象10.4 VBA編程根底n運(yùn)算符與表達(dá)式n一、算術(shù)運(yùn)算符運(yùn)算符 名稱優(yōu)先級表達(dá)式例子指數(shù)運(yùn)算 1XY-取負(fù)數(shù)2X

20、/浮點除法 3X/Y整除4XYMod求余數(shù)5X MOD Y其他還有(加)、-(減)、*(乘)10.4 VBA編程根底n字符運(yùn)算符n,字符串銜接符號,將兩個字符串銜接成一個新字符串。n&,將不同數(shù)據(jù)類型銜接到字符串上。n例如:“Access2003“nAccess“ & 2003n“2+3 & “=“ & (2+3)10.4 VBA編程根底n關(guān)系運(yùn)算符運(yùn)算符運(yùn)算含義表達(dá)式例子 結(jié)果Is對象引用比較 A is nothingLike字符串匹配”ac“ like “*c” trueBetweenAnd介于某個范圍之間Between 10 and 90、=、=、=、10.4 VBA編程根底n邏輯運(yùn)算符

21、nNot,邏輯非,原來假結(jié)果為真。nAnd,邏輯與,兩個結(jié)果都為真結(jié)果為真。nOr,邏輯或,兩個之一為真結(jié)果為真。nXor,異或,兩個表達(dá)式不一樣結(jié)果時真。nEqv,等價,兩個表達(dá)式一樣結(jié)果時,結(jié)果真。nImp,蘊(yùn)涵,當(dāng)?shù)谝粋€表達(dá)式為真,且第二個表達(dá)式為假,那么值為假,否那么為真。10.4 VBA編程根底n系統(tǒng)內(nèi)置函數(shù)n內(nèi)置函數(shù)按功能可以分為:數(shù)學(xué)函數(shù)、字符函數(shù)、日期函數(shù)和格式輸出函數(shù)。n數(shù)學(xué)函數(shù)nAbs(數(shù)學(xué)表達(dá)式),前往數(shù)值表達(dá)式的絕對值。nFix(數(shù)值表達(dá)式),前往數(shù)值表達(dá)式的整數(shù)部分,假設(shè)參數(shù)為負(fù)值,前往大于參數(shù)值的第一個負(fù)數(shù)。nInt(數(shù)值表達(dá)式),前往數(shù)值表達(dá)式的整數(shù)部分,假設(shè)參數(shù)

22、為負(fù)數(shù),前往小于等于參數(shù)值的第一個負(fù)數(shù)。nExp(數(shù)值表達(dá)式),求數(shù)值表達(dá)式為底的指數(shù)函數(shù)。10.4 VBA編程根底n數(shù)學(xué)函數(shù)nLog(數(shù)值表達(dá)式),以e為底的自然對數(shù)。nSqr(數(shù)值表達(dá)式),計算數(shù)值表達(dá)式的平方根。nSgn(數(shù)值表達(dá)式),前往一個Variant(Integer),指出參數(shù)的正負(fù)號。nRound(數(shù)值表達(dá)式),對操作數(shù)四舍五入取整。nRnd(產(chǎn)生隨機(jī)數(shù)),產(chǎn)生01之間的數(shù)。10.4 VBA編程根底n轉(zhuǎn)換函數(shù)nAsc(字符表達(dá)式),前往字符的Ascii碼。nChr(數(shù)值),Ascii值轉(zhuǎn)換成對應(yīng)字符。nLcase(字符串表達(dá)式),全部轉(zhuǎn)換為小寫。nUcase(字符串表達(dá)式),全

23、部轉(zhuǎn)換為大寫。nStr(數(shù)值表達(dá)式),將數(shù)值表達(dá)式轉(zhuǎn)換為字符串。nVal(字符串表達(dá)式),將數(shù)字字符串轉(zhuǎn)為數(shù)值型數(shù)據(jù)nDateValue(字符串表達(dá)式),將字符串轉(zhuǎn)換為日期nHex(數(shù)值表達(dá)式),十進(jìn)制轉(zhuǎn)化成十六進(jìn)制。nSpace(數(shù)值表達(dá)式),前往指定長度空格字符串。nVBA中還有一些C開頭的類型轉(zhuǎn)換函數(shù),Cint,Csng,Cstr10.4 VBA編程根底n字符串函數(shù)nInstr(start,str1,str2,compare),字符串檢索函數(shù),檢索字符串Str2在字符串Str1中最早出現(xiàn)的位置,前往一整數(shù)。nStart為數(shù)值式,可選參數(shù)。nCompare是比較方式:0作二進(jìn)制比較,1作不

24、區(qū)分大小寫的文本比較,2作基于數(shù)據(jù)庫中包含信息的比較。n假設(shè)Str1串長度為0或Str2檢索不到,前往0;假設(shè)Str2串長為0,前往Start的值。10.4 VBA編程根底nLeft(字符串表達(dá)式或變量,N),從字符串左邊截取N個字符。假設(shè)N為0,前往長度為零長度字符串;假設(shè)N大于或等于字符串長度,前往整個字符串。nRight(字符串表達(dá)式或變量,N),從字符串右邊起截取N個字符。nMid(字符串表達(dá)式,N1,N2),從字符串左邊第N1個字符起截取N2個字符。10.4 VBA編程根底nLtrim(字符串表達(dá)式或變量),刪除字符串的開場字符。nRtrim(字符串表達(dá)式或變量),刪除字符串的尾部空

25、格字符。nTrim(字符串表達(dá)式或變量),刪除字符串的開場和尾部空格。10.4 VBA編程根底nLen(字符串表達(dá)式或變量),前往字符串的長度。n這里采用Unicode編碼處置方式,因此前往的是字符的數(shù)量。如“他好123!前往6。n對于數(shù)組變量,前往長度是定義長度。nLenB(字符串表達(dá)式或變量),前往字符串所占字節(jié)數(shù)。n普通是2倍Len結(jié)果10.4 VBA編程根底n日期/時間函數(shù)nDate()或Date,前往當(dāng)前系統(tǒng)日期nTime()或Time,前往當(dāng)前系統(tǒng)時間nNow,前往當(dāng)前系統(tǒng)的日期和時間nYear/Month/Day/Weekday(日期表達(dá)式)nHour/Minute/Second

26、(時間表達(dá)式)10.4 VBA編程根底n日期時間函數(shù)nDateAdd(間隔目的,間隔值,日期表達(dá)式)nDateDiff(間隔目的,日期1,日期2nDatePart(間隔目的,日期表達(dá)式)n間隔目的:“yyyy表示年,“q季度,“m月,“y一年的天數(shù),“d天,“w一周的天數(shù),“ww周,“h小時,“n分鐘,“s秒。nDateSerial(表達(dá)式1,表達(dá)式2,表達(dá)式3),組合成一個日期。10.4 VBA編程根底n格式輸出函數(shù)nFormat表達(dá)式,格式符)n主要完成對數(shù)值、日期、字符串表達(dá)式按特定的格式輸出。10.4 VBA編程根底n其他常用函數(shù)nInputBox函數(shù)n格式:InputBox(提示文字

27、,標(biāo)題,默許值n作用:出現(xiàn)一個輸入對話框,能獲得用戶的輸入信息。10.4 VBA編程根底nMsgboxn格式:msgbox(提示文字,按鈕圖標(biāo),標(biāo)題)n其中按鈕和圖標(biāo)參考教材215頁。n作用:給用戶彈出一個對話框,進(jìn)展信息提示,能讓用戶對某些事件進(jìn)展判別處置,能記錄用戶點擊的對話框按鈕。按鈕前往值參考216頁表格。n它是VBA中最常用的系統(tǒng)函數(shù),系統(tǒng)中大量提示信息都是經(jīng)過msgbox實現(xiàn)。10.4 VBA編程根底nIIF函數(shù)n格式:IIF條件表達(dá)式,表達(dá)式1,表達(dá)式2n作用:類似C+中?:運(yùn)算符,更具條件,在表達(dá)式1和表達(dá)式2中選擇一個作為前往值。條件為真前往前者,價前往后者。n是IF。Els

28、e的簡寫函數(shù)表現(xiàn)。10.4 VBA編程根底nSwitch函數(shù)n格式:Switch(條件1,表達(dá)式1,條件2,表達(dá)式2,.)n作用:該函數(shù)用于多條件選擇,是Select多分支構(gòu)造的函數(shù)表現(xiàn)。從左向右判別,直到一個條件成立為止,前往對應(yīng)條件后的表達(dá)式。n假設(shè)一切條件都不成立,前往null,空值10.4 VBA編程根底nChoose()函數(shù)n格式:Choose(數(shù)值表達(dá)式,表達(dá)式1,表達(dá)式2,)n作用:類似Switch函數(shù),不過這里沒有條件。數(shù)值表達(dá)式值充任一個條件,假設(shè)它界于1,2間,前往表達(dá)式1,界于2,3間前往表達(dá)式2,依此類推。10.4 VBA編程根底nNz()函數(shù)n格式:Nz(表達(dá)式或字段

29、樹型值,規(guī)定值)n作用:假設(shè)表達(dá)式值為Null,那么前往0、“或者一個自定義的前往值。n很有用的函數(shù),特別在數(shù)值運(yùn)算中。n字符串運(yùn)算中,可以用“拼接來消除null,nNull & “=“n相關(guān)函數(shù):IsNull表達(dá)式10.4 VBA編程根底nDCount()函數(shù)n格式:DCount(表達(dá)式,記錄集合,條件式)n表達(dá)式:用戶標(biāo)識要統(tǒng)計其記錄數(shù)的字段。n記錄集合:字符串表達(dá)式,可以是表的稱號或查詢的稱號n條件式:用于限制DCount函數(shù)的數(shù)據(jù)范圍,類似Sql語句中的Where條件。n作用:前往指定記錄集合中的記錄數(shù)。nMe.Text1=Dcount(“xh,學(xué)生,xb=男)n可以在宏、VBA、查詢

30、表達(dá)式或計算控件中運(yùn)用。10.4 VBA編程根底nDoAvgn用于計算指定記錄集合中某個字段列數(shù)據(jù)的平均值。nDsum()函數(shù)n用于匯總指定記錄集合中某個字段列數(shù)據(jù)。nDlookup函數(shù)n從指定記錄集合檢索特定字段的值。非常有用的函數(shù),比如登陸驗證等等場所。n留意:以上3個函數(shù)格式上類似DCount函數(shù),但在記錄集合沒有記錄或者沒有符合條件的記錄時,前往Null。10.4 VBA編程根底n案例:登陸驗證nUID = Me.UIDnPWD = Me.PWDnpwd1 = DLookup(口令, UserInfo, 用戶名= & UID & )nIf IsNull(PWD) ThennMsgBox

31、 (沒有這個用戶)nElsenIf PWD = pwd1 ThennMsgBox 祝賀他登陸勝利!nElsenMsgBox 口令不正確nEnd IfnEnd If10.4 VBA編程根底n常用數(shù)據(jù)格式判別函數(shù)nisArray(變量),判別變量能否為一個數(shù)組。nIsDate (表達(dá)式),判別變量能否可以轉(zhuǎn)換為日期型。nIsEmpty (變量),判別變量能否是為空值。nIsError (表達(dá)式),判別表達(dá)式能否為一個錯誤。nIsNumeric (表達(dá)式),判別表達(dá)式能否為數(shù)值。nIsNull (表達(dá)式),判別表達(dá)式能否為一個無效值null。nIsObject (標(biāo)志符),判別標(biāo)識符能否表示對象變量

32、。10.4 VBA編程根底n程序流程控制n單分支構(gòu)造n多分支構(gòu)造nFor循環(huán)nDo循環(huán)nDo while循環(huán)10.4 VBA編程根底n單分支構(gòu)造:IF語句n在VBA中if語句有多種書寫方式,要求同窗一致用規(guī)范格式:nIf 條件 thenn條件成立執(zhí)行的語句nEnd ifn假設(shè)要同時處置條件不成立語句,可以加Else分支nIf 條件 thennElsenEnd if10.4 VBA編程根底nIf語句的每個執(zhí)行部分即可以是簡單語句序列,也可以是其他流程控制構(gòu)造,假設(shè)是if語句,就是if嵌套。nIf 條件1 thennIf 條件2 thennElsenEnd ifnElsenIf 條件3 thenn

33、ElsenEnd ifnEnd if10.4 VBA編程根底nIf語句的靈敏運(yùn)用:案例3個數(shù)中選擇最大值n嵌套運(yùn)用n平行運(yùn)用n結(jié)論:盡量運(yùn)用平行運(yùn)用,適當(dāng)運(yùn)用簡單嵌套,防止復(fù)雜嵌套。10.4 VBA編程根底n多分支構(gòu)造:Select Case語句n運(yùn)用Select Case分支構(gòu)造可以防止運(yùn)用if語句復(fù)雜嵌套,提高程序的可讀性。n格式:nSelect Case 變量或者表達(dá)式nCase 表達(dá)式1n語句塊1nCase 表達(dá)式2n語句塊2nnCase elsen語句塊n1nEnd Select10.4 VBA編程根底nSelect case 分支構(gòu)造闡明n變量或表達(dá)式,可以是數(shù)值型或字符串型。Ca

34、se 表達(dá)式與 Select Case 變量或表達(dá)式的類型必需一樣。nCase表達(dá)式可以是以下幾種格式:n單一數(shù)值或一行并列數(shù)值用,隔開n用關(guān)鍵字to分割開的兩個數(shù)值或表達(dá)式之間的范圍。n用is關(guān)系運(yùn)算符表達(dá)式n可以是上面3個的復(fù)合運(yùn)用10.4 VBA編程根底nFor循環(huán),普通用于固定循環(huán)次數(shù)的循環(huán)場所n格式:nFor 循環(huán)變量=初值 to 終值 step 步長n語句塊nexit fornNext n默許下Step1,假設(shè)希望是其他內(nèi)容,就修正這個步長n其他方面類似C+,exit for 是中途終了循環(huán)。10.4 VBA編程根底nDoloop循環(huán)n格式:nDon語句塊nExit donloopn特點是至少運(yùn)轉(zhuǎn)一次的循環(huán),默許下是無限循環(huán),需求運(yùn)用exit do 終了循環(huán)。n可以添加While或者until組成有條件循環(huán)。兩者差別是while條件是開場條件,until 條件是終了條件。10.4 VBA編程根底n有條件do循環(huán)nDo n語句塊nexit

溫馨提示

  • 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

提交評論