歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

ACCESS實(shí)例教程(第8章).ppt

  • 資源ID:3384553       資源大?。?span id="7n5phrt" class="font-tahoma">745.81KB        全文頁(yè)數(shù):102頁(yè)
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

ACCESS實(shí)例教程(第8章).ppt

Access實(shí)例教程,潘明寒趙義霞主編中國(guó)水利水電出版社,ACCESS實(shí)例教程,模塊的操作(第8章),1,模塊的基本概念2,VBA程序設(shè)計(jì)基礎(chǔ)3,VBA函數(shù)的使用4,模塊的建立與使用5,過(guò)程與參數(shù)傳遞,本章要點(diǎn):,8.1認(rèn)識(shí)模塊對(duì)象,模塊是由聲明、語(yǔ)句和過(guò)程組成的集合,以VBA(VisualBasicforApplication)語(yǔ)言編寫(xiě),作為一個(gè)已命名的單元存儲(chǔ)在一起。模塊有2種類型:類模塊和標(biāo)準(zhǔn)模塊。使用模塊可以在實(shí)際開(kāi)發(fā)中實(shí)現(xiàn)較為復(fù)雜的功能。,(1)模塊模塊由一個(gè)或多個(gè)過(guò)程組成,每個(gè)過(guò)程實(shí)現(xiàn)一個(gè)或幾個(gè)功能。模塊的執(zhí)行通過(guò)特定事件激發(fā)相應(yīng)的事件過(guò)程實(shí)現(xiàn)。(2)事件過(guò)程事件過(guò)程是一組代碼,用于響應(yīng)窗體事件或報(bào)表事件。(3)類模塊類模塊是包含代碼和數(shù)據(jù)的集合,可以看作是沒(méi)有物理表示的控件,總是與某一特定的窗體或報(bào)表相關(guān)聯(lián)。窗體模塊和報(bào)表模塊都屬于類模塊。(4)標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊是代碼的集合,包含的過(guò)程不與任何其他對(duì)象相關(guān)聯(lián),是數(shù)據(jù)庫(kù)對(duì)象使用的公共過(guò)程,保存在數(shù)據(jù)庫(kù)窗口中。,8.1.1模塊的基本概念,8.1.2啟動(dòng)Access的編程界面,Access的編程界面稱為VBE(VisualBasicEditor),是MicrosoftOffice所有組件公用的程序編輯系統(tǒng)。方法1:在窗體或報(bào)表設(shè)計(jì)視圖中選控件單擊標(biāo)準(zhǔn)工具欄的“生成器”按鈕在“選擇生成器”對(duì)話框中選擇“代碼生成器”。方法2:右擊窗體或報(bào)表設(shè)計(jì)視圖中控件快捷菜單中選“事件生成器”“選擇生成器”對(duì)話框中選擇代碼生成器”。,8.1.3VBE窗口,編寫(xiě)模塊對(duì)象的代碼在代碼窗口進(jìn)行。(1)窗口頂部有2個(gè)組合框,左邊對(duì)象框顯示所有對(duì)象名稱,右邊過(guò)程框顯示當(dāng)前對(duì)象能識(shí)別的所有事件名稱。選定一個(gè)對(duì)象,再選定一個(gè)事件,系統(tǒng)會(huì)自動(dòng)生成相應(yīng)事件過(guò)程的起始行與結(jié)束行,只須在兩行中間添加過(guò)程代碼即可?!巴ㄓ谩边^(guò)程可以被所有控件調(diào)用。某控件的過(guò)程只在關(guān)聯(lián)事件中有效。(2)窗口中央代碼區(qū)有聲明區(qū)和過(guò)程區(qū),聲明區(qū)中聲明模塊使用的變量,過(guò)程區(qū)顯示一個(gè)或多個(gè)過(guò)程,之間用一條灰線分隔。(3)窗口底部有2個(gè)按鈕,單擊“過(guò)程視圖”按鈕,只顯示當(dāng)前過(guò)程。單擊右邊“完整的模塊視圖”按鈕,窗口顯示全部過(guò)程。,8.1.4標(biāo)準(zhǔn)工具欄,例:一個(gè)類模塊,例:一個(gè)標(biāo)準(zhǔn)模塊,8.1.7使用提示與幫助,在代碼窗口輸入代碼時(shí),系統(tǒng)會(huì)自動(dòng)顯示提示信息,包括關(guān)鍵字列表、屬性列表、過(guò)程參數(shù)列表等,在列表中選取一項(xiàng)后雙擊鼠標(biāo),所選值會(huì)自動(dòng)添加到當(dāng)前光標(biāo)處。,8.2VBA程序設(shè)計(jì)基礎(chǔ),8.2.1面向?qū)ο蟮某绦蛟O(shè)計(jì)的基本概念,(1)對(duì)象在自然界中,一個(gè)對(duì)象就是一個(gè)實(shí)體,如一輛汽車就是一個(gè)對(duì)象。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對(duì)象代表應(yīng)用程序中的元素,如表、窗體、按鈕等。(2)屬性屬性是對(duì)象的特征。如汽車有顏色和型號(hào)屬性,按鈕有標(biāo)題和名稱屬性。對(duì)象的類別不同,屬性會(huì)有所不同。同類別對(duì)象的不同實(shí)例,屬性也有差異。例如,同是命令按鈕,名稱屬性不允許相同。,(3)事件事件是對(duì)象能夠識(shí)別的動(dòng)作。如按鈕可以識(shí)別單擊事件、雙擊事件等。在類模塊每一個(gè)過(guò)程的開(kāi)始行,都顯示對(duì)象名和事件名。如:PrivateSubc1_Click()。(4)方法方法是對(duì)象能夠執(zhí)行的動(dòng)作,決定了對(duì)象能完成什么事。不同對(duì)象有不同的方法。如close方法能關(guān)閉一個(gè)窗體。(5)集合集合由許多與對(duì)象有關(guān)的鍵和值組成,其中的鍵和值是配對(duì)的。如一本書(shū)是一個(gè)對(duì)象,書(shū)的頁(yè)碼是鍵,頁(yè)碼對(duì)應(yīng)的內(nèi)容是值。所有配對(duì)的頁(yè)碼和內(nèi)容組成了書(shū)對(duì)象的集合。,(6)過(guò)程過(guò)程是由代碼組成的單元,包含一系列計(jì)算語(yǔ)句和執(zhí)行語(yǔ)句。每一個(gè)過(guò)程都有名字,過(guò)程名不能與所在模塊的模塊名相同。過(guò)程有兩種類型:sub過(guò)程(無(wú)返回值),function過(guò)程(有返回值)。,例:動(dòng)態(tài)設(shè)置控件屬性,(1)在窗體中建1個(gè)文本框名稱為t1。(2)在窗體中建1個(gè)標(biāo)簽名稱為b1標(biāo)題為“新年好!”。(3)在窗體中建3個(gè)命令按鈕名稱分別為c1、c2、c3標(biāo)題分別為“紅色”、“綠色”、“藍(lán)色”。,(4)設(shè)置各按鈕的前景色,在屬性窗口可查看顏色值。,(5)c1的click事件代碼:t1.BackColor=255b1.ForeColor=255,(6)c2的click事件代碼:t1.BackColor=33792b1.ForeColor=33792(7)c3的click事件代碼:t1.BackColor=16711680b1.ForeColor=16711680,執(zhí)行結(jié)果:,Docmd是Access的一個(gè)特殊對(duì)象,用來(lái)調(diào)用內(nèi)置方法,在程序中實(shí)現(xiàn)對(duì)Access的操作,諸如打開(kāi)窗口、關(guān)閉窗體、打開(kāi)報(bào)表、關(guān)閉報(bào)表等。DoCmd對(duì)象的大多數(shù)方法都有參數(shù),有些參數(shù)是必需的,有些則是可選的。若省略可選參數(shù),參數(shù)將采用默認(rèn)值。,8.2.2Docmd對(duì)象,(1)用DoCmd對(duì)象打開(kāi)窗體格式:DoCmd.OpenForm"窗體名"功能:用默認(rèn)形式打開(kāi)指定窗體。例如:DoCmd.OpenForm"文本框練習(xí)",(2)用DoCmd對(duì)象關(guān)閉窗體格式1:DoCmd.CloseacForm,"窗體名"功能:關(guān)閉指定窗體。例如:DoCmd.CloseacForm,"文本框練習(xí)"格式2:DoCmd.Close功能:關(guān)閉當(dāng)前窗體。(3)用DoCmd對(duì)象打開(kāi)報(bào)表格式:DoCmd.OpenReport"報(bào)表名",acViewPreview功能:用預(yù)覽形式打開(kāi)指定報(bào)表。例如:DoCmd.OpenReport"工資報(bào)表",acViewPreview,(4)用DoCmd對(duì)象關(guān)閉報(bào)表格式1:DoCmd.CloseacReport,"報(bào)表名"功能:關(guān)閉指定報(bào)表。例如:DoCmd.CloseacReport,"工資報(bào)表"格式2:DoCmd.Close功能:關(guān)閉當(dāng)前報(bào)表。(5)用DoCmd對(duì)象運(yùn)行宏格式:DoCmd.RunMacro"宏名"功能:運(yùn)行指定宏。例如:DoCmd.RunMacro"宏1"(6)用DoCmd對(duì)象退出Access。格式:DoCmd.Quit功能:關(guān)閉所有Access對(duì)象和Access本身。,(1)在窗體中建立5個(gè)按鈕名稱分別為c1、c2、c3、c4、c5標(biāo)題分別為“打開(kāi)文本框練習(xí)窗體”、“關(guān)閉文本框練習(xí)窗體”、“打開(kāi)工資報(bào)表”、“關(guān)閉工資報(bào)表”、“退出Access”。,例:使用DoCmd對(duì)象,(2)c1代碼:DoCmd.OpenForm"文本框練習(xí)"(3)c2代碼:DoCmd.CloseacForm,"文本框練習(xí)"(4)c3代碼:DoCmd.OpenReport"工資報(bào)表",acViewPreview(5)c4代碼:DoCmd.CloseacReport,"工資報(bào)表"(6)c5代碼:DoCmd.Quit,(7)轉(zhuǎn)到窗體視圖單擊不同按鈕執(zhí)行不同操作。,8.2.3數(shù)據(jù)類型與數(shù)據(jù)類型轉(zhuǎn)換,(1)標(biāo)準(zhǔn)數(shù)據(jù)類型,(2)數(shù)據(jù)類型轉(zhuǎn)換函數(shù),例:在立即窗口中計(jì)算函數(shù)值(1)在VBE界面“視圖”菜單“立即窗口”,顯示立即窗口。(2)輸入表達(dá)式x=“true”回車輸入表達(dá)式y(tǒng)=“false”回車輸入表達(dá)式?x+y回車,顯示結(jié)果為:truefalse。(3)輸入表達(dá)式?cbool(x)+cbool(y)回車,顯示結(jié)果為:-1。說(shuō)明:每行寫(xiě)完后必須回車才能生效。問(wèn)號(hào)與print語(yǔ)句相同,在立即窗口顯示計(jì)算結(jié)果。,(3)用戶定義的數(shù)據(jù)類型,定義格式:type數(shù)據(jù)類型名域名1as數(shù)據(jù)類型域名2as數(shù)據(jù)類型endtype例如:typestudentxhasstring*6xmasstringxbasstring*1nlasintegerendtype,8.2.4變量,變量是指程序運(yùn)行時(shí)值會(huì)發(fā)生變化的數(shù)據(jù)。系統(tǒng)會(huì)按照變量的數(shù)據(jù)類型在內(nèi)存中為變量分配一定數(shù)量的存儲(chǔ)單元,程序中用變量名調(diào)用存儲(chǔ)的數(shù)據(jù)。所以,變量實(shí)際上是一個(gè)符號(hào)地址,代表了命名的存儲(chǔ)位置。(1)變量命名規(guī)則由字母、數(shù)字、下劃線組成,用英文字母開(kāi)頭。不能包含空格以及除下劃線之外的標(biāo)點(diǎn)符號(hào)。不能用VBA的關(guān)鍵字(如:dim)和保留字(如:str)。字符個(gè)數(shù)不得多于255個(gè)。變量名不區(qū)分大小寫(xiě)。,格式:dim變量名as類型說(shuō)明:如果不用as定義類型,則變量為變體類型。變體類型變量比其他類型變量占用更多的內(nèi)存資源??梢杂胐im同時(shí)定義多個(gè)變量,變量之間用西文逗號(hào)分隔,每一個(gè)變量都應(yīng)該用as聲明類型。例如:dima1asinteger,a2asboolean用dim定義的變量是局部變量,會(huì)按照數(shù)據(jù)類型自動(dòng)設(shè)置默認(rèn)值。,(2)用dim語(yǔ)句聲明變量,(3)用類型說(shuō)明符聲明變量類型,在變量名后加VBA的類型說(shuō)明符,隱式的聲明了變量類型。例如:b1%=125變量b1是整型,值是125。既沒(méi)有顯式聲明,也沒(méi)有加類型說(shuō)明符,隱式聲明了變體型變量。例如:c1=125變量c1是變體型,值是125。,圖1-15層次模型,(4)一個(gè)特殊的模塊變量本地窗口打開(kāi)時(shí),自動(dòng)生成一個(gè)名為“Me”的特殊模塊變量。對(duì)于類模塊,定義為Me。Me是對(duì)象的引用,引用當(dāng)前模塊中當(dāng)前類的實(shí)例。Me變量不需要專門(mén)定義,直接使用即可。例如,用代碼定義“學(xué)生信息”窗體中“Lab”標(biāo)簽的標(biāo)題屬性,以下兩種方法效果是一樣的:標(biāo)準(zhǔn)方法:Forms!學(xué)生信息!Lab.Caption="學(xué)生信息瀏覽"常用方法:Me!Lab.Caption="學(xué)生信息瀏覽",8.2.5變量的作用域和生命周期,1變量的作用域變量的作用域是變量在程序中起作用的范圍。分3個(gè)層次,從低到高依次為:局部、模塊、全局。(1)局部變量又稱為本地變量,僅在聲明變量的過(guò)程中有效。在過(guò)程和函數(shù)內(nèi)部用dim聲明或不用聲明接使用的變量,都是局部變量。局部變量在本地?fù)碛凶罡呒?jí),當(dāng)存在同名的模塊級(jí)變量時(shí),模塊級(jí)變量被屏蔽。(2)模塊變量模塊變量在所聲明模塊的所有函數(shù)和所有過(guò)程都有效,變量定義在模塊所有過(guò)程之外的起始位置,通常是窗體變量或標(biāo)準(zhǔn)模塊變量。(3)全局變量全局變量又稱為公共變量,定義在標(biāo)準(zhǔn)模塊所有過(guò)程之外,在所有模塊的所有過(guò)程和函數(shù)中都有效。定義格式:public變量名as數(shù)據(jù)類型,變量的生命周期是指變量從首次出現(xiàn)到變量消失的代碼執(zhí)行時(shí)間。變量首次出現(xiàn)是指聲明變量并為其分配存儲(chǔ)空間,變量消失是指變量所在的程序執(zhí)行完畢。局部變量的生命周期從過(guò)程或函數(shù)被調(diào)用到運(yùn)行結(jié)束。全局變量的生命周期從聲明到Access應(yīng)用程序結(jié)束。過(guò)程中用dim定義的變量,每次調(diào)用過(guò)程時(shí)都重新開(kāi)始,過(guò)程結(jié)束時(shí)立即消失。用static代替dim定義變量,可以在過(guò)程實(shí)例間保留局部變量的值。用static定義的變量稱為靜態(tài)變量,作用范圍與dim相同,在整個(gè)模塊執(zhí)行時(shí)一直存在。,2變量的生命周期,例:用static和dim定義局部變量,(1)在窗體中建立2個(gè)文本框分別命名為t1和t2附加標(biāo)簽的標(biāo)題分別為“靜態(tài)變量”和“局部變量”。(2)在窗體中建立命令按鈕名稱為c1標(biāo)題為“計(jì)算”。,(3)c1的click代碼:StaticxAsIntegerDimyAsIntegerx=x+1:y=y+1t1=x:t2=y,(4)執(zhí)行時(shí)不斷單擊命令按鈕,靜態(tài)變量文本框中的值每次增加1,而局部變量文本框中的值總是1。,8.2.6常量,常量是在程序運(yùn)行過(guò)程中其值不能改變的量,如數(shù)字常量123、字符串常量"abc"、日期常量#2008-8-8#等。這樣的常量是直接常量,也稱為字面常量。系統(tǒng)還提供3種常量:符號(hào)常量、系統(tǒng)常量、內(nèi)部常量。,1符號(hào)常量用符號(hào)常量表示在編程中反復(fù)使用的相同值。符號(hào)常量名一般用大寫(xiě)字母,以便與變量名區(qū)分。定義格式:Const符號(hào)常量名=常量值說(shuō)明:(1)如果符號(hào)常量定義在模塊聲明區(qū),所有模塊的過(guò)程都能使用該變量,通常在前面加上Global或Public。如:PublicConstPI=3.14(2)如果符號(hào)常量定義在事件的過(guò)程中,該符號(hào)常量只在本過(guò)程中可用。(3)符號(hào)常量定義時(shí)不用指明數(shù)據(jù)類型。,2系統(tǒng)常量系統(tǒng)常量是Access啟動(dòng)時(shí)就建立的常量,可以在所有程序編碼時(shí)直接使用。系統(tǒng)常量有:true、false、yes、no、on、off、null。3內(nèi)部常量?jī)?nèi)部常量又稱為固有常量,是VBA提供的一些預(yù)定義的內(nèi)部符號(hào)常量,主要用來(lái)作為DoCmd對(duì)象的參數(shù)。內(nèi)部常量用前兩個(gè)字母指明該常量的對(duì)象庫(kù):以ac開(kāi)頭的是Access的庫(kù)常量,以vb開(kāi)頭的是VBA的庫(kù)常量,以db開(kāi)頭的是DAO的庫(kù)常量,以ad開(kāi)頭的ADO的庫(kù)常量。這些內(nèi)部常量名不能作為用戶自定義的變量名或符號(hào)常量名。,1數(shù)組的概念VBA中的數(shù)組是一組具有相同數(shù)據(jù)類型、同一名字、不同下標(biāo)的變量集合。數(shù)組變量由變量名和數(shù)據(jù)下標(biāo)組成,數(shù)組下標(biāo)用圓括號(hào)括起來(lái)。說(shuō)明:(1)數(shù)組要先定義后使用,VBA不允許隱式聲明數(shù)組。(2)同一過(guò)程中數(shù)組名不能與其他變量重名。,8.2.7數(shù)組,2聲明一維數(shù)組格式1:dim數(shù)組名(下標(biāo)上限)as數(shù)據(jù)類型格式2:dim數(shù)組名(下標(biāo)下限to下標(biāo)上限)as數(shù)據(jù)類型例如:dima(6)asinteger功能:聲明了有7個(gè)元素的數(shù)組a,元素下標(biāo)從0到6,默認(rèn)值均為0。例如:dimb(1to6)asstring功能:聲明了有6個(gè)元素的數(shù)組b,下標(biāo)從1到6,默認(rèn)值均為空串。說(shuō)明:(1)如果不定義數(shù)組下標(biāo)的下限,默認(rèn)下標(biāo)下限為0。(2)數(shù)組定義中的參數(shù)必須是常數(shù)。(3)如果使用as語(yǔ)句定義數(shù)組類型,同一數(shù)組只能存放相同類型數(shù)據(jù)。,3聲明多維數(shù)組格式:dim數(shù)組名(下標(biāo)上限1,下標(biāo)上限2,)as數(shù)據(jù)類型例如:dimc(3,4)asinteger功能:聲明有20個(gè)元素的數(shù)組c,行下標(biāo)從0到3,列下標(biāo)從0到4。例如:dimd(1to3,2to4)asinteger功能:聲明有9個(gè)元素的數(shù)組d,行下標(biāo)從1到3,列下標(biāo)從2到4。4使用數(shù)組聲明數(shù)組后,每個(gè)數(shù)組元素都被當(dāng)作單個(gè)變量使用。一維數(shù)組元素的引用格式:數(shù)組名(下標(biāo))二維數(shù)組元素的引用格式:數(shù)組名(下標(biāo)1,下標(biāo)2),例:使用符號(hào)常量和數(shù)組,(1)在窗體建文本框名稱為t1。(2)在窗體建命令按鈕名稱為c1標(biāo)題為“確定”。(3)c1的代碼:,constAA=“歡迎你!”定義符號(hào)常量dimb(1)AsString定義數(shù)組b(0)=AAb(1)=t1MsgBoxb(0)":bb="標(biāo)點(diǎn)符號(hào)"CaseElse:bb="特殊字符"EndSelectMsgBoxbb,(3)轉(zhuǎn)到窗體視圖文本框中輸入字母單擊按鈕顯示消息框。,8.4.4選擇函數(shù)與計(jì)時(shí)器事件,1iif函數(shù)格式:iif(條件,表達(dá)式1,表達(dá)式2)功能:如果條件為真,函數(shù)值為表達(dá)式1的值,否則,函數(shù)值為表達(dá)式2的值。例:y=iif(a>b,"a大","b大")2switch函數(shù)格式:switch(條件1,表達(dá)式1,條件2,表達(dá)式,條件n,表達(dá)式n)功能:從左到右依次判斷,遇到第一個(gè)條件為真時(shí)返回對(duì)應(yīng)表達(dá)式的值。說(shuō)明:條件與表達(dá)式成對(duì),當(dāng)多個(gè)條件為真時(shí),只取第一個(gè)條件的對(duì)應(yīng)表達(dá)式。例:y=switch(x0,1),3choose函數(shù)格式:choose(索引式,值1,值2,值n)功能:根據(jù)索引項(xiàng)的值,返回對(duì)應(yīng)的值。說(shuō)明:索引項(xiàng)通常是整型變量名,取值范圍1n,超出范圍時(shí)返回NULL。例如:y=choose(x,"優(yōu)秀","良好","中等","及格","不及格"),4計(jì)時(shí)器事件VBA沒(méi)有直接提供時(shí)間控件,通過(guò)timer事件實(shí)現(xiàn)定時(shí)功能。方法:首先設(shè)置窗體的計(jì)時(shí)器間隔屬性TimerInterval,然后給timer事件寫(xiě)過(guò)程代碼。打開(kāi)窗體時(shí),每隔一個(gè)時(shí)間間隔激發(fā)一次timer事件,事件的過(guò)程就被執(zhí)行一次,從而實(shí)現(xiàn)“定時(shí)”處理功能。計(jì)時(shí)器間隔的時(shí)間單位為毫秒,1000毫秒=1秒。,例:顯示電子表,(1)建立2個(gè)標(biāo)簽名稱為b1和b2標(biāo)題都為數(shù)字1。(2)打開(kāi)窗體的屬性窗口單擊“事件”選項(xiàng)卡設(shè)置計(jì)時(shí)器間隔屬性為1000。(3)在VBE窗口“通用-聲明”寫(xiě)代碼:PublicaAsBooleana為邏輯型,默認(rèn)false(4)Form的Timer事件代碼:a=Notab1.Caption=Time()b2.Caption=CInt(b2.Caption)+1b2.ForeColor=IIf(a=True,255,16711680),(5)轉(zhuǎn)到窗體視圖。b1中顯示系統(tǒng)當(dāng)前時(shí)間,b2中的數(shù)字每秒增加1,數(shù)字的顏色紅、藍(lán)交替,每秒換一次。,8.4.5驗(yàn)證函數(shù),VBA的常用驗(yàn)證函數(shù),例:檢驗(yàn)字符串類型,(1)建文本框名稱為t1附加標(biāo)簽標(biāo)題為“輸入年齡:”。(2)建命令按鈕名稱分別為c1標(biāo)題為“驗(yàn)證”。(3)c1的click事件代碼:Ift1=""OrIsNull(t1)ThenMsgBox"不能為空!",vbCritical,"提示"ElseIfIsNumeric(t1)=FalseThenMsgBox"必須是數(shù)字!",vbCritical,"提示"ElseIft1=150ThenMsgBox"超出范圍!",vbCritical,"提示"ElseMsgBox"驗(yàn)證通過(guò)!",vbInformation,"提示"EndIf,(4)轉(zhuǎn)到窗體視圖在文本框中輸入一個(gè)字母單擊“驗(yàn)證”按鈕消息框顯示消息“必須是數(shù)字!”。,8.4.6循環(huán)語(yǔ)句,當(dāng)某一程序段需要反復(fù)執(zhí)行,用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)。循環(huán)結(jié)構(gòu)對(duì)應(yīng)兩類循環(huán)語(yǔ)句:先判斷后執(zhí)行的循環(huán)語(yǔ)句(當(dāng)型循環(huán)結(jié)構(gòu))先執(zhí)行后判斷的循環(huán)語(yǔ)句(直到型循環(huán)結(jié)構(gòu)),1for-next循環(huán)for-next循環(huán)能使語(yǔ)句序列運(yùn)行指定次數(shù),循環(huán)中有一個(gè)計(jì)數(shù)器變量,變量的值隨每一次循環(huán)增加或減少。for-next是當(dāng)型循環(huán)結(jié)構(gòu),先判斷后執(zhí)行。(1)格式:for循環(huán)變量=初值to終值step步長(zhǎng)語(yǔ)句序列next(2)功能先將初值賦給循環(huán)變量,再將循環(huán)變量的當(dāng)前值與終值做比較,如果比較結(jié)果為真執(zhí)行語(yǔ)句序列,增加一個(gè)步長(zhǎng),再進(jìn)行比較,如果比較結(jié)果仍為真,繼續(xù)循環(huán)。如果比較結(jié)果為假,結(jié)束循環(huán)。,(3)說(shuō)明步長(zhǎng)大于0時(shí)判斷循環(huán)變量的當(dāng)前值是否大于終值,步長(zhǎng)小于0判斷循環(huán)變量的當(dāng)前值是否小于終值。步長(zhǎng)為0時(shí)導(dǎo)致循環(huán)無(wú)法結(jié)束,所以步長(zhǎng)不要設(shè)置為0。步長(zhǎng)可以是整數(shù)或小數(shù),步長(zhǎng)為1時(shí)可以省略。除第一次循環(huán)以外,其他循環(huán)增加一個(gè)步長(zhǎng)后與終值比較。for循環(huán)可以嵌套。在for循環(huán)中可以用exitfor語(yǔ)句強(qiáng)行中止循環(huán)。,練習(xí):閱讀下面程序段,循環(huán)結(jié)束后,各變量的值是多少?dimsasinteger,iasintegers=0fori=1to10step2s=s+ii=i+2next結(jié)論:循環(huán)結(jié)束后,變量i的值是13,變量s的值是15。,例:顯示Fibonacci數(shù)列的第15個(gè)元素,(Fibonacci數(shù)列的前兩個(gè)數(shù)都是1,從第3個(gè)數(shù)開(kāi)始,每個(gè)數(shù)都是前兩個(gè)數(shù)之和。),(1)建立文本框名稱為t1建立命令按鈕名稱為c1。(2)c1的click事件代碼:Dimf(15)AsIntegerf(1)=1:f(2)=1Fori=3To15f(i)=f(i-1)+f(i-2)Nextt1=f(15),2do-while-loop循環(huán)do-while-loop循環(huán)是當(dāng)型循環(huán)結(jié)構(gòu),先判斷后執(zhí)行。(1)格式dowhile循環(huán)條件語(yǔ)句序列l(wèi)oop(2)功能先檢查循環(huán)條件是否成立,若條件為真,執(zhí)行語(yǔ)句序列。遇到loop語(yǔ)句時(shí)返回循環(huán)開(kāi)始處重新判斷,若條件仍然為真,再次執(zhí)行語(yǔ)句序列。當(dāng)條件為假時(shí)退出循環(huán)。,(3)說(shuō)明可以用exitdo強(qiáng)行中止循環(huán)。要考慮循環(huán)變量賦初值和給循環(huán)變量增加步長(zhǎng)的問(wèn)題。如果將while換成until,當(dāng)條件為真時(shí)循環(huán)結(jié)束。練習(xí):閱讀下面的程序(注:大寫(xiě)字母A的ASCII碼是65。)dima(26)asstring,b(26)asinteger,dimiasintegeri=1給循環(huán)變量賦初值dowhilei<=26a(i)=chr(i+64)將ASCII碼變?yōu)樽帜竍(i)=Lcase(a(i)將大寫(xiě)字母變?yōu)樾?xiě)字母i=i+1使循環(huán)變量增加1loop,3do-loop-while循環(huán)是直到型循環(huán)結(jié)構(gòu),先執(zhí)行后判斷。(1)格式do語(yǔ)句序列Loopwhile循環(huán)條件(2)功能先執(zhí)行語(yǔ)句序列,遇到loop語(yǔ)句時(shí)判斷循環(huán)條件,若條件為真,再次執(zhí)行語(yǔ)句序列。當(dāng)條件為假時(shí)退出循環(huán)。(3)說(shuō)明可以用exitdo強(qiáng)行中止循環(huán)。要考慮給循環(huán)變量賦初值和給循環(huán)變量增加步長(zhǎng)的問(wèn)題。如果將while換成until,當(dāng)條件為真時(shí)循環(huán)結(jié)束。,4for-each循環(huán)語(yǔ)句foreach循環(huán)用來(lái)遍歷數(shù)組或?qū)ο蠹现忻恳粋€(gè)元素,不需要指定循環(huán)次數(shù),每個(gè)元素只遍歷一次。如果不知道一個(gè)集合有多少個(gè)元素,用foreach循環(huán)非常方便。(1)格式foreach循環(huán)變量in集合或數(shù)組語(yǔ)句序列next(2)功能用循環(huán)變量依次遍歷數(shù)組或?qū)ο蠹现忻恳粋€(gè)元素,直到遍歷結(jié)束。,練習(xí):閱讀下面程序。dima(50)asinteger,iasinteger,sasintegerfori=1to50給數(shù)組賦值a(i)=inexts=0foreachiina遍歷a中元素ifimod20thens=s+i計(jì)算奇數(shù)之和next,8.5過(guò)程調(diào)用與參數(shù)傳遞,8.5.1認(rèn)識(shí)過(guò)程和參數(shù),1過(guò)程過(guò)程是用來(lái)執(zhí)行特定任務(wù)的一段獨(dú)立的程序代碼,這段代碼能被反復(fù)調(diào)用。VBA的模塊以過(guò)程為單元組成。VBA的過(guò)程根據(jù)是否返回值分為兩類:Sub過(guò)程和Function過(guò)程。Sub過(guò)程只執(zhí)行操作不返回值,不能用在表達(dá)式中,調(diào)用時(shí)就象使用基本語(yǔ)句一樣。Function過(guò)程又稱為用戶自定義函數(shù),執(zhí)行操作后返回結(jié)果,常用在表達(dá)式中,調(diào)用時(shí)就象使用基本函數(shù)一樣。過(guò)程名是標(biāo)識(shí)符,不要與模塊名重名,否則調(diào)用時(shí)會(huì)出現(xiàn)混亂。同一模塊中,Sub過(guò)程也不要與Function過(guò)程重名。過(guò)程不能嵌套定義,但可以嵌套調(diào)用。,2參數(shù)如果在調(diào)用過(guò)程中,主調(diào)方(調(diào)用過(guò)程的語(yǔ)句)與被調(diào)方(過(guò)程)存在數(shù)據(jù)傳遞關(guān)系,表現(xiàn)這種傳遞關(guān)系的數(shù)據(jù)就是參數(shù)。參數(shù)分為形參(形式參數(shù))和實(shí)參(實(shí)際參數(shù))。形參用在被調(diào)方,只能是變量名或數(shù)組名。實(shí)參用在主調(diào)方,可以是常量、已賦值的變量、有計(jì)算結(jié)果的表達(dá)式。當(dāng)形參和實(shí)參都是變量時(shí),存在兩種參數(shù)傳遞方式:值傳遞與地址傳遞。值傳遞只能把實(shí)參的值傳給形參,是“單向傳遞”。地址傳遞能在實(shí)參與形參之間實(shí)現(xiàn)參數(shù)的“雙向傳遞”,不但將實(shí)參的值傳給形參,形參的值也可以傳給實(shí)參。,8.5.2sub過(guò)程,sub過(guò)程是包含在sub和endsub之間的一組代碼,調(diào)用sub過(guò)程時(shí)只執(zhí)行其中的操作,不返回值。1定義sub過(guò)程的格式sub過(guò)程名(形參1as數(shù)據(jù)類型,形參2as數(shù)據(jù)類型,)語(yǔ)句序列endsub2調(diào)用sub過(guò)程格式1:call過(guò)程名(實(shí)參1,實(shí)參2,)格式2:過(guò)程名實(shí)參1,實(shí)參2,,3說(shuō)明(1)參數(shù)之間用逗號(hào)分隔,對(duì)應(yīng)的形參與實(shí)參之間要類型匹配。(2)用格式1調(diào)用sub過(guò)程必須加括號(hào),用格式2調(diào)用sub過(guò)程不加括號(hào)。(3)用exitsub語(yǔ)句立即從sub過(guò)程中退出。(4)定義sub過(guò)程時(shí)即使無(wú)任何參數(shù),也必須包含空括號(hào)()。(5)sub之前可以用public或private或static定義過(guò)程作用域。(6)標(biāo)準(zhǔn)模塊中的過(guò)程可以被所有對(duì)象調(diào)用,類模塊中的過(guò)程只在本模塊中有效。,例:sub過(guò)程練習(xí),(1)建2個(gè)文本框名稱分別為t1和t2附加標(biāo)簽標(biāo)題分別為“輸入矩形長(zhǎng):”和“輸入矩形寬:”。(2)建命令按鈕名稱為c1標(biāo)題為“計(jì)算”。(3)建立標(biāo)準(zhǔn)模塊以“過(guò)程模塊”為名保存模塊。(4)在“過(guò)程模塊”中定義jxmj過(guò)程,代碼如下:PublicSubjxmj(hAsInteger,wAsInteger)DimsAsIntegers=h*w計(jì)算矩形面積MsgBox"矩形面積為:"&s顯示矩形面積EndSub,(5)命令按鈕c1的click事件代碼:Dima1AsInteger,a2AsIntegera1=t1:a2=t2Calljxmj(a1,a2)用格式1調(diào)用sub模塊(6)轉(zhuǎn)到窗體視圖輸入矩形長(zhǎng)和寬單擊“計(jì)算”按鈕。,8.5.3function過(guò)程,1定義function過(guò)程的格式function過(guò)程名(形參1,形參2,)as數(shù)據(jù)類型語(yǔ)句序列過(guò)程名=表達(dá)式endfunction2調(diào)用function過(guò)程調(diào)用function過(guò)程只有一種方式,即直接引用過(guò)程名,而且過(guò)程名在賦值號(hào)右端或在表達(dá)式中。,3說(shuō)明(1)參數(shù)之間用逗號(hào)分隔,對(duì)應(yīng)形參與實(shí)參之間要類型匹配。(2)“過(guò)程名=表達(dá)式”是function過(guò)程中不可缺少的語(yǔ)句。(3)用exitfunction語(yǔ)句立即從function過(guò)程中退出。(4)若function過(guò)程無(wú)任何參數(shù),也必須包含空括號(hào)()。(5)function之前可以用public或private或static定義過(guò)程的作用域。,例:function過(guò)程練習(xí),(1)建文本框名稱為t1。(2)建標(biāo)簽名稱為L(zhǎng)ab標(biāo)題為“圓面積=”(3)建命令按鈕名稱為c1標(biāo)題為“計(jì)算”。,(4)在已有的“過(guò)程模塊”中添加ymj過(guò)程,代碼如下:PublicFunctionymj(rAsInteger)AsSingleymj=r*r*3.14EndFunction(5)命令按鈕c1的click事件代碼:DimaAsIntegera=t1Lab.Caption=Lab.Caption&ymj(a),(6)轉(zhuǎn)到窗體視圖在文本框中輸入半徑單擊“計(jì)算”按鈕計(jì)算結(jié)果顯示在標(biāo)簽中。,8.5.4參數(shù)傳遞,當(dāng)實(shí)參是變量名時(shí),既可以用傳值方式傳遞參數(shù),也可以用傳地址的方式傳遞參數(shù)。,1參數(shù)的值傳遞如果在過(guò)程的形參前加byval說(shuō)明符,參數(shù)的傳遞方式為“傳值”。值傳遞的含義是指在過(guò)程中另外開(kāi)辟存儲(chǔ)單元存放從實(shí)參傳過(guò)來(lái)的值,一旦過(guò)程結(jié)束,過(guò)程中開(kāi)辟的存儲(chǔ)單元被釋放,該單元數(shù)據(jù)的改變不會(huì)保留下來(lái)。,2參數(shù)的地址傳遞如果在過(guò)程的形參前加byref說(shuō)明符,參數(shù)的傳遞方式為“傳地址”,參數(shù)的地址傳遞是默認(rèn)選項(xiàng),不加任何說(shuō)明符,默認(rèn)就是傳地址。地址傳遞的含義是指過(guò)程中的形參與主調(diào)方的實(shí)參指向同一個(gè)存儲(chǔ)單元,在過(guò)程中對(duì)存儲(chǔ)單元所做的修改,當(dāng)過(guò)程結(jié)束后成為實(shí)參的當(dāng)前值。地址傳遞通常用在sub過(guò)程中。,例:參數(shù)傳遞練習(xí),(1)建立2個(gè)文本框名稱分別為t1和t2。(2)建立命令按鈕名稱為c1標(biāo)題為“調(diào)用過(guò)程”。(3)在已有的“過(guò)程模塊”中添加cscd過(guò)程,代碼如下:PublicSubcscd(ByRefaAsInteger,ByValbAsInteger)a=a+10b=b+10EndSub,(4)命令按鈕c1的click事件代碼:DimxAsInteger,yAsIntegerx=t1:y=t2cscdx,y用格式2調(diào)用sub過(guò)程t1=x:t2=y(5)轉(zhuǎn)到窗體視圖在兩個(gè)文本框中都輸入10單擊“調(diào)用過(guò)程”按鈕計(jì)算結(jié)果仍顯示在文本框中。,

注意事項(xiàng)

本文(ACCESS實(shí)例教程(第8章).ppt)為本站會(huì)員(max****ui)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!