原始 KB 編號: 310803
總結
本文說明在 Access 資料庫中使用參考的問題。
了解參考錯誤需要理解如何在 Access 資料庫中引用函式庫,以及如何在不破壞這些參考的情況下,將資料庫安裝到目標電腦上所需的條件。 本文是下列主題的摘要:
- 檢視 Access 資料庫參考
- 解決 Access 中 Microsoft Visual Basic for Applications 參考問題
- 了解參考錯誤訊息
- 解決開發電腦上的參考問題
- 分發資料庫檔案
- 更新參考清單
- 散發具有 ActiveX 控件的資料庫檔案
- 重新註冊檔案
查看 Access 資料庫參考
若要檢視目前的資料庫參考:
- 開啟資料庫。
- 按 ALT+F11 以啟動 Visual Basic 編輯器。
- 在 [ 工具] 功能表上,按兩下 [ 參考]。
解析 Access 中的 Visual Basic 參考
Access 會根據 [參考] 方塊中顯示的資訊,載入每個參考的相關檔案(例如類型庫、物件庫或控件連結庫)。 如果 Access 找不到檔案,Access 會執行下列程式來尋找檔案:
- 存取會檢查參考的檔案目前是否在記憶體中載入。
- 如果檔案未載入記憶體中,Access 會嘗試驗證
RefLibPaths登錄機碼是否存在。 如果索引鍵存在,Access 會尋找名稱與參考相同的具名值。 如果有相符,Access 會從指定的值所指向的路徑載入參考。 - 接著,Access 會依下列位置搜尋參考的檔案,順序如下:
- 應用程式資料夾(Msaccess.exe 檔案的位置)。
- 如果您按下 [檔案] 選單上的 [開啟] ,您會看到的目前資料夾。
- 作業系統檔案運行所在的 Windows 或 Winnt 資料夾。
- Windows 或 Winnt 資料夾下的 [系統] 資料夾。
- 作業系統可直接存取的 PATH 環境變數中的資料夾。
- 如果 Access 找不到檔案,就會發生參考錯誤。
了解參考錯誤訊息
有數個錯誤訊息與文件丟失或文件的版本與資料庫使用的版本不同有關。 在大部分情況下,您可以搜尋Microsoft知識庫中有關特定錯誤訊息的文章,然後您可以遵循文章中的步驟來解決錯誤。 在某些情況下,相依性檔案未與主要檔案正確比對。
下列清單描述您可能會收到的一些參考錯誤訊息。 不過,請注意,清單不包含所有可能的參考錯誤訊息。
“ObjectName 的 Method MethodName 失敗”
一般而言,如果程式設計類型庫發生問題,例如,無效的數據存取物件 (DAO) 動態連結庫 (DLL) 檔案,您可能會收到此錯誤訊息。 您可以搜尋Microsoft知識庫中的文章,以描述此錯誤訊息的各種形式。
"使用 表達式中不支持函數"
如果程式設計類型連結庫發生問題,或程式代碼未特別呼叫正確的連結庫,而且檔案列在參考清單中的優先順序低於包含相同函式名稱的檔案,您可能會收到此錯誤訊息,例如,如果 DAO 程式代碼與以 DAO 連結庫較高優先順序列出的 ActiveX Data Object (ADO) 連結庫搭配使用,則為 。 如果表單或報表包含 ActiveX 控制件,您也可以收到此錯誤訊息。
「找不到專案或連結庫」
如果 Access 在參考清單中找不到檔案,您可能會收到此錯誤訊息。 檔案通常會在「參考資料」對話方塊中標示為「缺失」。 有時候檔案存在於開發計算機上,而不是存在於目標計算機上。
「未定義變數」或「未定義使用者定義型別」
您可能會在使用 [User-Level 安全性精靈] 來保護參考非預設庫的資料庫時,收到下列其中一個錯誤訊息。 例如,在新的安全資料庫中,不會自動建立在未受保護的資料庫中存在的函式庫引用。
「執行時間錯誤 5」、「無效的程式調用或自變數」、「包含此符號的連結庫未由目前項目參考」或「包含此符號的連結庫未由目前項目參考,因此未定義符號」
如果有資料庫、類型連結庫或標示為Missing 的物件庫參考,您可能會收到下列其中一則錯誤訊息。
「ActiveX 元件無法建立物件」
此錯誤訊息不一定表示涉及 ActiveX 控制件。 例如,其中一個可能的原因是 DAO 是 ActiveX 元件,無法建立對象,因為 DAO 自動化伺服器無法啟動。 通常,原因是提供程式所需功能的那些 DLL 未被註冊或註冊不正確。
解決開發電腦上的參考問題
如果程式代碼或 ActiveX 控制件依賴預設未包含在資料庫中的參考,建立新的空白資料庫,然後從另一個資料庫檔案匯入物件可能會建立參考問題。 Access 2000 資料庫的預設參考如下:
- Visual Basic for Applications
- Microsoft Access 9.0 物件庫
- OLE Automation
- Microsoft ActiveX 資料物件(ADO)2.1 函式庫
如果來源是另一個 Access 2000 資料庫,請確認參考是否相符。 如果來源位於舊版 Access 中,DAO 3.5 或更早版本可能正在使用中;不過,Access 2000 預設不會提供DAO 3.5。 請嘗試移除 ADO 2.1 連結庫的參考(如果存在),並將參考新增至 DAO 3.6 物件庫。
如果您從舊版 Access 轉換資料庫,而且資料庫包含 Utility.mda 檔案的參考,在大部分情況下,您可以移除此參考,因為此參考呼叫的函式包含在 Access 2000 中的預設參考中。 如果有舊版 DAO 的參考,您也可以移除這些參考,因為 DAO 3.6 可以處理這些函式。
若要新增程式庫的參考至:
- 開啟資料庫。
- 按 ALT+F11 以啟動 Visual Basic 編輯器。
- 在 [ 工具] 功能表上,按兩下 [ 參考]。
- 在 [可用參考] 底下,按兩下以選取連結庫名稱旁的複選框,然後按兩下 [ 確定]。
要移除程式庫的參考:
- 開啟資料庫。
- 按 ALT+F11 以啟動 Visual Basic 編輯器。
- 在 [ 工具] 功能表上,按兩下 [ 參考]。
- 在 [可用參考] 底下,按兩下以清除連結庫名稱旁的複選框,然後按兩下 [ 確定]。
分發資料庫檔案
有兩種基本資料庫檔案散發方法。 您可以將檔案從開發計算機複製到目標計算機,或使用封裝和部署精靈來建立安裝套件。
如果您將檔案從開發計算機複製到目標計算機,則只會複製資料庫檔案。 您必須手動確保參照清單中列出的所有檔案都在正確的版本層級,並且在目標計算機上的相對位置與在開發計算機上相同。
當您在 Access 中開發運行時間應用程式時,請注意,某些作系統檔案必須與運行時間應用程式一起散發。 這些檔案的封裝是由 Microsoft Office 2000 開發人員的套件和部署精靈元件自動執行。 有時候,所包含的檔案版本取決於開發電腦上已安裝的其他應用程式,這些應用程式可能已經修改了作業系統檔案。
遵循某些指導方針通常可確保安裝運行時間應用程式時,您使用的檔案版本不會與目標計算機上的檔案衝突。 以下是指導方針:
- 在任何電腦上開發 Access 資料庫。
- 建立一個電腦環境,其中硬碟已重新格式化,並且只安裝了適用作業系統的最早版本、Office 的最早版本及 Office 2000 Developer 的最早版本。 在此計算機上執行套件和部署精靈,以建立應用程式的運行時間版本。 這可確保檔案的修訂層級在任何目標計算機上都能夠運作。
- 建立一個硬碟已重新格式化且只安裝作業系統的計算機環境。 在此環境中測試運行時應用程式。
- 如果應用程式未成功執行,您就知道應用程式本身發生問題。 您必須先識別並更正問題,才能散發應用程式。
- 如果應用程式在測試計算機上成功運作,但無法在目標計算機上運作,則您知道目標計算機上發生錯誤,而不是在應用程式中發生錯誤。 您必須識別並更正目標計算機上的可能原因,可能是不相容或損毀的檔案。
重新整理參考清單
如果參考問題涉及 ActiveX 控制件,您有時可以重新整理參考清單來解決此問題。 若要重新整理參考清單:
- 在 Visual Basic 編輯器中,單擊 [工具] 功能表上的 [參考]。
- 在 [ 參考] 對話框中,按下以選取尚未選取的參考,記下您選取的參考,然後按兩下 [ 確定]。
- 在 [ 工具] 功能表上,再次按兩下 [ 參考 ]。
- 點擊以取消參考項的選擇,然後點擊 [確定]。
散發具有 ActiveX 控件的資料庫檔案
ActiveX 控制件有兩種類型的授權:設計時間授權和運行時間授權。
- 設計時間授權可讓您將 Office 2000 Developer 授權的 ActiveX 控制件插入 Access 資料庫中的表單和報表。
- 運行時間授權可讓您在未安裝 Office 2000 Developer 的計算機上,在 Access 資料庫中使用 ActiveX 控制件,但運行時間授權不允許您插入新的授權 ActiveX 控制件。 若要安裝運行時間授權,請使用套件和部署精靈來散發 ActiveX 控制件,以寫入目標電腦登錄中控制件的授權。
當您在 [設計] 檢視中開啟模組時,可能會看到 [遺漏] 旗標,然後按兩下 [工具] 選單上的 [參考],表示目標電腦上的 [通用對話框] 控件參考不符合開發計算機資料庫檔案中的來源。
如果您在未安裝可散發的通用對話框控件的情況下散發資料庫檔案,則控件的參考可能會標示為Missing,或者您可能會收到錯誤訊息:「如果目標計算機上已安裝不可散發的控件,則表示「您不需要使用此 ActiveX 控件的授權」。
即使資料庫檔案是運行時間應用程式的一部分,如果目標計算機上已安裝的非分散式控件比運行時間應用程式提供的控制項還晚,您可能會收到「您沒有使用此 ActiveX 控制件所需的授權」錯誤訊息。 此問題可能會發生,因為安裝程式不會以舊版相同檔案覆寫較新版本的檔案。
重新註冊檔案
有可能某個檔案在參考清單中,但尚未在註冊表中正確註冊。 如果您懷疑這可能是這種情況,請遵循下列步驟來重新註冊檔案:
- 在 Microsoft Windows NT 4.0 中,按兩下 [開始]、指向 [尋找],然後按兩下 [ 檔案] 或 [資料夾],或在 Windows 2000 中按兩下 [開始],指向 [搜尋],然後按兩下 [ 檔案和資料夾]。
- 在 [ 具名 ] 方塊中,或在 [ 搜尋名為 的檔案和資料夾 ] 方塊中,輸入 regsvr32.exe。
- 在 [ 查看] 方塊中,按兩下硬碟的根目錄(通常是 C:)。
- 點擊 [ 包含子資料夾 ] 核取方塊(如果尚未選取),然後點擊 [ 立即尋找 ] 或 [ 立即搜尋 ]。
- 找到檔案之後,按一下 [ 開始],按一下 [ 執行],然後刪除 [ 開啟 ] 方塊中的任何內容。
- 將 Regsvr32.exe 檔案從搜尋結果窗格拖曳至 [ 開啟 ] 方塊。
- 重複步驟 2 到 6,這次搜尋 FileName.dll,其中 FileName 是您想要重新註冊的檔名。
- 當FileName.dll 檔案與 Regsvr32.exe 檔案一起出現在 [開啟] 方塊中時,點擊 [確定]。
- 在 Access 中,測試以查看問題是否存在。
如果您沒有電腦上的 Regsvr32.exe 檔案,請檢查其他電腦是否有檔案。 如果檔案無法使用,您可以從Microsoft網站取得檔案。
備註
請記得在調整參考之後編譯所有模組。 若要編譯所有模組,在模組仍然開啟時,請單擊 [偵錯] 功能表上的 [編譯資料庫]。 如果模組未編譯,可能會有其他無法解析的參考。