ACCESS考點分析8_第1頁
ACCESS考點分析8_第2頁
ACCESS考點分析8_第3頁
ACCESS考點分析8_第4頁
ACCESS考點分析8_第5頁
已閱讀5頁,還剩245頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、塊和報表模塊通常都含有事件過程,而過程的運行用于響應窗體或報表上的事件。使用事件過程可以控制窗體或報表的行為以及它們對用戶操作的響應。 考點一考點一 模塊的基本概念模塊的基本概念1、類模塊、類模塊 窗體模塊和報表模塊中的過程可以調用標準模塊中已經定義好的過程。 窗體模塊和報表模塊具有局部特性局部特性,其作用范圍局限在所屬窗體或報表內部,而生命周期則是伴隨著窗體或報表的打開而開始、關閉而結束。考點一考點一 模塊的基本概念模塊的基本概念2、標準模塊、標準模塊 標準模塊一般用于存放供其他Access數據庫對象使用的公共過程。在Access系統中可以通過創建新的模塊對象而進入其代碼設計環境。 標準模塊

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

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

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

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

8、ss對象實現或實現起來很困難時,就可以利用VBA語言編寫代碼,完成這些復雜任務。考點三考點三 VBAVBA程序設計基礎程序設計基礎一般Access程序設計在遇到下列情況下需要使用使用VBA代碼代碼: (1)創建用戶自定義函數(User-defined Function,UDF)。使用UDF,可以使程序代碼更加簡潔而有效。 (2)復雜程序處理。可以編寫選擇結構、循環結構等復雜程序處理。 考點三考點三 VBAVBA程序設計基礎程序設計基礎(3)數據庫的事務處理操作。 (4)使用ActiveX控件和其他應用程序對象。 (5)錯誤處理。通過使用Access的VBA代碼,可以控制應用程序對錯誤作出反應,

9、例如,用戶輸入錯誤、對象引用錯誤等。而Access宏的缺點就是它們對錯誤處理不靈活。考點三考點三 VBAVBA程序設計基礎程序設計基礎1、面向對象程序設計的基本概念、面向對象程序設計的基本概念 Access內部提供了功能強大的向導機制,能處理基本的數據庫操作。在此基礎上再編寫適當的程序代碼,可以極大地改善程序功能。 Access內嵌的VBA,功能強大,采用目前主流的面向對象機制和可視化編程環境。 考點三考點三 VBAVBA程序設計基礎程序設計基礎(1)集合和對象 Access采用面向對象程序開發環境,其數據庫窗口可以方便地訪問和處理表、查詢、窗體、報表、頁、宏和模塊對象。VBA中可以使用這些對

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

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

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

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

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

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

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

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

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

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

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

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

22、擊“切換文件夾”按鈕可以隱藏或顯示對象分類文件夾。 雙擊工程窗口上的一個模塊或類,相應的代碼窗口就會顯示出來。考點三考點三 VBAVBA程序設計基礎程序設計基礎代碼窗口 由對象組合框、事件組合框和代碼編輯區組成。考點三考點三 VBAVBA程序設計基礎程序設計基礎屬性窗口 屬性窗口列出了所選對象的各個屬性,分“按字母序”和“按分類序”兩種查看形式。可以直接在屬性窗口中編輯對象的屬性,這屬于對象屬性的“靜態”設置方法;可以在代碼窗口內用VBA代碼編輯對象的屬性,這屬于對象屬性的“動態”設置方法。 考點三考點三 VBAVBA程序設計基礎程序設計基礎立即窗口立即窗口是用來進行快速的表達式計算、簡單方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

48、回小于等于參數值的第一個負數,而Fix返回大于等于參數值的第一個負數。 fix(3.1)=3fix(3.8)=3fix(-3.1)=-3fix(-3.9)=-3考點三考點三 VBAVBA程序設計基礎程序設計基礎數學函數 round(數值表達式,):按照指定的小數位數進行四舍五入的計算。 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程序設計基礎程序設計基礎數學函數 sqr(數值表達式):計算數值表達式的平方根 參數為正值時,兩者相同;參

49、數為負值時,Int返回小于等于參數值的第一個負數,而Fix返回大于等于參數值的第一個負數。 sqr(9)=3考點三考點三 VBAVBA程序設計基礎程序設計基礎數學函數 rnd(數值表達式):產生一個01之間的隨機數,為單精度類型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程序設計基礎程序設計基礎字符串函數 字符串函數完成字符串處理功能

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

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

52、len3=len(i)2len4=len(“考試中心”)4len5=len(str)10字符串截取函數 Left(字符串表達式,N):從字符串左邊起截取N個字符。 Right(字符串表達式,N):從字符串右邊起截取N個字符。 Mid(字符中表達式,N1,N2):從字符串左邊第N1個字符起截取N2字符。 考點三考點三 VBAVBA程序設計基礎程序設計基礎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程序設計基礎程序設計基礎注意: 對于Left函數和Right函數,N值為0,返回零長度字符串;如果大于等于字符串的字符數,則返回整個字符串。對于Mid函數,如果N1值大于字符串的字符數,返回零長度字符串;如果省略N2,返回字符串中左邊起N1個字符開始的所有字符。 考點三考點三 VBAVBA程序設計基礎程序設計基礎生成空格字符函數Space(數值表達式):返回數值表達式的值指定的空格字符數。 大小寫轉換函數Ucase(字符串表達式):將字符串中小寫字母轉成大寫字母。 Lcase(字符串表達式):將字符串中大寫字母轉成小寫字母。 s=space(0)“”s=s

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

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

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

57、序設計基礎對表達式表示的日期按照間隔類型加上或減去指定的時間間隔值。 注意: 間隔類型參數表示時間間隔,為一個字符串,其設定值如表所示;間隔值參數表示時間間隔的數目,數值可以為正數(得到未來的日期)或負數(得到過去的日期)。 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程序設計基礎程序設計基礎計算兩個日期的間隔值函數DateDiff(間隔類型,日期,日期2,W1,W2) 返回日期1和日期2之間按照間隔類型所指定的時間間隔數目。 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程序設計基礎程序設計基礎注意: 間隔類型參數表示時間間隔,為一個字符串,其設定值見表所示;參數W1為可選項,是一個指定一星期的第一天是星期幾的常數,如省略,默認為vbSunday,即周日返回1、周一返回2,依次類推,其參數設定值見表所示;參數W2也為可選項,是一個指定一年的第一周的常數,如省略,默認值為vbFirstJan1,即包含1月1日的星期為第一周 。考點三考點三 VBAVBA程序設計基礎程序設計基礎返回包含指定年月日的日期函數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程序設計基礎程序設計基礎返回包含指定年月日的日期函數DateSerial(表達式1,表達式2,表達式3) 返回由表達式1值為年、表達式2值為月、表達式3值為日而組成的日期值。 注意注意:每個參數的取值范圍應該是可接受的;即日的取值范圍應在131之間,而月的取值范圍應在112之間。此外,當任何一個參數的取值超出可接受的范圍時,它會適時進位到下一個較大的時間單位。 D=DateSerial(2008,2,29)#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論