版權(quán):微軟 建議閱讀微軟原文, 以保證是最新最準確的KB版本及最新更新!! 如果原文無法鏈接,可閱讀下面轉(zhuǎn)貼: ACC2000:如何診斷/修復(fù)損壞的 Jet 4.0 數(shù)據(jù)庫View products that this article applies to. 本文的發(fā)布號曾為 CHS209137
初學(xué)者:要求具備單用戶計算機的用戶界面知識。
本文僅適用于 Microsoft Access 數(shù)據(jù)庫 (.mdb)。 概要各種環(huán)境因素有可能損壞數(shù)據(jù)庫文件。被破壞的數(shù)據(jù)庫的癥狀包括:某些記錄顯示 #Deleted;無法打開數(shù)據(jù)庫中的某個對象,以及無法在 Access 中打開該文件。Microsoft Access 2000 中的修復(fù)和壓縮工具是恢復(fù)和優(yōu)化 Microsoft Access 數(shù)據(jù)庫文件的有效工具。本文說明如何使用這些 Access 2000 工具以及其它修復(fù)損壞數(shù)據(jù)庫的方法。另外,還給出了數(shù)據(jù)庫損壞原因的信息。更多信息盡管本文所描述的步驟通?沙晒Φ鼗謴(fù)已損壞的數(shù)據(jù)庫文件,但為了保護數(shù)據(jù),應(yīng)當(dāng)在條件允許的情況下經(jīng)常備份數(shù)據(jù)庫文件。壓縮和修復(fù)工具壓縮工具可消除現(xiàn)有數(shù)據(jù)庫中的未占用空間。它是通過創(chuàng)建一個新的目標數(shù)據(jù)庫,并將舊數(shù)據(jù)庫中的所有對象復(fù)制到新數(shù)據(jù)庫中來實現(xiàn)的。如果您選擇將數(shù)據(jù)庫壓縮到原來的數(shù)據(jù)庫名稱下,而不是新的數(shù)據(jù)庫,那么壓縮工具將會創(chuàng)建一個臨時數(shù)據(jù)庫,將原數(shù)據(jù)庫中的所有對象導(dǎo)出到臨時數(shù)據(jù)庫中,刪除原來的數(shù)據(jù)庫,然后將臨時數(shù)據(jù)庫重命名為原來的數(shù)據(jù)庫。 修復(fù)工具只用來修復(fù)數(shù)據(jù)庫中的表、查詢和索引。它不能修復(fù)已損壞的窗體、報表、宏或模塊。以下是壓縮工具所執(zhí)行的操作列表。
運行壓縮和修復(fù)工具的重要原則在對數(shù)據(jù)庫運行壓縮和修復(fù)工具之前,必須滿足以下條件: 必須使用對數(shù)據(jù)庫中所有表具有“修改設(shè)計”或“管理”安全權(quán)限的帳戶登錄。 必須給原始和壓縮后的數(shù)據(jù)庫留有足夠的磁盤空間,即使數(shù)據(jù)庫是通過 Microsoft Access 2000 用戶界面以相同的文件名壓縮的,也是如此。僅當(dāng)壓縮成功時,才可以將修復(fù)/壓縮的數(shù)據(jù)庫重命名為原來的數(shù)據(jù)庫名。 其它用戶不可打開數(shù)據(jù)庫。當(dāng)數(shù)據(jù)庫被壓縮時,它必須由 Microsoft Jet 以獨占方式打開,以防止在壓縮過程中任何用戶訪問和修改數(shù)據(jù)庫。 恢復(fù)已損壞的數(shù)據(jù)庫以下步驟概括了修復(fù)已損壞數(shù)據(jù)庫的一般方法:
最后的選擇方法是,某些專家可能會提供 Microsoft Access 數(shù)據(jù)庫修復(fù)服務(wù)。由于這是一種很特殊的服務(wù),找到這類專家的最有效的途徑是在 Microsoft Access “第三方和用戶組” Internet 新聞組中發(fā)布一則消息,新聞組的地址是: microsoft.public.access.3rdpartyusrgrp 有關(guān) Microsoft Access Internet 新聞組的詳細信息,請參見 Microsoft Knowledge Base 中的下列文章:150057 Internet 上可用的 Microsoft Access 新聞組 .mdb 文件損壞的常見原因Access/Jet mdb 文件損壞有三個主要原因。 由于寫入操作被中斷使數(shù)據(jù)庫處于置疑/損壞狀態(tài)強烈建議通過單擊“文件”菜單上的“退出”或“關(guān)閉”,正常關(guān)閉數(shù)據(jù)庫。但是,如果 Access 不正常關(guān)閉時,數(shù)據(jù)庫正處于打開狀態(tài)并正在寫數(shù)據(jù),則 Jet Database Engine 就會將該文件標記為置疑/損壞。如果手動關(guān)閉機器之前沒有先關(guān)閉 Windows 或者斷電,也可能會出現(xiàn)這種情況。其它情形還包括:在打開數(shù)據(jù)庫的同時,沒有關(guān)閉 Access 但仍干擾 Jet 向磁盤寫入數(shù)據(jù)。例如,當(dāng)網(wǎng)絡(luò)遇到數(shù)據(jù)沖突或者磁盤驅(qū)動器故障時,就會出現(xiàn)這種情況。如果發(fā)生任何此類中斷,Jet 就會將數(shù)據(jù)庫標記為可能已被破壞。 當(dāng) Jet 開始寫操作時,將設(shè)置一個標記,并在操作完成時重新設(shè)置該標記。如果寫操作被中斷,標記保持不變。當(dāng)您要再次打開數(shù)據(jù)庫時,Jet 確定標記是否已設(shè)置并報告數(shù)據(jù)庫是否被破壞。在大多數(shù)情況下,數(shù)據(jù)庫中的數(shù)據(jù)實際上沒有被破壞,但設(shè)置的標記提醒 Jet 數(shù)據(jù)庫可能已被破壞。如果是這種情況,壓縮和/或修復(fù)數(shù)據(jù)庫通常可以還原數(shù)據(jù)庫。所幸的是,有辦法確定哪些用戶和工作站負責(zé)將文件標記為置疑。有關(guān)確定哪些用戶和/或工作站使 Jet 將文件標記為置疑,請參見本文后面的“方法”。 網(wǎng)絡(luò)硬件故障在這種情況下,文件損壞與 Jet Engine 無關(guān);文件損壞完全是由于外界原因造成的。原因可能是由于存放數(shù)據(jù)庫的計算機和打開數(shù)據(jù)庫的計算機之間的硬件鏈中的一個或多個鏈接出故障。此列表包括但不局限于網(wǎng)卡、網(wǎng)絡(luò)電纜、路由器和集線器。 通常,mdb 文件指示由硬件造成的損壞不能通過使用壓縮、修復(fù)或 Jetcomp 來還原。直到出故障的硬件被修復(fù)或替換,硬件損壞才會被修復(fù)。 在另一個程序中打開和保存 mdb 文件當(dāng)打開一個 mdb 文件并在另一個程序中保存時,不能恢復(fù)該文件。例如,Microsoft Word 允許打開并保存 Access 數(shù)據(jù)庫(順便提一下,如果在另一個應(yīng)用程序中打開 MDB 文件,這樣做不起任何作用,因為您看到的都是擴展字符)。當(dāng)這樣保存 mdb 文件時,如果在 Access 中打開它,就會提示您輸入數(shù)據(jù)庫密碼,即使文件在 Access 中從未使用密碼保護,也是如此。此處出現(xiàn)密碼提示的原因是:當(dāng) Access 打開文件時,檢查的第一個字節(jié)范圍就是數(shù)據(jù)庫密碼所在的位置。如果該字節(jié)包含損壞的數(shù)據(jù),Access 就會認為該文件受密碼保護。即使能夠繞過此處的密碼提示,數(shù)據(jù)庫仍無法恢復(fù),因為二進制結(jié)構(gòu)是混亂的,Access 根本無法讀取。在這種情況下,恢復(fù)文件的備份副本是唯一的解決方法。有關(guān)這一問題的詳細信息,請單擊以下文章編號,查看 Microsoft Knowledge Base 中的相應(yīng)文章: 243895 ACC2000:出現(xiàn)數(shù)據(jù)庫密碼,雖然從前從未設(shè)置過 如何確定哪些用戶/工作站負責(zé)將文件標記為置疑有時,要找出數(shù)據(jù)庫被破壞的原因,必須檢查是誰登錄到數(shù)據(jù)庫中?梢允褂 Access 2000 中的 Microsoft Visual Basic for Applications,輸出登錄到特定數(shù)據(jù)庫中的用戶列表, 有關(guān)如何執(zhí)行這一操作和示例代碼的其它信息,請單擊下列文章編號查看相應(yīng)的 Microsoft Knowledge Base 文章: 198755 ACC2000:使用 Jet UserRoster 檢查是誰登錄到數(shù)據(jù)庫中 防止出現(xiàn)破壞可以采取的步驟
參考有關(guān)修復(fù)數(shù)據(jù)庫的詳細信息,請單擊幫助菜單上的 Microsoft Access 幫助,在“Office 助手”或“操作向?qū)А敝休斎?KBD>修復(fù),然后單擊搜索查看該主題。有關(guān)修復(fù)損壞數(shù)據(jù)庫的可下載工具的詳細信息,請單擊以下文章編號,查看相應(yīng)的 Microsoft Knowledge Base 文章: 273956 ACC2000:下載中心提供的 Jet 壓縮工具 有關(guān)在以前 Access 版本中排除數(shù)據(jù)庫錯誤的其它信息,請單擊下列文章編號查看相應(yīng)的 Microsoft Knowledge Base 文章:279334 ACC97:如何查錯/修復(fù)損壞的 Jet 3.5 數(shù)據(jù)庫 109953 ACC:如何查錯/修復(fù)損壞的數(shù)據(jù)庫 這篇文章中的信息適用于:
|
|站長郵箱|小黑屋|手機版|Office中國/Access中國
( 粵ICP備10043721號-1 )
GMT+8, 2025-7-17 02:09 , Processed in 0.064362 second(s), 16 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.