第七章 宏
本章內(nèi)容
◆ 宏的概念和功能
◆ 宏的建立和應(yīng)用
宏是一個或多個操作的集合,其中每個操作執(zhí)行特定的功能。如果用戶頻繁地重復(fù)同一系列操作,就可以創(chuàng)建宏來執(zhí)行這些操作。宏由一些操作和命令組成,這些操作和命令用來完成自動化操作。用戶可以通過創(chuàng)建宏來自動執(zhí)行某一項重復(fù)的或者復(fù)雜的任務(wù)。
在創(chuàng)建宏時,就定義了一系列任務(wù),只要啟用宏,Access就執(zhí)行了這些任務(wù)。
一、宏的功能
宏是一種功能強大的工具,可用來在Access 2003 中自動執(zhí)行許多操作。通過宏的自動執(zhí)行重復(fù)任務(wù)的功能,可以保證工作的一致性,還可以避免由于忘記某一操作步驟而引起的錯誤。宏節(jié)省了執(zhí)行任務(wù)的時間,提高了工作效率。
宏的具體功能如下:
◆ 顯示和隱藏工具欄。
◆ 打開和關(guān)閉表、查詢、窗體和報表。
◆ 執(zhí)行報表的預(yù)覽和打印操作以及報表中數(shù)據(jù)的發(fā)送。
◆ 設(shè)置窗體或報表中控件的值。
◆ 設(shè)置Access工作區(qū)中任意窗口的大小,并執(zhí)行窗口移動、縮小、放大和保存等操作。
◆ 執(zhí)行查詢操作,以及數(shù)據(jù)的過濾、查找。
◆ 為數(shù)據(jù)庫設(shè)置一系列的操作,簡化工作。
二、創(chuàng)建宏
單擊數(shù)據(jù)庫窗口的【宏】選項卡中的【新建】按鈕,即可打開宏的定義窗口和宏的設(shè)計工具欄。
1.宏設(shè)計的基礎(chǔ)知識
【宏設(shè)計】工具欄:
【宏名】 顯示宏定義窗口中的“宏名”列。
【條件】 顯示宏定義窗口中的“條件”列。
【插入行】 在宏定義表中設(shè)定的當前行的前面增加一空白行。
【刪除行】 刪除當前行。
【運行】 運行宏。
【單步】 單步運行宏。
【生成器】 設(shè)置宏的操作參數(shù)。
宏定義窗口如下:
默認情況下,宏定義窗口上面部分由兩列組成:操作和注釋列。
【操作】列 在此列中輸入宏中所有操作,運行時將按照輸入順序執(zhí)行操作。
【注釋】列 在此列中輸入對應(yīng)操作的備注說明。
【宏名】列 在此列中輸入宏的名稱,在多個操作的宏組中這一列是必選的。
【條件】列 在此列中輸入條件表達式,以決定運行宏的條件。
【操作參數(shù)列】 用以設(shè)定操作的相關(guān)參數(shù)。
在操作列中,提供了50多種操作,用戶可以從這些操作中做選擇,創(chuàng)建自己的宏。而對于這些操作,用戶可以通過查看幫助,從中了解每個操作的含義和功能。
⑴ 在宏中添加操作
主要操作說明:
◆ AddMenu 將菜單添加到窗體或報表的自定義菜單欄,菜單欄中每個菜單都需要一個獨立的AddMenu操作。此外,也可以為窗體、窗體控件或報表添加自定義快捷菜單,或為所有的窗口添加全局菜單欄或全局快捷菜單。
◆ ApplyFilter 對表、窗體或報表應(yīng)用篩選、查詢或SQL WHERE子句,以便對表的記錄、窗體、報表的基礎(chǔ)表或基礎(chǔ)查詢中的記錄進行相應(yīng)的操作。對于報表,只能在其“打開”事件屬性所指定的宏中使用該操作。
◆ Beep 可以通過計算機的揚聲器發(fā)出嘟嘟聲,一般用于警告聲。
◆ CancelEvent 取消一個事件,該事件導(dǎo)致Access執(zhí)行包含宏的操作。
◆ Close 關(guān)閉指定的Access窗口。如果沒有指定窗口,則關(guān)閉活動窗口。
◆ CopyObject 將指定的數(shù)據(jù)庫對象復(fù)制到另外一個Access數(shù)據(jù)庫(.mdb)中。或以新的名稱復(fù)制到同一數(shù)據(jù)庫或Access項目(.adp)中。
◆ CopyDatabaseFile 為當前的與Access項目連接的SQL Server 7.0或更高版本數(shù)據(jù)庫作副本。
◆ DeleteObject 刪除指定的數(shù)據(jù)庫對象。
◆ Echo 指定是否打開回響。例如:可以使用該操作在宏運行時隱藏或顯示運行結(jié)果。
◆ FindNext 查找下一個符合前一個FindRecord操作或【在字段中查找】對話框中指定條件的記錄。
◆ FindRecord 查找符合FindRecord參數(shù)指定條件的數(shù)據(jù)的第一個實例。該數(shù)據(jù)可能在當前的記錄中,在之前或之后的記錄中,也可以在第一個記錄中,還可以在活動的數(shù)據(jù)表、查詢數(shù)據(jù)表、窗體數(shù)據(jù)表或窗體中查詢記錄。
⑵ 設(shè)置操作參數(shù)
選定操作后,在【操作參數(shù)】區(qū)域會出現(xiàn)相應(yīng)的操作參數(shù)??梢栽诟鞑僮鲄?shù)對應(yīng)的文本框中輸入數(shù)值,以設(shè)定操作參數(shù)的屬性。如上圖中。也可以使用表達式生成器生成的表達式設(shè)置操作參數(shù)。
⑶ 創(chuàng)建宏組
如果有多個宏,可將相關(guān)的宏設(shè)置成宏組,以便于用戶管理數(shù)據(jù)庫。使用宏組可以避免單獨管理這些宏的麻煩。
在數(shù)據(jù)庫窗口中的宏名稱列表中將顯示宏組名稱。如果要指定宏組中的某個宏,應(yīng)使用如下結(jié)構(gòu):【宏組名.宏名】。
⑷ 宏中的條件操作
有時用戶可能希望僅僅在某些條件成立的情況下才在宏中執(zhí)行某個或某些操作。宏中的條件可以達到這個目的。
2.創(chuàng)建AutoKeys宏
Autokeys宏通過按下指定給宏的一個鍵或一個鍵序觸發(fā)。為AutoKeys宏設(shè)置的鍵擊順序稱為宏的名字。例如:名為F5的宏將在按下F5鍵時運行。
命名AutoKeys宏時,使用符號“^”表達Ctrl鍵。下表列出了可用來運行AutoKeys宏的組合鍵的類型:
語法 說明 示例
————————————————————————
^number Ctrl+任一數(shù)字 ^3
F* 任一功能鍵 F5
^F* Ctrl+任一功能鍵 ^F5
+F* Shift+任一功能鍵 ↑F5
————————————————————————
創(chuàng)建AutoKeys宏時,必須定義宏將執(zhí)行的操作,如打開一個對象,最大化一個窗口或顯示一條消息。另外還需要提供操作參數(shù),宏在運行時需要這種參數(shù),如要打開的數(shù)據(jù)庫對象、要最大化的窗口或要在對話框中顯示的消息的名稱。
下面舉例說明:
◆ 新建宏,顯示宏名列,在宏名列中輸入宏名“^1”,在操作列中選擇操作。
◆ 選擇操作OpenForm,設(shè)置相應(yīng)的參數(shù)。
◆ 用同樣的方法建立其它三個宏。
◆ 以AutoKeys為宏保存宏組。
這時只需按下Ctrl+1就會打開【供應(yīng)商】窗體,Ctrl+2最大化該窗體,Ctrl+3最小化該窗體,Ctrl+4關(guān)閉該窗體。
3.創(chuàng)建條件宏
條件宏是滿足一定條件后才運行宏。利用條件宏可以顯示一些信息,如雇員輸入了訂單卻忘記了輸入雇員號,則可利用宏來提醒雇員輸入遺漏的信息?;蛘哌M行數(shù)據(jù)的有效性檢查。
要創(chuàng)建條件宏,需要向【宏】窗口添加【條件】列,單擊【宏設(shè)計】工具欄上的【條件】按鈕,并輸入使條件起作用的宏的規(guī)則即可。如果設(shè)置的條件為真,宏就運行。如果設(shè)置的條件為假,就轉(zhuǎn)到下一個操作。
下面舉例說明:
◆ 新建宏,顯示條件列,輸入條件。選擇操作和參數(shù)。
◆ 以名MoreThan1000保存宏,并關(guān)閉之。
◆ 在設(shè)計窗口打開“雇員銷售明細金額窗體”,并在金額控件的屬性中設(shè)置事件。
◆ 金額超過1000元時,將鼠標進入金額框再離開時,有如下提示:
4.創(chuàng)建事件宏
事件是在數(shù)據(jù)庫中執(zhí)行的操作,如單擊鼠標、打開窗體或打印報表??梢詣?chuàng)建只要某一事件發(fā)生就運行宏。例如在使用窗體時,可能需要在窗體中反復(fù)地查找記錄,打印記錄,然后前進到下一條記錄??梢詣?chuàng)建一個宏來自動地執(zhí)行這些操作。
Access 2003 可識別大量的事件,但可用的事件并非一成不變,這取決于事件將要觸發(fā)的對象類型。下表給出了幾個常用的可指定給宏的事件。
事件 說明
————————————————————————————
OnOpen 當一個對象被打開且第1條記錄顯示之前執(zhí)行
OnCurrent 當對象的當前記錄被選中時執(zhí)行
OnClick 當用戶單擊一個具體的對象時執(zhí)行
OnClose 當對象被關(guān)閉并從屏幕上清除時執(zhí)行
OnDblClick 當用戶雙擊一個具體對象時執(zhí)行
OnActivable 當一個對象被激活時執(zhí)行
OnDeactivate 當一個對象不再活動時執(zhí)行
BeforeUpdate 在用更改后的數(shù)據(jù)更新記錄之前執(zhí)行
AfterUpdate 在用更改后的數(shù)據(jù)更新記錄之后執(zhí)行
————————————————————————————
下面舉例說明事件宏的創(chuàng)建。
三、運行宏
創(chuàng)建完一個宏后,就可以運行宏執(zhí)行各個操作。當運行宏時,Access2003 會運行宏中的所有操作,直到宏結(jié)束。
可以直接運行宏,或者從其宏或事件過程中運行宏,也可以作為窗體、報表或控件中出現(xiàn)的事件響應(yīng)運行宏。也可以創(chuàng)建自定義菜單命令或工具欄按鈕來運行宏,將某個宏設(shè)定為組合鍵,或者在打開數(shù)據(jù)庫時自動運行宏。
1.直接運行宏
如果希望直接運行宏,通過雙擊宏名、通過【工具】【宏】|【運行宏】、通過單擊工具欄上的【執(zhí)行】按鈕等操作,可以直接運行宏。
2.在宏組中運行宏
要把宏作為窗體或報表中的事件屬性設(shè)置,或作為RunMacro(運行宏)操作中的Macro Name(宏名)說明,可以用如下格式指定宏:
[宏組名.宏名]
3.從其他宏或VB程序中運行宏
如果要從其他的宏或VB過程中運行宏,請將RunMacro操作添加到相應(yīng)的宏或過程中。
如果要將RunMacro操作添加到宏中,在宏的設(shè)計視圖中,請在空白操作行選擇RunMacro選項,并且將MacroName參數(shù)設(shè)置為相應(yīng)的宏名即可。
如果要將RunMacro操作添加到VB過程中,請在過程中添加DoCmd對象的RunMacro方法,然后指定要運行的宏名即可。如語句:DoCmd.RunMacro “My Macro”。
下面看一下RunMacro操作。在下列三種情況下使用這個操作:
◆ 從另一個宏運行宏。
◆ 執(zhí)行基于某個條件的宏。
◆ 將宏附加到一個自定義的菜單命令上。
RunMacro操作的參數(shù)如下:
操作參數(shù) 描述
————————————————————————————————————
宏名 執(zhí)行的宏的名稱
重復(fù)次數(shù) 宏執(zhí)行的最大次數(shù)??瞻诪橐淮?/span>
重復(fù)表達式 表達式結(jié)果為True(-1)或False(0)。如果為假,則宏停止運行。
————————————————————————————————————
如果用戶在【宏名】參數(shù)中設(shè)置宏組名,則會運行組中第一個宏。
4.從控件中運行宏
如果希望從窗體、報表或控件中運行宏,只需單擊設(shè)計視圖中的相應(yīng)控件,在相應(yīng)的屬性對話框中選擇【事件】選項卡的對應(yīng)事件,然后在下拉列表框中選擇當前數(shù)據(jù)庫中的相應(yīng)宏。這樣在事件發(fā)生時,就會自動執(zhí)行所設(shè)定的宏。
例如建立一個宏,執(zhí)行操作“Quit”,將某一窗體中的命令按鈕的單擊事件設(shè)置為執(zhí)行這個宏,則當在窗體中點擊按鈕時,將退出Access。
5.在菜單或工具欄中運行宏
可以將宏添加到菜單或工具欄中,從而在菜單或工具欄中運行宏。首先選擇【視圖】|【工具欄】|【自定義】命令,Access2003彈出一個【自定義】對話框。將其圖標直接拖動到菜單或工具欄中即可。單擊該宏的圖標即可運行宏。
6.將一個或一組操作設(shè)定成快捷鍵
可以將一個操作或一組操作設(shè)置成特定的鍵或組合鍵??梢酝ㄟ^如下步驟來完成:
◆ 在數(shù)據(jù)庫窗口中單擊【對象】欄下的【宏】按鈕。
◆ 單擊工具欄中的【新建】按鈕。
◆ 單擊工具欄上的【宏名】按鈕。
◆ 在【宏名】列中為一個操作或一組操作設(shè)定快捷鍵。
◆ 添加希望快捷鍵執(zhí)行的操作或操作組。
◆ 保存宏。
保存宏后,以后每次打開數(shù)據(jù)庫時,設(shè)定的快捷鍵都將有效。
此外還可以創(chuàng)建一個在第一次打開數(shù)據(jù)庫時運行的特殊的宏:AutoExec宏。它可以執(zhí)行諸如這樣的操作:打開數(shù)據(jù)輸入窗體、顯示消息框提示用戶輸入、發(fā)出表示歡迎的聲音等。一個數(shù)據(jù)庫只能有一個名為AutoExec的宏。
聯(lián)系客服