Access2010數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用教程第7章宏_第1頁(yè)
Access2010數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用教程第7章宏_第2頁(yè)
Access2010數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用教程第7章宏_第3頁(yè)
Access2010數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用教程第7章宏_第4頁(yè)
Access2010數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用教程第7章宏_第5頁(yè)
已閱讀5頁(yè),還剩69頁(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、1第7章 宏Access2010數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用教程(第2版)第7章 宏本章主要內(nèi)容7.1 宏概述7.2 創(chuàng)建宏7.3 宏的修改7.4 運(yùn)行宏和調(diào)試宏7.5 宏與Visual Basic21.1 宏概述 宏是由一個(gè)或多個(gè)操作(即Access的命令)組成的集合,其中每個(gè)操作都實(shí)現(xiàn)特定的功能,例如: “OpenQuery”操作命令可打開(kāi)某個(gè)查詢 “OpenForm”操作命令可打開(kāi)某個(gè)窗體 “OpenReport”操作命令可打印某個(gè)報(bào)表 在Access 2010 中,如果按照宏創(chuàng)建時(shí)打開(kāi)“宏設(shè)計(jì)視圖”的方法來(lái)分類,宏分為獨(dú)立宏、嵌入宏和數(shù)據(jù)宏。3 宏可以由一系列操作組成一個(gè)宏,宏也可以是由若干個(gè)子宏

2、組成一個(gè)宏。每一個(gè)子宏都有自己的宏名并且又可以由一系列操作組成。 在宏中還可以包含由 IF 條件表達(dá)式來(lái)控制操作執(zhí)行流程的邏輯塊,用以確定在某些情況下運(yùn)行宏時(shí),是否執(zhí)行某些操作。 對(duì)于獨(dú)立宏,一個(gè)獨(dú)立宏有其宏名,并在“導(dǎo)航窗格”的“宏”對(duì)象列表中列出。如果該宏中含有子宏,那么該宏中的每一個(gè)子宏都有子宏名。47.1.1 宏設(shè)計(jì)視圖 盡管在創(chuàng)建獨(dú)立宏、嵌入宏或數(shù)據(jù)宏時(shí),用于打開(kāi)“宏設(shè)計(jì)視圖”的方法不同,但是各種方法所打開(kāi)“宏設(shè)計(jì)視圖”大體上是一樣的。 下面以獨(dú)立宏的“宏設(shè)計(jì)視圖”為例來(lái)作介紹。 在打開(kāi)某數(shù)據(jù)庫(kù)后的Access 2010窗口中,單擊“創(chuàng)建”選項(xiàng)卡上的“宏與代碼”組中的“宏”按鈕,打開(kāi)

3、“宏設(shè)計(jì)視圖”。在工作區(qū)上顯出“宏生成器”窗格和“操作目錄”窗格,并在功能區(qū)上顯出“宏工具”下的“設(shè)計(jì)”上下文命令選項(xiàng)卡,如圖7-1所示。 在“宏生成器”窗格中,顯出帶有“添加新操作”占位符的下拉組合框,在該組合框的左側(cè)還顯出一個(gè)綠色的 字。57.1.1 宏設(shè)計(jì)視圖(續(xù))67.1.1 宏設(shè)計(jì)視圖(續(xù)) 在“操作目錄”窗格中,以樹(shù)型結(jié)構(gòu)分別列出“程序流程”、“操作”和“在此數(shù)據(jù)庫(kù)中”三個(gè)目錄,及其下層的子目錄或部分宏對(duì)象。(1)程序流程 “程序流程”目錄包括 Comment、Group、If 和 Submacro。(2)操作 “操作”目錄包括“窗口管理”、“宏命令”、“篩選/查詢/搜索”、“數(shù)據(jù)

4、導(dǎo)入/導(dǎo)出”、“數(shù)據(jù)庫(kù)對(duì)象”、“數(shù)據(jù)輸入操作”、“系統(tǒng)命令”和“用戶界面命令”等八個(gè)子目錄(即8組),總共包含66個(gè)操作。(3)在此數(shù)據(jù)庫(kù)中 在“在此數(shù)據(jù)庫(kù)中”目錄中,將列出當(dāng)前數(shù)據(jù)庫(kù)中已有的宏對(duì)象。并且將根據(jù)已有宏的實(shí)際情況,還可能會(huì)列出宏對(duì)象上層的“報(bào)表”、“窗體”及“宏”等目錄。77.1.2 常用的宏操作簡(jiǎn)介 Access 2010 提供了66條操作命令,下面僅簡(jiǎn)單介紹其中的一些操作,供參考。1. 窗口管理(1)CloseWindow 關(guān)閉指定的窗口。如果無(wú)指定窗口,則關(guān)閉激活的窗口。(2)MaximizeWindow 最大化激活窗口,使其充滿 Access 窗口。該操作可以使用戶盡可能

5、多地看到活動(dòng)窗口中的對(duì)象。(3)MinimizeWindow 以最小化激活窗口,使其縮小為Access窗口底部的標(biāo)題欄。87.1.2 常用的宏操作簡(jiǎn)介(續(xù))(4)MoveAndSizeWindow 移動(dòng)并調(diào)整激活窗口。(5)RestoreWindow 將最大化或最小化窗口還原到原來(lái)的大小。97.1.2 常用的宏操作簡(jiǎn)介(續(xù))2. 宏命令(1)CancelEvent 取消導(dǎo)致該宏(包含該操作)運(yùn)行的Access事件。(2)ClearMacroError 清除MacroError對(duì)象中的上一錯(cuò)誤。(3)OnError 定義錯(cuò)誤處理行為。(4)RunCode 執(zhí)行 Visual Basic Func

6、tion 過(guò)程。107.1.2 常用的宏操作簡(jiǎn)介(續(xù))(5)RunDataMacro 運(yùn)行數(shù)據(jù)宏。(6)RunMacro 運(yùn)行一個(gè)宏,還可以用該操作從其他宏中運(yùn)行宏。(7)RunMenuCommand 執(zhí)行Access菜單命令。(8)StopAllMacros 終止所有正在運(yùn)行的宏。(9)StopMacros 終止當(dāng)前正在運(yùn)行的宏。117.1.2 常用的宏操作簡(jiǎn)介(續(xù))3. 篩選/查詢/搜索(1)FindRecord 查找符合指定條件的第一條或下一條記錄。(2)OpenQuery 打開(kāi)選擇查詢或交叉表查詢,或者執(zhí)行動(dòng)作查詢。查詢可以在“數(shù)據(jù)表”視圖、“設(shè)計(jì)”視圖或“打印預(yù)覽”中打開(kāi)。127.1

7、.2 常用的宏操作簡(jiǎn)介(續(xù))4. 數(shù)據(jù)導(dǎo)入/導(dǎo)出(1)ExportWithFormatting 將指定數(shù)據(jù)庫(kù)對(duì)象中的數(shù)據(jù)輸出為 Excel(.xls)、格式文本(.rtf)、文本(.txt)、HTML(.htm)或快照(.snp)格式。137.1.2 常用的宏操作簡(jiǎn)介(續(xù))5. 數(shù)據(jù)庫(kù)對(duì)象(1)GoToControl 把焦點(diǎn)移到激活數(shù)據(jù)表或窗體上指定的字段或控件上。(2)GoToRecord 在表、窗體或查詢結(jié)果集中的指定記錄成為當(dāng)前記錄。(3)OpenForm 在“窗體”視圖、“設(shè)計(jì)”視圖、“打印預(yù)覽”或“數(shù)據(jù)表”視圖中打開(kāi)窗體。(4)OpenReport 在“設(shè)計(jì)”視圖或“打印預(yù)覽”中打開(kāi)

8、報(bào)表,或立即打印該報(bào)表。147.1.2 常用的宏操作簡(jiǎn)介(續(xù))(5)OpenTable 在“數(shù)據(jù)表”視圖、“設(shè)計(jì)”視圖或“打印預(yù)覽”視圖中打開(kāi)表。(6)PrintObject 打印當(dāng)前對(duì)象。(7)PrintPreview 當(dāng)前對(duì)象的“打印預(yù)覽”。157.1.2 常用的宏操作簡(jiǎn)介(續(xù))(8)RepaintObject 在指定對(duì)象上完成所有未完成的屏幕更新或控件的重新計(jì)算。如果沒(méi)有指定對(duì)象,則在活動(dòng)的對(duì)象上完成這些操作。(9)SetProperty 設(shè)置控件屬性。167.1.2 常用的宏操作簡(jiǎn)介(續(xù))6. 數(shù)據(jù)輸入操作(1)DeleteRecord 刪除當(dāng)前己錄。(2)EditListItems

9、編輯查閱列表中的項(xiàng)。(3)SaveRecord 保存當(dāng)前己錄。177.1.2 常用的宏操作簡(jiǎn)介(續(xù))7系統(tǒng)命令”(1)Beep 使計(jì)算機(jī)發(fā)出嘟嘟聲,以提醒用戶注意。(2)CloseDatabase 關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)。(3)QuitAccess 退出 Access??梢詮膸追N保存選項(xiàng)中選擇一種。187.1.2 常用的宏操作簡(jiǎn)介(續(xù))8. 用戶界面命令(1)AddMenu 為窗體或報(bào)表將菜單添加到自定義菜單欄。(2)MessageBox 顯示含有警告或提示消息的消息框。(3)Redo 重復(fù)最近的用戶操作。(4)UndoRecord 撤消最近的用戶操作。197.2 創(chuàng)建宏 在 Access 2010

10、中,如果按照宏創(chuàng)建時(shí)打開(kāi)“宏設(shè)計(jì)視圖”的方法來(lái)分類,宏可分為獨(dú)立宏、嵌入宏和數(shù)據(jù)宏等三種類型。下面分別介紹各種類型宏的創(chuàng)建方法。207.2.1 創(chuàng)建操作序列的獨(dú)立宏 操作序列的獨(dú)立宏一般只包含一條或多條操作和一個(gè)或多個(gè)“注釋(Comment)”。宏執(zhí)行時(shí)按照操作的順序一條一條地執(zhí)行,直到操作執(zhí)行完畢為止。 例7-1 在“學(xué)生管理系統(tǒng)”數(shù)據(jù)庫(kù),創(chuàng)建一個(gè)操作序列的獨(dú)立宏,該宏包含一條注釋和三條操作命令。其中的注釋的內(nèi)容是“創(chuàng)建操作序列的獨(dú)立宏”,第一條操作命令“OpenForm”是打開(kāi)名為“例5-9瀏覽學(xué)生基本情況”的窗體,第二條操作命令“MaximizeWindow”是自動(dòng)將該打開(kāi)的窗體最大化,

11、第三條操作命令“MessageBox”是顯出含有“這是操作序列獨(dú)立宏的例子!”消息的消息框。該宏的名稱是“例7-1操作序列的獨(dú)立宏”。217.2.1 創(chuàng)建操作序列的獨(dú)立宏(例7-1 )227.2.2 創(chuàng)建含有If塊的條件操作宏 在“宏生成器”窗格中,單擊“添加新操作”組合框右端的下拉按鈕,彈出“操作”的下拉列表,單擊“If”項(xiàng)(或雙擊右側(cè)“操作目錄”窗格中“程序流程”子目錄中的“If”項(xiàng)),展開(kāi)If塊設(shè)計(jì)窗格,此時(shí)該If塊設(shè)計(jì)窗格自動(dòng)成為當(dāng)前窗格并且由一個(gè)矩形框圍住,在“If”的右邊顯出一個(gè)“條件表達(dá)式”的文本框,用戶可直接在該文本框中輸入需要的一個(gè)條件表達(dá)式。 在該“If”所在行的下一行,顯

12、出一個(gè)(屬于該If塊范圍的)“添加新操作”的組合框,用戶可在該組合框中選定需要的操作并展開(kāi)該操作塊設(shè)計(jì)窗格,同時(shí)在其下邊,又顯出一個(gè)(還屬于該If塊范圍的)“添加新操作”的組合框,用戶又可在該組合框中選定需要的操作并對(duì)該操作進(jìn)行相應(yīng)的設(shè)計(jì),如此類推,在該If塊內(nèi)可設(shè)計(jì)多個(gè)操作。237.2.2 創(chuàng)建含有If塊的條件操作宏(表7-1)使用下列表達(dá)式執(zhí)行該操作的條件 學(xué)系名稱=數(shù)學(xué)系 “數(shù)學(xué)系” 是運(yùn)行該宏的窗體中“學(xué)系名稱”字段的值。 DCount (專業(yè)代碼, 專業(yè))35 “專業(yè)” 表的 “專業(yè)代碼” 字段的項(xiàng)數(shù)超過(guò) 35。 DCount (*, 訂單明細(xì), 訂單ID= Forms!訂單!訂單I

13、D)3 “訂單明細(xì)”表中的 “訂單ID” 字段值與 “訂單” 窗體的 “訂單ID” 字段值匹配,“訂單明細(xì)”表中滿足這一條件的記錄超過(guò) 3 條。 發(fā)貨日期 Between #2001年2月2日# And #2001年3月2日# 執(zhí)行此宏的窗體上的 “發(fā)貨日期” 字段值在 2001 年 2 月 2 日和 2001 年 3 月 2 日之間。 Forms!產(chǎn)品!庫(kù)存量100 運(yùn)行該宏的窗體上的“國(guó)家或地區(qū)”字段值是 UK,且在“銷售總數(shù)”窗體內(nèi)的“訂貨總數(shù)”字段值大于 100。 國(guó)家或地區(qū) In (法國(guó), 意大利, 西班牙) And Len (郵政編碼) 5 運(yùn)行該宏的窗體上 “國(guó)家/地區(qū)” 字段值

14、是法國(guó)、意大利或西班牙,且郵政編碼的字符長(zhǎng)度不等于 5。 MsgBox(確認(rèn)更改?, 1)=1 在 MsgBox 函數(shù)顯示“確認(rèn)更改?”的對(duì)話框中,單擊“確定”按鈕, MsgBox 函數(shù)返回值為1。如果在對(duì)話框中單擊 “取消”按鈕, MsgBox 函數(shù)返回值為2。257.2.2 創(chuàng)建含有If塊的條件操作宏(例7-2 ) 例7-2 在“學(xué)生管理系統(tǒng)”數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)含有If 塊的獨(dú)立宏, If操作的條件表達(dá)式是“MsgBox(”是否要打開(kāi)查詢?“, 1)=1”,當(dāng)該條件表達(dá)式的值為True(即單擊了由 MsgBox 函數(shù)打開(kāi)的對(duì)話框中的“確定”按鈕)時(shí),要依次執(zhí)行兩個(gè)操作,其中的第一個(gè)操作“O

15、penQuery”是打開(kāi)名為“例4-28查詢女學(xué)生的基本信息”查詢,第二個(gè)操作“Beep”是發(fā)出“嘟”聲音。在If 塊結(jié)束之后(即End If的下一行),還要添加另一個(gè)不屬于該If 塊的MessageBox 操作,該 MessageBox 操作是用于顯出含有“這是含有If塊的獨(dú)立宏例子!”消息的消息框。該宏的名稱是“例7-2含If塊的獨(dú)立宏”。267.2.2 創(chuàng)建含有If塊的條件操作宏(例7-2 續(xù))277.2.2 創(chuàng)建含有If塊的條件操作宏(續(xù)) - If塊內(nèi)含有Else塊 單擊當(dāng)前 If 塊設(shè)計(jì)窗格的右下角的“添加Else”按鈕,展開(kāi)Else塊設(shè)計(jì)窗格。 如果If 塊中含有Else塊,即該

16、宏中含有“If Then Else End If ”的程序代碼塊。當(dāng)運(yùn)行該宏時(shí),如果的值為True 便執(zhí)行Then后中的操作,否則(即的值為False時(shí))就執(zhí)行Else 后中的操作。287.2.2 創(chuàng)建含有If塊的條件操作宏(例7-3 ) 例7-3 在“學(xué)生管理系統(tǒng)”數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)含有If 塊宏,并且在該If 塊中含有一個(gè)Else塊。If操作的條件表達(dá)式是“MsgBox(”是否要打開(kāi)窗體?“, 1)=1”,當(dāng)該條件表達(dá)式的值為 True(即單擊了由MsgBox 函數(shù)打開(kāi)的對(duì)話框中的“確定”按鈕)時(shí),執(zhí)行“OpenForm”操作,以“窗體”視圖打開(kāi)名為“例5-9瀏覽學(xué)生基本情況”窗體,當(dāng)該條

17、件表達(dá)式的值為 False(即單擊了由MsgBox 函數(shù)打開(kāi)的對(duì)話框中的“取消”按鈕)時(shí),執(zhí)行“OpenQuery”操作,以“數(shù)據(jù)表”視圖打開(kāi)名為“例4-27查詢學(xué)生全部成績(jī)”查詢。該宏的名稱是“例7-3含有If塊及Else塊的獨(dú)立宏”。297.2.2 創(chuàng)建含有If塊的條件操作宏(例7-3 續(xù))307.2.3 使用Group對(duì)宏中的操作進(jìn)行分組 在“宏生成器”中的“操作目錄”窗格里的“程序流程”目錄中,有一項(xiàng)是Group。Group的功能是允許操作和程序流程在已命名、可折疊、未執(zhí)行的塊中分組。 在一個(gè)宏中,把相鄰相關(guān)的若干個(gè)操作分為一組,并對(duì)該分組給定一個(gè)有意義的組名,從而可提高宏代碼的可讀性

18、。宏中的分組不會(huì)影響該宏中操作的執(zhí)行方式,宏中的分組也不能單獨(dú)調(diào)用或運(yùn)行。在宏中,分組的主要目的是標(biāo)識(shí)一組操作,幫助用戶一目了然地了解宏的功能。317.2.3 使用Group對(duì)宏中的操作進(jìn)行分組(續(xù)) 在宏的“宏生成器”窗格中,使用“程序流程”目錄中的Group,可將該宏中的操作進(jìn)行分組。 每個(gè)分組Group塊都是以“Group”表示該分組塊開(kāi)始,以對(duì)應(yīng)的“End Group” 表示該分組塊結(jié)束。 當(dāng)運(yùn)行該宏時(shí),若該宏中有多個(gè)分組,那么將按從上到下的分組順序,分別對(duì)各個(gè)分組內(nèi)所有操作按從上到下的順序逐個(gè)執(zhí)行,直至所有組的所有操作都執(zhí)行完畢為止。327.2.3 使用Group對(duì)宏中的操作進(jìn)行分組

19、(續(xù))337.2.4 設(shè)置宏的操作參數(shù) 在“宏生成器”窗格中,當(dāng)選擇(彈出的)“操作”的下拉列表中的某個(gè)操作時(shí),便自動(dòng)展開(kāi)該操作設(shè)計(jì)窗格,此時(shí)該操作設(shè)計(jì)窗格自動(dòng)成為當(dāng)前窗格并且由一個(gè)矩形框圍住。在該操作設(shè)計(jì)窗格中,需要設(shè)置該操作相關(guān)的參數(shù)。當(dāng)然,不同的操作所擁有的參數(shù)及參數(shù)個(gè)數(shù)是不同的!。347.2.4 設(shè)置宏的操作參數(shù) 在“宏生成器”窗格中,當(dāng)選擇(彈出的)“操作”的下拉列表中的某個(gè)操作時(shí),便自動(dòng)展開(kāi)該操作設(shè)計(jì)窗格,此時(shí)該操作設(shè)計(jì)窗格自動(dòng)成為當(dāng)前窗格并且由一個(gè)矩形框圍住。在該操作設(shè)計(jì)窗格中,需要設(shè)置該操作相關(guān)的參數(shù)。當(dāng)然,不同的操作所擁有的參數(shù)及參數(shù)個(gè)數(shù)是不同的!。357.2.5 創(chuàng)建含子宏

20、的獨(dú)立宏 除了一個(gè)宏僅包含若干個(gè)操作之外,一個(gè)宏還可以包含若干個(gè)子宏,而每一個(gè)子宏又可包含若干個(gè)操作。每一個(gè)宏都有其宏名,每一個(gè)子宏都有其子宏名。引用子宏的格式是“宏名.子宏名”。 通過(guò)在宏名后面鍵入一個(gè)英文的句點(diǎn)“.”字符,再鍵入子宏名,可以引用宏中的子宏。例如,若要引用“學(xué)生信息”宏中的“學(xué)生成績(jī)”子宏,可鍵入:“學(xué)生信息.學(xué)生成績(jī)”。367.2.5 創(chuàng)建含子宏的獨(dú)立宏 例7-4 在“學(xué)生管理系統(tǒng)”數(shù)據(jù)庫(kù),創(chuàng)建一個(gè)宏,該宏包含2個(gè)子宏。第1個(gè)子宏的宏名為“查詢子宏”,該宏包括2個(gè)操作,主要用于打開(kāi)“例4-31統(tǒng)計(jì)全校學(xué)生總?cè)藬?shù)”查詢并使該查詢窗口最大化。第2個(gè)子宏的宏名為“窗體子宏”,該宏

21、包括2個(gè)操作,主要用于打開(kāi)“例5-7學(xué)系窗體”窗體并發(fā)出“嘟”聲。該宏名為“例7-4含子宏的獨(dú)立宏”。377.2.5 創(chuàng)建含子宏的獨(dú)立宏(例7-4 續(xù))387.2.6 創(chuàng)建嵌入宏 嵌入宏是嵌入在窗體或報(bào)表或其控件的事件屬性中的宏。創(chuàng)建嵌入宏有兩種方法。 第一種方法是使用控件向?qū)?chuàng)建控件時(shí),為執(zhí)行某種操作而對(duì)該控件的默認(rèn)事件,Access自動(dòng)創(chuàng)建嵌入宏,如第5章中“例5-9瀏覽學(xué)生基本情況”窗體中,使用命令向?qū)?chuàng)建好“下一個(gè)記錄”按鈕后,該按鈕的“單擊”事件屬性值被自動(dòng)設(shè)置為 嵌入的宏。 第二種方法是對(duì)某對(duì)象的某事件屬性使用宏生成器創(chuàng)建嵌入宏,操作步驟請(qǐng)看下例。397.2.6 創(chuàng)建嵌入宏(續(xù))

22、例7-5 在“學(xué)生管理系統(tǒng)”數(shù)據(jù)庫(kù),創(chuàng)建一個(gè)名為“例7-5含嵌入宏窗體”的窗體,該窗體包含一個(gè)名為“txt1”的文本框和一個(gè)名為“cmd1”并且其標(biāo)題為“歡迎”的命令按鈕。對(duì)該命令按鈕的單擊事件創(chuàng)建嵌入宏,當(dāng)運(yùn)行該窗體時(shí),單擊“歡迎”命令按鈕,根據(jù)當(dāng)前時(shí)間所在的范圍(=12 and =18)情況,在txt1文本框中顯出相應(yīng)的“早上好!歡迎光臨!”或“下午好!歡迎光臨!”或“晚上好!歡迎光臨!”。407.2.6 創(chuàng)建嵌入宏(例7-5續(xù))417.2.7 創(chuàng)建數(shù)據(jù)宏 Access 2010 新增了數(shù)據(jù)宏。數(shù)據(jù)宏允許用戶在表事件中添加邏輯。通過(guò)使用數(shù)據(jù)宏將邏輯附加到您的數(shù)據(jù)中來(lái)增加代碼的可維護(hù)性,從而

23、實(shí)現(xiàn)源表邏輯的集中化。數(shù)據(jù)宏包括下面幾種宏:插入后、更新后、刪除后、刪除前、更改前。427.2.7 創(chuàng)建數(shù)據(jù)宏(續(xù)) 例7-6 在“學(xué)生管理系統(tǒng)”數(shù)據(jù)庫(kù)中,為“課程”表創(chuàng)建一個(gè)“更改前”的數(shù)據(jù)宏,用于限制輸入的“學(xué)分”字段的值不得超過(guò)10。在“課程”表的“數(shù)據(jù)表視圖”中的學(xué)分字段輸入的值超過(guò) 10(如 12),然后單擊“保存”按鈕時(shí),顯出如圖7-9所示的消息框。437.2.7 創(chuàng)建數(shù)據(jù)宏(例7-6 續(xù))圖7-7 例7-6的“創(chuàng)建數(shù)據(jù)宏”菜單447.2.7 創(chuàng)建數(shù)據(jù)宏(例7-6 續(xù))圖7-8 例7-6的宏生成器窗格中的宏代碼457.2.8 創(chuàng)建自動(dòng)執(zhí)行的名為AutoExec的獨(dú)立宏 如果在Acc

24、ess數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)名為 AutoExec 的獨(dú)立宏,那么在打開(kāi)該數(shù)據(jù)庫(kù)時(shí)將首先自動(dòng)執(zhí)行該AutoExec宏中的所有操作。適當(dāng)設(shè)計(jì)AutoExec宏對(duì)象,可以在打開(kāi)該數(shù)據(jù)庫(kù)時(shí)執(zhí)行一些系列的操作,為運(yùn)行該數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)做好需要的初始化準(zhǔn)備,如對(duì)初始參量賦予初值、打開(kāi)應(yīng)用系統(tǒng)的“登錄”窗體等等。467.2.8 創(chuàng)建自動(dòng)執(zhí)行的名為AutoExec的獨(dú)立宏(續(xù)) 創(chuàng)建名為 AutoExec 的獨(dú)立宏的方法與上述創(chuàng)建獨(dú)立宏的方法相似,當(dāng)保存該宏時(shí),指定宏名稱為 AutoExec。該宏保存后,在導(dǎo)航窗格的宏對(duì)象列表中便含有 AutoExec 項(xiàng)。 請(qǐng)注意,如果在打開(kāi)數(shù)據(jù)庫(kù)時(shí)想阻止執(zhí)行該 AutoExe

25、c 宏,可在打開(kāi)該數(shù)據(jù)庫(kù)時(shí)按住 Shift 鍵不放開(kāi),直到數(shù)據(jù)庫(kù)打開(kāi)為止。477.3 宏的修改 對(duì)已經(jīng)創(chuàng)建好的宏,可以打開(kāi)該宏的設(shè)計(jì)視圖,在“宏生成器窗格”中,對(duì)原有的宏代碼可進(jìn)行編輯,如可添加新操作、修改操作、刪除操作、移動(dòng)操作等等。487.3.1 獨(dú)立宏的修改 打開(kāi)某個(gè)Access數(shù)據(jù)庫(kù)后,右擊“導(dǎo)航窗格”上的“宏”對(duì)象列表中的某個(gè)宏名,彈出快捷菜單,單擊該快捷菜單中的“設(shè)計(jì)視圖”,便打開(kāi)該獨(dú)立宏的“宏設(shè)計(jì)視圖”,并且在“宏生成器窗格”中顯出該宏的原有代碼。此時(shí),在“宏生成器窗格”中,對(duì)原有的宏代碼可進(jìn)行編輯修改,如可添加新操作、修改操作、刪除操作、移動(dòng)操作等等。497.3.2 嵌入宏的修

26、改 打開(kāi)某個(gè)Access數(shù)據(jù)庫(kù)后,右擊“導(dǎo)航窗格”上的“窗體”對(duì)象列表中的某個(gè)窗體名,彈出快捷菜單,單擊該快捷菜單中的“設(shè)計(jì)視圖”,便打開(kāi)該窗體的“設(shè)計(jì)視圖”。雙擊某控件(或窗體選定器),顯出其“屬性表”,在該“屬性表”的事件列表中,單擊屬性值為 嵌入的宏 所在組合框右側(cè)的“”按鈕,便打開(kāi)該嵌入宏的“宏設(shè)計(jì)視圖”,并且在“宏生成器”窗格中顯出該嵌入宏的宏代碼。此時(shí),在“宏生成器”窗格中,對(duì)原有的宏代碼可進(jìn)行編輯修改,如可添加新操作、修改操作、刪除操作、移動(dòng)操作等等。507.3.3 數(shù)據(jù)宏的修改 打開(kāi)某個(gè)Access數(shù)據(jù)庫(kù)后,右擊“導(dǎo)航窗格”上的“表”對(duì)象列表中的某個(gè)表名,彈出快捷菜單,單擊該快

27、捷菜單中的“設(shè)計(jì)視圖”,便打開(kāi)該表的“設(shè)計(jì)視圖”,并在功能區(qū)上顯出“表格工具”下的“設(shè)計(jì)”命令選項(xiàng)卡,單擊該“設(shè)計(jì)”選項(xiàng)卡上的“字段、記錄和表格事件”組中的“創(chuàng)建數(shù)據(jù)宏”按鈕,彈出“創(chuàng)建數(shù)據(jù)宏”命令下拉列表,(假定原來(lái)已經(jīng)創(chuàng)建了“更改前”的數(shù)據(jù)宏)單擊該下拉列表中的某一項(xiàng)(如“更改前”),打開(kāi)該表的(如“更改前”)“宏設(shè)計(jì)視圖”,并且在“宏生成器”窗格中顯出該表的該(如“更改前”)數(shù)據(jù)宏的宏代碼。在“宏生成器”窗格中,對(duì)原有的宏代碼可進(jìn)行編輯修改,如可添加新操作、修改操作、刪除操作、移動(dòng)操作等等。517.3.4 宏中操作的刪除 在“宏生成器”窗格中,單擊宏代碼中需要?jiǎng)h除的操作名(如 Messa

28、geBox),該操作的設(shè)計(jì)窗格自動(dòng)成為當(dāng)前窗格并且由一個(gè)矩形框圍住,該操作的設(shè)計(jì)窗格的右上角顯出一個(gè)交叉的“刪除”按鈕,此時(shí)單擊該“刪除”按鈕或者按鍵盤(pán)上的“Delete”鍵,便可刪除該操作(即刪除該操作的當(dāng)前設(shè)計(jì)窗格及其所屬內(nèi)容)。527.3.5 宏中操作的移動(dòng) 在“宏生成器”窗格中,單擊宏代碼中需要移動(dòng)位置的操作名(如Beep),該操作的設(shè)計(jì)窗格自動(dòng)成為當(dāng)前窗格并且由一個(gè)矩形框圍住,在該操作的設(shè)計(jì)窗格的右上角,會(huì)自動(dòng)根據(jù)上下文情況相應(yīng)地顯出一個(gè)綠色下箭頭的“下移”按鈕(如圖7-10所示),或者顯出一個(gè)綠色上箭頭的“上移”按鈕和一個(gè)綠色下箭頭的“下移”按鈕這兩個(gè)按鈕(如圖7-11所示),或者

29、顯出一個(gè)綠色上箭頭的“上移”按鈕(如圖7-12所示)。此時(shí),如果單擊“下移”按鈕,便把該操作的設(shè)計(jì)窗格移到其下一個(gè)操作之后;如果單擊“上移”按鈕,便把該操作的設(shè)計(jì)窗格移到其前一個(gè)操作之前。537.3.5 宏中操作的移動(dòng)(續(xù))“下移”按鈕“上移”按鈕“上移”按鈕“下移”按鈕“刪除”按鈕547.4 運(yùn)行宏和調(diào)試宏 創(chuàng)建了宏后,可運(yùn)行該宏,可調(diào)試該宏。對(duì)于含有子宏的宏,如果需要運(yùn)行宏中的任何一個(gè)子宏,則需要用“宏名.子宏名”格式指定某個(gè)子宏。557.4.1 宏的運(yùn)行 對(duì)于不含有子宏的宏,可直接指定該宏名運(yùn)行該宏。 對(duì)于含有子宏的宏,如果直接指定該宏名運(yùn)行該宏時(shí),僅運(yùn)行該宏中的第一個(gè)子宏名的宏,該宏中

30、的隨后的其他子宏不會(huì)被運(yùn)行。如果需要運(yùn)行宏中的任何一個(gè)子宏,則需要用“宏名.子宏名”格式指定某個(gè)子宏。567.4.1 宏的運(yùn)行(續(xù)) 當(dāng)運(yùn)行宏過(guò)程中,如果宏的操作有誤,則會(huì)顯出 “Microsoft Access”出錯(cuò)信息對(duì)話框,形如圖7-13所示。用戶可根據(jù)出錯(cuò)信息提示,對(duì)該宏的設(shè)計(jì)進(jìn)行修改,排除錯(cuò)誤。圖7-13 “Microsoft Access”出錯(cuò)信息對(duì)話框示例577.4.1 宏的運(yùn)行(續(xù)) 運(yùn)行宏有如下幾種方法: (1)打開(kāi)某宏的“設(shè)計(jì)視圖”,單擊“宏工具”下的“設(shè)計(jì)”命令選項(xiàng)卡的“工具”組中的“運(yùn)行”按鈕,可以直接運(yùn)行宏。 (2)在Access 2010窗口中,雙擊“導(dǎo)航窗格”上的

31、“宏”對(duì)象列表中的某個(gè)宏名,可以直接運(yùn)行該宏。對(duì)于含有子宏的宏,僅運(yùn)行該宏中的第一個(gè)子宏名的宏。587.4.1 宏的運(yùn)行(續(xù)) (3)在Access 2010窗口中,右鍵“導(dǎo)航窗格”上的“宏”對(duì)象列表中的某個(gè)宏名,彈出快捷菜單,單擊快捷菜單中的“運(yùn)行”,可以直接運(yùn)行該宏。對(duì)于含有子宏的宏,僅運(yùn)行該宏中的第一個(gè)子宏。597.4.1 宏的運(yùn)行(續(xù)) (4)在Access 2010窗口中,單擊“數(shù)據(jù)庫(kù)工具”標(biāo)題,顯出“數(shù)據(jù)庫(kù)工具”選項(xiàng)卡。單擊該選項(xiàng)卡上的“宏”組中的“運(yùn)行宏”按鈕,顯出“執(zhí)行宏”對(duì)話框。在“宏名稱”組合框的下拉列表中,列出所有獨(dú)立宏的宏名,對(duì)于含有子宏的宏,在該下拉列表中還以“宏名.

32、子宏名”格式列出了所有子宏名,在該下拉列表中選定某個(gè)宏名或子宏名,如圖7-14所示。單擊“執(zhí)行宏”對(duì)話框的“確定”按鈕。607.4.1 宏的運(yùn)行(續(xù)) (5)將窗體、報(bào)表或控件的某個(gè)事件屬性設(shè)為宏的名稱。在某對(duì)象的“屬性表”的某個(gè)事件的屬性值組合框的下拉列表中,列出所有獨(dú)立宏的宏名,對(duì)于含有子宏的宏,在該下拉列表中還以“宏名.子宏名”格式列出了所有子宏名,在該下拉列表中選定某個(gè)宏名或子宏名。如圖7-15所示。617.4.1 宏的運(yùn)行(續(xù)) (6)從另一個(gè)宏中運(yùn)行宏。 在“宏生成器”窗格中,單擊“添加新操作”組合框右端的下拉按鈕,彈出“操作”的下拉列表,單擊“RunMacro”項(xiàng),展開(kāi) RunM

33、acro 操作設(shè)計(jì)窗格。在“宏名稱”組合框的下拉列表中,列出所有獨(dú)立宏的宏名,對(duì)于含有子宏的宏,在該下拉列表中還以“宏名.子宏名”格式列出了所有子宏名,在該下拉列表中選定某個(gè)宏名或子宏名。如圖7-16所示。627.4.1 宏的運(yùn)行(續(xù)) (7)在 VBA 過(guò)程中,使用 DoCmd 對(duì)象的 RunMacro 方法運(yùn)行宏。在指定宏名時(shí),對(duì)于含有子宏的宏,要用“宏名.子宏名”格式指定某個(gè)子宏名。 運(yùn)行宏的語(yǔ)句格式: DoCmd.RunMacro 宏名 語(yǔ)句格式例子: DoCmd.RunMacro 例7-4-含子宏的獨(dú)立宏. 窗體子宏637.4.1 宏的運(yùn)行(續(xù)) (8)在打開(kāi)數(shù)據(jù)庫(kù)時(shí)自動(dòng)運(yùn)行宏。 A

34、ccess中設(shè)置了一個(gè)特殊的宏名AutoExec。AutoExec 代表自動(dòng)加載或處理。 如果在 Access2010 數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)名為 AutoExec 宏對(duì)象,那么在打開(kāi)該數(shù)據(jù)庫(kù)時(shí)將首先自動(dòng)執(zhí)行該 AutoExec 宏中的所有操作。 請(qǐng)注意,如果在打開(kāi)數(shù)據(jù)庫(kù)時(shí)想阻止執(zhí)行該AutoExec 宏,可在打開(kāi)該數(shù)據(jù)庫(kù)時(shí)按住 Shift 鍵不放開(kāi),直到數(shù)據(jù)庫(kù)打開(kāi)為止。647.4.2 宏的調(diào)試 一般來(lái)說(shuō),在運(yùn)行宏的過(guò)程中,當(dāng)執(zhí)行的操作有錯(cuò)誤時(shí),會(huì)顯出相應(yīng)出錯(cuò)信息的消息框。此外,Access 還提供了以“單步執(zhí)行”(即一次只執(zhí)行宏的一個(gè)動(dòng)作)的方式來(lái)查找宏中的問(wèn)題。 使用單步執(zhí)行宏,可以觀察宏的流

35、程和每一個(gè)操作的結(jié)果,方便用戶發(fā)現(xiàn)導(dǎo)致錯(cuò)誤或產(chǎn)生非預(yù)期結(jié)果的原因,從而對(duì)該宏的設(shè)計(jì)進(jìn)行修改完善。657.4.2 宏的調(diào)試(續(xù))單步執(zhí)行宏的操作步驟如下: (1)打開(kāi)某個(gè)Access數(shù)據(jù)庫(kù)后,右擊“導(dǎo)航窗格”上的“宏”對(duì)象列表中的某個(gè)宏名,彈出快捷菜單,單擊快捷菜單中的“設(shè)計(jì)視圖”,顯出“宏設(shè)計(jì)視圖”。 (2)單擊“宏工具”下的“設(shè)計(jì)”命令選項(xiàng)卡的“工具”組中的“單步”按鈕,要確?!皢尾健卑粹o已經(jīng)按下。 (3)單擊“工具”組中的“運(yùn)行”按鈕,顯出“單步執(zhí)行宏”對(duì)話框,形如圖7-17所示。667.4.2 宏的調(diào)試(續(xù)) (4) 請(qǐng)執(zhí)行下列操作之一: 若要執(zhí)行“單步執(zhí)行宏”對(duì)話框中所顯示的操作,請(qǐng)單擊“單步執(zhí)行”按鈕。 若要停止宏的運(yùn)行并關(guān)閉“單步執(zhí)行宏”對(duì)話框,請(qǐng)單擊“停止所有宏”按鈕。 若要關(guān)閉“單步執(zhí)行宏”對(duì)話框并繼續(xù)執(zhí)行宏的未完成部分,請(qǐng)單擊“繼續(xù)”按鈕。677.5 宏與Visual Basic 在Access中,由于宏可以自動(dòng)執(zhí)行任務(wù)的一個(gè)操作或一組操作,因此,使用宏可以自動(dòng)完成許多任務(wù)。 在Access中,要完成相同的任務(wù)還可以通過(guò) Visual Basic for Applications (VBA)編程來(lái)實(shí)現(xiàn)。VBA 是 Visual Basic 的一個(gè)子集。687.5.1 宏

溫馨提示

  • 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)論