如何解決在 Access 資料庫中的參照問題

文章翻譯 文章翻譯
文章編號: 310803 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您有關的 Access 資料庫中的參考使用的問題。

瞭解參考錯誤需瞭解這兩個中的 Access 所參考的程式庫資料庫和的什麼是所需在目標電腦上安裝資料庫,而不會中斷這些參考。本文是下列主題的摘要:
  • 檢視 Access 資料庫參考
  • 解決 Microsoft Visual Basic 應用程式參考在 Access 中
  • 瞭解參考錯誤訊息
  • 解決開發電腦上的參照問題
  • 散發資料庫檔案
  • 正在更新參考清單
  • 散發資料庫檔案的有 ActiveX 控制項
  • reregistering 檔案

其他相關資訊

檢視 Access 資料庫參考

若要檢視目前的資料庫參考,請執行下列步驟:
  1. 開啟資料庫。
  2. 按下 ALT + F11 即可啟動 [Visual Basic 編輯器]。
  3. 按一下 [工具] 功能表 引用項目

解析在 Access 中的 Visual Basic 參考

存取載入相關檔案 (比方說型別程式庫、 物件程式庫或控制項程式庫) 為每個參考根據要顯示在 [參照] 方塊中的資訊。如果 Access 找不到檔案,Access 會在執行下列程序,以找出檔案:
  1. 存取檢查是否參考的檔案目前已載入記憶體中。
  2. 如果檔案不會載入記憶體中,Access 會嘗試驗證 RefLibPaths 登錄機碼存在。如果索引鍵 Access 會尋找具有相同的名稱做為參考的已命名值。如果相符的項目 Access 會從已命名的值指向的路徑載入參照。
  3. 存取然後會搜尋參考的檔案,在下列位置依此順序:
    1. [應用程式] 資料夾上 (Msaccess.exe 檔案的位置)。
    2. 您看到的是否您按一下 開啟檔案 功能表上的 [目前的資料夾。
    3. 在執行的作業系統檔案 [Windows] 或 [Winnt 資料夾。
    4. 在 [視窗] 或 [Winnt 資料夾下的 [System] 資料夾。
    5. 直接存取由作業系統 PATH 環境變數中資料夾。
  4. 如果 Access 找不到檔案,就會發生參考錯誤。

瞭解參考錯誤訊息

有幾個關聯到遺失的檔案或具有不同的版本,從資料庫中所使用的版本的檔案的錯誤訊息。在大多數情況下您可以搜尋 「 Microsoft 知識庫 」 文章有關特定錯誤] 訊息,及您依照文件中的步驟再解決錯誤。在某些情況下相依檔是不正確地符合主要檔案。

下列清單說明一些您可能會收到 「 參考錯誤訊息。不過,請注意該清單不包含所有可能參考錯誤訊息。
  • "方法的物件 MethodNameObjectName 失敗"

    如果為程式設計型別程式庫,例如一個無效資料存取物件 (DAO) 動態連結程式庫與問題您可能通常,收到這個錯誤訊息 (DLL) 檔案。您可以搜尋 「 Microsoft 知識庫 」,描述各種形式的這個錯誤訊息的發行項。
  • 「 函式不在 Usage 運算式中使用 」

    如果問題與程式設計類型庫或程式碼不會特別呼叫出正確的文件庫,且檔案 DAO 程式碼與列在較高的優先順序比 DAO 程式庫 ActiveX 資料物件 (ADO) 文件庫搭配使用時] 選項會列在比檔案,例如包含相同的函式名稱--較低優先順序在清單中的參考,可能會收到這個錯誤訊息。您也可能會收到這個錯誤訊息,如果表單或報表包含 ActiveX 控制項。
  • "不能尋找專案或程式庫"

    如果在 Access 中找不到檔案的參考清單,您可能會收到這個錯誤訊息。通常檔案標示為 遺失參考] 對話方塊中。有時候檔案存在,在開發電腦上,而不是在目標電腦。 如需有關此錯誤的詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
    208218ACC2000: 中斷遺失參照的資料庫中的 VBA 函數
  • 「 變數未定義 」 或者 「 使用者定義類型未定義 」

    如果您使用使用者層次安全性精靈 」 來保全參考預設會包含的程式庫以外的程式庫的資料庫,您可能會收到這些錯誤訊息之一。比方說無安全性的資料庫中存在的程式庫的參考不會自動建立新的保全資料庫中。
  • 「 執行階段錯誤 5,""不正確的程序呼叫或引數,""目前專案所不參考包含此符號的程式庫 」 或是"其中包含這個符號的程式庫有不參照目前的專案因此符號是未定義 」

    如果有是資料庫、 型別程式庫或標示為 遺失 的物件程式庫的參考,您可能會收到這些錯誤訊息之一。 如需詳細資訊按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
    231413ACC2000: 錯誤訊息指出遺失的參照
  • 「 ActiveX 元件無法建立物件 」

    這個錯誤訊息並不一定表示涉及 ActiveX 控制項。 比方說一個可能的原因是因為 DAO 自動化伺服器無法啟動是一項 ActiveX 元件的 DAO 無法建立物件。 經常,原因是提供的 DLL 的程式無法登錄或未正確登錄參考的功能。如需有關此錯誤的詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
    244264資訊: 疑難排解錯誤 429 自動化 Office 應用程式時
    雖然本文撰寫從 Visual Basic 資訊安全觀點 –,它涵蓋了許多原因造成此錯誤。

解決開發電腦上的參照問題

建立新的空白資料庫,然後從另一個資料庫檔案中匯入物件可以建立參考問題如果程式碼或 ActiveX 控制項依賴預設並未包含在資料庫的參考。Access 2000 資料庫的預設值參考是:
  • Visual Basic 應用程式
  • Microsoft Access 9.0 物件程式庫
  • OLE 自動化
  • 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 可以解決這些函式。

若要加入文件庫的參考:
  1. 開啟資料庫。
  2. 按下 ALT + F11 即可啟動 [Visual Basic 編輯器]。
  3. 按一下 [工具] 功能表 引用項目
  4. 在 [可引用的項目,按一下以選取程式庫名稱旁的核取方塊,然後再按一下 [確定]
若要移除文件庫的參考:
  1. 開啟資料庫。
  2. 按下 ALT + F11 即可啟動 [Visual Basic 編輯器]。
  3. 按一下 [工具] 功能表 引用項目
  4. 在 [可引用的項目,按一下以清除核取方塊,將程式庫名稱旁,再按 [確定]

散發資料庫檔案

有兩種基本的資料庫檔案散發方法。您可以將檔案從開發電腦複製到目標的電腦,或者您可以使用 [封裝暨部署精靈 」 來建立安裝程式套件。

如果您將檔案從開發電腦複製到目標電腦,只會複製資料庫檔案。您必須手動確定參考清單中列出的所有檔案都有使用,在正確的版本層級和目標電腦上相同的相對位置中開發電腦上。

如果您使用 「 封裝暨部署精靈來建立安裝程式封裝,請參閱知識庫文件,做為開發在 Access 中的執行階段應用程式的檢查清單。 取得更多資訊有關該檢查清單按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
247530MOD2000: 如何建立可散發的執行階段應用程式時,避免常見的錯誤
當您在開發中存取的執行階段應用程式時要知道某些作業系統檔案必須與執行階段應用程式散發。封裝暨部署精靈 」 元件的 Microsoft Office 2000 程式開發人員所自動執行這些檔案的封裝。 有時會包含的檔案的版本而定其他應用程式的開發電腦上所安裝及所可能修改作業系統檔案。

遵循某些規定通常可確保讓您使用的檔案的版本會發生不衝突與目標電腦上的檔案安裝執行期應用程式時。以下是指導方針:
  1. 開發 Access 資料庫,在任何電腦上。
  2. 建立已被格式化硬碟磁碟的電腦環境,以及只有最早版本的適用的作業系統、 Office,及 Office 2000 程式開發人員才安裝的位置。在建立執行階段版本的應用程式這台電腦上執行 「 封裝暨部署精靈 」。如此可確保修訂層級的檔案能夠在任何目標電腦上。
  3. 建立已被格式化硬碟磁碟的電腦環境,以及只有作業系統安裝的位置。在此環境中測試執行階段應用程式。
    • 如果未成功地執行應用程式,您知道有錯誤與應用程式本身的東西。您必須找出並更正問題之前您散發應用程式。
    • 如果應用程式在測試電腦上順利運作,但不能在目標電腦上作用,您知道有東西錯目標電腦上,而不是在應用程式。您必須找出並修正可能的原因,可能不相容或損毀的檔案在目標電腦上。

重新整理參考清單

如果參考問題牽涉到 ActiveX 控制項,您可以藉由重新整理參考清單,有時解決此問題。若要重新整理參考清單:
  1. 在 Visual Basic 編輯器按一下 [工具] 功能表上的 參考
  2. 在 [參考] 對話方塊按一下以選取尚未被選取的參考,請記下哪一個您選取,然後按一下 [確定]
  3. 在 [工具] 功能表中上, 一次按一下 引用項目
  4. 按一下以取消選取該參考,然後按一下 [確定]

散發資料庫有 ActiveX 控制項的檔案

有兩種類型的 ActiveX 控制項的授權: 設計階段授權和執行階段授權。
  • 設計階段授權允許您將從 Office 2000 程式開發人員的授權的 ActiveX 控制項插入表單和報表中的 Access 資料庫。
  • 執行階段授權允許您在 Access 資料庫中並沒有安裝,Office 2000 開發人員的電腦上使用 ActiveX 控制項但執行階段授權不允許您插入新授權的 ActiveX 控制項。安裝執行階段授權,請散發 ActiveX 控制項使用 [封裝] 和 [部署精靈 」 將控制項的授權寫入目標電腦登錄中。
您在 [設計] 檢視中開啟模組,然後按一下 [工具] 功能表上的 [參考 時,您可能會看到,一個 遺失 旗標指出通用型對話方塊控制項在目標電腦上的參考不符合來源資料庫檔案從開發電腦中。

如果您散發資料庫檔案而不安裝可散發的 「 通用型對話方塊 」 控制項,控制項的參考可能會標示為 遺失,或者您可能會收到錯誤訊息 「 您不需要使用此 ActiveX 控制項所需的授權 」 如果非可分配控制項已經安裝在目標電腦上。

甚至當資料庫檔已執行階段應用程式的一部分,您可能會收到錯誤訊息 「 您不需要使用此 ActiveX 控制項所需的授權 」 如果已經安裝在目標電腦的非可分配控制項屬於更新的版本比由執行階段應用程式所提供的控制項。因為安裝程式並不會覆寫較新版本的檔案以舊版相同的檔案,就會發生這個問題。

reregistering 一個檔案

很可能會在參考清單中,而不正確所註冊在登錄中的檔案。如果您懷疑這可能是大小寫,請依照下列步驟重新登錄檔案:
  1. 在 Microsoft Windows NT 4.0 中按一下 [開始]、 指向 [尋找],然後按一下 [檔案或資料夾,或在 Windows 2000 中按一下 [開始]、 指向 [搜尋],再按 [檔案或資料夾
  2. 在 [名稱] 方塊或 [搜尋檔案和資料夾名為] 方塊中,輸入 regsvr32.exe
  3. 在 [尋找在] 方塊中,按一下硬碟機的根目錄 (通常是 C:)。
  4. 按一下以選取 [一併尋找子資料夾] 核取方塊 (如果尚未選取,然後再按一下 [立即尋找] 或 [立即搜尋
  5. 找到檔案後按一下 [開始]、 按一下 [執行],然後再刪除位在 [開啟舊檔] 方塊中的任何。
  6. 將從搜尋結果窗格 Regsvr32.exe 檔案拖曳至 [開啟舊檔] 方塊中。
  7. 重複步驟 2 到 6,這一次搜尋的 FileName.dll 其中的 FileName 是您想要重新登錄檔案的名稱。
  8. FileName 的.dll 檔案位在 [開啟舊檔] 方塊中與 Regsvr32.exe 檔案後按一下 [確定]
  9. 在 Access 中,測試看看問題是否仍然存在。
如果您沒有 Regsvr32.exe 檔案到您的電腦檢查檔案的其他電腦。如果檔案不是可用的可以取得該檔案從 Microsoft 網站。 如需詳細資訊按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
161983ACC: Regsvr32a.exe 可用在下載中心
注意:請記得要調整參考之後,編譯所有模組。若要編譯所有模組,與模組仍然開啟,按一下 編譯 資料庫偵錯] 功能表上。如果不進行編譯模組,可能有其他無法解析的參考。

屬性

文章編號: 310803 - 上次校閱: 2006年6月26日 - 版次: 2.2
這篇文章中的資訊適用於:
  • Microsoft Access 2000 Standard Edition
關鍵字:?
kbmt kbhowto kbenv kbinfo kbinterop kbprogramming KB310803 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:310803
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com