VBA自定义用友报表函数_第1页
VBA自定义用友报表函数_第2页
VBA自定义用友报表函数_第3页
VBA自定义用友报表函数_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

原创VBA自定义用友报表函数2008-09-17 13:15分类:VBA学习 字号: 大大 中中 小小 取科目的期末值,支持未记账取数和辅助核算,熟悉VBA设计和用友数据库结构的网友可据此开发出更多实用的报表函数。我将其命名为UfoInExcel程序,意思是在Excel中可以像UFO一样取数,而实用性更胜于UFO,因为Excel的优越性地球人都知道。Function qm(科目代码, 月份, Optional 年度 As String, Optional 帐套号 As String, Optional 包含未记帐 As String = Y, Optional 辅助核算方式 As String, Optional 辅助核算编码 As String)If 年度 Year(Date) Then Exit FunctionIf 年度 = Year(Date) And 月份 = Month(Date) Then Exit FunctionDim csqlstr As String qm = 0 If Trim(科目代码) = Then Exit Function If Trim(月份) = Then Exit Function If Trim(年度) = Then Exit Function If Trim(帐套号) = Then Exit Function Set conn = New ADODB.Connection With conn .ConnectionString = driver=SQL Server;server=U8SERVER;uid=sa;pwd=123456;database=UFDATA & _ & 帐套号 & _ & Trim(年度) .Open strConn End With If Trim(辅助核算方式) And Trim(辅助核算编码) = Then qm = 缺少核算编码 conn.Close Set conn = Nothing Exit Function End If If UCase(Trim(包含未记帐) = Y Then 如果包含未记账 年初 csqlstr = SELECT sum(CASE WHEN cbegind_c贷 THEN mb ELSE -mb End) FROM If Trim(辅助核算方式) = And Trim(辅助核算编码) = Then csqlstr = csqlstr & gl_accsum Else 如果要取辅助核算的数,要换一个数据库 csqlstr = csqlstr & gl_accass End If csqlstr = csqlstr & WHERE iperiod = 1 and ccode = & SqlStr(科目代码) 注意辅助编码若以0开头,必须加上引号 If Trim(辅助核算方式) = And Trim(辅助核算编码) = Then csqlstr = csqlstr ElseIf Trim(辅助核算方式) = 客户 Then csqlstr = csqlstr & and ccus_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 供应商 Then csqlstr = csqlstr & and csup_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 个人 Then csqlstr = csqlstr & and cperson_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 项目 Then csqlstr = csqlstr & and citem_id= & & Trim(辅助核算编码) & End If Set rst = New ADODB.Recordset With rst .ActiveConnection = conn .Open csqlstr End With If IsNumeric(rst.Fields(0).Value) = True Then If Left(Trim(科目代码), 1) 2 And Left(Trim(科目代码), 1) 3 Then qm = rst.Fields(0).Value Else qm = -rst.Fields(0).Value End If End If Set rst = Nothing +发生 csqlstr = select sum(md-mc) FROM gl_accvouch where iperiod = 1 and iperiod = & 月份 & AND iflag is null AND ccode If ifbend(conn, 科目代码) = 1 Then csqlstr = csqlstr & = & SqlStr(科目代码) Else csqlstr = csqlstr & like & SqlStr(科目代码 & %) End If 注意辅助编码若以0开头,必须加上引号 If Trim(辅助核算方式) = And Trim(辅助核算编码) = Then csqlstr = csqlstr ElseIf Trim(辅助核算方式) = 客户 Then csqlstr = csqlstr & and ccus_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 供应商 Then csqlstr = csqlstr & and csup_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 个人 Then csqlstr = csqlstr & and cperson_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 项目 Then csqlstr = csqlstr & and citem_id= & & Trim(辅助核算编码) & End If Set rst = New ADODB.Recordset With rst .ActiveConnection = conn .Open csqlstr End With If IsNumeric(rst.Fields(0).Value) = True Then If Left(Trim(科目代码), 1) 2 And Left(Trim(科目代码), 1) 3 Then qm = qm + rst.Fields(0).Value Else qm = qm - rst.Fields(0).Value End If End If Set rst = Nothing Else 如果不包含未记账 csqlstr = SELECT SUM(CASE WHEN a.cendd_c 贷 THEN a.me ELSE - a.me END) & _ AS SumVal & _ FROM code b INNER JOIN & _ gl_accass a ON b.ccode = a.ccode & _ WHERE a.iperiod = & 月份 & AND a.ccode = & SqlStr(科目代码) 注意辅助编码若以0开头,必须加上引号 If Trim(辅助核算方式) = And Trim(辅助核算编码) = Then csqlstr = csqlstr ElseIf Trim(辅助核算方式) = 客户 Then csqlstr = csqlstr & and ccus_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 供应商 Then csqlstr = csqlstr & and csup_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 个人 Then csqlstr = csqlstr & and cperson_id= & & Trim(辅助核算编码) & ElseIf Trim(辅助核算方式) = 项目 Then csqlstr = csqlstr & and citem_id= & & Trim(辅助核算编码) & End If Set rst = New ADODB.Recordset With rst .ActiveConnection = conn .Open csqlstr End With If IsNumeric(rst.Fields(0).Value) = True Then If Left

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论