第8章模塊ppt課件_第1頁
第8章模塊ppt課件_第2頁
第8章模塊ppt課件_第3頁
第8章模塊ppt課件_第4頁
第8章模塊ppt課件_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第八章第八章 模塊模塊Access 2019數(shù)據(jù)庫技術(shù)數(shù)據(jù)庫技術(shù)返回返回第八章第八章 模塊模塊8.1 根本概念根本概念8.2 模塊的分類模塊的分類8.3 模塊的創(chuàng)建與調(diào)用模塊的創(chuàng)建與調(diào)用8.4 模塊的調(diào)試模塊的調(diào)試8.5 宏與模塊的關(guān)系宏與模塊的關(guān)系8.6 VBA程序設(shè)計(jì)入門程序設(shè)計(jì)入門8.7 VBA的數(shù)據(jù)庫編程根底的數(shù)據(jù)庫編程根底返回返回8.1 根本概念根本概念 模塊就是存儲在一個(gè)單元中的VBA(Visual Basic For Application)聲明和過程的集合。它經(jīng)過嵌入在Access中的VB(Visual Basic)程序設(shè)計(jì)言語編輯器和編譯器實(shí)現(xiàn)與Access的完美結(jié)合。模塊是

2、基于VB程序設(shè)計(jì)言語而創(chuàng)建的。 返回返回根本概念根本概念 模塊由過程組成,每一個(gè)過程都由模塊由過程組成,每一個(gè)過程都由一個(gè)函數(shù)或一個(gè)子程序所組成。一個(gè)函數(shù)或一個(gè)子程序所組成。 過程過程(Procedure):是由:是由VB代碼組成的代碼組成的單元。它包含一系列執(zhí)行操作或計(jì)單元。它包含一系列執(zhí)行操作或計(jì)算數(shù)值的語句和調(diào)用對象方法的語算數(shù)值的語句和調(diào)用對象方法的語句。過程可分為函數(shù)句。過程可分為函數(shù)(Function)過程過程和子和子(Sub)程序兩種。程序兩種。返回返回子程序 子程序:也稱為子程序:也稱為Sub過程。是執(zhí)行一過程。是執(zhí)行一項(xiàng)操作或一系列操作的過程。數(shù)據(jù)項(xiàng)操作或一系列操作的過程。數(shù)

3、據(jù)庫中每個(gè)窗體或報(bào)表都有內(nèi)置的窗庫中每個(gè)窗體或報(bào)表都有內(nèi)置的窗體模塊或報(bào)表模塊,這些模塊包含體模塊或報(bào)表模塊,這些模塊包含事件過程模板,可以向其中添加代事件過程模板,可以向其中添加代碼,使得當(dāng)窗體、報(bào)表或其中的控碼,使得當(dāng)窗體、報(bào)表或其中的控件發(fā)生相應(yīng)的事件時(shí),執(zhí)行相應(yīng)的件發(fā)生相應(yīng)的事件時(shí),執(zhí)行相應(yīng)的代碼。許多導(dǎo)游代碼。許多導(dǎo)游(如命令按鈕導(dǎo)游如命令按鈕導(dǎo)游)在在創(chuàng)建對象的同時(shí)也創(chuàng)建對象的事件創(chuàng)建對象的同時(shí)也創(chuàng)建對象的事件過程。子程序以關(guān)鍵字過程。子程序以關(guān)鍵字“Sub開場,開場,并以并以“End Sub語句終了。語句終了。返回返回8.2 模塊的分類模塊的分類兩種類型:類模塊和規(guī)范模塊兩種類型

4、:類模塊和規(guī)范模塊類模塊:類模塊是可以定義新對象的模類模塊:類模塊是可以定義新對象的模塊。新建一個(gè)類模塊,即新建了一個(gè)塊。新建一個(gè)類模塊,即新建了一個(gè)對象。模塊中定義的任何過程都變成對象。模塊中定義的任何過程都變成該對象的屬性或方法。類模塊既可以該對象的屬性或方法。類模塊既可以獨(dú)立存在,也可以與窗體和報(bào)表同時(shí)獨(dú)立存在,也可以與窗體和報(bào)表同時(shí)出現(xiàn)。窗體和報(bào)表都屬類模塊,它們出現(xiàn)。窗體和報(bào)表都屬類模塊,它們各自與某一窗體或報(bào)表相關(guān)聯(lián)。單各自與某一窗體或報(bào)表相關(guān)聯(lián)。單擊擊 按鈕可查看窗體或報(bào)表的模按鈕可查看窗體或報(bào)表的模塊。塊。規(guī)范模塊:規(guī)范模塊是指存儲在整個(gè)數(shù)規(guī)范模塊:規(guī)范模塊是指存儲在整個(gè)數(shù)據(jù)庫

5、中可用的子程序和函數(shù)的模塊。據(jù)庫中可用的子程序和函數(shù)的模塊。規(guī)范模塊包含通用過程和常用過程,規(guī)范模塊包含通用過程和常用過程,通用過程不與任何對象相關(guān)聯(lián),常用通用過程不與任何對象相關(guān)聯(lián),常用過程可以在數(shù)據(jù)庫中的任何位置運(yùn)轉(zhuǎn)。過程可以在數(shù)據(jù)庫中的任何位置運(yùn)轉(zhuǎn)。返回返回規(guī)范模塊與類模塊的主要區(qū)別 規(guī)范模塊與類模塊的主要區(qū)別在于規(guī)范模塊與類模塊的主要區(qū)別在于其作用范圍和生命周期。其作用范圍和生命周期。 窗體或報(bào)表模塊中的過程可以調(diào)用窗體或報(bào)表模塊中的過程可以調(diào)用曾經(jīng)添加到規(guī)范模塊中的過程。曾經(jīng)添加到規(guī)范模塊中的過程。Access 2000以前版本的類模塊只能以前版本的類模塊只能在與窗體或報(bào)表相關(guān)聯(lián)時(shí)出

6、現(xiàn)。而在與窗體或報(bào)表相關(guān)聯(lián)時(shí)出現(xiàn)。而Access 2000以及更高版本中的類模以及更高版本中的類模塊不僅可以脫離窗體或報(bào)表獨(dú)立存塊不僅可以脫離窗體或報(bào)表獨(dú)立存在,而且可以在數(shù)據(jù)庫窗口對象欄在,而且可以在數(shù)據(jù)庫窗口對象欄的模塊列表中顯示。的模塊列表中顯示。返回返回8.3 模塊的創(chuàng)建與調(diào)用模塊的創(chuàng)建與調(diào)用 經(jīng)過向窗體或報(bào)表上的事件添加代碼來創(chuàng)建一個(gè)事件過程,也可以在類模塊或規(guī)范模塊中創(chuàng)建函數(shù)過程或子程序。 創(chuàng)建模塊的普通操作步驟如下: (1) 在“模塊中單擊“新建按鈕; (2) 在模塊編輯窗口中編輯模塊程序。返回返回一個(gè)簡單的Sub過程【例1】 創(chuàng)建一個(gè)Sub過程,自動(dòng)彈出一個(gè)系統(tǒng)運(yùn)用闡明信息框。

7、本例只需一句話:調(diào)用函數(shù)MsgBox顯示一段文字Private Sub aa()MsgBox (單擊“進(jìn)入系統(tǒng)按鈕,翻開教務(wù)管理系統(tǒng);單擊“退出系統(tǒng)按鈕,封鎖教務(wù)管理系統(tǒng),并退出Access。)End SubSub結(jié)尾Sub開頭例1見窗體:啟動(dòng)返回返回模塊的調(diào)用方法1 在模塊編輯窗口中, 選擇菜單“運(yùn)轉(zhuǎn) “運(yùn)轉(zhuǎn)子過程/用戶窗口 或按F5鍵特別留意:特別留意:運(yùn)轉(zhuǎn)時(shí),要要運(yùn)轉(zhuǎn)時(shí),要要將光標(biāo)將光標(biāo) 置于置于過程體中恣意過程體中恣意位置。位置。返回返回模塊的調(diào)用方法2運(yùn)用調(diào)用語句Call格式:call 子過程名(參數(shù)表)闡明:運(yùn)用Public定義的可以使該子過程適用于一切模塊中的一切其它過程;運(yùn)用P

8、rivate定義的子過程只適用于同一模塊中的其它過程。實(shí)例:Sub abc()End subSub ss() Call abcEnd sub返回返回模塊的調(diào)用方法3事件驅(qū)動(dòng):事件驅(qū)動(dòng): 與宏一樣,我們可以在窗體或報(bào)與宏一樣,我們可以在窗體或報(bào)表的表的“事件中編制事件驅(qū)動(dòng)程序,事件中編制事件驅(qū)動(dòng)程序,當(dāng)事件發(fā)生時(shí),模塊中相應(yīng)的過程自當(dāng)事件發(fā)生時(shí),模塊中相應(yīng)的過程自動(dòng)執(zhí)行。實(shí)例見后面動(dòng)執(zhí)行。實(shí)例見后面返回返回VBA中對象的援用VBA中對象的援用有2種:援用對象援用對象的屬性返回返回對象的援用實(shí)例-11、設(shè)置窗體“改動(dòng)顏色中的標(biāo)簽Label1的字體顏色為紅色 Forms!改動(dòng)顏色!Label1.Fo

9、reColor = RGB(255, 0, 0)2、設(shè)置窗體“改動(dòng)字體中的標(biāo)簽Label1的字體為隸書 Forms!改動(dòng)字體!Label1.FontName = 隸書“3、設(shè)置窗體“改動(dòng)字體中的標(biāo)簽Label1的字體為加粗 Forms!改動(dòng)字體!Label1.FontBold = True4、設(shè)置窗體“改動(dòng)字體中的標(biāo)簽Label1的字體為傾斜 Forms!改動(dòng)字體!Label1.FontItalic = True5、取消窗體“改動(dòng)字體中的標(biāo)簽Label1的字體的下劃線 Forms!改動(dòng)字體!Label1.FontUnderline = False返回返回對象的援用實(shí)例-21、翻開窗體主控面板

10、DoCmd.OpenForm 主控面板2、封鎖當(dāng)前窗體 DoCmd.Close3、焦點(diǎn)置于文本框Text1 Text1.SetFocus4、清空文本框Text1 Text1 = “5、 n = Forms!改動(dòng)字體!Frame1 選項(xiàng)組的值返回返回常用的VBA命令 翻開操作翻開操作封鎖操作封鎖操作 輸入操作輸入操作輸出操作輸出操作 返回返回翻開操作 翻開窗體。其命令格式如下: DoCmd.OpenForm formname,view,filtername,wherecondition,datamode,windowmode例:以只讀數(shù)據(jù)方式翻開“教師信息窗體。DoCmd.OpenForm 教師

11、信息, acFormReadOnly返回返回封鎖操作封鎖操作 其命令格式如下:其命令格式如下:DoCmd.Close objecttype,objectname,save例:封鎖例:封鎖“工資統(tǒng)計(jì)表報(bào)表。工資統(tǒng)計(jì)表報(bào)表。DoCmd.Close acReport, 工資統(tǒng)計(jì)表工資統(tǒng)計(jì)表返回返回輸入操作輸入框輸入框 InputBox函數(shù)函數(shù)格式如下:格式如下:InputBox(prompt,title,default,xpos,ypos,helpfile,context)A=InputBox(請輸入半徑:請輸入半徑:)返回返回輸出操作 Private Sub aa() Dim a, b a = I

12、nputBox(請輸入半徑:請輸入半徑:) b = 3.14 * a 2 MsgBox (圓的面積圓的面積= & b) b = MsgBox(圓的面積圓的面積= & b, , 輸出結(jié)果輸出結(jié)果) 假設(shè)用標(biāo)題等其它參數(shù)時(shí),必需用假設(shè)用標(biāo)題等其它參數(shù)時(shí),必需用“變量變量= End Sub返回返回輸出操作音訊框音訊框 MsgBox 函數(shù)函數(shù)其命令格式如下:其命令格式如下:MsgBox(prompt,buttons,title,helpfile,context) Private Sub aa()Dim a MsgBox (歡迎!歡迎!)a = MsgBox(熱烈歡迎!熱烈歡迎!, ,

13、輸出文字輸出文字)End SubMsgBox詳細(xì)闡明詳細(xì)闡明點(diǎn)擊翻開Word文檔返回返回返回返回記錄操作 跳到第一個(gè):跳到第一個(gè):DoCmd.GoToRecord , , acFirst 跳到最后一個(gè):跳到最后一個(gè): DoCmd.GoToRecord , , acLast 下一個(gè):下一個(gè): DoCmd.GoToRecord , , acNext 上一個(gè):上一個(gè): DoCmd.GoToRecord , , acPrevious返回返回VBA的根本控制構(gòu)造 構(gòu)造化程序設(shè)計(jì)方法有三種根本的程序構(gòu)造化程序設(shè)計(jì)方法有三種根本的程序控制構(gòu)造控制構(gòu)造:順序構(gòu)造順序構(gòu)造分支選擇構(gòu)造分支選擇構(gòu)造循環(huán)構(gòu)造。循環(huán)構(gòu)

14、造。 返回返回分支選擇構(gòu)造 VBA提供了如下兩種常用的選擇語句If語句 -分支構(gòu)造Select Case語句 -多分支構(gòu)造返回返回1、IF 語句 格式:格式:If Then ElseEnd if返回返回【實(shí)例【實(shí)例2】驗(yàn)證密碼】驗(yàn)證密碼 設(shè)計(jì)一個(gè)驗(yàn)證密碼窗體,單擊設(shè)計(jì)一個(gè)驗(yàn)證密碼窗體,單擊“確定時(shí),運(yùn)用過程確定時(shí),運(yùn)用過程驗(yàn)證密碼正確與否正確密碼大寫驗(yàn)證密碼正確與否正確密碼大寫ASDF 假設(shè)不對,信息窗標(biāo)題假設(shè)不對,信息窗標(biāo)題“驗(yàn)證,提示驗(yàn)證,提示“密碼錯(cuò)誤,密碼錯(cuò)誤,請重新輸入!,請重新輸入!, 單擊單擊“重試按鈕時(shí),將密碼清空,焦點(diǎn)落在文本框;重試按鈕時(shí),將密碼清空,焦點(diǎn)落在文本框; 假設(shè)

15、輸入正確,翻開主控面板,并封鎖當(dāng)前窗體驗(yàn)假設(shè)輸入正確,翻開主控面板,并封鎖當(dāng)前窗體驗(yàn)證密碼。證密碼。例2見窗體:驗(yàn)證密碼返回返回單擊事件驅(qū)動(dòng)程序代碼Private Sub 確定_Click()Dim aIF Forms!驗(yàn)證密碼!Text1 = ASDF Then DoCmd.Close DoCmd.OpenForm 主控面板Else a = MsgBox(密碼錯(cuò)誤,請重新輸入!, 5 + 48 + 0, 驗(yàn)證) If a 4 Then Quit Else Text1 = Text1.SetFocus End IfEnd IfEnd Sub返回返回2、Select Case語句 格式:格式:S

16、elect Case Case Case Case ElseEnd Select返回返回【實(shí)例【實(shí)例3】評價(jià)等級】評價(jià)等級 制造窗體“A班成果表,添加2個(gè)按鈕如圖: 單擊“下上一記錄按鈕,顯示下上一記錄的信息,并在信息框顯示該生等級 等級規(guī)范:平均分 XX=60,及格 80X=70,中等 90X=80,良好 =90,優(yōu)秀例3見窗體: A班成果表返回返回添加翻頁按鈕操作步驟添加按鈕,在彈出的導(dǎo)游中,選擇記錄導(dǎo)航:轉(zhuǎn)至下上一項(xiàng)記錄封鎖導(dǎo)游后翻開事件過程 在事件過程中的語句DoCmd.GoToRecord , , acNext之后添加如下頁程序 :返回返回相當(dāng)于省略了=60“下一記錄單擊事件驅(qū)動(dòng)程序

17、代碼Private Sub Command1_Click()Dim n, i As IntegerDoCmd.GoToRecord , , acNext 下一記錄n = Forms!A班成果表!平均分Select Case n Case Is 60 i = MsgBox(不及格, , 該生等級) Case Is 70 i = MsgBox(及格, , 該生等級) Case Is 80 i = MsgBox(中等, , 該生等級) Case Is =90Dj=優(yōu)秀Case Is =80 Dj=良好Case Is =70 Dj=中等Case Is =60 Dj=及格Case Is 60Dj=不及格

18、End Selecti = MsgBox(Dj, , 該生等級) Exit_Command1_Click: Exit Sub返回返回循環(huán)構(gòu)造 在VBA中,可以經(jīng)過運(yùn)用循環(huán)語句來控制程序反復(fù)執(zhí)行一組語句。VBA提供了如下三種常用的循環(huán)語句:ForNextDo WhileLoopDo UntilLoop返回返回 3、ForNext 語句語句格式如下:格式如下:For = To Step Next 返回返回【實(shí)例【實(shí)例4】求偶數(shù)和】求偶數(shù)和 制造窗體“求偶數(shù)和,添加控件如圖: 在TEXT1中輸入上界 單擊“計(jì)算按鈕 結(jié)果顯示在TEXT2中例4見窗體:求偶數(shù)和返回返回單擊計(jì)算按鈕驅(qū)動(dòng)程序代碼Priva

19、te Sub 計(jì)算_Click()Dim n, sn = Forms!求偶數(shù)和!Text1s = 0For i = 2 To n Step 2 s = s + iNext iForms!求偶數(shù)和!Text2 = sEnd Sub返回返回4、Do WhileLoop 格式如下:格式如下:Do While Loop返回返回【例【例5】程序運(yùn)轉(zhuǎn)后,音訊框輸出結(jié)果是多少?】程序運(yùn)轉(zhuǎn)后,音訊框輸出結(jié)果是多少?Dim a,b,c As Integera=10:b=1:c=1Do While c=ab=b*2c=c+1LoopMsgbox b (210=1024)Msgbox c (11)返回返回5、Do UntilLoop 格式如下:格式如下:Do Until Loop 返回返回【例【例6】用】用Do UntilLoop 完成【例完成【例4】Dim a,b,c As Integera=10: b=1: c=1Do Until cab=b*2c=c+1LoopMsgbox bMsgbox cDim a,b,c As Integera=10:b=1:c=1Do W

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論