版权:微软 建议阅读微软原文, 以保证是最新最准确的KB版本及最新更新!! 如果原文无法链接,可阅读下面转贴: ACC2000:如何诊断/修复损坏的 Jet 4.0 数据库View products that this article applies to. 本文的发布号曾为 CHS209137
初学者:要求具备单用户计算机的用户界面知识。
本文仅适用于 Microsoft Access 数据库 (.mdb)。 概要各种环境因素有可能损坏数据库文件。被破坏的数据库的症状包括:某些记录显示 #Deleted;无法打开数据库中的某个对象,以及无法在 Access 中打开该文件。Microsoft Access 2000 中的修复和压缩工具是恢复和优化 Microsoft Access 数据库文件的有效工具。本文说明如何使用这些 Access 2000 工具以及其它修复损坏数据库的方法。另外,还给出了数据库损坏原因的信息。更多信息尽管本文所描述的步骤通常可成功地恢复已损坏的数据库文件,但为了保护数据,应当在条件允许的情况下经常备份数据库文件。压缩和修复工具压缩工具可消除现有数据库中的未占用空间。它是通过创建一个新的目标数据库,并将旧数据库中的所有对象复制到新数据库中来实现的。如果您选择将数据库压缩到原来的数据库名称下,而不是新的数据库,那么压缩工具将会创建一个临时数据库,将原数据库中的所有对象导出到临时数据库中,删除原来的数据库,然后将临时数据库重命名为原来的数据库。 修复工具只用来修复数据库中的表、查询和索引。它不能修复已损坏的窗体、报表、宏或模块。以下是压缩工具所执行的操作列表。
运行压缩和修复工具的重要原则在对数据库运行压缩和修复工具之前,必须满足以下条件: 必须使用对数据库中所有表具有“修改设计”或“管理”安全权限的帐户登录。 必须给原始和压缩后的数据库留有足够的磁盘空间,即使数据库是通过 Microsoft Access 2000 用户界面以相同的文件名压缩的,也是如此。仅当压缩成功时,才可以将修复/压缩的数据库重命名为原来的数据库名。 其它用户不可打开数据库。当数据库被压缩时,它必须由 Microsoft Jet 以独占方式打开,以防止在压缩过程中任何用户访问和修改数据库。 恢复已损坏的数据库以下步骤概括了修复已损坏数据库的一般方法:
最后的选择方法是,某些专家可能会提供 Microsoft Access 数据库修复服务。由于这是一种很特殊的服务,找到这类专家的最有效的途径是在 Microsoft Access “第三方和用户组” Internet 新闻组中发布一则消息,新闻组的地址是: microsoft.public.access.3rdpartyusrgrp 有关 Microsoft Access Internet 新闻组的详细信息,请参见 Microsoft Knowledge Base 中的下列文章:150057 Internet 上可用的 Microsoft Access 新闻组 .mdb 文件损坏的常见原因Access/Jet mdb 文件损坏有三个主要原因。 由于写入操作被中断使数据库处于置疑/损坏状态强烈建议通过单击“文件”菜单上的“退出”或“关闭”,正常关闭数据库。但是,如果 Access 不正常关闭时,数据库正处于打开状态并正在写数据,则 Jet Database Engine 就会将该文件标记为置疑/损坏。如果手动关闭机器之前没有先关闭 Windows 或者断电,也可能会出现这种情况。其它情形还包括:在打开数据库的同时,没有关闭 Access 但仍干扰 Jet 向磁盘写入数据。例如,当网络遇到数据冲突或者磁盘驱动器故障时,就会出现这种情况。如果发生任何此类中断,Jet 就会将数据库标记为可能已被破坏。 当 Jet 开始写操作时,将设置一个标记,并在操作完成时重新设置该标记。如果写操作被中断,标记保持不变。当您要再次打开数据库时,Jet 确定标记是否已设置并报告数据库是否被破坏。在大多数情况下,数据库中的数据实际上没有被破坏,但设置的标记提醒 Jet 数据库可能已被破坏。如果是这种情况,压缩和/或修复数据库通常可以还原数据库。所幸的是,有办法确定哪些用户和工作站负责将文件标记为置疑。有关确定哪些用户和/或工作站使 Jet 将文件标记为置疑,请参见本文后面的“方法”。 网络硬件故障在这种情况下,文件损坏与 Jet Engine 无关;文件损坏完全是由于外界原因造成的。原因可能是由于存放数据库的计算机和打开数据库的计算机之间的硬件链中的一个或多个链接出故障。此列表包括但不局限于网卡、网络电缆、路由器和集线器。 通常,mdb 文件指示由硬件造成的损坏不能通过使用压缩、修复或 Jetcomp 来还原。直到出故障的硬件被修复或替换,硬件损坏才会被修复。 在另一个程序中打开和保存 mdb 文件当打开一个 mdb 文件并在另一个程序中保存时,不能恢复该文件。例如,Microsoft Word 允许打开并保存 Access 数据库(顺便提一下,如果在另一个应用程序中打开 MDB 文件,这样做不起任何作用,因为您看到的都是扩展字符)。当这样保存 mdb 文件时,如果在 Access 中打开它,就会提示您输入数据库密码,即使文件在 Access 中从未使用密码保护,也是如此。此处出现密码提示的原因是:当 Access 打开文件时,检查的第一个字节范围就是数据库密码所在的位置。如果该字节包含损坏的数据,Access 就会认为该文件受密码保护。即使能够绕过此处的密码提示,数据库仍无法恢复,因为二进制结构是混乱的,Access 根本无法读取。在这种情况下,恢复文件的备份副本是唯一的解决方法。有关这一问题的详细信息,请单击以下文章编号,查看 Microsoft Knowledge Base 中的相应文章: 243895 ACC2000:出现数据库密码,虽然从前从未设置过 如何确定哪些用户/工作站负责将文件标记为置疑有时,要找出数据库被破坏的原因,必须检查是谁登录到数据库中。可以使用 Access 2000 中的 Microsoft Visual Basic for Applications,输出登录到特定数据库中的用户列表, 有关如何执行这一操作和示例代码的其它信息,请单击下列文章编号查看相应的 Microsoft Knowledge Base 文章: 198755 ACC2000:使用 Jet UserRoster 检查是谁登录到数据库中 防止出现破坏可以采取的步骤
参考有关修复数据库的详细信息,请单击帮助菜单上的 Microsoft Access 帮助,在“Office 助手”或“操作向导”中输入修复,然后单击搜索查看该主题。有关修复损坏数据库的可下载工具的详细信息,请单击以下文章编号,查看相应的 Microsoft Knowledge Base 文章: 273956 ACC2000:下载中心提供的 Jet 压缩工具 有关在以前 Access 版本中排除数据库错误的其它信息,请单击下列文章编号查看相应的 Microsoft Knowledge Base 文章:279334 ACC97:如何查错/修复损坏的 Jet 3.5 数据库 109953 ACC:如何查错/修复损坏的数据库 这篇文章中的信息适用于:
|
|站长邮箱|小黑屋|手机版|Office中国/Access中国
( 粤ICP备10043721号-1 )
GMT+8, 2025-4-2 12:52 , Processed in 0.095508 second(s), 16 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.