access基礎(chǔ)教程access第七章_第1頁
access基礎(chǔ)教程access第七章_第2頁
access基礎(chǔ)教程access第七章_第3頁
access基礎(chǔ)教程access第七章_第4頁
access基礎(chǔ)教程access第七章_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、長春師范大學計算機科學與技術(shù)學院7 7.1 .1 宏的概念宏的概念7.2 7.2 宏的結(jié)構(gòu)宏的結(jié)構(gòu)7 7.3 .3 宏選項卡和設(shè)計器宏選項卡和設(shè)計器7 7.4 .4 創(chuàng)建宏與宏操作創(chuàng)建宏與宏操作7 7.5 .5 創(chuàng)建嵌入宏創(chuàng)建嵌入宏7.6 7.6 創(chuàng)建數(shù)據(jù)宏創(chuàng)建數(shù)據(jù)宏7.7 7.7 宏的調(diào)試與運行宏的調(diào)試與運行前面介紹了access數(shù)據(jù)庫中的四種基本對象:表、查詢、窗體和報表。這四種對象的功能很強大,但是它們彼此不能互相驅(qū)動。要想將這些對象有機地組合起來,成為一個性能完善、操作簡便的系統(tǒng),只有通過宏和模塊這兩種對象來實現(xiàn)。相對于模塊來說,宏是一種簡化操作的工具。使用宏非常方便,不需要記住各種語

2、法,也不需要編程,只需要利用幾個簡單的宏操作就可以對數(shù)據(jù)庫完成一系列的操作,中間過程完全是自動的。access2010進一步增強了宏的功能,使得創(chuàng)建宏更加方便,宏的功能更加強大,使用宏可以完成更為復雜的工作。宏是一個和多個操作的集合,其中每個操作實現(xiàn)特定的功能。access為用戶提供了六十余種宏操作,這些操作和菜單操作命令類似,但它們對數(shù)據(jù)庫施加作用的時間有所不同,作用時的條件也有所不同。菜單命令一般用在數(shù)據(jù)庫的設(shè)計過程中,而宏命令則用在數(shù)據(jù)庫的執(zhí)行過程中。菜單命令必須由使用者來施加這個操作,而宏命令則可以在數(shù)據(jù)庫中自動執(zhí)行。將宏操作按照一定的順序有機地組合在一起,運行時access就會按照定

3、義的順序自動運行。在access中,經(jīng)常要進行一些重復性的工作,比如打開表或者窗體、運行和打印報表等。我們可以將大量相同的工作創(chuàng)建成為一個宏,在每次執(zhí)行時運行宏,就可以大大提高工作效率。在許多數(shù)據(jù)庫系統(tǒng)中,可以運用編程來完成一些操作。access也提供了編程功能,就是visual basic for application(vba)編寫的模塊。但對于一般用戶來說,使用宏是一種更簡便的方法,它不需要編程,也不需要記住各種語法,只要將所執(zhí)行的操作、參數(shù)和運行的條件輸入到宏設(shè)計器中即可。宏的主要功能如下:可以替代用戶執(zhí)行重復的任務(wù),節(jié)約用戶的時間??梢允箶?shù)據(jù)庫中的各個對象聯(lián)系得更加緊密??梢燥@示警告

4、信息窗口。可以為窗體制作菜單,為菜單指定某些操作??梢园押Y選程序加到記錄中,提高記錄的查找速度。可以實現(xiàn)數(shù)據(jù)在應(yīng)用程序之間的傳送1 1獨立宏獨立宏獨立宏是獨立的對象,與窗體、報表等對象并無附屬關(guān)系,獨立宏在導航窗格中可見。名為autoexec的自動運行宏是典型的獨立宏。2 2嵌入宏嵌入宏與獨立宏相反,嵌入宏與窗體、報表或控件有附屬關(guān)系,作為所嵌入對象的組成部分,嵌入宏嵌入在窗體、報表或控件對象的事件中。嵌入宏在導航窗格中不可見。嵌入宏的出現(xiàn)使得宏的功能更強大、更安全。3 3數(shù)據(jù)宏數(shù)據(jù)宏在access2010中新增加了“數(shù)據(jù)宏”的概念和功能,允許在表事件(如添加、更新或刪除數(shù)據(jù)等)中自動運行。有

5、兩種類型的數(shù)據(jù)宏:一種是由表事件觸發(fā)的數(shù)據(jù)宏(也稱為“事件驅(qū)動的”數(shù)據(jù)宏);一種是為響應(yīng)按名稱調(diào)用而運行的數(shù)據(jù)宏(也稱為“已命名的”數(shù)據(jù)宏)。4 4子宏子宏相當于access2000/2003中的宏組,是共同存儲在一個宏名下的一組宏的集合,其主要作用是方便于宏的管理。創(chuàng)建或打開一個宏時,會看到如圖7.1所示的宏設(shè)計器界面。宏是由操作、參數(shù)、注釋(comment)、組(group)、條件(if)和子宏(submacro)等幾部分組成的。access2010對宏結(jié)構(gòu)進行了重新設(shè)計,這與access2000/2003是有很大的區(qū)別,access2010使得宏的結(jié)構(gòu)與計算機程序結(jié)構(gòu)在形式上十分相似,方

6、便了用戶從宏到vba學習和使用過程的過渡。對比程序設(shè)計,宏的操作內(nèi)容更簡潔,易于理解和設(shè)計。1 1注釋(注釋(commentcomment)用來說明每個操作執(zhí)行的功能,增加對操作的描述,讓用戶更容易理解宏的功能。2 2組(組(groupgroup)隨著access的普及和發(fā)展,人們正在使用access過盛越來越復雜的數(shù)據(jù)庫管理,因此宏的結(jié)構(gòu)也越來越復雜。為了有效地管理宏,access2010引入了group組。使用group組可以把宏的若干操作,根據(jù)它們操作目的的相關(guān)性進行分塊,一個塊就是一個組。這樣宏的結(jié)構(gòu)顯示得十分清晰,閱讀起來更方便。需要特別強調(diào)的是,group組與access2003以

7、前版本中宏組的概念和目的是完全不同的。3 3條件(條件(if if)條件是指定在執(zhí)行宏操作時必須滿足的標準或限制,通過輸入條件表達式來控制宏的執(zhí)行。表達式由算術(shù)運算符、邏輯運算符、常數(shù)、函數(shù)、對象、字段名以及屬性值等內(nèi)容組成,其結(jié)果為是(true)或否(false)。當條件表達式值為是(true)時執(zhí)行宏操作,為否(false)時則不執(zhí)行。宏選項卡和宏設(shè)計器是設(shè)計宏的工具,與access2000/2003版本比較,access2010發(fā)生了很大的變化,了解其結(jié)構(gòu)和功能十分重要。1 1宏選項宏選項卡卡 在功能區(qū)“創(chuàng)建”選項卡下“宏與代碼”組中,單擊“宏”按鈕,打開如圖7.2所示的“宏工具/設(shè)計”

8、選項卡。該選項卡由“工具”、“折疊/展開”和“顯示/隱藏”三個組構(gòu)成。2 2操作操作目錄目錄 在如圖7.1所示的宏設(shè)計器窗口中包括兩個窗格,左側(cè)是“宏設(shè)計器”窗格,右側(cè)是“操作目錄”窗格。操作目錄窗格由三部分組成:“程序流程”、“操作”和“此數(shù)據(jù)庫中”。 3 3宏設(shè)計宏設(shè)計器器access2010重新設(shè)計了宏設(shè)計器,使得其結(jié)構(gòu)接近于vba事件過程的開發(fā)界面。在如圖7.1所示的宏設(shè)計器窗口左側(cè)的“宏設(shè)計器”窗格中,組合框用來設(shè)置宏操作,如圖7.3所示。添加新操作的方法有如下三種:直接在組合框中輸入操作命令單擊組合框的下拉箭頭,在打開的列表中,選擇操作命令從“操作目錄”窗格中,把某個操作命令拖拽(

9、或雙擊)到組合框中添加操作后,需指定相關(guān)的參數(shù)、條件等內(nèi)容,圖7.4顯示的是添加了closewindow命令后的宏設(shè)計器窗口。在access中使用宏,用戶不需要編寫代碼,只需要在窗格中選擇有關(guān)的內(nèi)容,填寫需要進行的宏操作,并對宏操作進行相應(yīng)的設(shè)置。這和傳統(tǒng)意義的程序設(shè)計有很大的區(qū)別。 7.4.1 7.4.1 創(chuàng)建宏獨立宏創(chuàng)建宏獨立宏創(chuàng)建獨立宏的操作步驟如下:(1)在功能區(qū)“創(chuàng)建”選項卡下“宏與代碼”組中,單擊 按鈕,打開宏設(shè)計器窗口。(2)從宏設(shè)計器窗格的組合框中選擇相應(yīng)的宏操作。(3)輸入或選擇宏操作參數(shù),設(shè)置注釋(comment)、條件(if)等內(nèi)容。(4)重復第(2)(3)步,繼續(xù)添加新

10、的宏操作。(5)單擊快速訪問工具欄中的“保存”按鈕,為宏命名。下面以創(chuàng)建名為“autoexec”的宏來說明獨立宏的創(chuàng)建過程,其功能是在打開數(shù)據(jù)庫的時候立即打開“學生成績管理”窗體。(1)創(chuàng)建如圖5.2所示的“學生成績管理系統(tǒng)”窗體。(2)在功能區(qū)“創(chuàng)建”選項卡下“宏與代碼”組中,單擊“宏”按鈕,打開宏設(shè)計器窗口。(3)從宏設(shè)計器窗格的組合框中選擇宏操作“openform”。(4)指定宏操作參數(shù),從“窗體名稱”組合框中選擇“學生成績管理系統(tǒng)”,如圖7.5所示。(5)單擊快速訪問工具欄中的“保存”按鈕,在彈出的“另存為”對話框中為宏命名“autoexec”,如圖7.6所示。(6)單擊“確定”按鈕。

11、關(guān)閉數(shù)據(jù)庫,再次打開數(shù)據(jù)庫查看自動運行宏autoexec的運行狀況。autoexec(見示例數(shù)據(jù)庫)7.4.2 7.4.2 創(chuàng)建子宏創(chuàng)建子宏子宏實際上就是宏組,是在同一個宏窗口中包含多個宏的集合。如果要在一個位置上將幾個相關(guān)的宏構(gòu)成組,而又不希望單獨運行,則可以將它們組織起來構(gòu)成一個宏組。宏中的每個子宏單獨運行,互相沒有關(guān)聯(lián)。在多數(shù)數(shù)據(jù)庫中,用到的宏比較多,將相關(guān)的宏分組到不同的宏組有助于方便地對數(shù)據(jù)庫進行管理。宏中的每個子宏都必須定義自己的宏名,以便分別調(diào)用,調(diào)用的格式為:宏名.子宏名。創(chuàng)建含有子宏的宏的方法與創(chuàng)建宏的方法基本相同,不同的是在創(chuàng)建過程中需要對子宏命名。下面以“打開_子宏”宏為

12、例說明帶有子宏的宏的創(chuàng)建過程。其中各子宏的功能如下: 打開窗體:在窗體視圖中打開“歡迎”窗體。 打開報表:在打印預覽視圖中打開“教師檔案表”報表;發(fā)出鳴笛音。 打開表:在數(shù)據(jù)表視圖中打開“學生檔案表”。(1)在功能區(qū)“創(chuàng)建”選項卡下“宏與代碼”組中,單擊“宏”按鈕,打開宏設(shè)計器窗口。(2)在“操作目錄”窗格中,雙擊“程序流程”下的submacro(子宏),將其加入到宏設(shè)計器窗格中。(3)將子宏名稱文本框中的默認名稱“sub1”改為“打開窗體”,在添加新操作組合框中選擇“openform”,設(shè)置窗體名稱為“歡迎”,如圖7.7所示。(4)重復步驟(2)添加子宏sub2(5)將子宏名稱文本框中的默認

13、名稱“sub2”改為“打開報表”,在添加新操作組合框中選擇“openreport”,設(shè)置報表名稱為“教師檔案表”,視圖為“打印預覽”;在子宏的添加新操作組合框中繼續(xù)選擇“beep”,如圖7.8所示。(6)重復步驟(2)添加子宏sub3(7)將子宏名稱文本框中的默認名稱“sub3”改為“打開表”,在添加新操作組合框中選擇“opentable”,設(shè)置表名稱為“學生檔案表”,如圖7.9所示。(8)單擊快速訪問工具欄上的“保存”按鈕,在彈出的“另存為”對話框中為宏命名為“打開_子宏”,如圖7.10所示。(9)單擊“確定”按鈕,完成宏的設(shè)計過程。打開_子宏(見示例數(shù)據(jù)庫)7.4.3 7.4.3 設(shè)置宏操

14、作設(shè)置宏操作access2010提供了六十余種宏操作,根據(jù)用途可以將它們分為八類,如表7.1所示。 (1)窗口管理(2)宏命令(3)篩選/查詢/搜索(4)數(shù)據(jù)導入/導出(5)數(shù)據(jù)庫對象(6)數(shù)據(jù)輸入操作(7)系統(tǒng)命令(8)用戶界面命令為了方便讀者學習,在此對主要的宏操作功能給出說明。(1)窗口管理closewindows:關(guān)閉指定的access窗口。如果未指定參數(shù),則關(guān)閉當前活動窗口。maximizewindows:放大活動窗口,使其充滿access窗口。minimizewindows:縮小活動窗口,使其在access窗口底部以小標題欄形式出現(xiàn)。moveandsizewindows:移動活動窗

15、口或調(diào)整其大小。restorewindows:將處于最大化或最小化的窗口恢復為原來的大小。(2)宏命令cancelevent:取消一個事件,該事件在取消前用于引發(fā)access執(zhí)行后來包含該操作的宏。clearmacroerror:清除宏對象中上一個錯誤。onerror:指定宏出現(xiàn)錯誤時的處理方式。removealltempvars:刪除用settempvar操作創(chuàng)建的任意臨時變量。removetempvar:刪除通過settempvar操作創(chuàng)建的單個臨時變量。setlocal:將本地變量設(shè)置為給定值。settempvar:將臨時變量設(shè)置為給定值。runcode:調(diào)用vba函數(shù)過程。runmac

16、ro:運行宏。stopallmacros:停止當前正在運行的所有宏。stopmacro:停止當前正在運行的宏。(3)篩選/排序/搜索applyfilter:對表、窗體或報表應(yīng)用篩選、查詢或sql where子句,以便限制或排序表、窗體或報表中的記錄。findnextrecord:查找下一個記錄。findrecord:查找符合該操作參數(shù)指定的準則的第一個數(shù)據(jù)實例。openquery:在數(shù)據(jù)表視圖、設(shè)計視圖或“打印預覽”中打開選擇查詢或交叉表查詢。requery:通過重新查詢控件的數(shù)據(jù)源來刷新活動對象指定控件中的數(shù)據(jù)。requeryrecord:刷新當前記錄。showallrecords:從活動表

17、、查詢結(jié)果集或窗體中刪除任何應(yīng)用的篩選,以及顯示表或結(jié)果表中的所有記錄或者窗體的基礎(chǔ)表或查詢中的所有記錄。(4)數(shù)據(jù)導入/導出exportwithformating:將指定數(shù)據(jù)庫對象的數(shù)據(jù)輸出為某種格式文件。wordmailmerge:執(zhí)行郵件合并操作。(5)數(shù)據(jù)對象gotocontrol:把焦點移到打開的窗體、窗體數(shù)據(jù)表視圖、表數(shù)據(jù)表視圖、查詢數(shù)據(jù)表視圖中當前記錄的特定字段或控件上。gotopage:在活動窗體中將焦點移到某一特定頁的第一個控件上。gotorecord:使指定的記錄成為打開的表、窗體或查詢結(jié)果集中的當前記錄。openform:在窗體視圖、設(shè)計視圖中打開窗體。openrepor

18、t:在設(shè)計視圖或打印預覽視圖中打開報表或立即打印報表。opentable:在數(shù)據(jù)表視圖、設(shè)計視圖或“打印預覽”中打開表。repaintobject:完成指定的數(shù)據(jù)庫對象的任何未完成的屏幕更新。(6)系統(tǒng)命令beep:可表示錯誤情況和重要的屏幕變化,通過計算機發(fā)出嘟嘟聲。closedatebase:關(guān)閉當前數(shù)據(jù)庫。quitaccess:退出access。addmenu:創(chuàng)建全局菜單欄、全局快捷菜單、窗體或報表的自定義菜單欄、窗體、控件或報表的自定義快捷菜單。messagebox:顯示包含警告信息或其他信息的消息框。setmenuitem:設(shè)置“加載項”選項卡上的自定義或全局菜單上的菜單項的狀態(tài)。

19、7.4.4 7.4.4 設(shè)置宏操作參數(shù)設(shè)置宏操作參數(shù)大部分宏操作都有具體的操作參數(shù),告訴access具體如何執(zhí)行該操作。某些參數(shù)是必需的,另外一些是可選的。在宏中設(shè)置操作參數(shù),應(yīng)先在操作列表中選擇宏操作,在如圖7.11所示的宏設(shè)計器窗格中會出現(xiàn)該宏操作參數(shù)的內(nèi)容。操作參數(shù)的設(shè)置方式一般有三種:(1)單擊操作參數(shù)行,可以直接輸入?yún)?shù)。(2)單擊操作參數(shù)行,右端出現(xiàn)下三角按鈕,單擊該按鈕,然后從列表中選擇參數(shù)。(3)單擊操作參數(shù)行,右端出現(xiàn)省略號按鈕,單擊該按鈕,出現(xiàn)單獨的設(shè)置窗口,對參數(shù)進行設(shè)置。下面以“打印報表”宏中的openreport宏操作為例,講解宏的參數(shù)設(shè)置(如圖7.11所示)。參數(shù)設(shè)

20、置過程如圖7.12-7.15所示。打印報表(見示例數(shù)據(jù)庫)7.4.5 7.4.5 在宏中使用條件在宏中使用條件在某些情況下,可能希望當一些特定條件為真時才在宏中執(zhí)行一個或多個操作。在這種情況下,可以使用條件來控制宏的流程。條件是邏輯表達式。宏將根據(jù)條件結(jié)果的真或假而沿著不同的路徑執(zhí)行。運行該宏時,access將求出第一個條件表達式的結(jié)果。如果這個條件的結(jié)果為真,access將執(zhí)行then后設(shè)置的所有操作;如果這個條件的結(jié)果為假,access會忽略then后設(shè)置的所有操作(如果添加了else,則執(zhí)行else后設(shè)置的所有操作;如果添加了else if,則判定else if后的條件表達式結(jié)果是否為真

21、,選擇執(zhí)行then還是else后的操作)。在輸入條件表達式時,可能會引用到窗體或報表上的控件值,其語法結(jié)構(gòu)如下:forms!窗體名!控件名reports!報表名!控件名在如圖7.16所示的宏設(shè)計器窗格中顯示的就是一個帶有條件(if)的宏的內(nèi)容,其功能是判定一個窗體上名為“數(shù)字”的文本框中數(shù)的正負。該例完整的實現(xiàn)過程將在7.5小節(jié)中介紹。實際上,當用戶在窗體上使用向?qū)?chuàng)建一個命令按鈕執(zhí)行某一操作時,不僅創(chuàng)建了命令按鈕的單擊事件,而且在單擊事件中還創(chuàng)建了一個嵌入宏。在單擊事件中運行這個嵌入宏完成指定的操作。嵌入宏的引入使得access的開發(fā)工作變得更為靈活。它把原來事件過程中需要編寫事件過程代碼的

22、工作,都用嵌入宏替代了。宏的條件、操作和宏的參數(shù)對于初學者來說還是有一定難度的。要想掌握宏應(yīng)該首先從學習嵌入宏開始。下面以7.4.5小節(jié)中介紹到的“判定數(shù)的正負”的條件宏為例,說明嵌入宏的創(chuàng)建過程。創(chuàng)建過程如圖7.17-7.24所示。判定數(shù)的正負(見示例數(shù)據(jù)庫中窗體)(注意:嵌入宏“判定數(shù)的正負”嵌入在“判定數(shù)的正負”窗體中)新版access2010新增加了數(shù)據(jù)宏(data macro),類似sql的觸發(fā)器,包括插入后、更新后、刪除后、更改前和刪除前五個事件。以前必須通過代碼完成的事項,可交由表的數(shù)據(jù)宏來處理。下面以“學生檔案表副本”的“性別”字段為例,說明其創(chuàng)建過程。要求“性別”字段只能輸入

23、“男”或“女”,否則給出錯誤提示。創(chuàng)建過程如圖7.25-7.28所示。學生檔案表副本(見示例數(shù)據(jù)庫中表)7.7.1 7.7.1 宏的調(diào)試宏的調(diào)試創(chuàng)建好的宏在使用之前應(yīng)先進行調(diào)試,以保證宏的功能與設(shè)計者的要求一致,尤其是對于由多個操作組成的復雜宏,更是需要進行反復調(diào)試,以觀察宏的流程和每一個操作的結(jié)果,以排除導致錯誤或產(chǎn)生非預期結(jié)果的可能。access提供了“單步”執(zhí)行的宏調(diào)試工具,“單步”執(zhí)行一次只運行宏的一個操作,可以觀察宏的運行流程和運行結(jié)果,從而找到宏中的錯誤,并排除。1 1調(diào)試獨立調(diào)試獨立宏宏對于獨立宏可以直接在設(shè)計器中進行宏的調(diào)試,其過程是:(1)在宏設(shè)計器中打開需要調(diào)試的宏。(2)

24、單擊功能區(qū)“宏工具/設(shè)計”選項卡下“工具”組中的“單步”按鈕,然后單擊“運行”按鈕,打開如圖7.29所示的“單步執(zhí)行宏”對話框。(3)在“單步執(zhí)行宏”對話框中,顯示出當前正在運行的宏名、條件、操作名稱和參數(shù)等信息,如果該步執(zhí)行正確,可單擊“繼續(xù)”按鈕以單步的形式執(zhí)行宏。如果發(fā)現(xiàn)錯誤,可以單擊“停止所有宏”按鈕,停止宏的執(zhí)行,并返回宏設(shè)計器窗口,修改宏的設(shè)計。2 2調(diào)試嵌入宏調(diào)試嵌入宏對于嵌入宏要在嵌入的窗體或報表對象中進行調(diào)試,下面以圖7.17所示的“判定數(shù)的正負”窗體中的嵌入宏為例,說明其調(diào)試過程。(1)在設(shè)計視圖中打開“判定數(shù)的正負”窗體。(2)在“確定”命令按鈕的“屬性表”窗格“事件”選項卡下,單擊“單擊”事件后的 按鈕,如圖7.30所示。(3)進入到宏設(shè)計器窗口后單擊功能區(qū)“宏工具/設(shè)計”選項卡下“工具”組中的 按鈕,然后單擊“運行”按鈕。(4)其后過程同獨立宏的調(diào)試過程一致。7.7.2 7.7.2 宏的運行宏的運行1 1直接運行宏直接運行宏如果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論