A: Access數(shù)據(jù)庫(kù)中,如果一個(gè)字段是自動(dòng)編號(hào)ID,當(dāng)一條記錄被刪除時(shí),自動(dòng)編號(hào)也被刪除了,如何使自動(dòng)編號(hào)不被刪除? Q: 在最后加一個(gè)del字段,默認(rèn)值為0,表示沒被刪除,當(dāng)刪除某條記錄時(shí)其實(shí)并不是真正的刪除它,而是把del字段的值改為1,表示已經(jīng)刪除。 查詢的時(shí)候不查詢del字段值為1的字段,這樣的話那個(gè)字段的信息就不會(huì)顯示出來,也就等于是虛擬的刪除了。等下次添加新記錄的時(shí)候就查詢del字段為1的第一個(gè)記錄,如果存在,就把它的信息用新的信息覆蓋,然后再把del字段的值更新成0,如果不存在,就用addnew新建立一條記錄,把這條記錄寫進(jìn)去。這樣的話不會(huì)造成id丟失。 而且另一方面還可以多出一個(gè)回收站,那里面可以顯示所有del字段標(biāo)記為1的記錄,也就是已經(jīng)刪除還沒被新記錄覆蓋的記錄,如果你后悔的話,還可以趕在它被新記錄覆蓋之前把它的del字段的值改為0,這樣的話它就又原樣不動(dòng)的被恢復(fù)出來了,方便又安全,我覺得還是比較不錯(cuò)的。 如果實(shí)在是已經(jīng)用很多記錄標(biāo)號(hào)被物理的刪除了,也是可以恢復(fù)的,不過比較難,需要使用微軟的dategard控件,調(diào)用這樣控件打開數(shù)據(jù)庫(kù)后,可以直接在自動(dòng)編號(hào)字段里輸入你想要的值,比方1這個(gè)自動(dòng)標(biāo)號(hào)已經(jīng)被刪除了,你只需要輸入1,那么1這樣自動(dòng)編號(hào)馬上就將在access里起死回生。我這樣做過幾次,不過由于比較麻煩,就不這樣做了,仍是選擇使用del字段標(biāo)記的方法。 |
|