- 默認(rèn)名稱
【現(xiàn)象】:
在財務(wù)期末結(jié)賬時提示:
錯誤代碼:3631(E2FH)
Source :Microsoft OLE DB Provider for SQL Server
Detail :違反了 PRIMARY KEY 約束 'pk_Balance'。
不能在對象 't_Balance' 中插入重復(fù)鍵。
能繼續(xù)反結(jié)帳到以前期間,反結(jié)后也能繼續(xù)結(jié)帳到本期,但從本期向下一期結(jié)賬時系統(tǒng)仍然報以上的錯誤。
【分析】:
1、從提示的Detail可以看出,這是因為賬套中存在錯誤的數(shù)據(jù),從而導(dǎo)致如果結(jié)賬的話將在數(shù)據(jù)庫中產(chǎn)生重復(fù)的記錄。
2、這種情況基本上都發(fā)生在余額表中保存了當(dāng)前期間以后的數(shù)據(jù)。造成產(chǎn)生這樣的數(shù)據(jù)的可能原因是曾經(jīng)進(jìn)行過期末結(jié)賬,但是在結(jié)賬過程中遇到意外錯誤造成程序無法將數(shù)據(jù)還原。
3、賬套結(jié)賬的原理:根據(jù)當(dāng)期期末數(shù)據(jù),形成下期的期初數(shù)據(jù)。那么在進(jìn)行期末結(jié)賬之前,在余額表中不應(yīng)該存在當(dāng)前期間以后的數(shù)據(jù)。
【處理】:
這種情況下的錯誤,一般需要使用SQL語句來處理。建議在備份賬套的情況下,在查詢分析器中選擇正確的賬套數(shù)據(jù)庫實體后,執(zhí)行以下SQL再結(jié)賬。
go
declare @Fyear int,@Fperiod int
select @Fyear=fvalue from t_systemprofile where fkey='currentyear' and fcategory='gl'
select @Fperiod=fvalue from t_systemprofile where fkey='currentperiod' and fcategory='gl'
delete from t_balance where fyear*100+fperiod>@Fyear*100+@Fperiod
delete from t_profitandloss where fyear*100+fperiod>@Fyear*100+@Fperiod
delete from t_quantitybalance where fyear*100+fperiod>@Fyear*100+@Fperiod
go
注:這種錯誤的處理,同樣適用于KIS商貿(mào)版、K/3賬套。
服務(wù)熱線
400-999-2067
Copy right 2013-2018 山東順迪信息科技股份有限公司版權(quán)所有 魯ICP備19006782號-1