建立使用者介面 (UI) 巨集

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

在 Microsoft Access 中,附加於使用者介面 (UI) 物件(如命令按鈕、文字框、表單和報表)的巨集稱為 UI 巨集。 這使它們與附加於資料表的資料巨集有所區別。 你可以用 (UI) 巨集自動化一連串動作,例如開啟另一個物件、套用過濾器、啟動匯出操作,以及許多其他任務。 本文將介紹全新設計的巨集建構器,並展示建立 UI 巨集的基本任務。

注意

本文內容不適用於 Access Web App。

本文內容

概觀

巨集可以包含在巨集物件中 (有時稱為獨立巨集) ,或嵌入表單、報表或控制項的事件屬性中。 嵌入巨集成為其所嵌入的物件或控制的一部分。 巨集物件可在導航面板的 巨集欄目下顯示;嵌入式巨集則不行。

每個巨集由一個或多個巨集動作組成。 根據你工作的情境,有些巨集動作可能無法使用。

頁面頂端

巨集建立器

以下是巨集建構器的一些主要特色亮點。

  • 行動目錄 巨集動作依類型組織並可搜尋。
  • IntelliSense 在輸入表達式時,IntelliSense 會建議可能的值,並讓你選擇正確的。
  • 鍵盤快捷鍵 使用按鍵組合來加快、更輕鬆的巨集寫作。
  • 程式流程 建立更多易讀的巨集,包含註解行和行動群組。
  • 條件語句 允許更複雜的邏輯執行,並支援巢狀 If/Else/Else If。
  • 巨集重用 動作目錄會顯示你建立的其他巨集,讓你能將它們複製到你正在製作的巨集中。
  • 更方便分享 複製一個巨集,然後以 XML 格式貼上到電子郵件、新聞群組貼文、部落格或程式碼範例網站。

這裡有一支影片,帶你了解巨集建構器的主要區域。

頁面頂端

建立獨立的巨集

此程序會建立一個獨立的巨集物件,該物件會出現在導航窗格的 巨集 類別中。 當你想在應用程式的多個地方重複使用巨集時,獨立巨集非常有用。 透過呼叫其他巨集的巨集,可以避免在多個地方重複相同程式碼。

  1. 在 [建立] 索引標籤上,按一下 [巨集與程式碼] 群組中的 [巨集]

    Access 會開啟巨集建立器。

  2. 在快速存取工具列中,點擊 儲存

  3. 「另存為」 對話框中,輸入巨集名稱,然後點擊確定。

  4. 繼續閱讀「 將動作加入巨集」的章節。

頁面頂端

建立內嵌的巨集

此程序建立一個嵌入物件事件屬性中的巨集。 這類巨集不會出現在導航面板中,但可以從「 載入中 」或「 點擊時」等事件中呼叫。

由於巨集成為表單或報告物件的一部分,建議內嵌巨集用於自動化特定表單或報告的特定任務。

  1. 在導覽窗格中,右鍵點擊包含巨集的表單或報告,然後點選 版面檢視

  2. 如果沒有顯示屬性表,請按 F4 以顯示屬性表。

  3. 點擊包含你想嵌入巨集的事件屬性的控制項或區塊。 您也可以透過屬性表頂端的 選擇類型 下拉選單,選擇控制項、區塊 (,或整個表單或報告) 。

  4. 在屬性工作窗格中,點選 事件 標籤。

  5. 在屬性框裡點選你想觸發巨集的事件。 舉例來說,對於命令按鈕,如果你想讓巨集在按鈕被點擊時執行,就在 點擊 屬性框中點擊。

  6. 如果屬性框包含 [Embedded Macro] 這表示該事件已經建立了巨集。 你可以繼續執行這個程序中剩下的步驟來編輯巨集。

  7. 如果屬性框中有 [Event Procedure] 這表示 Visual Basic for Applications (VBA) procedure 已經為此事件建立。 在你能將巨集嵌入事件之前,必須先移除這個程序。 你可以刪除 [Event Procedure] 這幾個字來達成,但你應該先檢查事件程序,確保移除它不會破壞資料庫中所需的功能。 在某些情況下,你可以透過內嵌的巨集來重建 VBA 程序的功能。

  8. 點擊 「建構 按鈕 」按鈕圖片

  9. 如果出現 「選擇建構器 」對話框,請確認選取巨 集建構器 ,然後點擊 確定

    Access 會開啟巨集建立器。 繼續進入下一節,將動作加入巨集。

頁面頂端

將動作加入到巨集

動作是組成巨集的各個指令,每個指令依其功能命名,例如 FindRecordCloseDatabase

步驟一:瀏覽或搜尋巨集動作

新增動作的第一步是在「 新增動作 」下拉選單或動作目錄中找到它。

注意

  • 預設情況下, 新增動作 下拉選單和動作目錄只會顯示會在非受信任資料庫中執行的動作。 查看所有動作:

    • [設計] 索引標籤上,於 [顯示/隱藏] 群組中按一下 [顯示所有巨集指令]
  • 如果動作目錄未顯示,在 設計 標籤的 顯示/隱藏 群組中,點擊 動作目錄

要找到動作,請使用以下方法之一:

  • 點擊 新增動作 下拉選單中的箭頭,然後往下滑找到該動作。 程式流程元素先列出,然後按字母順序排列的巨集動作。
  • 在行動目錄選區瀏覽動作。 這些行動依類別分組。 展開每個類別以查看動作。 如果您選擇一個動作,該動作的簡短描述會出現在動作目錄底部。
  • 在行動目錄面板頂端輸入搜尋框,搜尋該動作。 當你輸入時,動作清單會被篩選出包含該文字的所有巨集。 Access 會搜尋你輸入的文字的巨集名稱及其描述。

步驟 2:將動作加入巨集

找到想要的巨集動作後,使用以下方法之一將其加入巨集:

  • 在新增動作清單中選擇一個動作,或直接在方塊中輸入動作名稱。 Access 會在新增 新增動作 清單顯示的位置新增動作。

  • 將動作目錄中的動作拖曳到巨集窗格。 當你放開滑鼠按鈕時,會出現插入條顯示動作將插入的位置。

  • 在行動目錄中雙擊該動作。

    • 如果在巨集面板中選取了某個動作,Access 會將該動作新增在選取的動作下方。

    • 如果在巨集窗格中選取了 群組IfElse IfElse子巨集 區塊,Access 會將該新動作加入該區塊。

    • 如果巨集面板中沒有選取任何動作或區塊,Access 會將新動作加入巨集的末尾。

      注意

      • 如果您已經建立了一個或多個巨集,這些巨集會列在動作目錄的「 在此資料庫中 」節點下。

        • 將獨立的 巨集 (列在 巨集) 中拖曳到 巨集 窗格,會產生一個執行巨 動作,執行你拖入的 巨集。 接著你可以用下拉選單呼叫子巨集(如果有的話)。
        • 如果你只是想把獨立 巨集 的動作複製到目前的 巨集 (,而不是建立 RunMacro 動作) ,請在動作目錄中右鍵點擊,然後點 選新增巨集複製
        • 將嵌入巨集 (列在表單或報告物件) 下的巨集面板中,會將該巨集的動作複製到目前的巨集中。
      • 你也可以將資料庫物件從導航窗格拖到巨集窗格來建立動作。 如果你將資料表、查詢、表單、報表或模組拖曳到巨集窗格,Access 會新增一個動作來開啟該表表、查詢、表單或報告。 如果你拖曳另一個巨集到巨集窗格,Access 會新增一個動作來執行該巨集。

步驟三:填寫論點

大多數巨集行動至少需要一個論證。 你可以透過選擇動作,然後將指標移到參數上來查看每個參數的描述。 對於許多參數,你可以從下拉選單中選擇一個值。 如果論證要求你輸入表達式,IntelliSense 會協助你輸入該表達式,並在輸入時建議可能的值,如下圖所示:

使用 IntelliSense 輸入運算式

當你看到想用的值時,雙擊或用方向鍵選取,然後按 TAB 或 ENTER 鍵,將它加入你的表達式。

欲了解更多關於表達式的建立資訊,請參閱文章 《表達式入門》。

關於在網頁資料庫中使用帶有屬性的 IntelliSense

當你在相容的表單上建立嵌入的 UI 巨集時,IntelliSense 允許你將任何表單屬性加入表達式。 然而,在網頁資料庫中,僅能透過 UI 巨集存取部分表單屬性。 例如,給定一個名為 Control1 的控制項,表單名為 Form1,IntelliSense 會讓你加入 [表單]![Form1]![Control1]。[ControlSource] 轉換成 UI 巨集中的一個表達式。 然而,如果你將資料庫發佈給 Access Services,包含該表達式的巨集在伺服器上執行時會產生錯誤。

下表顯示了你可以在網頁資料庫中 UI 巨集中使用的屬性:

物件或控制 你可以使用的屬性
表單 說明、髒污、允許新增、允許刪除、允許編輯
索引標籤控制項 Visible
標籤 說明、可見、前色、背面色彩
附件 可見,啟用
指令按鈕 標題、可見、啟用、前色
德克斯 tBox 啟用、可見、鎖定、前置顏色、背面顏色、數值
核取方塊 啟用、可見、鎖定、值
影像 可見,背部顏色
下拉式方塊 啟用、可見、鎖定、值
清單方塊 啟用、可見、鎖定、值
網頁瀏覽器 Visible
子形式 啟用,可見鎖定
導航控制 啟用,可見

移動一個動作

動作依序執行,從巨集的頂端到底部。 要在巨集中移動動作,請使用以下其中一種方法:

  • 把動作往上或往下拖到你想要的位置。
  • 選擇動作,然後按 CTRL + 上方向鍵或 CTRL + 向下箭頭。
  • 選擇動作,然後點擊巨集窗右側的 「向上移動 」或「 向下移動 」箭頭。

刪除一個動作

要刪除巨集動作:

  • 選擇動作,然後按下 DELETE 鍵。 或者,你也可以點擊巨集面板右側的 「刪除 (X) 」按鈕。

    注意

    • 如果你刪除一個動作區塊,例如 「如果」 封鎖或 群組 封鎖,該區塊中的所有動作也會被刪除。
    • 向上移動」、「 向下移動」和 「刪除 」指令也可在你右鍵點擊巨集動作時出現的捷徑選單中使用。

頁面頂端

控制程式流程,包含 If、Else If、Else

要只在特定條件成立時執行巨集動作,可以使用 If 區塊。 這取代了早期版本 Access 中使用的 條件 欄位。 你可以用 Else IfElse 區塊來擴充 If 區塊,類似其他序列程式語言如 VBA。

下圖展示了一個簡單的 If 區塊,包含 Else IfElse 區塊:

包含 If/Else If/Else 陳述式的巨集。

如果到期日欄位小於當前日期, If 區塊會執行。

當到期日期欄位等於當前日期時, Else If 區塊會執行。

如果之前的區塊都沒有執行,則執行 Else 區塊。

If 區塊到這裡結束。

在巨集中加入 If 區塊

  1. 新增動作下拉選單選擇「如果」,或從動作目錄窗格拖曳到巨集窗格。
  2. If 區塊頂端的方框中,輸入一個表達式,決定區塊何時執行。 該表達式必須是布林 (,也就是要評估為「是」或「否」) 。
  3. 若要在 If 區塊中新增動作,請從區塊內出現的 新增動作 下拉選單中選取,或從動作目錄窗格拖曳動作至 「如果」 區塊。

將 Else 或 Else If 區塊加入 if 區塊

  1. 選擇 theIfblock,然後在該區塊的右下角點擊 Add ElseAdd Else If

  2. 如果你要加入 Else If 區塊,請輸入一個表達式來決定該區塊何時執行。 該表達式必須是布林 (,也就是能評估為真或假) 。

  3. 若要在 Else IfElse 區塊中新增動作,請從區塊內的 新增動作 下拉選單中選取,或從動作目錄窗格拖曳動作至區塊。

    注意

    • 新增 IfElse IfElse 方塊的指令,可以在你右鍵點擊巨集動作時出現的捷徑選單中使用。
    • 如果 方塊可以巢狀到10層深。

頁面頂端

建立子巨集

每個巨集可以包含多個子巨集。 子巨集設計為可從 RunMacroOnError 巨集動作中呼喚。

你將 子巨集 區塊加入巨集的方式與加入巨集動作相同,如「 向巨集新增動作」章節所述。 新增子 巨集 區塊後,你可以將巨集動作拖曳其中,或從區塊內出現的 新增動作 列表中選擇動作。

注意

  • 你也可以選擇一個或多個動作,右鍵點擊它們,然後選擇「製作子巨集區塊」來建立子巨集區塊。

  • 子巨集必須永遠是巨集的最後一個區塊;你不能新增任何動作 (,除了在子巨集下方) 更多子巨集。 如果你執行一個只包含子巨集且未明確命名子巨集的巨集,只有第一個子巨集會執行。

  • 例如,要呼叫子巨集 (,例如在事件屬性中,或使用 RunMacro 動作或 OnError 動作) ,請使用以下語法:

    巨集名稱.子巨集名稱

頁面頂端

你可以透過將動作分組並賦予有意義的名稱來提升巨集的可讀性。 例如,你可以將開啟並篩選表單的動作群組成一個名為「開啟並篩選表單」的群組。這讓判斷哪些動作彼此相關。 群組區塊不影響動作的執行方式,且無法單獨呼叫或執行群組。 它的主要用途是標註一組行動,幫助你在閱讀時理解巨集。 此外,在編輯大型巨集時,你可以將每個群組區塊壓縮成一行,減少捲動的次數。

如果你想分組的動作已經在巨集裡,請使用這個步驟將它們加入 群組 區塊:

  1. 選擇你想分組的動作。
  2. 右鍵點擊選取的動作,然後點 選「建立群組封鎖」。
  3. 群組 區塊頂端的方框中,輸入該群組的名稱。

如果這些動作尚未具備:

  1. 群組 區塊從動作目錄拖曳到巨集窗格。
  2. 群組 區塊頂端的方框中,輸入該群組的名稱。
  3. 將動作目錄中的巨集動作拖曳到 群組 區塊,或從區塊內出現的 新增動作 列表中選擇動作。

群組 方塊可以包含其他 群組 方塊,且巢狀層最多可達9層。

頁面頂端

展開與摺疊巨集動作或區塊

當你建立新巨集時,巨集建構器會顯示所有參數的巨集動作。 根據巨集大小,你可能會想在編輯巨集時,將部分或全部巨集動作的 (和動作區塊) 收合。 這讓你更容易掌握巨集的整體結構。 你可以根據需要擴充部分或全部動作來編輯它們。

展開或收摺單一巨集動作或區塊

  • 點擊加號 (+) 或 減號 (- 巨集或區塊名稱左側的) 號。 或者,按上箭頭和下箭頭鍵選擇動作或阻擋,再按左箭頭或右箭頭鍵摺疊或展開。

展開或收縮所有巨集動作 (但不阻擋)

  • 設計 標籤的 摺疊/展開 群組中,點選 展開動作摺疊動作

展開或摺疊所有巨集動作和區塊

  • 設計標籤的摺疊/展開群組中,點選「全部展開」或「全部收成」。

秘訣

你可以透過將指標移到摺疊動作上方來「偷看」該動作。 Access 會以提示顯示動作參數。

頁面頂端

複製並貼上巨集動作

如果你需要重複已經加入到巨集的動作,你可以像在文字處理器中複製並貼上文字段落一樣,將現有的動作複製貼上。 當你貼上動作時,它們會入在目前選取的動作下方。 如果選取方塊,動作會貼入該方塊內。

秘訣

要快速複製選取的動作,按住 CTRL 鍵,然後將動作 (S) 拖曳到你想複製的巨集位置。

與他人分享巨集

當你將巨集動作複製到剪貼簿時,可以將它們貼上為可擴充標記語言 (XML) ,貼上到任何接受文字的應用程式中。 這讓你可以透過電子郵件將巨集寄給同事,或是在討論區、部落格或其他網站上發布該巨集。 收件人接著可以複製該 XML 並貼上到他們的 Access 巨集建置器中。 巨集會像你寫的那樣重建。

執行巨集

您可以使用以下任一方法執行巨集:

  • 在導航選區中雙擊巨集。
  • 使用 RunMacroOnError 巨集動作呼叫該巨集。
  • 在物件的 Event 屬性中輸入巨集名稱。 當該事件觸發時,這個巨集會執行。

頁面頂端

除錯一個巨集

如果你在執行一個巨集時遇到困難,有幾個工具可以幫你找到問題的根源。

在 巨集 中新增錯誤處理動作

我們建議在撰寫每個巨集時加入錯誤處理動作,並永久保留在巨集中。 使用此方法時,Access 會即時顯示錯誤描述。 錯誤描述能幫助你理解錯誤,讓你能更快修正問題。

請使用以下步驟將錯誤處理子巨集加入巨集:

  1. 在設計檢視中開啟巨集。
  2. 在巨集底部,從新增動作下拉選單中選擇子巨集
  3. 在「 Submacro」字右側的方框中,輸入子巨集的名稱,例如 ErrorHandler
  4. 從子巨集區塊內出現的新增動作下拉選單中,選擇訊息巨集動作。
  5. 訊息 框中輸入以下文字: =[MacroError].[說明]
  6. 在巨集底部,從新增動作下拉選單選擇 OnError
  7. Go to 參數設為 巨集名稱
  8. 巨集名稱 框中,輸入你錯誤處理子巨集的名稱, (ErrorHandler) 。
  9. OnError 巨集動作拖曳到巨集的最頂端。

以下圖示展示了一個包含 OnError 動作的巨集,以及一個名為 ErrorHandler 的子巨集。

含有錯誤處理子巨集的巨集。

OnError 巨集動作置於巨集頂端,並在錯誤時呼叫 ErrorHandler 子巨集。

ErrorHandler 子巨集只有在被 OnError 動作呼叫時才會執行,並顯示描述錯誤的訊息框。

使用單步指令

單步是一種巨集除錯模式,你可以用來一次執行一個巨集動作。 每次執行後,會出現一個對話框,顯示該動作的資訊及因動作而產生的錯誤代碼。 然而,由於巨集單步對話框中沒有錯誤描述,我們建議使用前一節所述的錯誤處理子巨集方法。

開始單步模式:

  1. 在設計檢視中開啟巨集。
  2. 設計 標籤中, 工具群組中 ,點擊 單步
  3. 儲存並關閉巨集。

下次執行巨集時,會出現巨 集單步 對話框。 對話框會顯示每個動作的以下資訊:

  • 巨集名稱
  • 條件 (若阻擋)
  • 行動名稱
  • 引數
  • 錯誤號碼 (錯誤號碼為 0 表示未發生錯誤)

當你進行動作時,請點擊對話框中的三個按鈕之一:

  • 要查看巨集中下一個動作的資訊,請按 Step

  • 要停止目前正在執行的任何巨集,請點擊 停止所有巨集。 下次執行巨集時,單步模式仍然有效。

  • 要退出單步模式並繼續執行巨集,請點擊 繼續

    注意

    • 如果你在巨集最後一個動作後按 Step ,下次執行巨集時單步模式仍會生效。
    • 在巨集執行時,按下 CTRL+BREAK 即可進入單步模式。
    • 要在巨集的特定點進入單步模式,請在該點新增單 巨集動作。
    • 單步模式在網頁資料庫中沒有。

頁面頂端

將巨集轉換成 VBA 程式碼

巨集提供了 Visual Basic for Applications (VBA) 程式語言中可用的指令子集。 如果你覺得需要比巨集能提供更多功能,你可以輕鬆地將獨立的巨集物件轉換成 VBA 程式碼,然後利用 VBA 所提供的擴充功能集。 不過請記住,VBA 程式碼無法在瀏覽器中執行;你加入網路資料庫的任何 VBA 程式碼,只有在資料庫在 Access 中開啟時才會執行。

注意

你無法將嵌入巨集轉換成 VBA 程式碼。

要將巨集轉換成 VBA 程式碼:

  1. 在導航選區中,右鍵點擊巨集物件,然後點選設計檢視。
  2. 設計 標籤的 工具 群組中,點擊 將巨集轉換為 Visual Basic
  3. 「轉換」巨集 對話框中,指定是否要將錯誤處理程式碼和註解加入 VBA 模組,然後點擊 「轉換」。

Access 確認巨集已轉換,並開啟 Visual Basic 編輯器。 在專案窗格中雙擊「已轉換巨集」即可檢視並編輯模組。

頁面頂端