第七章-10-宏操作_第1頁
第七章-10-宏操作_第2頁
第七章-10-宏操作_第3頁
第七章-10-宏操作_第4頁
第七章-10-宏操作_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023/2/11第二部分流行關(guān)系數(shù)據(jù)庫使用-Access2010第七章(十)宏操作2023/2/12主要內(nèi)容:宏概述宏的創(chuàng)建與設(shè)計宏的運行與調(diào)試宏的應(yīng)用宏的觸發(fā)一、宏概述Access共有50多種宏指令,它們和內(nèi)置函數(shù)一樣,可為應(yīng)用程序的設(shè)計提供各種基本功能。可將宏看作是一種簡化的編程語言。使用宏非常方便,不需要記住語法,也不需要編程,只需幾個簡單的宏操作就可以對數(shù)據(jù)庫完成一系列操作。如果使用得當(dāng)和寫程序不相上下。2023/2/131、什么是宏宏是一個或多個操作的集合,其中的每個操作能夠自動地實現(xiàn)特定的功能。將一定的操作排列成順序,就構(gòu)成了宏。在Access中,可以將宏看成一種簡化了的編程語言,這種語言是通過選擇一系列要執(zhí)行的操作來編寫的。編寫宏無須記住各種語法,每個宏的操作參數(shù)都顯示在宏的【設(shè)計視圖】中,通過使用宏,無須在VBA模塊中編寫代碼,即可向窗體、報表和控件中添加功能。通過運行宏,Access能夠有次序地自動完成一連串的操作,包括各種數(shù)據(jù)、鍵盤或鼠標(biāo)的操作。2023/2/14宏的【設(shè)計視圖】:2023/2/152、宏的功能打開和關(guān)閉數(shù)據(jù)表、窗體、打印報表和執(zhí)行查詢。顯示提示框、顯示警告。實現(xiàn)數(shù)據(jù)的輸入和輸出。篩選、查找數(shù)據(jù)記錄。在數(shù)據(jù)庫啟動時執(zhí)行操作等。宏的功能幾乎涉及了所有的數(shù)據(jù)庫操作細節(jié)。2023/2/163、事件的概念事件過程是為響應(yīng)由用戶或程序代碼引發(fā)的事件或由系統(tǒng)觸發(fā)的事件而運行的過程。事件是指對象所能辨識或檢測的動作,當(dāng)此動作發(fā)生于某個對象上,其相對應(yīng)的事件便會被觸發(fā)。如果預(yù)先為此事件編寫了宏或事件程序,則該宏或事件程序便會被執(zhí)行。如用鼠標(biāo)單擊窗體上的按鈕,該按鈕的Click(單擊)事件便會被觸發(fā),指派給Click事件的宏或事件程序也就跟著被執(zhí)行。2023/2/174、宏的類型宏分三種類型:操作序列、宏組和包括條件的宏。Access的宏可以是包含操作序列的一個宏;也可以是一個宏組,宏組由若干個宏構(gòu)成;還可以使用條件來決定在什么情況下運行宏,以及在運行宏時是否進行某項操作。2023/2/182023/2/19(1)操作序列例如,圖1所示的宏是由一系列的操作序列組成的。每次運行宏時,Access都將執(zhí)行這些操作。如果要運行該宏,只要在合適的地方引用宏的名稱即可。圖1:2023/2/1102023/2/111(2)宏組所謂宏組,就是在一個宏名下存儲多個宏。如果存在著許多宏,那么將相關(guān)的宏分到不同的宏組有助于數(shù)據(jù)庫的管理。宏組類似于程序設(shè)計中的【主程序】,而宏組中的【宏名】列中的宏類似于【子程序】,使用宏組可以增加控制,又可以減少編制宏的工作量。2023/2/112(3)條件宏某些情況下,僅在宏中特定條件為真時才執(zhí)行一個或一系列操作。這時可以使用宏的條件表達式來控制宏的流程,這樣的宏稱為條件操作宏。例如,使用宏驗證窗體中的數(shù)據(jù),且需要在一個窗體中顯示一個記錄的值,而在另一個窗體中顯示所有記錄的值,這種情況下,可以使用條件來控制宏的流程。5、常用宏操作宏是一種特殊的代碼,它沒有控制轉(zhuǎn)移功能,也不能直接操控變量。它是一種操作代碼,以操作為單位,將一連串的操作有機地組合起來。在宏運行時,這些操作依次執(zhí)行,若是有條件的宏,則按照條件進行操作。在宏中的每個操作可以攜帶自己的參數(shù),但每個操作執(zhí)行后沒有返回值。2023/2/113(1)宏的操作分類操作數(shù)據(jù)類:用于操作窗體和報表中的數(shù)據(jù),分為過濾操作和記錄定位操作。如:ApplyFilter、GotoPage。執(zhí)行命令類:用于執(zhí)行命令、宏、查詢和其他應(yīng)用程序。如:RunCommand、Quit。導(dǎo)入導(dǎo)出類:實現(xiàn)Access與其他應(yīng)用程序之間的共享(靜態(tài))。其他:用于維護Access的界面,包括菜單欄、工具欄、快捷菜單和快捷鍵的添加、修改和刪除,錯誤信息的提示方式和響鈴警告等。如:AddMenu,Echo,SetWarning等。2023/2/114(2)常用宏操作AddMenu:可以創(chuàng)建【加載項】選項卡下的自定義菜單,也可以創(chuàng)建右鍵菜單。該命令可用于窗體、報表或控件,也可以用于整個數(shù)據(jù)庫。ApplyFilter:可以將篩選、查詢應(yīng)用到表、窗體或報表中,以便對基礎(chǔ)表中的記錄進行限制和排序。對于報表,只能在報表的OnOpen事件的嵌入式宏中使用此命令。Beep:使計算機的揚聲器發(fā)出“嘟嘟”聲。CancelEvent:取消一個事件。Close:關(guān)閉指定的Access窗口。若未指定窗口,則關(guān)閉當(dāng)前活動窗口,可使用CloseDatabase命令來關(guān)閉當(dāng)前數(shù)據(jù)庫。2023/2/1152023/2/116EmailDatabaseObject:可將指定的數(shù)據(jù)表、窗體、報表、模塊或數(shù)據(jù)訪問頁包含在電子郵件中,以便在其中進行查看和轉(zhuǎn)發(fā)。FindRecord:可以查找符合參數(shù)條件的第一個數(shù)據(jù)實例??梢栽跀?shù)據(jù)表、查詢、窗體數(shù)據(jù)表或窗體中查找記錄。FindNextRecord:可以查找符合前一個FindRecord命令所指定條件的下一條記錄。使用該命令可以重復(fù)搜索記錄。GotoControl:可將焦點移至指定的字段或控件。當(dāng)希望特定的字段或控件獲得焦點時,可以使用此命令。例如,如果某個人信息數(shù)據(jù)表中包含有字段【婚否】、【配偶姓名】,若在【婚否】字段輸入“否”,則焦點可以自動跳過【配偶姓名】,移至下一字段。2023/2/117GotoPage:可將活動窗體中的焦點移至指定頁中的第一個控件。GotoRecord:可使打開的表、窗體或查詢結(jié)果的特定記錄成為當(dāng)前活動記錄。DisplayHourglassPointer:在宏執(zhí)行時可以使鼠標(biāo)指針變成沙漏圖標(biāo)或其他指定圖標(biāo)。MaxmizeWindow:最大化活動窗口。MinimizeWindow:將活動窗口縮小為Access窗口底部的一個小標(biāo)題欄。MessageBox:可顯示一個包含警告或提示性消息的消息框。OnError:可指定當(dāng)宏出錯時如何處理。OpenForm:可在窗體視圖、設(shè)計視圖、打印預(yù)覽視圖與數(shù)據(jù)表視圖中打開一個窗體。OpenQuery:可在數(shù)據(jù)表視圖、設(shè)計視圖或打印預(yù)覽視圖中打開選擇查詢或交叉表查詢。2023/2/118OpenReport:可在設(shè)計視圖或打印預(yù)覽視圖中打開報表,或?qū)蟊碇苯影l(fā)送到打印機。通過設(shè)置各種參數(shù)還可以限制報表中打印的記錄。OpenTable:可在數(shù)據(jù)表視圖、設(shè)計視圖或打印預(yù)覽視圖中打開表。通過設(shè)置各種參數(shù)還可以選擇該表的數(shù)據(jù)輸入模式。QuitAccess:退出Access。ExportWithFormatting:實現(xiàn)對象的導(dǎo)出操作。Requery:可對活動對象上指定控件的數(shù)據(jù)源進行重新查詢,以此實現(xiàn)對控件中的數(shù)據(jù)的更新。RunMacro:運行宏或宏組。使用該命令可以完成從其他宏中運行宏、根據(jù)條件運行宏、將宏附加到自定義菜單命令等任務(wù)。二、宏的創(chuàng)建與設(shè)計宏的創(chuàng)建方法和其他對象的創(chuàng)建方法略有不同。通常創(chuàng)建宏對象比較簡單,因為不管是創(chuàng)建單個宏還是宏組,各種宏操作都是從Access提供的宏操作中選取,而不是自定義的。宏不能通過向?qū)?chuàng)建,只能通過設(shè)計視圖直接創(chuàng)建。2023/2/1191、創(chuàng)建與設(shè)計單個宏在宏設(shè)計視圖中選擇需要的宏操作,并設(shè)置操作參數(shù)即可。例7-10-1:創(chuàng)建一個簡單宏,要求打開教學(xué)管理數(shù)據(jù)庫的student表,顯示男生信息。2023/2/120選擇【創(chuàng)建】選項卡,在【宏與代碼】組中單擊【宏】按鈕:2023/2/121打開宏的設(shè)計視圖窗口:2023/2/122從下拉菜單中選擇“OpenTable”選項,并填寫相關(guān)參數(shù):2023/2/123選擇篩選操作“ApplyFilter”選項:2023/2/124保存并命名宏:2023/2/125執(zhí)行宏“顯示男生信息”的結(jié)果:2023/2/1262、創(chuàng)建與設(shè)計宏組宏組是存儲在同一個宏名下的相關(guān)宏的組合,它與其他宏一樣可在宏窗口中進行設(shè)計,并保存在數(shù)據(jù)庫窗口的導(dǎo)航窗格的【宏】組中。如果有多個宏執(zhí)行不同的操作,則可將宏建立為不同的宏組,以方便數(shù)據(jù)庫的管理和維護。例7-10-2:根據(jù)教學(xué)管理數(shù)據(jù)庫,創(chuàng)建一個宏組,要求在運行該宏組時打開“學(xué)生選課及成績信息”窗體,然后通過單擊該窗體中的“退出系統(tǒng)”按鈕,退出當(dāng)前數(shù)據(jù)庫。2023/2/127選擇菜單【創(chuàng)建】—【宏】:2023/2/128在下拉菜單中選擇“Submacro”:2023/2/129將子宏命名為“打開”,在子宏的添加菜單中選擇“OpenForm”:2023/2/130向子宏“打開”添加了其他宏操作:2023/2/131添加子宏“關(guān)閉”:2023/2/132保存并命名為“宏組”:2023/2/133打開“學(xué)生選課及成績信息”窗體設(shè)計視圖,添加命令按鈕:2023/2/134給命令按鈕命名:2023/2/135右鍵單擊命令按鈕,選擇屬性:2023/2/136運行宏組打開窗體的效果:2023/2/1373、創(chuàng)建與設(shè)計條件宏某些情況下,可能希望當(dāng)特定條件為真時,才在宏中執(zhí)行一個或多個操作。例7-10-3:根據(jù)職工管理數(shù)據(jù)庫,創(chuàng)建條件宏,要求運行宏時自動打開salary窗體,當(dāng)修改或添加工資數(shù)據(jù)時,輸入數(shù)據(jù)小于0時,系統(tǒng)自動給出提示。說明:本例使用的是嵌入式宏,這種方式創(chuàng)建的宏不能轉(zhuǎn)換為VBA代碼,而獨立宏可以轉(zhuǎn)換。2023/2/138打開“salary”窗體設(shè)計視圖,右鍵單擊“基本工資”文本框:2023/2/139打開【事件】選項卡,單擊【更新后】文本框右側(cè)的按鈕,在【選擇生成器】對話框中選擇【宏生成器】選項:2023/2/140打開宏設(shè)計窗口,選擇IF宏:2023/2/141添加IF宏:2023/2/142添加MessageBox宏:2023/2/143保存宏之后回到“salary”窗體設(shè)計視圖,顯示嵌入的宏:2023/2/144返回窗體視圖,輸入錯誤數(shù)據(jù)之后顯示提示框:2023/2/145課堂練習(xí)一:根據(jù)edu1數(shù)據(jù)庫操作。1、創(chuàng)建一個獨立宏。查看計算機系學(xué)生的信息。2、創(chuàng)建一個嵌入式宏。在根據(jù)teacher表創(chuàng)建的教師窗體中添加一個命令按鈕,對其單擊事件建立宏,查看計算機系教師信息。3、創(chuàng)建一個條件宏,當(dāng)向sele_course表輸入學(xué)生成績信息時,如果成績小于0大于100,則彈出出錯信息提示框。2023/2/146三、宏的運行與調(diào)試創(chuàng)建宏之后即可以在需要時調(diào)用該宏。設(shè)計完成的宏或宏組并不一定總是正確的,因此在宏的設(shè)計過程中,還可以對宏進行調(diào)試。調(diào)試宏的目的即找出宏的錯誤原因和出錯位置,以便使設(shè)計的宏操作能達到預(yù)期的效果。2023/2/1471、運行宏(1)獨立宏的執(zhí)行直接運行宏:在導(dǎo)航窗格的【宏】組中雙擊宏名即可。從宏組中運行宏:選擇【數(shù)據(jù)庫工具】選項卡,在【宏】組中單擊【運行宏】按鈕,打開【執(zhí)行宏】對話框,從中選擇執(zhí)行相應(yīng)的宏。從另一個宏中運行宏:進入【宏生成器】,在空白操作行的操作列表中選擇RunMacro操作命令,將【宏名稱】參數(shù)設(shè)置為要運行的宏名稱即可。2023/2/1482023/2/149從宏組中運行宏從另一個宏中運行宏(2)嵌入式宏的執(zhí)行對于嵌入在窗體、報表或控件中的宏,執(zhí)行方法較少,主要是通過響應(yīng)窗體、報表或控件中事件的形式運行宏。這種方法就是嵌入式宏的工作方法,在窗體或報表中發(fā)生設(shè)定的事件時,如果條件滿足,就會觸發(fā)執(zhí)行相應(yīng)的宏。2023/2/1502、調(diào)試宏對宏進行調(diào)試,可以采用單步調(diào)試方式,即每次只執(zhí)行一個操作,以便觀察宏的流程和每一步操作的結(jié)果,便于分析出錯的原因并加以更正。例7-10-4:在教學(xué)管理數(shù)據(jù)庫中,創(chuàng)建“打開窗體”宏,添加OpenForm宏操作,并在【窗體名稱】參數(shù)處隨意輸入一個數(shù)據(jù),如輸入“1”。試用單步調(diào)試功能對該宏進行調(diào)試并修改錯誤。2023/2/151創(chuàng)建宏:2023/2/152命名并保存宏:2023/2/153選擇單步、運行宏:2023/2/154【單步執(zhí)行宏】對話框:2023/2/155單擊【單步執(zhí)行】按鈕后出現(xiàn)提示框:2023/2/156顯示錯誤號:2023/2/157單擊【停止所有宏】按鈕,返回宏設(shè)計窗口,重新修改該步操作。2023/2/158四、宏的應(yīng)用1、將宏加到窗體和報表宏的一個常見用途是將宏鏈接到窗體或報表??蓮臄?shù)據(jù)庫導(dǎo)航窗格拖動宏到窗體的設(shè)計畫面上增加一個命令按鈕。在完成的窗體中單擊該按鈕時,即運行該宏。還可通過在窗體或報表的各個屬性中命名宏連接到窗體或報表。例7-10-5:在教學(xué)管理數(shù)據(jù)庫中,打開“學(xué)生信息”窗體設(shè)計視圖,添加“顯示男生信息”宏。將宏“顯示男生信息”從導(dǎo)航窗格拖動到“學(xué)生信息”窗體的設(shè)計視圖中:2023/2/159切換到窗體視圖:2023/2/160單擊“男生信息”按鈕之后的結(jié)果:2023/2/1612、使用郵件發(fā)送Access對象可以創(chuàng)建郵件宏,用于發(fā)送數(shù)據(jù)表、窗體、報表或模塊等Access對象。例7-10-6:創(chuàng)建一個郵件宏,將教學(xué)管理數(shù)據(jù)庫中的student表作為郵件發(fā)送內(nèi)容。2023/2/162設(shè)置EMailDatebaseObject宏:2023/2/163執(zhí)行郵件宏:2023/2/1644、實現(xiàn)Access對象的導(dǎo)出可以根據(jù)需要將Access對象導(dǎo)出到其他位置。例7-10-7:創(chuàng)建一個導(dǎo)出宏,將教學(xué)管理數(shù)據(jù)庫中的student表導(dǎo)出為Excel工作簿。2023/2/165設(shè)置ExportWithFormating宏:2023/2/166執(zhí)行導(dǎo)出宏:2023/2/1672023/2/1685、用Autoexec宏啟動應(yīng)用程序一旦各個功能實現(xiàn)后,往往需要在數(shù)據(jù)庫打開時自動啟動應(yīng)用的歡迎界面??梢酝ㄟ^Autoexec宏實現(xiàn)。Autoexec宏也是一個宏,只是名字為Autoexec,系統(tǒng)會在打開數(shù)據(jù)庫時自動啟動它。要建立自動啟動宏,首先要設(shè)計歡迎界面窗體,然后建立一個新宏,在宏中選擇OpenForm,在動作參數(shù)的“窗體名稱”下,選擇作為啟動的窗體。在給該宏起名字時命名為Autoexec。若禁止啟動宏,則在打開數(shù)據(jù)時按住Shift鍵。例7-9-6:在教學(xué)管理數(shù)據(jù)庫中創(chuàng)建一個自動宏,打開“切換面板”窗體2023/2/169命名宏為“autoexec”:2023/2/170打開“教學(xué)管理”數(shù)據(jù)庫,自動執(zhí)行autoexec宏:2023/2/171直接打開“切換面板”窗體:2023/2/1722023/2/173六、宏的觸發(fā)在窗體或者報表中運行宏,實際上是利用觸發(fā)宏的事件屬性來運行宏的。事件是一種特定的宏,在某個對象上發(fā)生或?qū)δ硞€對象發(fā)生。Access可以響應(yīng)多個事件,如單擊、更改、更新前、更新后等。事件的發(fā)生通常是用戶操作的結(jié)果。通過使用事件過程,可以為窗體、報表或控件上發(fā)生的事件添加自定義的事件響應(yīng)。宏運行的前提是有觸發(fā)宏的事件發(fā)生。根據(jù)任務(wù)類型,事件類型可分為Data(數(shù)據(jù)處理)事件、Focus(焦點)事件和Keyboard(鍵盤)事件。1、Data事件Data事件即數(shù)據(jù)處理事件。當(dāng)窗體或控件中的數(shù)據(jù)被更改或刪除時,或當(dāng)焦點從一條記錄移動到另一條記錄時,將發(fā)生Data事件。2023/2/174Data事件及功能說明事件名稱事件屬性說明AfterDelConfirm窗體在確認刪除操作且在記錄已被刪除或刪除操作取消之后發(fā)生AfterInsert窗體發(fā)生在插入一條新記錄之后AfterUpdate窗體和控件發(fā)生在控件和記錄的數(shù)據(jù)被更新之后BeforeDelConfirm窗體發(fā)生在刪除一條或多條記錄后,但在確認刪除之前BeforeInsert窗體發(fā)生在開始向新紀錄寫第一個字符,但記錄還未添加到數(shù)據(jù)庫時BeforeUpdate窗體和控件發(fā)生在控件和記錄的數(shù)據(jù)被更新之前change控件發(fā)生在文本框或組合框的文本部分內(nèi)容更改時Current窗體當(dāng)把焦點移動到一個記錄,使之成為當(dāng)前記錄時發(fā)生Delete窗體發(fā)生在刪除一個記錄時,但在確認之前Dirty窗體一般發(fā)生在窗體內(nèi)容或組合框部分內(nèi)容被改變時NotInList控件發(fā)生在輸入一個不在組合框列表中的值時Updated控件發(fā)生在當(dāng)OLE對象被修改時2023/2/1752、Focus事件Focus事件即焦點事件,該類型事件與焦點改變相關(guān),當(dāng)窗體或控件失去或獲得焦點時,或者窗體或報表成為激活狀態(tài)時,發(fā)生該事件。2023/2/176Focus事件及功能說明事件名稱事件屬性說明ActivateOnActivate(窗體和報表)當(dāng)窗體或報表等窗口變?yōu)楫?dāng)前活動窗口時發(fā)生DeactivateOnDeactivate(窗體和報表)發(fā)生在其他Access窗口變成當(dāng)前窗口時EnterOnEnte

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論