掃碼下載APP
及時接收最新考試資訊及
備考信息
今年在對某單位開展計算機審計時,了解到被審計單位財務核算軟件為用友8.0,后臺數據庫為SQL Server 2000。筆者使用用友8.x SQLServer備份模板將該單位財務數據導入到AO中,但在進行會計科目審查時發(fā)現,由于被審計單位對預付賬款、其他應收款、應付賬款等往來核算項目實行了輔助核算,因此在AO科目審查中無法查看到往來核算明細科目。
在這種情況下,審計人員要對往來核算明細進行審查,就仍然要翻閱手工明細賬,給審計工作帶來了很大的不便,也極大地影響了審計效率的提高。筆者經過對財務軟件后臺數據庫表進行分析,探索出了利用Access查詢生成新的科目表、余額表及憑證表,從而實現在AO中導入往來輔助賬的方法,介紹出來供讀者參考。
一、確定導入往來輔助賬所需要的數據表及表間關系
?。ㄒ唬┗緮祿恚?
1.code 科目表;
2.GL_accsum 科目余額表;
3.GL_accvouch 憑證表
?。ǘ┩鶃磔o助核算表:
1.Customer 單位往來編碼表
2.Person 個人往來編碼表
3.Vendor 應付款項編碼表
(三)輔助核算表與憑證表之間的關系如下所示:
序號 | 憑證表 | 關聯字段 | 輔助核算表 | 關聯字段 |
1 | GL_accvouch | cperson_id | Personc | PersonCode |
2 | GL_accvouch | ccus_id | Customer | CusCode |
3 | GL_accvouch | csup_id | Vendor | VenCode |
二、具體步驟
(一)采集原始數據并進行數據整理
1.采集數據。從被審計單位采集用友8.0財務軟件的SQL Server備份數據,拷貝到審計人員的電腦中進行數據庫還原,然后選擇code、GL_accsum、GL_accvouch、Customer、Person、Vendor共六張表導出到Access數據庫中。
2.數據整理。由于被審計單位在對輔助核算科目進行編碼時存在個別不規(guī)則的現象,因此要對數據進行規(guī)范化整理。例如Customer表的cCusCode字段應以“KH”加數字編碼組成,對其進行整理時,執(zhí)行如下查詢:
Select * from Customer where cCusCode not like 'KH*'
篩選出編碼不規(guī)則的記錄,利用編輯菜單的替換功能進行批量更改。Person表的cPersonCode字段應以“GR” 加數字編碼組成,Vendor表的cVenCode字段應以“GYS”加數字編碼組成,整理方法同Customer表。
?。ǘ┥尚碌臄祿?
1.生成新科目余額表
?、派捎囝~表。查詢語句如下:
SELECT GL_accsum.ccode AS 科目編碼, GL_accsum.mb AS 期初余額, GL_accsum.cendd_c AS 余額方向 INTO 余額表 FROM GL_accsum
WHERE (((GL_accsum.iperiod)=1))
ORDER BY GL_accsum.ccode;
?、粕赏鶃碛囝~明細表。查詢語句如下:
SELECT GL_accvouch.ccode AS 科目編碼, GL_accvouch.md AS 借方余額, GL_accvouch.mc AS 貸方余額, GL_accvouch.cperson_id AS 個人往來編碼, Person.cPersonName, GL_accvouch.csup_id AS 應付單位編碼, Vendor.cVenName, GL_accvouch.ccus_id AS 單位往來編碼, Customer.cCusName, GL_accvouch.dbill_date INTO 往來余額明細表
FROM Vendor RIGHT JOIN (Customer RIGHT JOIN (Person RIGHT JOIN GL_accvouch ON Person.cPersonCode = GL_accvouch.cperson_id) ON Customer.cCusCode = GL_accvouch.ccus_id) ON Vendor.cVenCode = GL_accvouch.csup_id WHERE (((GL_accvouch.dbill_date) Like '2007-12-31'));
?、巧尚峦鶃碛囝~表。查詢語句如下:
SELECT
IIf([單位往來編碼] Is Not Null,IIf(Len([單位往來編碼])=3,余額表.科目編碼+'0'+Right([單位往來編碼],1),余額表.科目編碼+Right([單位往來編碼],2)),
IIf([應付單位編碼] Is Not Null,IIf(Len([應付單位編碼])=4,余額表.科目編碼+'0'+Right([應付單位編碼],1),余額表.科目編碼+Right([應付單位編碼],2)),
IIf(Len([個人往來編碼])=3,余額表.科目編碼+'0'+Right([個人往來編碼],1),余額表.科目編碼+Right([個人往來編碼],2)))) AS 新科目編碼,
IIf([借方余額]>0,[借方余額],[貸方余額]) AS 余額,
IIf([借方余額]>0,'借','貸') AS 方向,
IIf([cpersonname] Is Not Null,[cpersonname],IIf([cvenname] Is Not Null,[cvenname],[ccusname])) AS 科目名稱 INTO 新往來余額表
FROM 往來余額明細表 INNER JOIN 余額表 ON 往來余額明細表.科目編碼 = 余額表.科目編碼;
?、壬尚掠囝~表。查詢語句如下:
SELECT * INTO 新余額表 FROM [SELECT * from 余額表
union select 新科目編碼,余額,方向 from 新往來余額表]. AS A
ORDER BY A.科目編碼;
2.生成新憑證表
?、派尚聭{證中間表。查詢語句如下:
SELECT GL_accvouch.dbill_date AS 編制日期, GL_accvouch.ino_id AS 憑證編號, GL_accvouch.ccode AS 科目編碼, GL_accvouch.md AS 借方金額, GL_accvouch.mc AS 貸方金額, GL_accvouch.cdigest AS 摘要, GL_accvouch.cperson_id AS 個人編碼, Person.cPersonName, GL_accvouch.ccus_id AS 單位往來編碼, Customer.cCusName, GL_accvouch.csup_id AS 應付款編碼, Vendor.cVenName INTO 新憑證中間表
FROM Vendor RIGHT JOIN (Person RIGHT JOIN (Customer RIGHT JOIN GL_accvouch ON Customer.cCusCode = GL_accvouch.ccus_id) ON Person.cPersonCode = GL_accvouch.cperson_id) ON Vendor.cVenCode = GL_accvouch.csup_id
WHERE (((GL_accvouch.dbill_date) Like '2008*') AND ((GL_accvouch.ino_id) Is Not Null))
ORDER BY GL_accvouch.dbill_date, GL_accvouch.ino_id;
?、粕尚聭{證表。查詢語句如下:
SELECT 新憑證中間表.編制日期, 新憑證中間表.憑證編號,
IIf([單位往來編碼] Is Not Null,IIf(Len([單位往來編碼])=3,[科目編碼]+'0'+Right([單位往來編碼],1),[科目編碼]+Right([單位往來編碼],2)),
IIf([應付款編碼] Is Not Null,IIf(Len([應付款編碼])=4,[科目編碼]+'0'+Right([應付款編碼],1),[科目編碼]+Right([應付款編碼],2)),
IIf([個人編碼] Is Not Null,IIf(Len([個人編碼])=3,[科目編碼]+'0'+Right([個人編碼],1),[科目編碼]+Right([個人編碼],2)),[科目編碼])
)) AS 新科目編碼,
新憑證中間表.借方金額, 新憑證中間表.貸方金額, 新憑證中間表.摘要 INTO 新憑證表 FROM 新憑證中間表;
3.生成新科目表
?、派煽颇勘?。查詢語句如下:
SELECT code.ccode AS 科目編碼, code.ccode_name AS 科目名稱 INTO 科目表 FROM code;
?、粕尚驴颇勘?。查詢語句如下:
SELECT * INTO 新科目表
FROM (SELECT DISTINCT
iif([單位往來編碼] Is Not Null,IIf(Len([單位往來編碼])=3,科目表.科目編碼+'0'+Right([單位往來編碼],1),科目表.科目編碼+Right([單位往來編碼],2)),
IIf([應付款編碼] Is Not Null,IIf(Len([應付款編碼])=4,科目表.科目編碼+'0'+Right([應付款編碼],1),科目表.科目編碼+Right([應付款編碼],2)),
IIf([個人編碼] Is Not Null,IIf(Len([個人編碼])=3,科目表.科目編碼+'0'+Right([個人編碼],1),科目表.科目編碼+Right([個人編碼],2)),科目表.科目編碼))) AS 新科目編碼,
iif([單位往來編碼] Is Not Null,[ccusname],
iif([應付款編碼] Is Not Null,[cVenName],
iif([個人編碼] Is Not Null,[cPersonName],[科目名稱])
)) AS 新科目名稱
FROM 新憑證中間表 RIGHT JOIN 科目表 ON 新憑證中間表.科目編碼 = 科目表.科目編碼
union select * from 科目表 union select 新科目編碼,科目名稱 from 新往來余額表) AS A;
(三)利用AO采集轉換功能生成電子賬套
將以上在Access數據庫中整理后形成的新科目表、新余額表和新憑證表,通過財務軟件數據庫采集方式導入AO,然后利用輔助導入向導按照提示輸入即可完成。
?。ㄋ模祿藢?
數據導入AO完成后,需對操作的準確性進行判斷??蓮腁O 的“審計分析/賬表分析/報表審查”菜單生成被審計單位的資產負債表,與該單位的紙制報表進行核對;或“審計分析/賬表分析/會計科目審查”界面,將科目樹中的信息與被審計單位提供的紙制會計賬簿進行核對。如果相符,則證明數據導入成功。
三、幾點體會
審計人員在數據采集過程中遇到需要采集輔助賬的情況時,只要通過對數據庫表進行認真分析,找出導入數據所需的關鍵數據表及其相互關系,就可以實現將輔助核算數據導入AO中。例如本例中通過Access查詢實現導入往來輔助賬后,審計人員可以方便地在AO中對往來明細科目進行審查,極大地提高審計工作效率。
上一篇:加快計算機速度的六小技巧
Copyright © 2000 - galtzs.cn All Rights Reserved. 北京正保會計科技有限公司 版權所有
京B2-20200959 京ICP備20012371號-7 出版物經營許可證 京公網安備 11010802044457號