Access數(shù)據(jù)庫被損壞的修復(fù)方法
Access數(shù)據(jù)庫被損壞主要分為以下幾種情況:1、嚴(yán)重?fù)p壞;2、輕度損壞;3、有些表被損壞或有些表的部分記錄被損壞。下面就分情況介紹解決辦法。
1、使用Access97打不開數(shù)據(jù)庫、系統(tǒng)提示"不可識別的數(shù)據(jù)庫格式"或"不是該表的索引"等信息,這樣的數(shù)據(jù)庫都是損壞比較嚴(yán)重的。損害嚴(yán)重的數(shù)據(jù)庫一般來說都是無法修復(fù)的,只有恢復(fù)備份了,好在這種情況比較少見。
2、如果數(shù)據(jù)庫損壞的不嚴(yán)重,只需要使用Access 97菜單上的“修復(fù)數(shù)據(jù)庫”和“壓縮數(shù)據(jù)庫”就可以把數(shù)據(jù)庫修復(fù)好。因?yàn)閿?shù)據(jù)庫輕微損壞的時候,一般也不會導(dǎo)致軟件出什么問題,所以也不會引起人的注意,只有當(dāng)數(shù)據(jù)庫的某一個或幾個表損壞了的時候,才會使軟件變得不穩(wěn)定,所以這種情況才是我們最常遇到的。
3、如何確定數(shù)據(jù)庫中哪幾個表有問題呢,我們首先利用Access 97建立一個空數(shù)據(jù)庫,利用系統(tǒng)提供的“引入數(shù)據(jù)庫”功能,選擇目標(biāo)數(shù)據(jù)庫所有的表進(jìn)行引入,Access 97當(dāng)引入到有問題的表時系統(tǒng)會提示一些錯誤信息,把這個表的名字記下來以備以后修復(fù)時使用。
接下來利用Access97打開有問題的數(shù)據(jù)庫,準(zhǔn)備修復(fù)表。修復(fù)損壞的表的方法依照表損壞程度不同而不同,下面分情況介紹處理的辦法:
一、表損壞的非常嚴(yán)重,表現(xiàn)為無法打開表,系統(tǒng)提示“Microsoft jet 找不到對象”、“沒有讀寫權(quán)限”或“不可識別”等信息。
處理方法:這種表的已經(jīng)損壞得非常嚴(yán)重了,一般無法修復(fù)。如果這個表不很重要或通常情況下表的內(nèi)容為空的話,例如“常用憑證表”、“科目共享鎖定表”或“憑證共享鎖定表”,我們可以通過引入的方法把其他數(shù)據(jù)庫的表引入,然后把有問題的表刪除即可。
二、表中有幾行內(nèi)容非?;靵y或字段內(nèi)標(biāo)有“#已刪除”字樣,但當(dāng)要刪除這些記錄時就會出現(xiàn)錯誤信息不許刪除。
處理辦法:既然不讓刪除這些記錄,我們可以通過使用SQL語句把沒有問題的記錄復(fù)制到一個新的表中,然后把老表刪除把新表的名字改過來即可。例如“憑證及明細(xì)賬表GL_ACCVOUCH”中有錯誤記錄有無法刪除,我們可以使用如下SQL語句把好的記錄復(fù)制到GL_ACCTEMP中:
以下為引用的內(nèi)容:
SELECT GL_ACCVOUCH.* INTO GL_ACCTEMP
FROM GL_ACCVOUCH WHERE {篩選的條件}
然后刪除表GL_ACCVOUCH,再把表GL_ACCTEMP的
名字改為GL_ACCVOUCH即可解決問題。
注釋:修復(fù)Access數(shù)據(jù)庫的注意事項(xiàng),首先,我們在修復(fù)數(shù)據(jù)庫前一定要做好備份,以防數(shù)據(jù)丟失或損壞;有一些數(shù)據(jù)庫中有RELATION(關(guān)系)來維護(hù)數(shù)據(jù)的一致性,但當(dāng)數(shù)據(jù)庫異常后相關(guān)表的RELATION也就丟失了,在修復(fù)好數(shù)據(jù)庫后一定要把RELATION再聯(lián)好,有些軟件可以自動修復(fù)RELATION,比如用友公司的ERP8.XX系列產(chǎn)品的數(shù)據(jù)庫可以通過把表accinformation中的[cSysid]='AA' and [項(xiàng)目號]='99'的記錄,把[設(shè)置值]和[缺省值]改為'8.0A0',重新進(jìn)入系統(tǒng)時,系統(tǒng)會自動升級并重建索引。
關(guān)鍵詞:Access數(shù)據(jù)庫
閱讀本文后您有什么感想? 已有 人給出評價!
- 1
- 1
- 1
- 1
- 1
- 1