版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第12章VBA編程
雖然Access的交互操作功能非常強(qiáng)大且易于掌握,但是在實(shí)際的數(shù)據(jù)庫應(yīng)用系統(tǒng)中,用戶還是希望盡量通過自動(dòng)操作達(dá)到數(shù)據(jù)庫管理的目的。應(yīng)用程序設(shè)計(jì)語言在開發(fā)中的應(yīng)用,可以加強(qiáng)對數(shù)據(jù)管理應(yīng)用功能的擴(kuò)展。Office中包含VisualBasicforApplication(VBA),VBA具有與VisualBasic相同的語言功能,它為Access提供了無模式用戶窗體以及支持附加ActiveX控件等功能。本章將簡要介紹VBA的編程。
第12章VBA編程雖然Access的交教學(xué)重點(diǎn)與難點(diǎn)VBA的編程環(huán)境常量、變量和數(shù)組程序流程控制創(chuàng)建VBA模塊教學(xué)重點(diǎn)與難點(diǎn)VBA的編程環(huán)境12.1VBA編程環(huán)境Access利用VisualBasic編輯器(VBE)來編寫過程代碼,它以微軟的VisualBasic編程環(huán)境的布局為基礎(chǔ),實(shí)際上是一個(gè)集編輯、調(diào)試、編譯等功能于一體的編程環(huán)境。所有的Office應(yīng)用程序都支持VisualBasic編程環(huán)境,而且其編程接口都是相同的。使用該編輯器可以創(chuàng)建過程,也可以編輯已有的過程。
幫助輸入
顯示提示信息
形成良好的程序設(shè)計(jì)風(fēng)格
使用書簽調(diào)試手段12.1VBA編程環(huán)境Access利用Vi下圖為一個(gè)VBE窗口,窗口中的各個(gè)部分已經(jīng)給出了相應(yīng)標(biāo)識。
下圖為一個(gè)VBE窗口,窗口中的各個(gè)部分已經(jīng)給12.2VBA程序設(shè)計(jì)基礎(chǔ)VBA(VisualBasicforApplication)是VisualBasic語言的一個(gè)子集,集成了整個(gè)Office產(chǎn)品套件中的開發(fā)語言和開發(fā)環(huán)境。作為Office產(chǎn)品系列的一個(gè)重要組成部分,MicrosoftAccess也是使用VBA語言作為其代碼設(shè)計(jì)的開發(fā)語言。本節(jié)將簡要介紹VBA語言的基本結(jié)構(gòu)和語法。
常量、變量和數(shù)組
數(shù)據(jù)類型12.2VBA程序設(shè)計(jì)基礎(chǔ)VBA(Visu在VBA中,程序是由過程組成的,過程又由根據(jù)VBA規(guī)則書寫的指令組成。一個(gè)程序包括常量、變量、運(yùn)算符、語句、函數(shù)、數(shù)據(jù)庫對象和事件等基本要素。
常量變量數(shù)組
12.2.1常量、變量和數(shù)組
在VBA中,程序是由過程組成的,過程又由根據(jù)VBA語言的數(shù)據(jù)類型包括布爾型(Boolean)、日期型(Date)、字符串(String)、貨幣型(Currency)、字節(jié)型(Byte)、整數(shù)型(Integer)、長整型(Long)、單精度型(Single)、雙精度型(Double)以及變體型(Variant)和用戶自定義型。
12.2.2數(shù)據(jù)類型VBA語言的數(shù)據(jù)類型包括布爾型(Boolean12.3程序流程控制與傳統(tǒng)的程序設(shè)計(jì)語言一樣,VisualBasic也具有結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu):順序結(jié)構(gòu)、選擇(分支)結(jié)構(gòu)和循環(huán)結(jié)構(gòu),下面重點(diǎn)介紹選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
選擇結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
12.3程序流程控制與傳統(tǒng)的程序設(shè)計(jì)語言一選擇結(jié)構(gòu)有If語句和SelectCase語句兩種。
If語句是一類比較簡單的條件控制語句,可以通過緊跟在If后面的表達(dá)式的值,判斷出在其影響范圍下的語句是否被執(zhí)行。
如果在If語句中,一個(gè)表達(dá)式有多個(gè)可選值,并且需要為這些可選值建立不同的執(zhí)行語句,例如選項(xiàng)組控件可以通過不同的值來判斷選項(xiàng)組中到底是按下哪個(gè)按鈕,這樣的語句設(shè)計(jì)通過If語句不方便實(shí)現(xiàn),這時(shí)就需要使用SelectCase語句。
12.3.1選擇結(jié)構(gòu)選擇結(jié)構(gòu)有If語句和SelectCase語句編程中經(jīng)常要需要重復(fù)執(zhí)行某些操作,這時(shí)就需要通過循環(huán)語句來判斷并執(zhí)行這些循環(huán)操作。VBA提供了多種循環(huán)控制語句,其中常用的包括Do…Loop語句、For…Next語句以及While…Wend語句等。
Do…Loop語句
For…Next語句
While…Wend語句GoTo語句12.3.2循環(huán)結(jié)構(gòu)編程中經(jīng)常要需要重復(fù)執(zhí)行某些操作,這時(shí)就需要通12.4Access對象模型Access提供的對象模型可以將數(shù)據(jù)庫功能與自定義的解決方案集成起來。通過使用Access對象模型,可以實(shí)現(xiàn)對事件編程、創(chuàng)建Access窗體和報(bào)表以及設(shè)置引用等。對象模型提供了一些對象,Access內(nèi)部應(yīng)用程序可以使用這些對象。
對象
對象集合對象模型
12.4Access對象模型AccessVBA與傳統(tǒng)語言的重要區(qū)別之一就是它是面向?qū)ο蟮?。對象是VisualBasic程序設(shè)計(jì)的核心。事實(shí)上,窗體和控件都是對象,數(shù)據(jù)庫也是對象,對象到處都存在。一旦理解如何引用應(yīng)用程序?qū)ο竽P椭械膶ο螅湍軌蚴褂脤ο蠹捌涮匦詠斫⒆约旱慕鉀Q方案。當(dāng)然,也可以將對象理解為封裝數(shù)據(jù)和代碼的客體,它是代碼和數(shù)據(jù)的集合。
屬性
方法事件12.4.1對象VBA與傳統(tǒng)語言的重要區(qū)別之一就是它是面向?qū)ο髮ο蠹鲜且粋€(gè)包含幾個(gè)其他對象的對象,而這些對象可具有不同的類型,并且對象的位置均可改變。Access窗體具有以下3種集合,如下圖所示,其中填充色為灰色的表示集合。
12.4.2對象集合對象集合是一個(gè)包含幾個(gè)其他對象的對象,而這些對對象模型實(shí)際上給出了基于對象程序的結(jié)構(gòu),通過定義程序中所使用對象之間的關(guān)系,對象模型能夠以一種比編程更容易的方式來組織對象。Access中的窗體模型包括的對象類型有:控件、集合和集合中的對象。窗體對象模型的每個(gè)元素都具有一系列的屬性、方法和事件,可以利用方法使應(yīng)用程序按照要求進(jìn)行工作。在VBA中,各個(gè)對象之間也不是孤立的,而是彼此之間存在著包含與被包含的關(guān)系。
12.4.3對象模型對象模型實(shí)際上給出了基于對象程序的結(jié)構(gòu),通過12.5創(chuàng)建VBA模塊模塊是將VBA代碼的聲明、語句和過程作為一個(gè)單元進(jìn)行保存的集合,是基本語言的一種數(shù)據(jù)庫對象,數(shù)據(jù)庫中的所有對象都可以在模塊中進(jìn)行引用。利用模塊可以創(chuàng)建自定義函數(shù)、子程序以及事件過程等,以便完成復(fù)雜的計(jì)算功能。模塊可以代替宏,并可以執(zhí)行標(biāo)準(zhǔn)宏所不能執(zhí)行的功能。模塊的定義和創(chuàng)建
過程的創(chuàng)建
過程的調(diào)用
12.5創(chuàng)建VBA模塊模塊是將VBA代碼的Access模塊有兩種基本類型:類模塊和標(biāo)準(zhǔn)模塊。模塊中的每一個(gè)過程都可以是一個(gè)Function過程或一個(gè)Sub過程。
類模塊
標(biāo)準(zhǔn)模塊12.5.1模塊的定義和創(chuàng)建Access模塊有兩種基本類型:類模塊和標(biāo)準(zhǔn)模過程是包含VBA代碼的基本單位,可以完成一系列指定的操作。過程由計(jì)算的語句和方法組成,通常分為Sub過程、Function過程和Property過程。其中,Sub過程是最常用的過程類型,也稱為命令宏,可以傳送參數(shù)和使用參數(shù)來調(diào)用它,但不返回任何值;Function過程也稱為自定義函數(shù)過程,其運(yùn)行方式和使用程序的內(nèi)置函數(shù)一樣,即通過調(diào)用Function過程獲得函數(shù)的返回值;Property過程能夠處理對象的屬性。
12.5.2過程的創(chuàng)建過程是包含VBA代碼的基本單位,可以完成一系Call語句用來調(diào)用過程,也可調(diào)用VisualBasic的函數(shù)和自定義函數(shù),兩者均采用如下的格式:[Call]name[argumentlist]其中name表示被調(diào)用過程的名稱,argumentlist表示參數(shù)列表,各參數(shù)間必須以逗號隔開。在窗體過程(例如事件過程)中可以直接調(diào)用標(biāo)準(zhǔn)模塊中的過程,但也可通過標(biāo)準(zhǔn)模塊的名稱來調(diào)用。在標(biāo)準(zhǔn)模塊的過程中調(diào)用窗體模塊中的過程時(shí),必須以VisualBasic格式指出窗體名,例如“Form_員工信息.name”。12.5.3過程的調(diào)用Call語句用來調(diào)用過程,也可調(diào)用Visua12.6VBA代碼的保護(hù)在開發(fā)數(shù)據(jù)庫產(chǎn)品以后,為了防止其他人查看或更改VBA代碼,需要對該數(shù)據(jù)庫的VBA代碼進(jìn)行保護(hù)。保護(hù)VBA代碼的措施主要有兩種:對VBA代碼設(shè)置密碼保護(hù)或生成MDE文件保護(hù)。
設(shè)置密碼保護(hù)VisualBasic代碼
生成ACCDE文件
12.6VBA代碼的保護(hù)在開發(fā)數(shù)據(jù)庫產(chǎn)品以用戶可以通過對VBA代碼設(shè)置密碼來防止其他非法用戶查看或編輯數(shù)據(jù)庫中的程序代碼。
12.6.1設(shè)置密碼保護(hù)VisualBasic代碼用戶可以通過對VBA代碼設(shè)置密碼來防止其他非除了使用密碼保護(hù)VBA代碼以外,還可以通過創(chuàng)建ACCDE文件保護(hù)程序代碼。ACCDE文件是舊版本Access中的.mde文件的Access2007版本。
12.6.2生成ACCDE文件除了使用密碼保護(hù)VBA代碼以外,還可以通過創(chuàng)演講完畢,謝謝觀看!演講完畢,謝謝觀看!第12章VBA編程
雖然Access的交互操作功能非常強(qiáng)大且易于掌握,但是在實(shí)際的數(shù)據(jù)庫應(yīng)用系統(tǒng)中,用戶還是希望盡量通過自動(dòng)操作達(dá)到數(shù)據(jù)庫管理的目的。應(yīng)用程序設(shè)計(jì)語言在開發(fā)中的應(yīng)用,可以加強(qiáng)對數(shù)據(jù)管理應(yīng)用功能的擴(kuò)展。Office中包含VisualBasicforApplication(VBA),VBA具有與VisualBasic相同的語言功能,它為Access提供了無模式用戶窗體以及支持附加ActiveX控件等功能。本章將簡要介紹VBA的編程。
第12章VBA編程雖然Access的交教學(xué)重點(diǎn)與難點(diǎn)VBA的編程環(huán)境常量、變量和數(shù)組程序流程控制創(chuàng)建VBA模塊教學(xué)重點(diǎn)與難點(diǎn)VBA的編程環(huán)境12.1VBA編程環(huán)境Access利用VisualBasic編輯器(VBE)來編寫過程代碼,它以微軟的VisualBasic編程環(huán)境的布局為基礎(chǔ),實(shí)際上是一個(gè)集編輯、調(diào)試、編譯等功能于一體的編程環(huán)境。所有的Office應(yīng)用程序都支持VisualBasic編程環(huán)境,而且其編程接口都是相同的。使用該編輯器可以創(chuàng)建過程,也可以編輯已有的過程。
幫助輸入
顯示提示信息
形成良好的程序設(shè)計(jì)風(fēng)格
使用書簽調(diào)試手段12.1VBA編程環(huán)境Access利用Vi下圖為一個(gè)VBE窗口,窗口中的各個(gè)部分已經(jīng)給出了相應(yīng)標(biāo)識。
下圖為一個(gè)VBE窗口,窗口中的各個(gè)部分已經(jīng)給12.2VBA程序設(shè)計(jì)基礎(chǔ)VBA(VisualBasicforApplication)是VisualBasic語言的一個(gè)子集,集成了整個(gè)Office產(chǎn)品套件中的開發(fā)語言和開發(fā)環(huán)境。作為Office產(chǎn)品系列的一個(gè)重要組成部分,MicrosoftAccess也是使用VBA語言作為其代碼設(shè)計(jì)的開發(fā)語言。本節(jié)將簡要介紹VBA語言的基本結(jié)構(gòu)和語法。
常量、變量和數(shù)組
數(shù)據(jù)類型12.2VBA程序設(shè)計(jì)基礎(chǔ)VBA(Visu在VBA中,程序是由過程組成的,過程又由根據(jù)VBA規(guī)則書寫的指令組成。一個(gè)程序包括常量、變量、運(yùn)算符、語句、函數(shù)、數(shù)據(jù)庫對象和事件等基本要素。
常量變量數(shù)組
12.2.1常量、變量和數(shù)組
在VBA中,程序是由過程組成的,過程又由根據(jù)VBA語言的數(shù)據(jù)類型包括布爾型(Boolean)、日期型(Date)、字符串(String)、貨幣型(Currency)、字節(jié)型(Byte)、整數(shù)型(Integer)、長整型(Long)、單精度型(Single)、雙精度型(Double)以及變體型(Variant)和用戶自定義型。
12.2.2數(shù)據(jù)類型VBA語言的數(shù)據(jù)類型包括布爾型(Boolean12.3程序流程控制與傳統(tǒng)的程序設(shè)計(jì)語言一樣,VisualBasic也具有結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu):順序結(jié)構(gòu)、選擇(分支)結(jié)構(gòu)和循環(huán)結(jié)構(gòu),下面重點(diǎn)介紹選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
選擇結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
12.3程序流程控制與傳統(tǒng)的程序設(shè)計(jì)語言一選擇結(jié)構(gòu)有If語句和SelectCase語句兩種。
If語句是一類比較簡單的條件控制語句,可以通過緊跟在If后面的表達(dá)式的值,判斷出在其影響范圍下的語句是否被執(zhí)行。
如果在If語句中,一個(gè)表達(dá)式有多個(gè)可選值,并且需要為這些可選值建立不同的執(zhí)行語句,例如選項(xiàng)組控件可以通過不同的值來判斷選項(xiàng)組中到底是按下哪個(gè)按鈕,這樣的語句設(shè)計(jì)通過If語句不方便實(shí)現(xiàn),這時(shí)就需要使用SelectCase語句。
12.3.1選擇結(jié)構(gòu)選擇結(jié)構(gòu)有If語句和SelectCase語句編程中經(jīng)常要需要重復(fù)執(zhí)行某些操作,這時(shí)就需要通過循環(huán)語句來判斷并執(zhí)行這些循環(huán)操作。VBA提供了多種循環(huán)控制語句,其中常用的包括Do…Loop語句、For…Next語句以及While…Wend語句等。
Do…Loop語句
For…Next語句
While…Wend語句GoTo語句12.3.2循環(huán)結(jié)構(gòu)編程中經(jīng)常要需要重復(fù)執(zhí)行某些操作,這時(shí)就需要通12.4Access對象模型Access提供的對象模型可以將數(shù)據(jù)庫功能與自定義的解決方案集成起來。通過使用Access對象模型,可以實(shí)現(xiàn)對事件編程、創(chuàng)建Access窗體和報(bào)表以及設(shè)置引用等。對象模型提供了一些對象,Access內(nèi)部應(yīng)用程序可以使用這些對象。
對象
對象集合對象模型
12.4Access對象模型AccessVBA與傳統(tǒng)語言的重要區(qū)別之一就是它是面向?qū)ο蟮摹ο笫荲isualBasic程序設(shè)計(jì)的核心。事實(shí)上,窗體和控件都是對象,數(shù)據(jù)庫也是對象,對象到處都存在。一旦理解如何引用應(yīng)用程序?qū)ο竽P椭械膶ο?,就能夠使用對象及其特性來建立自己的解決方案。當(dāng)然,也可以將對象理解為封裝數(shù)據(jù)和代碼的客體,它是代碼和數(shù)據(jù)的集合。
屬性
方法事件12.4.1對象VBA與傳統(tǒng)語言的重要區(qū)別之一就是它是面向?qū)ο髮ο蠹鲜且粋€(gè)包含幾個(gè)其他對象的對象,而這些對象可具有不同的類型,并且對象的位置均可改變。Access窗體具有以下3種集合,如下圖所示,其中填充色為灰色的表示集合。
12.4.2對象集合對象集合是一個(gè)包含幾個(gè)其他對象的對象,而這些對對象模型實(shí)際上給出了基于對象程序的結(jié)構(gòu),通過定義程序中所使用對象之間的關(guān)系,對象模型能夠以一種比編程更容易的方式來組織對象。Access中的窗體模型包括的對象類型有:控件、集合和集合中的對象。窗體對象模型的每個(gè)元素都具有一系列的屬性、方法和事件,可以利用方法使應(yīng)用程序按照要求進(jìn)行工作。在VBA中,各個(gè)對象之間也不是孤立的,而是彼此之間存在著包含與被包含的關(guān)系。
12.4.3對象模型對象模型實(shí)際上給出了基于對象程序的結(jié)構(gòu),通過12.5創(chuàng)建VBA模塊模塊是將VBA代碼的聲明、語句和過程作為一個(gè)單元進(jìn)行保存的集合,是基本語言的一種數(shù)據(jù)庫對象,數(shù)據(jù)庫中的所有對象都可以在模塊中進(jìn)行引用。利用模塊可以創(chuàng)建自定義函數(shù)、子程序以及事件過程等,以便完成復(fù)雜的計(jì)算功能。模塊可以代替宏,并可以執(zhí)行標(biāo)準(zhǔn)宏所不能執(zhí)行的功能。模塊的定義和創(chuàng)建
過程的創(chuàng)建
過程的調(diào)用
12.5創(chuàng)建VBA模塊模塊是將VBA代碼的Access模塊有兩種基本類型:類模塊和標(biāo)準(zhǔn)模塊。模塊中的每一個(gè)過程都可以是一個(gè)Function過程或一個(gè)Sub過程。
類模塊
標(biāo)準(zhǔn)模塊12.5.1模塊的定義和創(chuàng)建Access模塊有兩種基本類型:類模塊和標(biāo)準(zhǔn)模過程是包含VBA代碼的基本單位,可以完成一系列指定的操作。過程由計(jì)算的語句和方法組成,通常分為Sub過程、Function過程和Property過程。其中,Sub過程是最常用的過程類型,也稱為命令宏,可以傳送參數(shù)和使用參數(shù)來調(diào)用它,但不返回任何值;Function過程也稱為自定義函數(shù)過程,其運(yùn)行方式和使用程序的內(nèi)置函數(shù)一樣,即通過調(diào)用Function過程獲得函數(shù)的返回值;Pro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《家樂福模式分析》課件
- 管理顧問工作總結(jié)
- 房地產(chǎn)行業(yè)客服經(jīng)驗(yàn)分享
- 服裝行業(yè)的保安工作總結(jié)
- 中央財(cái)經(jīng)大學(xué)財(cái)務(wù)管理課件-風(fēng)險(xiǎn)與報(bào)酬
- 銀行求職自我介紹(15篇)
- 2023-2024年項(xiàng)目部治理人員安全培訓(xùn)考試題(原創(chuàng)題)
- 《電子政務(wù)》課件
- 2024年公司項(xiàng)目部負(fù)責(zé)人安全教育培訓(xùn)試題含答案(模擬題)
- 銷售個(gè)人年度工作總結(jié)(7篇)
- 創(chuàng)意寫作與文學(xué)欣賞
- 高空伐樹作業(yè)施工方案
- 新媒體用戶行為研究-洞察分析
- 醫(yī)療器械考試題及答案
- 初三家長會(huì)數(shù)學(xué)老師發(fā)言稿
- 2025版國家開放大學(xué)法學(xué)本科《知識產(chǎn)權(quán)法》期末紙質(zhì)考試總題庫
- 醫(yī)藥銷售培訓(xùn)課程
- 2022-2023學(xué)年北京市海淀區(qū)七年級(上)期末語文試卷
- 膝關(guān)節(jié)炎階梯治療
- 設(shè)備日常維護(hù)及保養(yǎng)培訓(xùn)
- 行業(yè)背景、經(jīng)濟(jì)運(yùn)行情況及產(chǎn)業(yè)未來發(fā)展趨勢分析
評論
0/150
提交評論