版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八章模塊Access2003
數(shù)據(jù)庫技術1第八章模塊8.1基本概念8.2模塊的分類8.3模塊的創(chuàng)建與調用8.4模塊的調試8.5宏與模塊的關系8.6VBA程序設計入門8.7VBA的數(shù)據(jù)庫編程基礎28.1基本概念
模塊就是存儲在一個單元中的VBA(VisualBasicForApplication)聲明和過程的集合。它通過嵌入在Access中的VB(VisualBasic)程序設計語言編輯器和編譯器實現(xiàn)與Access的完美結合。模塊是基于VB程序設計語言而創(chuàng)建的。3基本概念模塊由過程組成,每一個過程都由一個函數(shù)或一個子程序所組成。過程(Procedure):是由VB代碼組成的單元。它包含一系列執(zhí)行操作或計算數(shù)值的語句和調用對象方法的語句。過程可分為函數(shù)(Function)過程和子(Sub)程序兩種。4子程序子程序:也稱為Sub過程。是執(zhí)行一項操作或一系列操作的過程。數(shù)據(jù)庫中每個窗體或報表都有內置的窗體模塊或報表模塊,這些模塊包含事件過程模板,可以向其中添加代碼,使得當窗體、報表或其中的控件發(fā)生相應的事件時,執(zhí)行相應的代碼。許多向導(如命令按鈕向導)在創(chuàng)建對象的同時也創(chuàng)建對象的事件過程。子程序以關鍵字“Sub”開始,并以“EndSub”語句結束。58.2模塊的分類兩種類型:類模塊和標準模塊類模塊:類模塊是可以定義新對象的模塊。新建一個類模塊,即新建了一個對象。模塊中定義的任何過程都變成該對象的屬性或方法。類模塊既可以獨立存在,也可以與窗體和報表同時出現(xiàn)。窗體和報表都屬類模塊,它們各自與某一窗體或報表相關聯(lián)。(單擊按鈕可查看窗體或報表的模塊。)標準模塊:標準模塊是指存儲在整個數(shù)據(jù)庫中可用的子程序和函數(shù)的模塊。標準模塊包含通用過程和常用過程,通用過程不與任何對象相關聯(lián),常用過程可以在數(shù)據(jù)庫中的任何位置運行。6標準模塊與類模塊的主要區(qū)別標準模塊與類模塊的主要區(qū)別在于其作用范圍和生命周期。窗體或報表模塊中的過程可以調用已經(jīng)添加到標準模塊中的過程。Access2000以前版本的類模塊只能在與窗體或報表相關聯(lián)時出現(xiàn)。而Access2000以及更高版本中的類模塊不僅可以脫離窗體或報表獨立存在,而且可以在數(shù)據(jù)庫窗口對象欄的模塊列表中顯示。78.3模塊的創(chuàng)建與調用通過向窗體或報表上的事件添加代碼來創(chuàng)建一個事件過程,也可以在類模塊或標準模塊中創(chuàng)建函數(shù)過程或子程序。
創(chuàng)建模塊的一般操作步驟如下:
(1)在“模塊”中單擊“新建”按鈕;
(2)在模塊編輯窗口中編輯模塊程序。8一個簡單的Sub過程【例1】
創(chuàng)建一個Sub過程,自動彈出一個系統(tǒng)使用說明信息框。本例只有一句話:調用函數(shù)MsgBox顯示一段文字PrivateSubaa()MsgBox("單擊“進入系統(tǒng)”按鈕,打開教務管理系統(tǒng);單擊“退出系統(tǒng)”按鈕,關閉教務管理系統(tǒng),并退出Access。")EndSubSub結尾Sub開頭例1見窗體:啟動9模塊的調用(方法1)
在模塊編輯窗口中,選擇菜單“運行”“運行子過程/用戶窗口”或按F5鍵特別注意:運行時,要要將光標置于過程體中任意位置。10模塊的調用(方法2)使用調用語句Call格式:call子過程名([參數(shù)表])說明:使用Public定義的可以使該子過程適用于所有模塊中的所有其它過程;使用Private定義的子過程只適用于同一模塊中的其它過程。實例:Subabc()……EndsubSubss()……Callabc……Endsub11模塊的調用(方法3)事件驅動:與宏一樣,我們可以在窗體或報表的“事件”中編制事件驅動程序,當事件發(fā)生時,模塊中相應的過程自動執(zhí)行。(實例見后面)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]例:以只讀數(shù)據(jù)模式打開“教師信息”窗體。
DoCmd.OpenForm
”教師信息”,acFormReadOnly17關閉操作
其命令格式如下:DoCmd.Close[objecttype,objectname][,save]例:關閉“工資統(tǒng)計表”報表。DoCmd.Close
acReport,”工資統(tǒng)計表”18輸入操作輸入框(InputBox函數(shù))格式如下: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,,"輸出結果")'若用標題等其它參數(shù)時,必須用“變量=……EndSub20輸出操作消息框(MsgBox
函數(shù))其命令格式如下: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的基本控制結構
結構化程序設計方法有三種基本的程序控制結構:順序結構分支(選擇)結構循環(huán)結構。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,優(yōu)秀例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("優(yōu)秀",,"該生等級")EndSelectExit_Command1_Click:ExitSub“上一記錄”程序代碼與此類似32Case的順序也可以反過來PrivateSubCommand1_Click()Dimn,iAsIntegerDimDjasstringDoCmd.GoToRecord,,acNext
n=Forms![A班成績表]![平均分]SelectCasenCaseIs>=90
Dj=”優(yōu)秀”CaseIs>=80
Dj=”良好”CaseIs>=70
Dj=”中等”CaseIs>=60
Dj=”及格”CaseIs<60
Dj=”不及格”EndSelecti=MsgBox(Dj,,"該生等級")Exit_Command1_Click:ExitSub33循環(huán)結構
在VBA中,可以通過使用循環(huán)語句來控制程序重復執(zhí)行一組語句。
VBA提供了如下三種常用的循環(huán)語句:For…NextDoWhile…LoopDoUntil…Loop34
3、For…Next語句格式如下:For<循環(huán)變量>=<初值>To<終值>[Step<步長>] <循環(huán)體>Next[<循環(huán)變量>]35【實例4】求偶數(shù)和制作窗體“求偶數(shù)和”,添加控件如圖:在TEXT1中輸入上界單擊“計算”按鈕結果顯示在TEXT2中例4見窗體:求偶數(shù)和36單擊計算按鈕驅動程序代碼PrivateSub計算_Click()Dimn,sn=Forms![求偶數(shù)和]!Text1s=0Fori=2TonStep2s=s+iNextiForms![求偶數(shù)和]!Text2=sEndSub374、DoWhile…Loop
格式如下:DoWhile<條件表達式>
<循環(huán)體>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<條件表達式>
<循環(huán)體>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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省隨州市部分高中2025-2026學年高一上學期期末聯(lián)考物理答案
- 貴州省貴陽市2025-2026學年上學期期末九年級物理試卷(含答案)
- 過程裝備密封技術
- 會東事業(yè)單位招聘2022年考試全真模擬試題4套及答案解析(附后)
- 鋼結構成型技術操作要點
- 事業(yè)編考試判斷推理題及答案
- 社區(qū)護士考試題及答案
- 社保業(yè)務知識試題及答案
- 禽病防治試題庫及答案
- 甘肅省定西市岷縣2025-2026學年三年級上學期學情監(jiān)測數(shù)學試卷(含答案)
- 2024年風電、光伏項目前期及建設手續(xù)辦理流程匯編
- 不良資產合作戰(zhàn)略框架協(xié)議文本
- 2025年鹽城中考歷史試卷及答案
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫完整參考答案詳解
- 2025年鄭州工業(yè)應用技術學院馬克思主義基本原理概論期末考試模擬試卷
- 測繪資料檔案匯交制度
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫及完整答案詳解
- 2025年六年級上冊道德與法治期末測試卷附答案(完整版)
- 先進班級介紹
- 附件二;吊斗安全計算書2.16
- 學校食堂改造工程施工組織設計方案
評論
0/150
提交評論