




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八章模塊Access2003
數據庫技術1第八章模塊8.1基本概念8.2模塊的分類8.3模塊的創建與調用8.4模塊的調試8.5宏與模塊的關系8.6VBA程序設計入門8.7VBA的數據庫編程基礎28.1基本概念
模塊就是存儲在一個單元中的VBA(VisualBasicForApplication)聲明和過程的集合。它通過嵌入在Access中的VB(VisualBasic)程序設計語言編輯器和編譯器實現與Access的完美結合。模塊是基于VB程序設計語言而創建的。3基本概念模塊由過程組成,每一個過程都由一個函數或一個子程序所組成。過程(Procedure):是由VB代碼組成的單元。它包含一系列執行操作或計算數值的語句和調用對象方法的語句。過程可分為函數(Function)過程和子(Sub)程序兩種。4子程序子程序:也稱為Sub過程。是執行一項操作或一系列操作的過程。數據庫中每個窗體或報表都有內置的窗體模塊或報表模塊,這些模塊包含事件過程模板,可以向其中添加代碼,使得當窗體、報表或其中的控件發生相應的事件時,執行相應的代碼。許多向導(如命令按鈕向導)在創建對象的同時也創建對象的事件過程。子程序以關鍵字“Sub”開始,并以“EndSub”語句結束。58.2模塊的分類兩種類型:類模塊和標準模塊類模塊:類模塊是可以定義新對象的模塊。新建一個類模塊,即新建了一個對象。模塊中定義的任何過程都變成該對象的屬性或方法。類模塊既可以獨立存在,也可以與窗體和報表同時出現。窗體和報表都屬類模塊,它們各自與某一窗體或報表相關聯。(單擊按鈕可查看窗體或報表的模塊。)標準模塊:標準模塊是指存儲在整個數據庫中可用的子程序和函數的模塊。標準模塊包含通用過程和常用過程,通用過程不與任何對象相關聯,常用過程可以在數據庫中的任何位置運行。6標準模塊與類模塊的主要區別標準模塊與類模塊的主要區別在于其作用范圍和生命周期。窗體或報表模塊中的過程可以調用已經添加到標準模塊中的過程。Access2000以前版本的類模塊只能在與窗體或報表相關聯時出現。而Access2000以及更高版本中的類模塊不僅可以脫離窗體或報表獨立存在,而且可以在數據庫窗口對象欄的模塊列表中顯示。78.3模塊的創建與調用通過向窗體或報表上的事件添加代碼來創建一個事件過程,也可以在類模塊或標準模塊中創建函數過程或子程序。
創建模塊的一般操作步驟如下:
(1)在“模塊”中單擊“新建”按鈕;
(2)在模塊編輯窗口中編輯模塊程序。8一個簡單的Sub過程【例1】
創建一個Sub過程,自動彈出一個系統使用說明信息框。本例只有一句話:調用函數MsgBox顯示一段文字PrivateSubaa()MsgBox("單擊“進入系統”按鈕,打開教務管理系統;單擊“退出系統”按鈕,關閉教務管理系統,并退出Access。")EndSubSub結尾Sub開頭例1見窗體:啟動9模塊的調用(方法1)
在模塊編輯窗口中,選擇菜單“運行”“運行子過程/用戶窗口”或按F5鍵特別注意:運行時,要要將光標置于過程體中任意位置。10模塊的調用(方法2)使用調用語句Call格式:call子過程名([參數表])說明:使用Public定義的可以使該子過程適用于所有模塊中的所有其它過程;使用Private定義的子過程只適用于同一模塊中的其它過程。實例:Subabc()……EndsubSubss()……Callabc……Endsub11模塊的調用(方法3)事件驅動:與宏一樣,我們可以在窗體或報表的“事件”中編制事件驅動程序,當事件發生時,模塊中相應的過程自動執行。(實例見后面)12VBA中對象的引用VBA中對象的引用有2種:引用對象引用對象的屬性13對象的引用實例-11、設置窗體“改變顏色”中的標簽Label1的字體顏色為紅色
Forms![改變顏色]![Label1].ForeColor=RGB(255,0,0)2、設置窗體“改變字體”中的標簽Label1的字體為隸書
Forms![改變字體]![Label1].FontName="隸書“3、設置窗體“改變字體”中的標簽Label1的字體為加粗
Forms![改變字體]![Label1].FontBold=True4、設置窗體“改變字體”中的標簽Label1的字體為傾斜
Forms![改變字體]![Label1].FontItalic=True5、取消窗體“改變字體”中的標簽Label1的字體的下劃線
Forms![改變字體]![Label1].FontUnderline=False14對象的引用實例-21、打開窗體"主控面板"
DoCmd.OpenForm"主控面板"2、關閉當前窗體
DoCmd.Close3、焦點置于文本框Text1Text1.SetFocus4、清空文本框Text1Text1="“5、n=Forms![改變字體]15常用的VBA命令打開操作關閉操作輸入操作輸出操作16打開操作
打開窗體。其命令格式如下:DoCmd.OpenForm
formname[,view][,filtername][,wherecondition][,datamode][,windowmode]例:以只讀數據模式打開“教師信息”窗體。
DoCmd.OpenForm
”教師信息”,acFormReadOnly17關閉操作
其命令格式如下:DoCmd.Close[objecttype,objectname][,save]例:關閉“工資統計表”報表。DoCmd.Close
acReport,”工資統計表”18輸入操作輸入框(InputBox函數)格式如下:InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])A=InputBox("請輸入半徑:")19輸出操作PrivateSubaa()Dima,ba=InputBox("請輸入半徑:")b=3.14*a^2
MsgBox("圓的面積="&b)b=MsgBox("圓的面積="&b,,"輸出結果")'若用標題等其它參數時,必須用“變量=……EndSub20輸出操作消息框(MsgBox
函數)其命令格式如下:MsgBox(prompt[,buttons][,title][,helpfile,context])PrivateSubaa()Dima
MsgBox("歡迎!")‘a=MsgBox("熱烈歡迎!",,"輸出文字")EndSubMsgBox詳細說明點擊打開Word文檔2122記錄操作跳到第一個:DoCmd.GoToRecord,,acFirst跳到最后一個:
DoCmd.GoToRecord,,acLast下一個:
DoCmd.GoToRecord,,acNext上一個:
DoCmd.GoToRecord,,acPrevious23VBA的基本控制結構
結構化程序設計方法有三種基本的程序控制結構:順序結構分支(選擇)結構循環結構。24分支(選擇)結構
VBA提供了如下兩種常用的選擇語句If語句----分支結構SelectCase語句----多分支結構251、IF語句格式:If<條件表達式1>Then
<語句塊1> [Else <語句塊2>]Endif26【實例2】驗證密碼設計一個驗證密碼窗體,單擊“確定”時,使用過程驗證密碼正確與否(正確密碼大寫ASDF)如果不對,信息窗標題“驗證”,提示“密碼錯誤,請重新輸入!”,單擊“重試”按鈕時,將密碼清空,焦點落在文本框;
若輸入正確,打開主控面板,并關閉當前窗體(驗證密碼)。例2見窗體:驗證密碼27單擊事件驅動程序代碼PrivateSub確定_Click()DimaIFForms![驗證密碼]!Text1="ASDF"Then
DoCmd.Close
DoCmd.OpenForm"主控面板"Elsea=MsgBox("密碼錯誤,請重新輸入!",5+48+0,"驗證")
Ifa<>4ThenQuitElseText1=""Text1.SetFocus
EndIfEndIfEndSub282、SelectCase語句格式:SelectCase<條件表達式> [Case<表達式1>
<語句塊1>] [Case<表達式2>
<語句塊2>] …… [Case
Else
<語句塊n+1>]EndSelect29【實例3】評價等級制作窗體“A班成績表”,添加2個按鈕如圖:單擊“下(上)一記錄”按鈕,顯示下(上)一記錄的信息,并在信息框顯示該生等級等級標準:平均分X<60:不及格70>X>=60,及格80>X>=70,中等90>X>=80,良好>=90,優秀例3見窗體:A班成績表30添加翻頁按鈕操作步驟添加按鈕,在彈出的向導中,選擇記錄導航:轉至下(上)一項記錄關閉向導后打開事件過程在事件過程中的語句DoCmd.GoToRecord,,acNext之后添加如下頁程序:31相當于省略了>=60“下一記錄”單擊事件驅動程序代碼PrivateSubCommand1_Click()Dimn,iAsIntegerDoCmd.GoToRecord,,acNext‘下一記錄n=Forms![A班成績表]![平均分]SelectCasenCaseIs<60i=MsgBox("不及格",,"該生等級")CaseIs<70i=MsgBox("及格",,"該生等級")CaseIs<80i=MsgBox("中等",,"該生等級")CaseIs<90i=MsgBox("良好",,"該生等級")CaseElsei=MsgBox("優秀",,"該生等級")EndSelectExit_Command1_Click:ExitSub“上一記錄”程序代碼與此類似32Case的順序也可以反過來PrivateSubCommand1_Click()Dimn,iAsIntegerDimDjasstringDoCmd.GoToRecord,,acNext
n=Forms![A班成績表]![平均分]SelectCasenCaseIs>=90
Dj=”優秀”CaseIs>=80
Dj=”良好”CaseIs>=70
Dj=”中等”CaseIs>=60
Dj=”及格”CaseIs<60
Dj=”不及格”EndSelecti=MsgBox(Dj,,"該生等級")Exit_Command1_Click:ExitSub33循環結構
在VBA中,可以通過使用循環語句來控制程序重復執行一組語句。
VBA提供了如下三種常用的循環語句:For…NextDoWhile…LoopDoUntil…Loop34
3、For…Next語句格式如下:For<循環變量>=<初值>To<終值>[Step<步長>] <循環體>Next[<循環變量>]35【實例4】求偶數和制作窗體“求偶數和”,添加控件如圖:在TEXT1中輸入上界單擊“計算”按鈕結果顯示在TEXT2中例4見窗體:求偶數和36單擊計算按鈕驅動程序代碼PrivateSub計算_Click()Dimn,sn=Forms![求偶數和]!Text1s=0Fori=2TonStep2s=s+iNextiForms![求偶數和]!Text2=sEndSub374、DoWhile…Loop
格式如下:DoWhile<條件表達式>
<循環體>Loop38【例5】程序運行后,消息框輸出結果是多少?Dima,b,cAsIntegera=10:b=1:c=1DoWhilec<=a
b=b*2 c=c+1LoopMsgboxb‘(210=1024)Msgboxc‘(11)395、DoUntil…Loop
格式如下:DoUntil<條件表達式>
<循環體>Loop40【例6】用DoUntil…Loop完成【例4】Dima,b,cAsIntegera=10:b=1:c=1DoUntilc>a
b=b*2 c=c+1LoopMsgboxbMsgboxcDima,b,cAsIntegera=10:b=1:c=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民航運輸服務專業教學標準(高等職業教育專科)2025修訂
- 鐵道橋梁隧道工程技術專業教學標準(高等職業教育專科)2025修訂
- 冠心病合并糖尿病飲食指南
- 稅務師考試2018課件
- 邏輯思維模式培訓課件
- 縣2025年大棚蔬菜基地建設實施方案
- 海水晶項目可行性研究報告
- 2025年中國北京市房地產行業市場供需格局及投資規劃建議報告
- 中國烘焙花生行業市場調查研究及投資潛力預測報告
- 2025年 昭通市焊工操作證理論考試練習題附答案
- Nikon尼康D3100中文說明書
- 國家開放大學2024春《1494員工勞動關系管理》期末考試真題及答案-開
- DBJ∕T 13-234-2024 不發火建筑地面應用技術標準
- 2024年新疆中考地理真題卷及答案
- 人教版初三物理總復習電學專題復習教學設計
- 項目風險記錄及跟蹤表
- 2024年越南氮化鋁陶瓷基板行業現狀及前景分析2024-2030
- DL∕T 5158-2012 電力工程氣象勘測技術規程
- 2024年浙江寧波慈溪市民政局及所屬事業單位招聘編外用工6人歷年(高頻重點提升專題訓練)共500題附帶答案詳解
- 第16課 經濟危機與資本主義國家的應對(課件)-【中職專用】《世界歷史》(同課異構)(高教版2023基礎模塊)
- 新編制工具用戶手冊
評論
0/150
提交評論