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

下載本文檔

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

文檔簡(jiǎn)介

1、第八章第八章 模塊模塊Access 2019數(shù)據(jù)庫(kù)技術(shù)數(shù)據(jù)庫(kù)技術(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ì)入門(mén)程序設(shè)計(jì)入門(mén)8.7 VBA的數(shù)據(jù)庫(kù)編程根底的數(shù)據(jù)庫(kù)編程根底返回返回8.1 根本概念根本概念 模塊就是存儲(chǔ)在一個(gè)單元中的VBA(Visual Basic For Application)聲明和過(guò)程的集合。它經(jīng)過(guò)嵌入在Access中的VB(Visual Basic)程序設(shè)計(jì)言語(yǔ)編輯器和編譯器實(shí)現(xiàn)與Access的完美結(jié)合。模塊是

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

3、據(jù)庫(kù)中每個(gè)窗體或報(bào)表都有內(nèi)置的窗庫(kù)中每個(gè)窗體或報(bào)表都有內(nèi)置的窗體模塊或報(bào)表模塊,這些模塊包含體模塊或報(bào)表模塊,這些模塊包含事件過(guò)程模板,可以向其中添加代事件過(guò)程模板,可以向其中添加代碼,使得當(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)建對(duì)象的同時(shí)也創(chuàng)建對(duì)象的事件創(chuàng)建對(duì)象的同時(shí)也創(chuàng)建對(duì)象的事件過(guò)程。子程序以關(guān)鍵字過(guò)程。子程序以關(guān)鍵字“Sub開(kāi)場(chǎng),開(kāi)場(chǎng),并以并以“End Sub語(yǔ)句終了。語(yǔ)句終了。返回返回8.2 模塊的分類模塊的分類兩種類型:類模塊和規(guī)范模塊兩種類型

4、:類模塊和規(guī)范模塊類模塊:類模塊是可以定義新對(duì)象的模類模塊:類模塊是可以定義新對(duì)象的模塊。新建一個(gè)類模塊,即新建了一個(gè)塊。新建一個(gè)類模塊,即新建了一個(gè)對(duì)象。模塊中定義的任何過(guò)程都變成對(duì)象。模塊中定義的任何過(guò)程都變成該對(duì)象的屬性或方法。類模塊既可以該對(duì)象的屬性或方法。類模塊既可以獨(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ī)范模塊是指存儲(chǔ)在整個(gè)數(shù)規(guī)范模塊:規(guī)范模塊是指存儲(chǔ)在整個(gè)數(shù)據(jù)庫(kù)

5、中可用的子程序和函數(shù)的模塊。據(jù)庫(kù)中可用的子程序和函數(shù)的模塊。規(guī)范模塊包含通用過(guò)程和常用過(guò)程,規(guī)范模塊包含通用過(guò)程和常用過(guò)程,通用過(guò)程不與任何對(duì)象相關(guān)聯(lián),常用通用過(guò)程不與任何對(duì)象相關(guān)聯(lián),常用過(guò)程可以在數(shù)據(jù)庫(kù)中的任何位置運(yùn)轉(zhuǎn)。過(guò)程可以在數(shù)據(jù)庫(kù)中的任何位置運(yùn)轉(zhuǎn)。返回返回規(guī)范模塊與類模塊的主要區(qū)別 規(guī)范模塊與類模塊的主要區(qū)別在于規(guī)范模塊與類模塊的主要區(qū)別在于其作用范圍和生命周期。其作用范圍和生命周期。 窗體或報(bào)表模塊中的過(guò)程可以調(diào)用窗體或報(bào)表模塊中的過(guò)程可以調(diào)用曾經(jīng)添加到規(guī)范模塊中的過(guò)程。曾經(jīng)添加到規(guī)范模塊中的過(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ù)庫(kù)窗口對(duì)象欄在,而且可以在數(shù)據(jù)庫(kù)窗口對(duì)象欄的模塊列表中顯示。的模塊列表中顯示。返回返回8.3 模塊的創(chuàng)建與調(diào)用模塊的創(chuàng)建與調(diào)用 經(jīng)過(guò)向窗體或報(bào)表上的事件添加代碼來(lái)創(chuàng)建一個(gè)事件過(guò)程,也可以在類模塊或規(guī)范模塊中創(chuàng)建函數(shù)過(guò)程或子程序。 創(chuàng)建模塊的普通操作步驟如下: (1) 在“模塊中單擊“新建按鈕; (2) 在模塊編輯窗口中編輯模塊程序。返回返回一個(gè)簡(jiǎn)單的Sub過(guò)程【例1】 創(chuàng)建一個(gè)Sub過(guò)程,自動(dòng)彈出一個(gè)系統(tǒng)運(yùn)用闡明信息框。

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

8、rivate定義的子過(guò)程只適用于同一模塊中的其它過(guò)程。實(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)的過(guò)程自當(dāng)事件發(fā)生時(shí),模塊中相應(yīng)的過(guò)程自動(dòng)執(zhí)行。實(shí)例見(jiàn)后面動(dòng)執(zhí)行。實(shí)例見(jiàn)后面返回返回VBA中對(duì)象的援用VBA中對(duì)象的援用有2種:援用對(duì)象援用對(duì)象的屬性返回返回對(duì)象的援用實(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的字體為隸書(shū) Forms!改動(dòng)字體!Label1.FontName = 隸書(shū)“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返回返回對(duì)象的援用實(shí)例-21、翻開(kāi)窗體主控面板

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

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

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

16、elect Case Case Case Case ElseEnd Select返回返回【實(shí)例【實(shí)例3】評(píng)價(jià)等級(jí)】評(píng)價(jià)等級(jí) 制造窗體“A班成果表,添加2個(gè)按鈕如圖: 單擊“下上一記錄按鈕,顯示下上一記錄的信息,并在信息框顯示該生等級(jí) 等級(jí)規(guī)范:平均分 XX=60,及格 80X=70,中等 90X=80,良好 =90,優(yōu)秀例3見(jiàn)窗體: A班成果表返回返回添加翻頁(yè)按鈕操作步驟添加按鈕,在彈出的導(dǎo)游中,選擇記錄導(dǎo)航:轉(zhuǎn)至下上一項(xiàng)記錄封鎖導(dǎo)游后翻開(kāi)事件過(guò)程 在事件過(guò)程中的語(yǔ)句DoCmd.GoToRecord , , acNext之后添加如下頁(yè)程序 :返回返回相當(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(不及格, , 該生等級(jí)) Case Is 70 i = MsgBox(及格, , 該生等級(jí)) Case Is 80 i = MsgBox(中等, , 該生等級(jí)) 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, , 該生等級(jí)) Exit_Command1_Click: Exit Sub返回返回循環(huán)構(gòu)造 在VBA中,可以經(jīng)過(guò)運(yùn)用循環(huán)語(yǔ)句來(lái)控制程序反復(fù)執(zhí)行一組語(yǔ)句。VBA提供了如下三種常用的循環(huán)語(yǔ)句:ForNextDo WhileLoopDo UntilLoop返回返回 3、ForNext 語(yǔ)句語(yǔ)句格式如下:格式如下:For = To Step Next 返回返回【實(shí)例【實(shí)例4】求偶數(shù)和】求偶數(shù)和 制造窗體“求偶數(shù)和,添加控件如圖: 在TEXT1中輸入上界 單擊“計(jì)算按鈕 結(jié)果顯示在TEXT2中例4見(jiàn)窗體:求偶數(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論