• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 教育教学 > 正文

    巧用Access,2007采集用友A++财政财务管理软件导出XML财务数据

    时间:2020-12-05 07:52:55 来源:达达文档网 本文已影响 达达文档网手机站

    2016年8月,曲靖市审计局在对某县县长离任进行经济责任审计时,采集到某单位用友A++财政财务管理软件(V5.2)备份XML财务数据,采用AO2011数据采集模板和SQL数据库转换等多种方法,始终无法导入A02011系统。

    偶然间,笔者想到既然能用Microsoft Excel 2007电子表格处理XML文件,那么也许Microsoft Access 2007数据库也能处理XML数据,于是试了一下,果然成功,且过程十分简单,现将该方法介绍如下。

    一、利用Microsoft Access 2007数据导入功能将被审计单位提供的XML格式财务数据导入Access,还原成一个完整的财务数据库

    1.在Microsoft Access 2007中新建一个Access数据库XXGA.accdb,鼠标右键点击右边“表1:表”→“导入(M)” →“XML文件(M)”,选择要导入的XML文件“公共档案类”,将其包含的文件全部导入Access数据库XXGA.accdb。

    2.点击“创建”→“表”新建表,按(一)步骤导入“总账类”全部文件。

    二、Microsoft Access 2007数据库升迁

    XML数据转换完成后,利用Microsoft Access 2007据库升迁功能,将Microsoft Access 2007数据库XXGA.accdb升迁到SQL Server 2008 R2中。具体步骤如下:

    1.更改安全设置。点击“安全警告 已禁用了数据库的某些内容”后的“选项”按钮,点击“启用此内容”更改安全设置。

    2.点击工具栏上的“SQL Server”按钮,启动数据库升迁向导。

    3.选择(或输入)SQL数据库服务器名称、登录账户、密码和升迁后的SQL Server数据库名称(XXGA2014)。

    4.按>>按钮,将可用表全部选择到“导出SQL Server”中,点击“下一步”完成数据升迁。

    需要注意的是,在升迁Microsoft Acess 2007数据库前要关闭所有已打开的数据表,否则会出现“任何数据库对象处于打开状态时’升迁向导’均无法运行。请关闭打开的对象并重试”如下错误提示信息:

    三、SQL数据整理与AO数据采集

    完成Access数据库升迁后,即可启动SQL Server 2008 R2,对升迁后的数据库XXGA2014进行数据整理,重点检查科目表、科目余额表有无编码重复情况,科目余额表各级科目余额是否齐全,凭证表、余额表借贷是否平衡;以及时间、金额等字段类型是否正确。

    科目编码重复与各级科目余额不全,是造成AO账表重建失败的主要原因之一。如果各级科目余额不全,需要按照末级科目→一级科目的顺序逐级汇总。有关数据整理语句如下:

    (一)科目表

    select 科目编号,科目名称,余额方向 into XXGA2014.dbo.审计_会计科目表 from XXGA2014.dbo.会计科目

    (二)凭证表

    SELECT 会计年度,会计期间号 as 会计期间,left(记账凭证日期,4)+"-"+substring(记账凭证日期,5,2)+"-"+right(记账凭证日期,2) as 凭证日期, case when 记账凭证类型编号="JZ" then "记账" end as 凭证类型,记账凭证编号 as 凭证编号,记账凭证行号 as 分录号,记账凭证摘要 as 摘要,科目编号, 辅助项1编号 as 辅助核算代码,cast(借方本币金额 as decimal(18,2)) as 借方金额,cast(贷方本币金额 as decimal(18,2)) as 贷方金额,附件数,制单人,审核人,记账人,记账标志,作废标志 into XXGA2014.dbo.审计_会计凭证表 FROM XXGA2014.dbo.记账凭证 where 记账标志=1 and 作废标志=0 order by 会计年度,会计期间号,left(记账凭证日期,4)+"-"+substring(记账凭证日期,5,2)+"-"+right(记账凭证日期,2)

    (三)余额表

    1.原始数据转换

    SELECT 会计年度,会计期间号 as 会计期间,科目编号,case when 期初余额方向="借" then cast(期初本币余额 as decimal(18,2)) else "0.00" end as 期初借方余额,case when 期初余额方向="贷" then abs(cast(期初本币余额 as decimal(18,2))) else "0.00" end as 期初贷方余额 into #科目余额 FROM XXGA2014.dbo.科目余额及发生额 where 会计期间号="1" order by 会计年度,会计期间号,科目编号

    2.查看科目编码长度及重复情况

    select distinct 会计年度,LEN(科目编号) as 码长 from #科目余额 group by 会计年度,科目编号 order by 会计年度,LEN(科目编号) ---科长分别 为目6、8、10、12共4级,无1级科目

    select distinct 会计年度,科目编号,count(科目编号) as 次数 from #科目余额 group by 会计年度,科目编号 having count(科目编号)>1 order by 会计年度,科目编号

    (1)查询末级明细科目,生成5级科目余额

    SELECT会计年度,科目编号,sum(期初借方余额) as 期初借方余额,sum(期初贷方余额) as 期初贷方余额 into XXGA2014.dbo.审计_科目余额表 FROM #科目余额 group by 会计年度,科目编号 order by 会计年度,科目编号

    (2)汇总5级科目,生成4级科目余额

    insert into XXGA2014.dbo.审计_科目余额表 select 会计年度,left(科目编号,10) as 科目编号,sum(期初借方余额) as 期初借方余额,sum(期初贷方余额) as 期初贷余额 from XXGA2014.dbo.审计_科目余额表 where len(科目编号)=12 group by 会计年度,left(科目编号,10) order by 会计年度,left(科目编号,10)

    (3)汇总4级科目,生成3级科目余额

    insert into XXGA2014.dbo.审计_科目余额表 select 会计年度,left(科目编号,8) as 科目编号,sum(期初借方余额) as 期初借方余额, sum(期初贷方余额) as 期初贷余额 from XXGA2014.dbo.审计_科目余额表 where len(科目编号)=10 group by 会计年度,left(科目编号,8) order by 会计年度,left(科目编号,8)

    (4)汇总3级科目,生成2级科目余额

    insert into XXGA2014.dbo.审计_科目余额表 select 会计年度,left(科目编号,6) as 科目编号,sum(期初借方余额) as 期初借方余额, sum(期初贷方余额) as 期初贷余额 from XXGA2014.dbo.审计_科目余额表 where len(科目编号)=8 group by 会计年度,left(科目编号,6) order by 会计年度,left(科目编号,6 )

    (5)汇总2级科目,生成1级科目余额

    insert into XXGA2014.dbo.审计_科目余额表 select 会计年度,left(科目编号,4) as 科目编号,sum(期初借方余额) as 期初借方余额,sum(期初贷方余额) as 期初贷余额 from XXGA2014.dbo.审计_科目余额表 where len(科目编号)=6 group by 会计年度,left(科目编号,4) order by 会计年度,left(科目编号,4)

    (四)辅助核算信息

    由于各单位辅助核算设置不一致,因此难形成统一的转换脚本。以下脚本仅供参考。

    1.辅助信息

    SELECT distinct 档案名称 as 辅助类别,档案值编码 as 辅助代码,档案值名称 as 辅助名称 into XXGA2014.dbo.审计_辅助信息表 FROM XXGA2014.dbo.自定义档案项 a left join XXGA2014.dbo.自定义档案值 b on a.档案编码=b.档案编码 order by 档案值编码。

    2.辅助余额表

    SELECT 会计年度,会计期间号,科目编号,辅助项编号 as 辅助代码,期初余额方向, cast(期初本币余额 as decimal(18,2)) as期初余额 into 辅助余额表 FROM XXGA2014.dbo.科目余额及发生额。

    3.辅助凭证

    SELECT会计年度,会计期间号,cast (substring(记账凭证日期,1,4)+"-" + substring(记账凭证日期,5,2)+"-"+ substring(记账凭证日期,7,2) as DATE) as 记账凭证日期,记账凭证类型编号,记账凭证编号,记账凭证行号,科目编号,记账凭证摘要,辅助项编号, cast(借方本币金额 as decimal(18,2)) as 借方金额, cast(贷方本币金额as decimal(18,2)) as贷方金额,附件数,制单人,审核人,记账人 into 辅助凭证表 FROM XXGA2014.dbo.记账凭证 where 记账标志=1 and 作废标志=0

    整理完成后即可利用AO2011系统辅助导入功能将科目表、凭证表、余额表及辅助核算信息导入AO系统进行账表重建,供AO审计分析。

    (作者单位:云南省曲靖罗平县审计局)

    相关热词搜索: 用友 导出 巧用 采集 财务数据

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网