王騰 鄭靜
摘要:宏提供了快速而簡便的方式使得Access應(yīng)用程序自動化,當(dāng)完成一些復(fù)雜的任務(wù)宏就顯得無能為力了,因此編寫VBA模塊才是創(chuàng)建應(yīng)用程序的最佳方式.使用數(shù)據(jù)訪問、循環(huán)和分支等手段,借助一些宏無法實現(xiàn)的特性,可以更好地控制應(yīng)用程序開發(fā)。VBA是Access中內(nèi)置的編程語言,VBA代碼能夠很好地在Microsoft Office應(yīng)用程序之間共享。
關(guān)鍵詞:VBA;模塊;子過程;函數(shù)過程
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)06-0084-04
1概述
模塊是VBA編程中的主要對象。模塊與宏有一些相似之處。宏是由系統(tǒng)自動生成的程序模塊,而模塊是用VBA語言編寫好的程序代碼。VBA代碼模塊可以是與窗體和報表無關(guān)的獨立對象,也可以包含在窗體和報表中(通常稱為窗體模塊和報表模塊)。
所有的窗體和報表均支持事件,與窗體和報表相關(guān)聯(lián)的過程可以是宏或者VBA代碼。窗體模塊中的事件過程代碼用于相應(yīng)窗體或者窗體上控件的觸發(fā)事件。報表模塊中的事件過程代碼用于相應(yīng)報表或報表上控件的觸發(fā)事件。窗體模塊和報表模塊的作用范圍只在其所屬的窗體或者報表內(nèi)部,隨著窗體或者報表的打開而開始,隨著窗體或報表的關(guān)閉而結(jié)束。
標(biāo)準(zhǔn)模塊獨立于窗體和報表,可以在應(yīng)用程序中的任何位置使用標(biāo)準(zhǔn)模塊中的代碼。它包含與任何其他對象都無關(guān)的常規(guī)過程,以及可以從數(shù)據(jù)庫任何位置運行的經(jīng)常使用的過程。標(biāo)準(zhǔn)模塊和窗體報表模塊的主要區(qū)別在于其范圍和生命周期。
2 VBA模塊簡介
每個模塊都包括聲明和過程兩個部分,聲明部分用于說明模塊中使用的變量,過程是模塊的組成單元。過程可分為兩種類型:子過程(sub)和函數(shù)過程(Function)。
End Sub
可以引用子過程的名稱來調(diào)用子過程,也可以在過程名前加關(guān)鍵字Call顯示調(diào)用子過程。
函數(shù)過程的定義如下:
Function 過程名(<參數(shù)表>)
[程序代碼]
End Function
與過程類似,函數(shù)也能被其他函數(shù)和過程調(diào)用,區(qū)別是過程調(diào)用使用Call關(guān)鍵字,而函數(shù)調(diào)用是出現(xiàn)在表達(dá)式或直接賦值給一個變量。