版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫及應(yīng)用基礎(chǔ)第7章宏學(xué)習(xí)目標(biāo)
通過本章的學(xué)習(xí),應(yīng)該了解(1)宏的概念及分類。(2)創(chuàng)建宏。(3)創(chuàng)建宏組。(4)宏的幾種運行方式。(5)宏的編輯和調(diào)試。(6)宏的運用。主要內(nèi)容7.1宏的概述7.2宏的創(chuàng)建7.3宏的執(zhí)行和調(diào)試7.4事件驅(qū)動7.5使用宏創(chuàng)建菜單7.1宏概述
在處理Access數(shù)據(jù)庫對象的過程中,往往需要重復(fù)執(zhí)行某些任務(wù)或操作。例如,向表中添加記錄時,需要打開同一個窗體,為了簡化操作步驟,可以將這些重復(fù)執(zhí)行的任務(wù)或操作組織在一個宏中,在應(yīng)用時直接調(diào)用和運行宏,自動地執(zhí)行集成在宏中的各項操作。
7.1宏概述
宏并不直接處理數(shù)據(jù)庫中的數(shù)據(jù),它是組織Access數(shù)據(jù)庫對象的工具。
在Access數(shù)據(jù)庫中,表、查詢、窗體和報表這4個對象,各自具有強大的數(shù)據(jù)處理功能,能獨立地完成數(shù)據(jù)庫中的特定任務(wù),但是它們各自獨立工作,不能相互協(xié)調(diào)相互調(diào)用,使用宏可以將這些對象有機地整合在一起,完成特定的任務(wù)。
7.1.1宏的概念
宏是Access中執(zhí)行特定任務(wù)的操作和操作集合,其中的每個操作實現(xiàn)特定的功能,是由Access本身提供的。宏可以是包含操作序列的一個宏,也可以是多個宏組成的宏組。使用條件表達式可以決定在某些條件下運行宏時,某個操作是否執(zhí)行。
創(chuàng)建宏的目的是自動處理某一項或者一系列任務(wù),可以將任務(wù)當(dāng)作一個或多個基本操作的集合,其中每個基本操作都能單獨實現(xiàn)某一項特定的功能,如打開窗體,關(guān)閉窗體等。如圖所示是一個含有3個操作的宏。
(1)打開某個窗體(2)顯示一個信息提示框(3)關(guān)閉窗體。當(dāng)執(zhí)行這個宏時,將自動執(zhí)行這3個操作。通過宏的自動重復(fù)執(zhí)行操作的能力,無需編寫程序就可以設(shè)計出具有一定功能的數(shù)據(jù)庫應(yīng)用系統(tǒng)。
在Access中,共有80多種基本操作可供宏選擇使用和執(zhí)行。在實際操作過程中,很少單獨使用一個宏命令,往往將這些命令組合在一起按照順序依次執(zhí)行以完成一項特定的任務(wù)。這些命令的執(zhí)行可以通過窗體或表中控件的某個事件來觸發(fā),也可以在數(shù)據(jù)庫的運行過程中自動實現(xiàn)。7.1.2常用的宏操作Access2010提供了80多個宏操作命令。根據(jù)宏的用途將它們分成以下8類。(1)窗口管理命令。(2)宏命令。(3)篩選/查詢/搜索命令。(4)數(shù)據(jù)導(dǎo)入導(dǎo)出命令。(5)數(shù)據(jù)庫對象命令(6)數(shù)據(jù)輸入命令(7)系統(tǒng)命令(8)用戶操作命令。宏操作主要功能AddMenu創(chuàng)建菜單欄或快捷菜單AddlyFilter用篩選、查詢或SQL語句的Where子句來選擇表、窗體或報表中顯示的記錄Beep使計算機的揚聲器發(fā)出嘟嘟聲CancelEvent取消引起宏操作的事件Close關(guān)閉指定的數(shù)據(jù)庫對象,包括表、查詢、窗體、報表或模塊窗口CopyObject復(fù)制數(shù)據(jù)庫對象DeleteObject刪除數(shù)據(jù)庫對象Echo運行宏時,顯示或不顯示狀態(tài)信息FindRecord在表、查詢或窗體中查找指定條件的第一條記錄FindNext依據(jù)FindRecord操作使用的查找準(zhǔn)則查找下一條記錄GotoControl將光標(biāo)移動到窗體中特定的控件上GotoPage將光標(biāo)移動到窗體中特定頁的第一個控件上GotoRecord在表、查詢或窗體中,添加新記錄或?qū)⒐鈽?biāo)移動到指定的記錄Hourglass當(dāng)運行宏時,鼠標(biāo)指針顯示為沙漏狀Maximize最大化活動窗口Minimaze最小化活動窗口MoveSize移動或調(diào)整活動窗口的尺寸表7-1宏操作(部分)宏幾乎可以實現(xiàn)數(shù)據(jù)庫的所有操作。(1)打開和關(guān)閉表、查詢、窗體等對象。(2)執(zhí)行報表的顯示、預(yù)覽和打印功能。(3)執(zhí)行查詢操作及數(shù)據(jù)篩選功能。(4)設(shè)置窗體中控件的屬性值。(5)執(zhí)行菜單上的選項命令。(6)顯示和隱藏工具欄。7.1.3宏的功能
宏的創(chuàng)建方法與其它Access數(shù)據(jù)庫對象一樣,都可以在設(shè)計視圖窗口中進行。在創(chuàng)建宏的過程中,主要工作是設(shè)置宏所包含的操作和相應(yīng)的參數(shù)。7.2宏的創(chuàng)建創(chuàng)建宏時,首先打開宏的設(shè)計窗口,其操作步驟如下:(1)打開數(shù)據(jù)庫。(2)選擇“創(chuàng)建”選項卡的“宏與代碼”組,單擊“宏”按鈕
,打開“宏”設(shè)計器窗口,同時打開“操作目錄”面板,如圖所示。7.2.1宏的設(shè)計視圖
宏設(shè)計窗口供用戶設(shè)計宏使用,用戶設(shè)計的宏所包含的所有操作都會顯示在宏設(shè)計窗口中。在“操作目錄”面板中,分類列出了所有的宏操作命令,設(shè)計宏時可以直接選擇所需要的命令。
宏通常有宏操作名稱和參數(shù)組成,當(dāng)選擇或直接輸入宏操作命令后,系統(tǒng)會自動展開宏并顯示該命令的相關(guān)參數(shù)。
在使用宏命令時,除了正確使用宏操作的名稱,還應(yīng)具體的命令根據(jù)需要設(shè)置相應(yīng)的參數(shù),用戶在使用時要詳細(xì)了解操作參數(shù)的含義?!緦嵗?-1】在“選課管理”數(shù)據(jù)庫中,創(chuàng)建一個宏,其功能為打開“教師信息”窗體,顯示所有職稱為“教授”教師記錄?!静僮鞑襟E】(1)打開數(shù)據(jù)庫“選課管理”。(2)選擇“創(chuàng)建”選項卡中的“宏與代碼”組,單擊“宏”按鈕,系統(tǒng)將自動創(chuàng)建名為“宏1”的宏,同時打開“宏設(shè)計”窗口。(3)在“添加新操作”列表框中選擇宏命令“OpenForm”,展開操作參數(shù)。7.2.2宏的創(chuàng)建(4)設(shè)置操作參數(shù)。在操作參數(shù)窗口中,使用“窗體名稱”的下拉式按鈕選擇窗體名稱“教師信息”,在“視圖”選項中選擇“窗體”,在“當(dāng)條件”選項中輸入表達式“[職稱]="教授"”,數(shù)據(jù)模式設(shè)置為“只讀”,如圖所示。
(5)單擊“保存”按鈕,打開“另存為”對話框,在“宏名稱”文本框中輸入“打開教師信息窗體”,然后單擊“確定”按鈕,宏設(shè)計完成。(6)單擊“執(zhí)行”按鈕
,查看宏運行的結(jié)果。
如果在一個宏中有多個宏操作,則按照上面的方法逐個添加宏名稱以及設(shè)置相應(yīng)的參數(shù)。
宏組是指一個宏文件中包含一個或多個宏,這些宏稱為子宏。在宏組中,每個子宏都是獨立的,互不相關(guān)。將功能相近或操作相關(guān)的宏組織在一起構(gòu)成宏組,可以為設(shè)計數(shù)據(jù)庫應(yīng)用程序帶來方便。宏組也是Access數(shù)據(jù)庫中的對象。
在宏組中,每個子宏都必須定義一個唯一的名稱,以方便調(diào)用。
創(chuàng)建宏組與創(chuàng)建宏的方法基本相同,需要打開宏設(shè)計窗口,所不同的是在創(chuàng)建過程中為每個子宏命名,為每個宏指定宏的名稱。7.2.3宏組的創(chuàng)建【實例7-2】在“選課管理”數(shù)據(jù)庫中,創(chuàng)建一個宏組,其中包括4個宏操作,分別是打開學(xué)生表、打開學(xué)生信息瀏覽窗體、打開“學(xué)生名單”報表和關(guān)閉窗體?!静僮鞑襟E】(1)打開數(shù)據(jù)庫“選課管理”。(2)選擇“創(chuàng)建”選項卡中的“宏與代碼”組,單擊“宏”按鈕,打開“宏設(shè)計”窗口。(3)在“操作目錄”窗格中,將程序流程中的子宏命令“SubMacro”拖到“添加新操作”組合框中,在子宏名稱文本框中,默認(rèn)名稱為“Sub1”,將該名稱改為“打開學(xué)生表”,在“添加新操作”組合框中選擇命令“Opentable”,設(shè)置表名稱為“學(xué)生”,視圖為“數(shù)據(jù)表”,數(shù)據(jù)模式為“只讀”,如圖所示。
(4)用同樣的方法添加其余的宏,設(shè)置相應(yīng)的操作參數(shù),設(shè)置結(jié)果如圖所示。每個宏的操作參數(shù)設(shè)置如表7-2所示
宏名宏操作操作參數(shù)打開學(xué)生表OpenTable表名:學(xué)生;視圖:數(shù)據(jù)表;數(shù)據(jù)模式:只讀打開學(xué)生信息窗體OpenForm窗體名稱:學(xué)生信息瀏覽;視圖:窗體;數(shù)據(jù)模式:只讀,窗口模式:普通打開學(xué)生報表OpenReport報表名稱:學(xué)生名冊;視圖:打?。淮翱谀J剑浩胀P(guān)閉學(xué)生表CloseWindows對象類型:表;對象名稱:學(xué)生;保存:是(4)單擊“保存”按鈕,打開“另存為”對話框,在“宏名稱”文本框中輸入“宏組學(xué)生表操作”,然后單擊“確定”按鈕,宏設(shè)計完成。
宏組的運行需通過對象的事件觸發(fā)。當(dāng)直接運行宏時,只執(zhí)行最前面的宏。宏與宏組的區(qū)別:(1)宏是由宏操作構(gòu)成的,而宏組是由宏構(gòu)成的。(2)宏組中的子宏必須命名,而宏不需要。(3)宏在運行時,所有的宏操作按順序執(zhí)行;而宏組在運行時只執(zhí)行最前面的宏。
條件宏是指在宏中的某些操作帶有條件,當(dāng)執(zhí)行宏時,這些操作只有在滿足條件時才得以執(zhí)行。對數(shù)據(jù)進行處理時,可能希望僅當(dāng)滿足特定的條件時才在宏中執(zhí)行某個操作,在這種情況下,可以使用條件來控制宏的流程。宏在執(zhí)行時能對條件進行測試,并在條件為真時運行指定的宏操作。
7.2.4條件宏的創(chuàng)建【實例7-3】在實例7-2中所創(chuàng)建的宏中添加一個新功能,在打開報表之前提示用戶確認(rèn),提示信息為“請打開打印機”?!静僮鞑襟E】(1)打開數(shù)據(jù)庫“選課管理”及實例7-2中所創(chuàng)建的宏“宏組學(xué)生表操作”。(2)選擇宏操作“打開學(xué)生報表”,在“操作目錄”窗格中將程序流程中的子宏命令“if”拖到子宏名稱的下方,然后將宏操作“OpenReport”拖動到“添加新操作文本框中”,在“if”后的文本框中輸入表達式“MsgBox(”請打開打印機!“,1)=1”,如圖7-7所示。(3)單擊“保存”按鈕,打開“另存為”對話框,在“宏名稱”文本框中輸入“條件宏學(xué)生表操作”,然后單擊“確定”按鈕,宏設(shè)置完成。
注:表達式的含義是,在彈出的消息框(如圖7-8)中顯示信息“請打開打印機!”以及“確定”和“取消”按鈕,當(dāng)用戶單擊“確定”按鈕時,執(zhí)行宏操作OpenReport
前面所創(chuàng)建的宏獨立于窗體、報表之外,稱為獨立宏,與之相反,嵌入宏嵌入在窗體、報表或控件的事件中,是所嵌入對象的一部分,因此嵌入宏在導(dǎo)航窗格中是不可見的。
通常,將宏的執(zhí)行與窗體中命令按鈕的單擊事件相結(jié)合,當(dāng)單擊窗體中的命令按鈕時,執(zhí)行相應(yīng)的宏操作。
7.3創(chuàng)建嵌入宏
事件是一種特定的操作,在某個對象上發(fā)生或?qū)δ硞€對象發(fā)生。
MicrosoftAccess可以響應(yīng)多種類型的事件:鼠標(biāo)單擊、數(shù)據(jù)更改、窗體打開或關(guān)閉及許多其他類型的事件。事件的發(fā)生通常是用戶操作的結(jié)果。事件過程是由宏或程序代碼構(gòu)成的用于處理引發(fā)的事件或由系統(tǒng)觸發(fā)的事件運行過程。7.4.1事件的概念A(yù)ccess數(shù)據(jù)庫對象能夠響應(yīng)許多類型的事件,響應(yīng)方式由每一個對象的內(nèi)部所含行為決定。Access事件可以由特定對象的屬性來識別,并根據(jù)該操作決定觸發(fā)哪個宏。
Access中的事件可以分為以下幾類。窗口事件、數(shù)據(jù)事件、焦點事件、鍵盤事件、鼠標(biāo)事件、打印事件等。Access可以通過窗體控件和報表的特定屬性識別某一個事件,當(dāng)用戶執(zhí)行Access能識別的事件時,都能夠?qū)е翧ccess執(zhí)行一個宏,這就是所謂的事件觸發(fā)操作。
Access可以對窗體、報表或控件中的多種類型的事件做出響應(yīng),包括單擊鼠標(biāo)、修改數(shù)據(jù)、打開或關(guān)閉窗體以及打印報表等。
7.4.2事件觸發(fā)操作
【實例7-4】創(chuàng)建一個窗體,在窗體中添加4個命令按鈕,其功能分別是打開學(xué)生表、打開學(xué)生信息瀏覽窗體、打開“學(xué)生名單”報表和關(guān)閉窗體,引用實例7-2創(chuàng)建的宏組來實現(xiàn)?!静僮鞑襟E】(1)打開數(shù)據(jù)庫“選課管理”。(2)在數(shù)據(jù)庫中新建一個窗體,添加4個命令按鈕,其標(biāo)題屬性分別設(shè)置為“打開學(xué)生表”、“打開學(xué)生信息窗體”、“打開學(xué)生名單報表”和“關(guān)閉窗體”,如圖所示。
(3)使用命令按鈕控件向?qū)гO(shè)置每個命令按鈕的操作,使用列表框選擇宏組中的宏操作。如圖所示。(4)保存窗體,窗體名稱為“學(xué)生管理”,切換到從窗體視圖,單擊不同的命令按鈕可以運行相應(yīng)的宏操作。7.2.6宏的編輯1.添加宏操作對已經(jīng)創(chuàng)建的宏可以繼續(xù)添加新的宏操作,操作步驟如下:(1)在“導(dǎo)航”窗格中選擇“宏”,右單擊要修改的宏,在彈出的快捷菜單中選擇“設(shè)計視圖”,打開“宏設(shè)計”視圖窗口。(2)添加新的宏操作并設(shè)置相關(guān)的參數(shù)。(3)重復(fù)步驟(2)可以繼續(xù)添加。(4)保存宏。2.刪除宏操作如果需要在已有的宏中刪除宏操作,可采用下列3種方法:(1)選中要刪除的宏,按Delete鍵。(2)右單擊要刪除的宏,在快捷菜單中選擇“刪除”命令。(3)直接單擊宏操作右側(cè)的“刪除”按鈕。3.更改宏操作順序?qū)τ谠O(shè)計好的的宏,可以對其中的宏操作調(diào)整排列順序,操作方法有以下3種。(1)直接拖動要移動的宏操作到需要的位置。(2)選中宏操作,然后按Ctrl+↑和Ctrl+↓鍵(3)選中宏操作,單擊該操作右側(cè)的“上移”和“下移”按鈕。
對于創(chuàng)建的宏或宏組,只有運行后,才可以實現(xiàn)宏的功能,得到宏操作的結(jié)果。在宏運行時有時會出現(xiàn)錯誤或異常情況,需要對宏或宏組進行調(diào)試。此外,用戶可以對已經(jīng)創(chuàng)建的宏進行編輯和修改。7.3宏的執(zhí)行和調(diào)試7.3.1宏的執(zhí)行
創(chuàng)建宏或宏組之后,可以在數(shù)據(jù)庫中運行。運行宏的方式有以下幾種:1.在宏設(shè)計窗口中運行
在宏設(shè)計窗口中,選擇“創(chuàng)建”選項卡中的“宏與代碼”組,單擊“宏”按鈕
可以直接運行已經(jīng)設(shè)計好的宏。2.在數(shù)據(jù)庫窗口中運行
在數(shù)據(jù)庫窗口中,選擇“宏”對象,可以使用下列方法運行宏。(1)雙擊所要運行的宏的名稱。(2)右擊所要運行的宏,在快捷菜單中選擇命令“運行”。3.在Access主窗口中運行
在Access主窗口中,選擇“數(shù)據(jù)庫工具”選項卡中的“宏”組,單擊“運行宏”按鈕
,打開“執(zhí)行宏”對話框,如圖所示,直接在下拉列表框中選擇要執(zhí)行的宏的名稱或直接輸入宏名,然后,單擊“確定”按鈕。4.在其它宏中運行
可以在其它的宏中運行一個已設(shè)計好的宏,其操作方法如下:(1)在宏中添加RunMacro操作。(2)在“宏名”參數(shù)框中輸入要執(zhí)行的宏名。5.自動運行宏Access數(shù)據(jù)庫提供了一個專用的宏Autoexec,又稱其為自動宏。
如果數(shù)據(jù)庫中有名為Autoexec的宏,則在打開數(shù)據(jù)庫時自動運行宏。因此,如果用戶想在打開數(shù)據(jù)庫時自動執(zhí)行某些操作,可以通過自動宏實現(xiàn)。
在宏執(zhí)行時有時會的到異常的結(jié)果,可以使用宏的調(diào)試工具對宏進行調(diào)試,常用的方法是單步執(zhí)行宏,即每次執(zhí)行一個操作。在單步執(zhí)行宏時,用戶可以觀察到宏的執(zhí)行過程以及每一步的結(jié)果,從而發(fā)現(xiàn)出錯的位置并進行修改。7.3.2宏的調(diào)試單步執(zhí)行宏的操作方法如下:(1)打開宏設(shè)計窗口。(2)單擊工具欄上的“單步”按鈕,再單擊“運行”按鈕,打開“單步執(zhí)行宏”對話框,如圖所示。
在“單步執(zhí)行宏”對話框中,顯示了宏名、條件、操作名稱和參數(shù)。通過對這些內(nèi)容進行分析,可以判斷宏的執(zhí)行是否正常。3個按鈕的功能如下:①單步執(zhí)行:執(zhí)行對話框中顯示的宏操作,如果執(zhí)行正常,則執(zhí)行下一個宏操作。②停止:停止宏的執(zhí)行,關(guān)閉對話框。③繼續(xù):關(guān)閉“單步執(zhí)行”模式,執(zhí)行宏中的其余操作。
(3)錯誤處理如果在宏的執(zhí)行過程中出現(xiàn)錯誤,會彈出一個消息框,顯示宏操作的錯誤信息,例如,當(dāng)宏操作“OpenReport”的操作參數(shù)“報表名稱”指定了一個不存在的報表,則執(zhí)行該操作時會打開如圖所示的消息框。
在消息框中,指出了出錯原因并給處理建議。用戶可以根據(jù)實際情況對宏進行修改。7.4使用宏創(chuàng)建菜單
在數(shù)據(jù)庫應(yīng)用系統(tǒng)中,很多功能都可以用菜單的方式實現(xiàn),可以為數(shù)據(jù)庫應(yīng)用系統(tǒng)創(chuàng)建菜單系統(tǒng),在Access2010中,設(shè)計菜單使用宏來實現(xiàn),而菜單系統(tǒng)本身也是依靠宏來運行的。創(chuàng)建菜單使用AddMenu命令,AddMenu命令能夠完成的菜單有3類。(1)自定義快捷菜單:使用自定義快捷菜單,可以替代窗體或報表中的內(nèi)置的快捷菜單。(2)全局快捷菜單:除已經(jīng)添加了自定義快捷菜單的窗體對象外,全局快捷菜單可以替代其余所有沒有設(shè)定的窗體等對象中的默認(rèn)右鍵菜單。(3)“加載項”選項卡的自定義菜單:這種自定義菜單出現(xiàn)在程序的“加載項”選項卡下,可用于特定窗體或報表,也可用于整個數(shù)據(jù)庫。創(chuàng)建自定義菜單的操作步驟如下:(1)為自定義菜單欄上所需的每個下拉式菜單均創(chuàng)建一個包含AddMenu操作的菜單欄宏。(2)為每個菜單創(chuàng)建一個宏組為每個下拉式菜單指定命令。每個命令都運行由該宏組中的一個宏所定義的操作集合。(3)將所有下拉菜單組合到
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇少版四年級音樂教案下
- DB11-T 1945-2021 屋面防水技術(shù)標(biāo)準(zhǔn)
- 景觀河道磚塊運輸服務(wù)協(xié)議
- 互聯(lián)網(wǎng)金融服務(wù)居間協(xié)議
- 教育機構(gòu)半包裝修合同樣本
- 保健用品居間合同樣本
- 農(nóng)產(chǎn)品冷鏈配送合同
- 家庭維修居間服務(wù)合同
- 醫(yī)藥用品個人承運合同模板
- 商業(yè)規(guī)劃與運營
- 學(xué)習(xí)科學(xué)與技術(shù)智慧樹知到期末考試答案章節(jié)答案2024年山東師范大學(xué)
- (正式版)SHT 3533-2024 石油化工給水排水管道工程施工及驗收規(guī)范
- 30題藥品質(zhì)量檢測崗位常見面試問題含HR問題考察點及參考回答
- 金壇區(qū)蘇科版六年級上冊勞動《05土培吊蘭》課件
- 天翼云-高級解決方案架構(gòu)師考前沖刺
- 新鮮冰凍血漿輸注治療遺傳性血栓性血小板減少性紫癜一例療效觀察
- 工程變更聯(lián)絡(luò)單模板
- 倉庫物料標(biāo)識卡
- 國家、省、市級重點??聘啬c科匯報材料
- 食品安全自查、從業(yè)人員健康管理、進貨查驗記錄、食品安全事故處置保證食品安全的規(guī)章制度
- (完整版)監(jiān)理質(zhì)量保證體系
評論
0/150
提交評論