摘 要:我们在应用Access报表功能来进行报表打印时,对那些综合性较强的报表往往需要耗费极大的精力来设计,同时,当报表需要放大或缩小时,用Access的报表真是难为开发人员了,这时,用Excel制成报表模板,将Access的数据输出到Excel模版中将不失为一种解决方法,本文利用不同的编程思路予以阐述。 正 文: 方法一:导出数据到Excel报表 1. 在EXCEL模板中利用函数设计好报表(示例文件是”销售报表.xls”),将正式报表(报表1)的函数公式设定好,如: 柏林分公司的销售量:=SUMIF(que销售汇总!$A$1:$A$11,A4,que销售汇总!$B$1:$B$11) SUMIF函数说明: 根据指定条件对若干单元格求和。 语法 SUMIF(range,criteria,sum_range) Range 为用于条件判断的单元格区域。 Criteria 为确定哪些单元格将被相加求和的条件,其形式可以为数字、表达式或文本。例如,条件可以表示为 32、"32"、">32" 或 "apples"。 Sum_range 是需要求和的实际单元格。 在这里,是指如果“que销售汇总”工作表的A1:A11区域的值等于“报表1”工作表的A4单元格,则公式所在单元格的值等于“que销售汇总”工作表的B1:B11区域所有满足此条件的单元格值之和。 2. 在Access文件中写代码输入销售分公司汇总的销售数据,代码示例如下: Function out_Excel() '方法一,利用Excel函数设置好报表,再导出基础数据到EXCEL报表中 On Error GoTo out_Excel_Err Dim xlsPath As String '指定Excel文件的路径 xlsPath = CurrentProject.Path + "\销售报表.xls" '检测Excel文件是否存在,如果不存在则提醒 If Dir(xlsPath) = "" Then MsgBox "销售报表.xls文件不存在,请将Excel文件与mdb文件放在同一目录下", vbCritical, "提示" End End If DoCmd.TransferSpreadsheet acExport, 8, "que销售汇总", xlsPath, True, "" MsgBox "报表数据输出成功!", vbInformation, "恭喜" out_Excel_Exit: Exit Function out_Excel_Err: MsgBox Error$ Resume out_Excel_Exit End Function |