不同情况下修复Access数据库的实用方法

作者:34813 来源:赛迪网 时间:2008-11-28 16:18:00 

修复Access数据库,我们一般使用微软Office 97中带的Access 97对数据库进行修复和整理。Access数据库被损坏分以下几种情况:1、严重损坏;2、轻度损坏;3、有些表被损坏或有些表的部分记录被损坏。下面就分情况介绍解决办法。

1、使用Access97打不开数据库、系统提示"不可识别的数据库格式"或"不是该表的索引"等信息,这样的数据库都是损坏比较严重的。损害严重的数据库一般来说都是无法修复的,只有恢复备份了,好在这种情况比较少见。

2、如果数据库损坏的不严重,只需要使用Access 97菜单上的“修复数据库”和“压缩数据库”就可以把数据库修复好。因为数据库轻微损坏的时候,一般也不会导致软件出什么问题,所以也不会引起人的注意,只有当数据库的某一个或几个表损坏了的时候,才会使软件变得不稳定,所以这种情况才是我们最常遇到的。

3、如何确定数据库中哪几个表有问题呢,我们首先利用Access 97建立一个空数据库,利用系统提供的“引入数据库”功能,选择目标数据库所有的表进行引入,Access 97当引入到有问题的表时系统会提示一些错误信息,把这个表的名字记下来以备以后修复时使用。

接下来利用Access97打开有问题的数据库,准备修复表。修复损坏的表的方法依照表损坏程度不同而不同,下面分情况介绍处理的办法:

一、表损坏的非常严重,表现为无法打开表,系统提示“Microsoft jet 找不到对象”、“没有读写权限”或“不可识别”等信息。

处理方法:这种表的已经损坏得非常严重了,一般无法修复。如果这个表不很重要或通常情况下表的内容为空的话,例如“常用凭证表”、“科目共享锁定表”或“凭证共享锁定表”,我们可以通过引入的方法把其他数据库的表引入,然后把有问题的表删除即可。

二、表中有几行内容非常混乱或字段内标有“#已删除”字样,但当要删除这些记录时就会出现错误信息不许删除。

处理办法:既然不让删除这些记录,我们可以通过使用SQL语句把没有问题的记录复制到一个新的表中,然后把老表删除把新表的名字改过来即可。例如“凭证及明细账表GL_ACCVOUCH”中有错误记录有无法删除,我们可以使用如下SQL语句把好的记录复制到GL_ACCTEMP中:

#cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">

以下为引用的内容:
SELECT GL_ACCVOUCH.* INTO GL_ACCTEMP
FROM GL_ACCVOUCH WHERE {筛选的条件}
然后删除表GL_ACCVOUCH,再把表GL_ACCTEMP的
名字改为GL_ACCVOUCH即可解决问题。


修复ACCESS数据库的注意事项,首先,我们在修复数据库前一定要做好备份,以防数据丢失或损坏;有一些数据库中有RELATION(关系)来维护数据的一致性,但当数据库异常后相关表的RELATION也就丢失了,在修复好数据库后一定要把RELATION再联好,有些软件可以自动修复RELATION,比如用友公司的ERP8.XX系列产品的数据库可以通过把表accinformation中的[cSysid]='AA' and [项目号]='99'的记录,把[设置值]和[缺省值]改为'8.0A0',重新进入系统时,系统会自动升级并重建索引。

标签:
0
投稿

猜你喜欢

  • asp中获取内容中所有图片与获取内容中第一个图片的代码

    2011-02-20 10:51:00
  • 分享整理的12条sql语句连同数据

    2012-07-11 16:14:59
  • 网站构成的基本元素—网页布局

    2008-01-04 09:49:00
  • asp如何用FileSystemObject组件来做一个站内搜索?

    2010-06-12 12:47:00
  • JavaScript面向对象的简单介绍

    2008-06-27 12:37:00
  • asp+xml自动将远程页面中的图片下载到本地

    2007-08-23 13:34:00
  • FSO组件之文件操作(上)

    2010-05-03 11:01:00
  • wap开发 完整的WML文档结构详解

    2008-05-21 13:39:00
  • overflow的另类用法

    2008-07-02 12:29:00
  • 如何利用SysOjects来获知数据库的信息?

    2010-01-01 15:43:00
  • 成功实现ajax,xmlhttp跨域访问(php,asp,jsp)

    2008-02-13 18:40:00
  • MS IIS server Frontpage Ext Server漏洞

    2008-05-04 09:54:00
  • 使用CSS简单实现垂直居中

    2008-06-23 07:32:00
  • JS复制特定内容到粘贴板

    2011-04-02 11:09:00
  • 个人网站与动网整合非官方方法

    2009-07-05 18:42:00
  • 那些看一眼就让你难忘的广告

    2007-09-21 19:46:00
  • 网站开发防止中文乱码需要了解的codepage的重要性小结

    2011-03-03 11:24:00
  • 设计师和美工

    2008-10-27 13:43:00
  • xml文件调用css

    2008-09-05 17:12:00
  • CSS和HTML与前端技术层图示

    2010-04-05 21:54:00
  • asp之家 网络编程 m.aspxhome.com