Northwind 2.0 入門版:VBA 簡介

Applies To
Access for Microsoft 365 Access 2021 Access 2019

下列各節提供有關 VBA 的實用資訊。 提供物件名稱,方便您在 Northwind 2.0 Starter Edition 資料庫中檢查它們。

VBA

VBA (Visual Basic for Applications) 是 Access 以外的所有 Microsoft 365 產品中使用的程式設計語言。 主要記錄於此: Access 開發人員文件。 若要開始使用,請參閱 Access 程式設計簡介。

搜尋資訊時,請務必尋找 Access 特定範例,並在搜尋字詞中包含 Microsoft Access。 通常,其他 Microsoft 365 產品的解決方案可運作,但可能需要進行變更。

Microsoft Access 是成熟的產品。 這意味著那裡有很多例子,這對你來說很棒。 這也表示有關 Access 程式設計較舊的書籍仍然可供您查看。 許多舊書仍然可以在二手書網站上以原始成本的一小部分購買。 

信任的位置和已啟用的內容

Microsoft Access 檔案是 Microsoft 365 檔案。 Microsoft 365 檔案必須位於信任的位置,或已啟用其內容。 這些物品被認為是安全的,因為它們是您創建的,或者它們來自值得信賴的來源。 每次開啟任何 Microsoft 365 檔案時,都會進行此檢查。 從現在開始,我們會將此稱為受信任/啟用。 如果從不受信任的位置發行並開啟新版本的應用程式,則會重複啟用內容的程序。 如需詳細資訊,請參閱 Microsoft 365 檔案的信任位置決定是否要信任資料庫,以及在 Microsoft 365 中新增、移除或變更信任的位置。

巨集、函數和子程序

巨集、函數和子程序是在 Access 資料庫中實作商務邏輯的方式。

表單 (上的控制項,例如按鈕、文字方塊、標籤等) 可以使用其事件 (例如按一下控制項) 來觸發其他程序,例如新增、刪除記錄或開啟表單。 這些流程可以使用巨集或 VBA 來實作。 Northwind 主要使用巨集和一些 VBA。 如需詳細資訊,請參閱 RunCode 巨集動作。

某些控制項類型具有內建精靈,可自動建立巨集。 例如,新增命令按鈕至表單會開啟精靈,提供按鈕的數個功能選項。 新增下拉式方塊將會開啟精靈,並將其設定為在表單上尋找特定記錄。

「瀏覽窗格」是您檢視及存取所有資料庫物件的主要方式,預設會顯示在 Access 視窗的左側。 Northwind 2.0 Starter Edition 的 [瀏覽窗格] 已自訂。 我們建立了名為 Northwind Starter 2.0 的自訂類別。 這使我們能夠按功能區域組織對象。 如需詳細資訊,請參閱 自訂 [瀏覽窗格]。

範圍和可見度

了解 Access 和 Microsoft 365 的範圍和可見度對您而言非常重要。 範圍是指變數、常數或程序可供另一個程序使用的可用性。 範圍等級分為三個:程序層級、私人模組層級和公用模組層級。 當您宣告變數時,即可決定變數的範圍。 最好明確宣告所有變數,以避免不同範圍的變數之間發生命名衝突錯誤。 所有模組都有兩個指示詞陳述式: Option Compare Database 和 Option Explicit。  如需詳細資訊,請參閱 瞭解範圍和可見度公開陳述式私人陳述式靜態陳述式瞭解變數的生命週期。 

持續變數

有時候,您需要在建立變數的物件超出範圍之後存在變數。 有三種主要方法可以執行此操作: 公用變數TempVars 以及將值儲存在本機資料表中。 這些中的每一個都有優點和缺點。 許多開發人員混合使用這些。

目前工作階段存在公用變數和 TempVar,並在應用程式關閉時超出範圍。 如果您想要在使用者的工作階段之間保留特定變數,該怎麼辦? 您可以將這些類型的值儲存在本機資料表中。 在 Northwind 2.0 Starter Edition 中,我們在名為 SystemSettings 的資料表中擁有這些值。 例如,資料表中的值是 “ShowWelcome”。 此值告訴我們您是否要在每次登入時看到歡迎畫面。

錯誤處理

如果您曾使用任何內建於 Access 的控制項精靈,您就會知道,如果建立巨集時,通常完全不會處理錯誤,而且如果建立 VBA,可能僅限於 MsgBox 函數、 Err.Description 樣式。

在 Northwind 2.0 Starter Edition 中,我們實作了所謂的全域錯誤處理常式。 在任何程序中發生的錯誤都會在全域層級呼叫函數來顯示錯誤。 最大的優點是程式碼是一致的,如果訊息需要更改,例如顯示錯誤編號或將錯誤記錄到檔案中,則只能在一個地方完成。

clsErrorHandler 是實作錯誤處理程式碼的類別模組。 類別模組將其所有主函數和輔助函數集中在一個單元中,使程式碼更加封裝。 AutoExec 巨集最終會呼叫 modStartup 中的啟動函數,它會建立 clsErrorHandler 的執行個體,並將它儲存為全域變數,以便在整個應用程式中使用。

事實上,程序中的錯誤處理程式碼非常一致,以至於我們能夠使用一些花哨的 VBA 程式碼在不到五分鐘的時間內建立所有程式碼,該程式碼為每個程序配備了適當的錯誤處理常式。 此代碼不包含在範本中。

另請參閱

Northwind 2.0 入門版