2010年初,我们在对某单位电子数据进行导入过程中,发现辅助账无法导入AO系统,而该单位的专项资金均以辅助账的形式核算。而对专项资金的审计又是此次审计的重点,因此我们只能从后台数据库寻求途径解决此问题。 一、利用后台数据库制作辅助账的主要步骤与做法 (一)取得并打开数据库 审前调查中,我们得知该单位使用万能财务软件进行核算,版本为winner-2000网络版,财务软件备份情况为在服务器和负责人的电脑上备份。从负责人处拷贝该单位备份数据后,由于后台数据库为Access,将备份数据后缀名改为*.mdb,并向万能软件公司工作人员索取数据库密码后将数据库打开。 (二)分析数据库 对数据库里的表进行分析。首先寻找凭证表与科目表,发现该数据库的凭证表与科目表分别有2张,分别为Voucher表(凭证表)、VoucherDetail表(凭证明细表)与Account表(科目表)、AccountDaily表(科目发生额表);涉及辅助账的表有2张,为Classl表(统计表1)、Department表(部门表)。以上共有6张表,对表名及表的字段名分析如下: 1.Class1表——统计表1
2.Department表——部门表
3.Account表——科目表
4.AccountDaily表——科目发生额表
5.Voucher表——凭证表与VoucherDetail表——凭证明细表
(三)导入SQL-Server并编写SQL语句 将上述几张表导入SQL-Server数据库进行连接后发现,由于凭证表与科目表存在多对一的关系,连接会造成大量的数据重复,影响审计结果,所以最终只连接了4张表,未连接2张凭证表。 编写的SQL语句如下: 1.将科目表、科目发生额表与统计表1连接,生成临时表#t Select a.发生日期,d.科目编码,d.科目全称,b.统计编码,b.统计全称,a.部门号,a.借方金额,a.贷方金额 into#t From AccountDaily a inner join Account d on a.凭证号=d.凭证号inner join Class 1 b on a.统计号=b.统计号 2.将#t表与部门表连接,生成新表“科目统计表” select a.*,c.部门编码,c.部门全称 into科目统计表 from#t a left join dbo.Deoartment con a.部门号=c.lngDeoartmentID (由于按统计项目核算的项目资金不一定按部门核算,所以与部门表连接时要用外连接才能保证连接后数据的完整性) 3.生成的新表如下: (四)将科目统计表导出为excel格式制作余额表与科目表(见图1) 将生成的新表“科目统计表”导出为excel格式,发现该表中无期初余额与期末余额,通过观察并与电子账核对发现表中发生日期为2008年12月31日的借方或贷方金额即为2009年期初科目余额,发生日期为2009年的为本年发生额,期末余额可以根据上述数据计算得出。由于使用excel表查看存在不明确与不直观的问题,因此我们尝试以做好的“科目统计表”为基础,将统计账导入AO,使其能够以账目的直观形式展示,方便审计组的使用。 利用科目统计表生成余额表与科目表: 第一步,由上所述,我们利用电子表格的筛选功能,生成结余部分2009年期初余额。 第二步,利用concatenate函数生成一套含有统计科目与统计编码的结余部分新科目表。 第三步,Account表中的其余科目与新科目表对接,生成一套完整的科目表。明细科目含统计科目名称。如图2: (五)利用审计中间表制作凭证库 1.利用原库表制作审计中间表,包含凭证时间、科目编码、科目名称、部门号、统计编码、统计科目、摘要、凭证号等关键字段。如图3: (统计编码和统计科目)