ACCESS考點分析8_第1頁
ACCESS考點分析8_第2頁
ACCESS考點分析8_第3頁
ACCESS考點分析8_第4頁
ACCESS考點分析8_第5頁
已閱讀5頁,還剩245頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、ACCESS考點分析第第8 8章章 模模 塊塊在Access系統(tǒng)中,借助宏對象可以完成事件的響應(yīng)處理,例如,打開和關(guān)閉窗體、報表等。不過,宏的使用也有一定的局限性,一是它處理一些簡單的操作,對于復(fù)雜條件和循環(huán)等結(jié)構(gòu)則無能為力;二是宏對數(shù)據(jù)庫對象的處理,例如,表對象或查詢對象的處理,能力也很弱。在這種情況下,可以使用Access系統(tǒng)提供的“模塊”數(shù)據(jù)庫對象來解決一些實際開發(fā)活動中的復(fù)雜應(yīng)用。 本章主要介紹Access數(shù)據(jù)庫的VBA代碼操作以及代碼“容器”類模塊(包含窗體模塊和報表模塊)與標(biāo)準(zhǔn)模塊對象的使用。考點一考點一 模塊的基本概念模塊的基本概念模塊是Access系統(tǒng)中的一個重要對象,它以VB

2、A(Visual Basic for Application)語言為基礎(chǔ)編寫,以函數(shù)過程(Function)或子過程(Sub)為單元的集合方式存儲。在Access中,模塊分為類模塊類模塊和標(biāo)準(zhǔn)模標(biāo)準(zhǔn)模塊塊兩種類型??键c一考點一 模塊的基本概念模塊的基本概念1、類模塊、類模塊 窗體模塊窗體模塊和報表模塊報表模塊都屬于類模塊,它們從屬于各自的窗體或報表。在窗體或報表的設(shè)計視圖環(huán)境下可以用兩種方法兩種方法進(jìn)入相應(yīng)的模塊代碼設(shè)計區(qū)域:一是鼠標(biāo)點擊工具欄“代碼”按鈕進(jìn)入;二是為窗體或報表創(chuàng)建事件過程時,系統(tǒng)會自動過入相應(yīng)代碼設(shè)計區(qū)域。 考點一考點一 模塊的基本概念模塊的基本概念1、類模塊、類模塊 窗體模

3、塊和報表模塊通常都含有事件過程,而過程的運(yùn)行用于響應(yīng)窗體或報表上的事件。使用事件過程可以控制窗體或報表的行為以及它們對用戶操作的響應(yīng)。 考點一考點一 模塊的基本概念模塊的基本概念1、類模塊、類模塊 窗體模塊和報表模塊中的過程可以調(diào)用標(biāo)準(zhǔn)模塊中已經(jīng)定義好的過程。 窗體模塊和報表模塊具有局部特性局部特性,其作用范圍局限在所屬窗體或報表內(nèi)部,而生命周期則是伴隨著窗體或報表的打開而開始、關(guān)閉而結(jié)束??键c一考點一 模塊的基本概念模塊的基本概念2、標(biāo)準(zhǔn)模塊、標(biāo)準(zhǔn)模塊 標(biāo)準(zhǔn)模塊一般用于存放供其他Access數(shù)據(jù)庫對象使用的公共過程。在Access系統(tǒng)中可以通過創(chuàng)建新的模塊對象而進(jìn)入其代碼設(shè)計環(huán)境。 標(biāo)準(zhǔn)模塊

4、通常安排一些公共變量公共變量或過程過程供類模塊里的過程調(diào)用。在各個標(biāo)準(zhǔn)模塊內(nèi)部也可以定義私有變量和私有過程僅供本模塊內(nèi)部使用。 考點一考點一 模塊的基本概念模塊的基本概念2、標(biāo)準(zhǔn)模塊、標(biāo)準(zhǔn)模塊 標(biāo)準(zhǔn)模塊中的公共變量和公共過程具有全局特性全局特性,其作用范圍在整個應(yīng)用程序里,生命周期是伴隨應(yīng)用程序的運(yùn)行而開始、關(guān)閉而結(jié)束。 考點一考點一 模塊的基本概念模塊的基本概念3、將宏轉(zhuǎn)換為模塊、將宏轉(zhuǎn)換為模塊 在Access系統(tǒng)中,根據(jù)需要可以將設(shè)計好的宏對象轉(zhuǎn)換為模塊代碼形式。考點二考點二 創(chuàng)建模塊創(chuàng)建模塊過程是模塊的單元組成,由VBA代碼編寫而成。過程分兩種類型:Sub子過程和Function函數(shù)過程

5、??键c二考點二 創(chuàng)建模塊創(chuàng)建模塊1、在模塊中加入過程、在模塊中加入過程 模塊是裝著VBA代碼的容器。在窗體或報表的設(shè)計視圖里,單擊工具欄“代碼”按鈕或者創(chuàng)建窗體或報表的事件過程可以進(jìn)入類模塊的設(shè)計和編輯窗口;單擊數(shù)據(jù)庫窗體中的“模塊”對象標(biāo)簽,然后單擊“新建”按鈕即可進(jìn)入標(biāo)準(zhǔn)模塊的設(shè)計和編輯窗口??键c二考點二 創(chuàng)建模塊創(chuàng)建模塊1、在模塊中加入過程、在模塊中加入過程 一個模塊包含一個聲明區(qū)域,包含一個或多個子過程(以Sub開頭)或函數(shù)過程(以Function開頭)。模塊的聲明區(qū)域是用來聲明模塊使用的變量等項目。考點二考點二 創(chuàng)建模塊創(chuàng)建模塊(1)Sub過程。 又稱為子過程。執(zhí)行一系列操作,無返回

6、值。定義格式如下: Sub 過程名過程名 程序代碼程序代碼 End Sub 可以引用過程名來調(diào)用該子過程。此外,VBA提供了一個關(guān)鍵字Call,可顯示調(diào)用一個子過程。在過程名前加上Call是一個很好的程序設(shè)計習(xí)慣??键c二考點二 創(chuàng)建模塊創(chuàng)建模塊(2)Function過程。 又稱為函數(shù)過程。執(zhí)行一系列操作,有返回值。定義格式如下: Function 過程名過程名 程序代碼程序代碼 End Function 函數(shù)過程不能使用Call來調(diào)用執(zhí)行,需要直接引用函數(shù)過程名,并由接在函數(shù)過程名后的括號所辨別??键c二考點二 創(chuàng)建模塊創(chuàng)建模塊2、在模塊中執(zhí)行宏、在模塊中執(zhí)行宏 在模塊的過程定義中,使用DoCm

7、d對象的RunMacro方法,可以執(zhí)行設(shè)計好的宏。其調(diào)用格式為: DoCmd.RunMacro MacroName,RepeatCount,RepeatExpression 其中MacroName表示當(dāng)前數(shù)據(jù)庫中宏的有效名稱;RepeatCount可選項,用于計算宏運(yùn)行次數(shù)的整數(shù)值;RepeatExpression可選項,為數(shù)值表達(dá)式,在每一次運(yùn)行宏時進(jìn)行計算,結(jié)果為False(0)時,停止運(yùn)行宏??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)VBA是微軟Office套件的內(nèi)置編程語言,其語法與Visual Basic編程語言互相兼容。在Access程序設(shè)計中,當(dāng)某些操作不能用其他Acce

8、ss對象實現(xiàn)或?qū)崿F(xiàn)起來很困難時,就可以利用VBA語言編寫代碼,完成這些復(fù)雜任務(wù)??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)一般Access程序設(shè)計在遇到下列情況下需要使用使用VBA代碼代碼: (1)創(chuàng)建用戶自定義函數(shù)(User-defined Function,UDF)。使用UDF,可以使程序代碼更加簡潔而有效。 (2)復(fù)雜程序處理??梢跃帉戇x擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等復(fù)雜程序處理。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(3)數(shù)據(jù)庫的事務(wù)處理操作。 (4)使用ActiveX控件和其他應(yīng)用程序?qū)ο蟆?(5)錯誤處理。通過使用Access的VBA代碼,可以控制應(yīng)用程序?qū)﹀e誤作出反應(yīng),

9、例如,用戶輸入錯誤、對象引用錯誤等。而Access宏的缺點就是它們對錯誤處理不靈活。考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)1、面向?qū)ο蟪绦蛟O(shè)計的基本概念、面向?qū)ο蟪绦蛟O(shè)計的基本概念 Access內(nèi)部提供了功能強(qiáng)大的向?qū)C(jī)制,能處理基本的數(shù)據(jù)庫操作。在此基礎(chǔ)上再編寫適當(dāng)?shù)某绦虼a,可以極大地改善程序功能。 Access內(nèi)嵌的VBA,功能強(qiáng)大,采用目前主流的面向?qū)ο髾C(jī)制和可視化編程環(huán)境。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(1)集合和對象 Access采用面向?qū)ο蟪绦蜷_發(fā)環(huán)境,其數(shù)據(jù)庫窗口可以方便地訪問和處理表、查詢、窗體、報表、頁、宏和模塊對象。VBA中可以使用這些對

10、象以及范圍更廣泛的一些可編程對象,例如,“記錄集”等。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(1)集合和對象 一個對象就是一個實體一個對象就是一個實體,每種對象都具有一些屬性以相互區(qū)分,即屬性可以定屬性可以定義對象的一個實例義對象的一個實例。 對象的屬性按其類別會有所不同,而且同一對象的不同實例屬性構(gòu)成也可能有差異。 對象除了屬性以外還有方法。對象的方對象的方法就是對象可以執(zhí)行的行為法就是對象可以執(zhí)行的行為。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(1)集合和對象 Access應(yīng)用程序由表、查詢、窗體、報表、頁、宏和模塊對象列表構(gòu)成,形成不同的類。Access數(shù)據(jù)庫窗

11、體左側(cè)顯示的就是數(shù)據(jù)庫的對象類,單擊其中的任一對象類,就可以打開相應(yīng)對象窗口。而且,其中有些對象內(nèi)部,Access中,控件外觀和行為可以設(shè)置定義。 集合表達(dá)的是某類對象所包含的實例構(gòu)成??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(2)屬性和方法 屬性和方法描述了對象的性質(zhì)和行為屬性和方法描述了對象的性質(zhì)和行為。其引用方式為:對象對象.屬性屬性或?qū)ο髮ο?行為行為。 Access中“對象”可以是單一對象,也可以是對象的集合。數(shù)據(jù)庫對象的屬性均可以在各自的“設(shè)計”視圖中通過“屬性窗體”進(jìn)行瀏覽和設(shè)置。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(2)屬性和方法 Access中除數(shù)據(jù)

12、庫的7個對象個對象外,還提供一個重要的對象:DoCmd對象對象。它的主要功能是通過調(diào)用包含在內(nèi)部的方法來實現(xiàn)VBA編程中對Access的操作。 DoCmd對象的方法大都需要參數(shù)。有些是必給的,有些是可選的,被忽略的參數(shù)取缺省值。 Docmd對象還有許多方法,可以通過幫助文件查詢使用。考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(3)事件和事件過程 事件是事件是Access窗體或報表及其上的控窗體或報表及其上的控件等對象可以件等對象可以“辨識辨識”的動作的動作。在Access數(shù)據(jù)庫系統(tǒng)里,可以通過兩種來處理窗體、報表或控件的事件響應(yīng)。一是使用宏對象來設(shè)置事件屬性;二是為某個事件編寫VBA代

13、碼過程,完成指定動作,這樣的代碼過程稱為事件過程或事件響應(yīng)代碼。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)實際上,Access窗體、報表和控件的事件有很多,一些主要對象事件如下 窗體窗體 事件動作和動作說明事件動作和動作說明 OnLoad 窗體加載時發(fā)生事件 OnUnLoad 窗體卸載時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnOpen 窗體打開時發(fā)生事件 OnClose 窗體關(guān)閉時發(fā)生事件 OnClick 窗體單擊時發(fā)生事件 OnDblClick 窗體雙擊時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnMouseDown 窗體鼠標(biāo)按下時發(fā)生事

14、件 OnKeyPress 窗體上鍵盤按鍵時發(fā)生事件 OnKeyDown 窗體上鍵盤按下鍵時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)報表報表 OnOpen 報表打開時發(fā)生事件 OnClose 報表關(guān)閉時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)命令按鈕控件命令按鈕控件 OnClick 按鈕單擊時發(fā)生事件 OnDblClick 按鈕雙擊時發(fā)生事件 OnEnter 按鈕獲得輸入焦點之前發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnGetFoucs 按鈕獲得輸入焦點時發(fā)生事件 OnMouseDown 按鈕上鼠標(biāo)按下時發(fā)生事件 OnKeyPress

15、 按鈕上鍵盤按鍵時發(fā)生事件 OnKeyDown 按鈕上鍵盤按下鍵時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)標(biāo)簽控件標(biāo)簽控件 OnClick 標(biāo)簽單擊時發(fā)生事件 OnDblClick 標(biāo)簽雙擊時發(fā)生事件 OnMouseDown 標(biāo)簽上鼠標(biāo)按下時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)文本框控件文本框控件 BeforeUpdate 文本框內(nèi)容更新前發(fā)生事件 AfterUpdate 文本框內(nèi)容更新后發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnEnter 文本框輸入焦點之前發(fā)生事件 OnGetFoucs 文本框獲得輸入焦點時發(fā)生事件 OnLo

16、stFoucs 文本框失去輸入焦點時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnChange 文本框內(nèi)容更新時發(fā)生事件 OnKeyPress 文本框內(nèi)鍵盤按鍵時發(fā)生事件 OnMouseDown 文本框內(nèi)鼠標(biāo)按下鍵時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)組合框控件組合框控件 BeforeUpdate 組合框內(nèi)容更新前發(fā)生事件 AfterUpdate 組合框內(nèi)容更新后發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnEnter 組合框獲得輸入焦點之前發(fā)生事件 OnGetFoucs 組合框獲得輸入焦點時發(fā)生事件 OnLostFoucs 組合框失

17、去輸入焦點時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnClick 組合框單擊時發(fā)生事件 OnDblClick 組合框雙擊時發(fā)生事件 OnKeyPress 組合框內(nèi)鍵盤按鍵時發(fā)生事件考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)選項組控件選項組控件 BeforeUpdate 選項框內(nèi)容更新前發(fā)生事件AfterUpdate 選項組內(nèi)容更新前發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnEnter 選項組內(nèi)容更新后發(fā)生事件 OnClick 選項組單擊時發(fā)生事件 OnDblClick 選項組雙擊時發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)單

18、選按鈕控件單選按鈕控件 OnKeyPress 單選按鈕內(nèi)鍵盤按鍵時發(fā)生事件 OnGetFoucs 單選按鈕獲得輸入焦點時發(fā)生事件 OnLostFoucs 單選按鈕失去輸入時發(fā)生事件考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)復(fù)選框控件復(fù)選框控件 BeforeUpdate 復(fù)選框更新前發(fā)生事件 AfterUpdate 復(fù)選框更新后發(fā)生事件 OnEnter 復(fù)選框獲得輸入焦點之前發(fā)生事件 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)OnClick 復(fù)選框單擊時發(fā)生事件 OnDblClick 復(fù)選框雙擊時發(fā)生事件 OnGetFoucs 復(fù)選框獲得輸入焦點時發(fā)生事件考點三考點三 VBAVB

19、A程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)2、VBA編程環(huán)境:編程環(huán)境:VBE界面界面 (1)進(jìn)入VBE編程環(huán)境 Access模塊分成類模塊和標(biāo)準(zhǔn)模塊兩種,它們進(jìn)入VBE編程環(huán)境的方式也有所不同。 對于類模塊類模塊,可以直接定位到窗體或報表上,然后單擊工具欄上的“代碼”工具鈕進(jìn)入;或定位到窗體、報表和控件上通過指定對象事件處理過程進(jìn)入。考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)通過指定對象事件處理過程進(jìn)入。方法有兩種:一是單擊屬性窗體的“事件”選項卡,選中某個事件并設(shè)置屬性為“(事件過程)”選項,再單擊屬性欄右側(cè)的“”按鈕即可進(jìn)入。二是單擊屬性窗體的“事件”選項卡,選中某個事件直接單擊屬性欄右側(cè)的“”

20、按鈕,“選擇生成器”對話框,選擇其中的“代碼生成器”,單“確定”按鈕即可進(jìn)入??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)對于標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊,有三種進(jìn)入方法:一是對于已存在的標(biāo)準(zhǔn)模塊,只需從數(shù)據(jù)庫窗體對象列表上選擇“模塊”,雙擊要查看的模塊對象即可進(jìn)入。二是要創(chuàng)建新的標(biāo)準(zhǔn)模塊,需從數(shù)據(jù)庫窗體對象列表上選擇“模塊”,單擊工具欄上“新建”按鈕即可進(jìn)入。三是在數(shù)據(jù)庫對象窗體中,單級“工具”菜單中“宏”級聯(lián)菜單的“Visual Basic編輯器”選項即可進(jìn)入。 使用Alt+F11組合鍵,可以方便地在數(shù)據(jù)庫窗口的VBE之間進(jìn)行切換。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)2、VBA編

21、程環(huán)境:編程環(huán)境:VBE界面界面(1)VBE窗口 VBE窗口主要有標(biāo)準(zhǔn)工具欄標(biāo)準(zhǔn)工具欄、工程窗口工程窗口、屬性窗口屬性窗口和代碼窗口代碼窗口組成。 標(biāo)準(zhǔn)工具欄 Access視圖視圖插入模塊插入模塊運(yùn)行子模塊運(yùn)行子模塊/用戶窗體用戶窗體中斷中斷運(yùn)行運(yùn)行終止運(yùn)行終止運(yùn)行/重新設(shè)置重新設(shè)置設(shè)設(shè)計計模模式式工程項目工程項目管理器管理器屬屬性性窗窗口口對象瀏對象瀏覽器覽器行列行列考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)工程窗口 又稱工程項目管理器工程項目管理器。在其中的列表框當(dāng)中列出了應(yīng)用程序的所有模塊文件。單擊“查看代碼”按鈕可以打開相應(yīng)代碼窗口,單擊“查看對象”按鈕可以打開相應(yīng)對象窗口,單

22、擊“切換文件夾”按鈕可以隱藏或顯示對象分類文件夾。 雙擊工程窗口上的一個模塊或類,相應(yīng)的代碼窗口就會顯示出來??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)代碼窗口 由對象組合框、事件組合框和代碼編輯區(qū)組成??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)屬性窗口 屬性窗口列出了所選對象的各個屬性,分“按字母序”和“按分類序”兩種查看形式??梢灾苯釉趯傩源翱谥芯庉媽ο蟮膶傩裕@屬于對象屬性的“靜態(tài)”設(shè)置方法;可以在代碼窗口內(nèi)用VBA代碼編輯對象的屬性,這屬于對象屬性的“動態(tài)”設(shè)置方法。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)立即窗口立即窗口是用來進(jìn)行快速的表達(dá)式計算、簡單方法

23、的操作及進(jìn)行程序測試的工作窗口。 在代碼窗口內(nèi)編寫代碼時,要在立即窗口打印變量或表達(dá)式的值,可使用Debug.Print語句。?sqr(9)3 .909297426825682 ?sin(2)考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)2、VBA編程環(huán)境:編程環(huán)境:VBE界面界面 (2)進(jìn)入VBE編程環(huán)境 Access模塊分成類模塊和標(biāo)準(zhǔn)模塊兩種,它們進(jìn)入VBE編程環(huán)境的方式也有所不同。 對于類模塊類模塊,可以直接定位到窗體或報表上,然后單擊工具欄上的“代碼代碼”工具鈕進(jìn)入;或定位到窗體、報表和控件上通過指定對象事件對象事件處理過程進(jìn)入??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)

24、通過指定對象事件處理過程進(jìn)入。方法有兩種: 一是單擊屬性窗體的“事件”選項卡,選中某個事件并設(shè)置屬性為“(事件過程)”選項,再單擊屬性欄右側(cè)的“”按鈕即可進(jìn)入。 二是單擊屬性窗體的“事件”選項卡,選中某個事件直接單擊屬性欄右側(cè)的“”按鈕,“選擇生成器”對話框,選擇其中的“代碼生成器”,單“確定”按鈕即可進(jìn)入??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)對于標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊,有三種進(jìn)入方法: 一是對于已存在的標(biāo)準(zhǔn)模塊,只需從數(shù)據(jù)庫窗體對象列表上選擇“模塊”,雙擊要查看的模塊對象即可進(jìn)入。 二是要創(chuàng)建新的標(biāo)準(zhǔn)模塊,需從數(shù)據(jù)庫窗體對象列表上選擇“模塊”,單擊工具欄上“新建”按鈕即可進(jìn)入。 三是

25、在數(shù)據(jù)庫對象窗體中,單級“工具”菜單中“宏”級聯(lián)菜單的“Visual Basic編輯器”選項即可進(jìn)入。 使用Alt+F11組合鍵,可以方便地在數(shù)據(jù)庫窗口的VBE之間進(jìn)行切換。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(3)VBE環(huán)境中編寫VBA代碼 Access的VBE編輯環(huán)境提供了完整的開發(fā)和開發(fā)和調(diào)試工具調(diào)試工具。其中的代碼窗口頂部包含兩個組合框,左側(cè)為對象列表,右側(cè)為過程列表。操作時,從左側(cè)組合框選定一個對象后,右側(cè)過程組合框中會列出該對象的所有事件過程,再從該對象事件過程列表選項中選擇某個事件名稱,系統(tǒng)會自動生成相應(yīng)的事件過程模板,用戶添加代碼即可。 雙擊工程窗口中任何類或?qū)?/p>

26、象都可以在代碼窗口中打開相應(yīng)代碼并進(jìn)行編輯處理。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)在代碼窗口使用時,提供了一些便利的功能,主要有: 對象瀏覽器對象瀏覽器 使用對象瀏覽器工具可以快速對所操作對象的屬性及方法進(jìn)行檢索。 快速訪問子過程快速訪問子過程 利用代碼窗口頂部右邊的“過程”組合框可以快速定位到所需的子過程位置。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)自動顯示提示信息自動顯示提示信息 在代碼窗口內(nèi)輸入代碼時,系統(tǒng)會自動顯示關(guān)鍵字列表、關(guān)鍵字屬性列表及過程參數(shù)列表等提示信息。 例例8.1 新建窗體并在其上放置一個命令按鈕,然后創(chuàng)建該命令按鈕的“單擊”事件響應(yīng)過程。考

27、點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(4)程序語句書寫原則 語句書寫規(guī)定語句書寫規(guī)定 通常將一個語句寫在一行。語句較長,一行寫不下時,可以用續(xù)行符(_)將語句連續(xù)寫在下一行。 可以使用冒號(:)將幾個語句分隔寫在一行中。 當(dāng)輸入一行語句并按下回車鍵后,如果該行代碼以紅公的文本顯示(有時伴有錯誤信息出現(xiàn)),則表明該行語句存在錯誤應(yīng)更正。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)注釋語句注釋語句 一個好的程序一般都有注釋語句。這對程序的維護(hù)有很大的好處。 在VBA程序中,注釋可以通過以下兩種方式實現(xiàn): 使用Rem語句 使用格式為:Rem注釋語句 用單引號“”使用格式為:注釋語

28、句 注釋可以添加到程序模塊的任何位置,并且默認(rèn)以綠色文本顯示。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)例例8.2 定義變量并賦值Rem 定義兩個變量Dim Str1, Str2Str1=“Beijing” : Rem 注釋在語句之后要用冒號隔開Str2=“Shanghai” 這也是一條注釋考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)采用縮進(jìn)格式書寫程序采用縮進(jìn)格式書寫程序采取正確的縮進(jìn)格式可以顯示出流程中的結(jié)構(gòu)。也可以利用“編輯”菜單下的“縮進(jìn)”或“凸出”命令設(shè)置F1幫助信息幫助信息 可以將光標(biāo)停留在某個語句命令上并按下F1鍵,系統(tǒng)會立刻提供相關(guān)命令的幫助信息。考點三考點三

29、VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)3、數(shù)據(jù)類型和數(shù)據(jù)對象、數(shù)據(jù)類型和數(shù)據(jù)對象(1)標(biāo)準(zhǔn)數(shù)據(jù)類型Access數(shù)據(jù)庫系統(tǒng)創(chuàng)建表對象時所涉及到的字段數(shù)據(jù)類型(除了OLE對象和備注數(shù)據(jù)類型外),在VBA中都有相對應(yīng)的數(shù)據(jù)類型。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)VBA之外,還可以使用類型說明字節(jié)、整數(shù)、長整數(shù)、自動編號、單精度數(shù)和雙精度數(shù)等常量和變量與Access的其他對象進(jìn)行數(shù)據(jù)交換時,必須符合數(shù)據(jù)表、查詢、窗體和報表中相應(yīng)的字段屬性。VBA數(shù)據(jù)類型列表數(shù)據(jù)類型數(shù)據(jù)類型類型標(biāo)識類型標(biāo)識符號符號字符類型字符類型整數(shù)Integer%字節(jié)/整數(shù)/是/否長整數(shù)Long&長整數(shù)/自動

30、編號單精度數(shù)Single!單精度數(shù)雙精度數(shù)Double#雙精讀數(shù)貨幣Currency貨幣字符串String$文本布爾型Boolean邏輯值日期型Date日期/時間變體類型Variant任何考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)關(guān)于表中所列數(shù)據(jù)類型的使用,說明如下: 布爾型數(shù)據(jù)(Boolean) 布爾型數(shù)據(jù)只有兩個值:True和False。布爾型數(shù)據(jù)轉(zhuǎn)換為其他類型數(shù)據(jù)時,True轉(zhuǎn)換為-1,F(xiàn)alse轉(zhuǎn)換為0;其他類型數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)時,0轉(zhuǎn)換為False,其他值轉(zhuǎn)換為True。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)關(guān)于表中所列數(shù)據(jù)類型的使用,說明如下: 日期型和數(shù)

31、據(jù)(Date) 任何可以識別的文本日期數(shù)據(jù)都可以賦給日期變量?!皶r間/日期”類型數(shù)據(jù)必須前后用“#”號括住。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)變體類型(Variant) 變體類型是一種特殊的數(shù)據(jù)類型,除了定長字符串類型及用戶自定義類型外,可以包含其他任何類型的數(shù)據(jù);變體類型還可以包含Empty、Error、Nothing和Null特殊值。使用時,可以用VarType與TypeName兩個函數(shù)來檢查Variant中的數(shù)據(jù)。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)如果顯式用DimAs Data Type聲明變量,可以不用類型聲明字符了,這將在后面說明。VBA中規(guī)定,如

32、果沒有如果沒有顯式聲明或使用符號來定義變量的數(shù)據(jù)顯式聲明或使用符號來定義變量的數(shù)據(jù)類型,默認(rèn)為變體類型類型,默認(rèn)為變體類型(Variant)。 數(shù)據(jù)庫對象,如數(shù)據(jù)庫、表、查詢、窗體和報表等,也有對應(yīng)的VBA對象數(shù)據(jù)類型,這些對象數(shù)據(jù)類型由引用的對象庫所定義。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(2)用戶定義的數(shù)據(jù)類型 應(yīng)用過程中可以建立包含一個或多個VBA標(biāo)準(zhǔn)數(shù)據(jù)類型的數(shù)據(jù)類型,這就是用戶定義數(shù)據(jù)類型。它不僅包含VBA的標(biāo)準(zhǔn)數(shù)據(jù)類型,還包含其他用戶定義數(shù)據(jù)類型。考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)用戶定義數(shù)據(jù)類型可以在TypeEnd Type關(guān)鍵字間定義,定義格式

33、如下: Type數(shù)據(jù)類型名數(shù)據(jù)類型名 域名域名As數(shù)據(jù)類型數(shù)據(jù)類型 域名域名As數(shù)據(jù)類型數(shù)據(jù)類型 End Type 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)例例8.3 定義一個學(xué)生信息數(shù)據(jù)類型Type NewStudenttxtNo as string*7txtName as stringtxtSex as string*1txtAge as integerEnd Type考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)Dim NewStud as NewStudentNewStud.txtNo=“980306”NewStud.txtName=“馮偉”NewStud.txtSex=

34、“女”NewStud.txtAge=20考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)Dim NewStud as NewStudentWith NewStud.txtNo=“980306”.txtName=“馮偉”.txtSex=“女”.txtAge=20End With考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)(3)數(shù)據(jù)庫對象 數(shù)據(jù)庫、表、查詢、窗體、報表等也有對應(yīng)的VBA對象數(shù)據(jù)類型,這些對象數(shù)據(jù)類型由引用的對象庫所定義,常用的VBA對象數(shù)據(jù)類型和對象庫中的所包括的對象見教材208頁表8.3。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)4.變量與常量變量與常量變量變量

35、是指程序運(yùn)行時值會發(fā)生變化的數(shù)據(jù)。變量名的命名,同字段命名一樣,但變量命變量命名名不能包含有空格或除了下劃線字符(_)外的任何其他的標(biāo)點符號。 此外,變量命名不能使用不能使用VBA的關(guān)鍵字的關(guān)鍵字。VBA中的變量命名通常采用大寫與小寫字母相結(jié)合的,以使其更具可讀性。需要指南的是,在VBA里變量命名大小寫不“敏感”,即“NewVar”和“newvar”代表的是同一個變量。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)變量的聲明編程時,根據(jù)變量直接定義與否,可以將變量劃分為下面兩種形式: 1)隱含型變量隱含型變量 沒有直接定義,借助將一個值指定給變量名的方式來建立變量。 當(dāng)在變量名稱后沒有附

36、加類型說明字符來指明隱含變量的數(shù)據(jù)類型時,默認(rèn)為Variant數(shù)據(jù)類型。 當(dāng)只處理整數(shù)數(shù)據(jù)時,將變量定義為整數(shù)或長整數(shù)類型可以加速程序代碼的操作,因為計算單精度和雙精度浮點值效率較低。 Dim m,nNewVar=528考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)2)顯式變量顯式變量 變量先定義后使用是較好的程序設(shè)計習(xí)慣。 定義變量最常用的方法是使用DimASVarType結(jié)構(gòu),其中,As后指明數(shù)據(jù)類型。這種方式是顯式定義變量。 如果沒有As Integer部分,New Var將默認(rèn)指定為Variant數(shù)據(jù)類型。 Dim NewVar_1 as IntegerDim NewVar_2%,

37、sum!考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)強(qiáng)制聲明可以在模志設(shè)計窗口的頂部說明區(qū)域中,加入Option Explict語句來強(qiáng)制要求所有變量必須定義才能使用。此外,變量命名時大小寫字符的順序,程序中系統(tǒng)均會按原始定義的大小寫順序表示,這樣既方便輸入程序代碼,又提高了變量的可讀性。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)變量的作用域在VBA編程中,變量定義的位置和方式不同,則它存在的時間和起作用的范圍也有所不同,這就是變量的作用域與生命周期。 當(dāng)變量出現(xiàn)時,它被稱作是可見的,即可以為變量指定數(shù)值,改變它的值,并將它用于表達(dá)式中。在某些狀況下,變量是不可見的。此時,如果

38、使用該變量就可能導(dǎo)致錯誤。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)下面列出了Visual Basic中變量作用域的3個層次: 1)局部范圍局部范圍 變量定義在模塊的過程內(nèi)部,過程代碼執(zhí)行時才可見。在子過程或函數(shù)過程中定義的或不用DimAs關(guān)鍵字定義而直接使用的變量作用范圍都是局部的。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)2)模塊范圍模塊范圍 變量定義在模塊的所有過程之外的起始位置,運(yùn)行時在模塊所包含的所有子過程和函數(shù)過程中可見。在模塊的變量定義區(qū)域,用DimAs關(guān)鍵字定義的變量就是模塊范圍的。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)3)全局范圍全局范圍 變

39、量定義在標(biāo)準(zhǔn)模塊的所有過程之外的起始位置,運(yùn)行時在所有類模塊和標(biāo)準(zhǔn)模塊的所有子過程與函數(shù)過程中都可見。在標(biāo)準(zhǔn)模塊的變量定義區(qū)域,用PublicAs關(guān)鍵字說明的變量就屬于全局的范圍。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)變量還有一個特性,稱為持續(xù)時間或生命周生命周期期。變量的持續(xù)時間是從變量定義語句所在的過程第一次運(yùn)行到程序代碼執(zhí)行完畢并將控制權(quán)交回調(diào)用它的過程為止的時間。每次子過程或函數(shù)過程被調(diào)用時,以DimAs語句說明的局部變量,會被為默認(rèn)值,數(shù)值數(shù)據(jù)類型為0,字符串變量則為空字符串(“”)。這些局部變量,有著與子過程或函數(shù)過程等長的持續(xù)時間。 考點三考點三 VBAVBA程序設(shè)

40、計基礎(chǔ)程序設(shè)計基礎(chǔ)要在過程的實例間保留局部變量的值,可以用Static關(guān)鍵字代替Dim以定義靜態(tài)變量。靜態(tài)靜態(tài)(Static)變量變量的持續(xù)時間是用整個模塊執(zhí)行的時間,但它的有效作用范圍是由其定義位置決定的。 當(dāng)用dim說明的局部變量不可見時,它們并不占用內(nèi)存。在使用大量數(shù)組的情形下,局部變量的這一特征逝特別有利的。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)數(shù)據(jù)庫對象變量Access中窗體引用格式:Forms!窗體名稱!控件名稱.屬性名稱Access中報表引用格式:Reports!報表名稱!控件名稱.屬性名稱考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)數(shù)據(jù)庫對象變量例Forms

41、!學(xué)生管理!編號=“980306”Forms!學(xué)生管理!編 號=“980306”Dim txtName as controlSet txtName=Forms!學(xué)生管理!姓名txtName=“馮偉”考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)數(shù)組 數(shù)組是在有規(guī)則的結(jié)構(gòu)中包含一種數(shù)據(jù)類型的一組數(shù)據(jù),也稱作數(shù)組元素變量。數(shù)組變量由變量名和數(shù)組下標(biāo)構(gòu)成,通常用Dim語句來定義數(shù)組,定義格式為: Dim數(shù)組名數(shù)組名(下標(biāo)下限下標(biāo)下限 to下標(biāo)上限下標(biāo)上限) 缺省情況下,下標(biāo)下限為0,數(shù)組元素從“數(shù)組名(0)”至“數(shù)組名(下標(biāo)上限)”;如果使用to選項,則可以安排非0下限??键c三考點三 VBAVB

42、A程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)VBA也支持多維數(shù)組??梢栽跀?shù)組下標(biāo)中加入多個數(shù)值,并以逗號分開,由此來建立多維數(shù)組,最多可以定義60維。下面定義了一個三維數(shù)組NewArray: Dim NewArray(5,5,5) As Integer 有6*6*6=216個元素 VBA還特別支持動態(tài)數(shù)組。定義和使用方法是:先用Dim顯式定義數(shù)組但不能明數(shù)組元素數(shù)目,然后用ReDim關(guān)鍵字來決定數(shù)組包含的元素數(shù)目來定義數(shù)組,以建立動態(tài)數(shù)組。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)實際開發(fā)過程中,當(dāng)預(yù)先不知道數(shù)組定義需要多少元素時,動態(tài)數(shù)組是很有用的。而且不再需要動態(tài)數(shù)組包含的元素時,可以使用ReDi

43、m將其設(shè)為0個元素,釋放該數(shù)組占用的內(nèi)存。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)數(shù)組的作用域和生命周期的規(guī)則和關(guān)鍵字的使用方法與傳統(tǒng)變量的范圍及持續(xù)時間的規(guī)則和關(guān)鍵字的用法相同。 可以在模塊的說明區(qū)域加入Global或Dim語句,然后在程序中使用ReDim語句,以說明動態(tài)數(shù)組為全局的和模塊級的范圍。如果以Static取代Dim來說明數(shù)組的話,數(shù)組可在程序的示例間保留它的值。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)VBA中,在模塊的聲明部分使用“Option Base 0/1”語句,可以將數(shù)組的默認(rèn)下標(biāo)下限由0改為 1??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)

44、變量標(biāo)識命名法則 在編寫VBA程序代碼時,會用到大量的變量名稱和不同的數(shù)據(jù)類型。對于控件對象,可以用VBA的Set關(guān)鍵字將每個命名的控件對象指定為一個變量名稱。 Hungarian符號法符號法使用一組代表數(shù)據(jù)類型的碼。用小寫字母作為變量名的第一個字符。 用戶定義數(shù)據(jù)類型的名稱被稱為產(chǎn)生的標(biāo)簽。在Hungarian符號法中,建立的標(biāo)簽是大寫的。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)符號常量 在VBA編程過程中,對于一些使用頻度較多的常量,可以用符號常量形式來表示。符號常量使用關(guān)鍵字Const來定義。 Const 符號常量名稱符號常量名稱=常量值常量值 這一符號常量會涵蓋全局或模塊級

45、的范圍。 符號常量定義時不需要為常量指用數(shù)據(jù)類型,VBA會自動按存儲效率最高的方式來確定其數(shù)據(jù)類型。符號常量一般要求大寫命名,以便與變量區(qū)分。 Global Const PI=3.14159考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)系統(tǒng)常量 Access系統(tǒng)內(nèi)部包含有若干個啟動時就建立的系統(tǒng)常量,有True、False、Yes、No、Off、和Null等。編碼時可以直接使用。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)可通過在“對象瀏覽器”窗口中,選擇“工程/庫”列表的Access項,再在“類”列表中選擇“全局”選項,Access的內(nèi)部常量就會列出。 在列表“成員”中選擇一個常

46、量后,它的數(shù)值將出現(xiàn)在“對象瀏覽器”窗口的底部,能將這些內(nèi)部常量的名字作為用戶自定義常量或變量的名字。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)5.常用標(biāo)準(zhǔn)函數(shù)常用標(biāo)準(zhǔn)函數(shù) 在VBA中,除模塊創(chuàng)建中可以定義子過程與函數(shù)過程完成特定功能外,又提供了近百個內(nèi)置的標(biāo)準(zhǔn)函數(shù),可以方便完成許多操作。 標(biāo)準(zhǔn)函數(shù)一般用于表達(dá)式中,有的能和語句一樣使用。考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)其使用形式如下: 函數(shù)名函數(shù)名(參數(shù)參數(shù)1,參數(shù),參數(shù)2,參,參數(shù)數(shù)3,參數(shù),參數(shù)4,參數(shù),參數(shù)5) 其中,函數(shù)名必不可少,函數(shù)的參數(shù)放在函數(shù)蔓后的圓括號中,參數(shù)可以是常量、變量或表達(dá)式,可以有一個或

47、多個,少數(shù)函數(shù)為無參函數(shù)。每個函數(shù)被調(diào)用時,都會返回一 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)下面按分類介紹一些常用標(biāo)準(zhǔn)函數(shù)的使用。 數(shù)學(xué)函數(shù) 數(shù)學(xué)函數(shù)完成數(shù)學(xué)計算功能。主要包括以下函數(shù): 絕對值函數(shù)Abs(表達(dá)式):返回數(shù)值表達(dá)式的絕對值。 取整函數(shù)Int(數(shù)值表達(dá)式):返回數(shù)值表達(dá)式的整數(shù)部分。 abs(3)=3abs(-5.2)=5.2int(3.1)=3int(3.8)=3int(-3.1)=-4int(-3.9)=-4考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)數(shù)學(xué)函數(shù) Fix(數(shù)值表達(dá)式):返回數(shù)值表達(dá)式的整數(shù)部分。 參數(shù)為正值時,兩者相同;參數(shù)為負(fù)值時,Int返

48、回小于等于參數(shù)值的第一個負(fù)數(shù),而Fix返回大于等于參數(shù)值的第一個負(fù)數(shù)。 fix(3.1)=3fix(3.8)=3fix(-3.1)=-3fix(-3.9)=-3考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)數(shù)學(xué)函數(shù) round(數(shù)值表達(dá)式,):按照指定的小數(shù)位數(shù)進(jìn)行四舍五入的計算。 round(3.255,1)=3.3round(3.255,2)=3.26round(3.754,1)=3.8round(3.754,2)=3.75round(3.754,0)=4考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)數(shù)學(xué)函數(shù) sqr(數(shù)值表達(dá)式):計算數(shù)值表達(dá)式的平方根 參數(shù)為正值時,兩者相同;參

49、數(shù)為負(fù)值時,Int返回小于等于參數(shù)值的第一個負(fù)數(shù),而Fix返回大于等于參數(shù)值的第一個負(fù)數(shù)。 sqr(9)=3考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)數(shù)學(xué)函數(shù) rnd(數(shù)值表達(dá)式):產(chǎn)生一個01之間的隨機(jī)數(shù),為單精度類型rnd()01rnd()*1000100int(rnd()*100)0990100int(rnd()*101)0500int(rnd()*501)100500int(rnd()*401)+100-34 23int(rnd()*58)-34a bint(rnd()*(b-a+1)+a考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)字符串函數(shù) 字符串函數(shù)完成字符串處理功能

50、。主要包括以下函數(shù): 字符串檢索函數(shù)InStr(Start,Str1, ,Compare) 檢索子字符串Str2在字符串Str1中最早出現(xiàn)的位置,返回一整型數(shù)。s1=“aabAbcabcdabcdeab”s2=“abc”a=instr(s1,s2)7a=instr(8,s1,s2)11a=instr(s1,s2,1)4考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)Start為可選參數(shù),為數(shù)值式,設(shè)置檢索的起始位置。如省略,從第一個字符開始檢索;如包含Null值,發(fā)生錯誤。Compare也為可選參數(shù),指定字符串比較的方法。值可以為1、2和0(缺省)。指定0(缺省)做二進(jìn)制比較,指定1做不區(qū)分

51、大小寫的文本比較,指定2做基于數(shù)據(jù)庫中包含信息的比較。如值為Null,會發(fā)生錯誤??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)如指定了Compare參數(shù),則一定要有Start參數(shù)。 注意: 如果Str1的串長度為零,或Str2表示的串檢索不到,則檢索不到,則InStr返回返回0;如果Str2的串長度為零,InStr返回Start的值。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)字符串函數(shù) 字符串長度檢測函數(shù)len(或) 返回字符串所含字符數(shù)。dim str as string*10dim istr=“123”i=12len1=len(“12345”)5len2=len(12)出錯

52、len3=len(i)2len4=len(“考試中心”)4len5=len(str)10字符串截取函數(shù) Left(字符串表達(dá)式,N):從字符串左邊起截取N個字符。 Right(字符串表達(dá)式,N):從字符串右邊起截取N個字符。 Mid(字符中表達(dá)式,N1,N2):從字符串左邊第N1個字符起截取N2字符。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)s=“ good morning! ”str=left(s,3)“ go”str=right(s,5)“g! ”str=mid(s,4,5)“od mo”str=mid(s,1,3)str=mid(s,13,5)str=mid(s,len(s)-

53、m+1,m)考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)注意: 對于Left函數(shù)和Right函數(shù),N值為0,返回零長度字符串;如果大于等于字符串的字符數(shù),則返回整個字符串。對于Mid函數(shù),如果N1值大于字符串的字符數(shù),返回零長度字符串;如果省略N2,返回字符串中左邊起N1個字符開始的所有字符。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)生成空格字符函數(shù)Space(數(shù)值表達(dá)式):返回數(shù)值表達(dá)式的值指定的空格字符數(shù)。 大小寫轉(zhuǎn)換函數(shù)Ucase(字符串表達(dá)式):將字符串中小寫字母轉(zhuǎn)成大寫字母。 Lcase(字符串表達(dá)式):將字符串中大寫字母轉(zhuǎn)成小寫字母。 s=space(0)“”s=s

54、pace(1)“ ”S=space(10)“ ”s1=“Hello!”s=ucase(s1)“HELLO!”s1=“Hello!”s=lcase(s1)“hello!”考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)刪除空格函數(shù)LTrim(字符串表達(dá)式):刪除字符串的開始空格。 RTrim(字符串表達(dá)式):刪除字符串的屬部空格。 Trim(字符串表達(dá)式):刪除字符串的開始和尾部空格。s=“ good morning! ”str=trim(s)“good morning!”str=ltrim(s)“good morning! ”str=rtrim(s)“ good morning!”考點三考點

55、三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)日期時間函數(shù) 日期時間函數(shù)的功能是處理日期和時間。主要包括以下函數(shù): 獲取系統(tǒng)日期和時間函數(shù) date():返回當(dāng)前系統(tǒng)日期。 time():返回當(dāng)前系統(tǒng)時間。 now():返回當(dāng)前系統(tǒng)日期和時間。 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)截取日期分量函數(shù)year(表達(dá)式):返回日期表達(dá)式年份的整數(shù)。 month(表達(dá)式):返回日期表達(dá)式月份的整數(shù)。 day(表達(dá)式):返回日期表達(dá)式日期week(表達(dá)式):返回日期表達(dá)式日期的星期??键c三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)weekday(表達(dá)式,W:返回17的整數(shù),表示星期幾。 Wee

56、kday函數(shù)中,參數(shù)W為可選項,是一個指定一星期的第一天是星期幾一星期的第一天是星期幾的常數(shù)。如省略,默認(rèn)為vbSunday,即周日返回1,周一返回2,依次類推。 weekday(date()weekday(date(),4)星期三是一周第一天考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)截取時間分量函數(shù)hour(表達(dá)式):返回時間表達(dá)式的小時數(shù)(023)。 minute(表達(dá)式):返回時間表達(dá)式的分鐘數(shù)(059)。 second(表達(dá)式):返回時間表達(dá)式的秒數(shù)(059)。 日期/時間增加或減少一個時間間隔dateAdd(間隔類型,間隔值,表達(dá)式) 考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程

57、序設(shè)計基礎(chǔ)對表達(dá)式表示的日期按照間隔類型加上或減去指定的時間間隔值。 注意: 間隔類型參數(shù)表示時間間隔,為一個字符串,其設(shè)定值如表所示;間隔值參數(shù)表示時間間隔的數(shù)目,數(shù)值可以為正數(shù)(得到未來的日期)或負(fù)數(shù)(得到過去的日期)。 D=#2004-2-29 10:40:11#D1=dateadd(“yyyy”3,D)2007-2-28 10:40:11D2=dateadd(“q”,1,D)2004-5-29 10:40:11D2=dateadd(“m”,-2,D)2003-12-29 10:40:11D4=dateadd(“d”3,D)2004-3-3 10:40:11D5=dateadd(“ww”

58、,2,D)2004-3-14 10:40:11D6=dateadd(“n”,-150,D)2004-2-29 8:10:11考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)計算兩個日期的間隔值函數(shù)DateDiff(間隔類型,日期,日期2,W1,W2) 返回日期1和日期2之間按照間隔類型所指定的時間間隔數(shù)目。 D1=#2003-5-28 20:8:36#D2=#2004-2-29 10:40:11#n1=datediff(“yyyy”,D1,D2)1n2=datediff(“q”,D1,D2)3n3=datediff(“m”,D2,D1)-9n4=datediff(“ww”,D1,D2)40n

59、5=datediff(“n”,D1,D2)398312考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)注意: 間隔類型參數(shù)表示時間間隔,為一個字符串,其設(shè)定值見表所示;參數(shù)W1為可選項,是一個指定一星期的第一天是星期幾的常數(shù),如省略,默認(rèn)為vbSunday,即周日返回1、周一返回2,依次類推,其參數(shù)設(shè)定值見表所示;參數(shù)W2也為可選項,是一個指定一年的第一周的常數(shù),如省略,默認(rèn)值為vbFirstJan1,即包含1月1日的星期為第一周 。考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)返回包含指定年月日的日期函數(shù)DatePart(,W1,W2) 返回日期中按照間隔類型所指定的時間部分值。 D=

60、#2004-2-29 10:40:11#n1=DatePart(“yyyy”,D)2004n2=DatePart(“d”,D)29n3=DatePart(“ww”D)10考點三考點三 VBAVBA程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)返回包含指定年月日的日期函數(shù)DateSerial(表達(dá)式1,表達(dá)式2,表達(dá)式3) 返回由表達(dá)式1值為年、表達(dá)式2值為月、表達(dá)式3值為日而組成的日期值。 注意注意:每個參數(shù)的取值范圍應(yīng)該是可接受的;即日的取值范圍應(yīng)在131之間,而月的取值范圍應(yīng)在112之間。此外,當(dāng)任何一個參數(shù)的取值超出可接受的范圍時,它會適時進(jìn)位到下一個較大的時間單位。 D=DateSerial(2008,2,29)#

溫馨提示

  • 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

提交評論