版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于VB和EXCEL的通用数据库报表设计常熟高等专科学校钱忆平215500摘要本文讨论了一种基于VB和EXCEL的通用数据库报表设计方案,并结合开发实例,给出了VB调用ACESS数据库实现通用数据库报表设计的程序实现方法。关键词数据库报表VB EXCEL1.引言在各种数据库管理系统中,经常涉及到数据信息的分析、统计,最后将结果信息制作成报表汇总输出。在用Visual Basic设计的数据库管理系统中,报表的设计方法通常有两种。一是用VB自身的数据环境设计器(Data Environment Designer和数据库报表设计器(Report Designer实现;二是采用第三方的ActiveX报
2、表控件,在此基础上直接进行设计。但是,两种报表设计方法都存在缺点。前者报表设计方法较为烦琐,在设计一些具有多项汇总的数据报表时,功能不足,报表的格式控制较为困难。后者的报表设计方法较为简便,有多种报表格式可以套用,但用户制作报表的要求和格式各不相同,难以在报表的格式和功能上真正满足用户的要求。所以,有必要寻找一种灵活方便的、能满足用户需求的、便于程序控制的报表设计方法,解决报表设计中存在的问题。利用VB和EXCEL进行通用数据库报表设计是一种有效的解决方案。2.通用数据库报表设计的一般方法VB和EXCEL都是微软公司的典型产品,VB有较强的数据管理、控制和应用程序开发能力;EXCEL 是一个电
3、子表格软件,具有强大的数据处理和格式输出功能,能根据用户的要求灵活、方便地制作出各种格式的数据报表。EXCEL有自身的对象库,能够在VB中直接调用。通过在VB中建立EXCEL的APPLICATION对象及相关子对象,用VB对数据库数据进行管理和调用,实现数据库数据从VB到EXCEL的直接输出,然后由EXCEL对数据格式化,实现通用数据库报表输出功能。通用数据库报表设计的流程框图如图1。 3.实现步骤(1用ADO数据接口与数据库建立连接众所周知,要实现对数据库数据的管理和调用,可以用多种不同的编程语言和不同的数据库管理系统完成,各种编程语言对数据库系统的数据调用方法也有多种,有DAO、RDO、A
4、DO等。ADO是一种高层次的、独立于编程语言的、访问所有种类企业信息的数据访问接口。它基于通用对象模型(COM,简化了OLE DB的操作。OLE DB程序中使用了大量的COM接口,而ADO 封装了这些接口。VB通过ADO接口可以很方便的与数据库数据通信,实现数据的管理和调用。(2建立报表数据源。数据库的报表输出实质是按用户的要求,根据报表输出内容,实现对数据库数据的条件查询。所以,需要通过ADO建立相应的记录集(RECORDSET和命令(COMMAND对象,结合SELECT-SQL语句,建立报表数据源。(3在EXCEL 中建立报表格式样板文件充分利用EXCEL强大的报表格式功能,按照报表样张的
5、格式要求,在EXCEL中建立报表的样板文件,确定报表的纸张大小、页边距、报表的边框、填充、对齐方式及数据格式等相关内容。这样既能灵活的满足用户对报表输出的格式要求,同时又极大的简化了报表设计的程序控制,减少了报表设计的编程工作量。(4 建立APPLICATION 对象,实现数据填充在VB 中建立EXCEL 的APPLICATION 对象及相关子对象,利用VB 对APPLICATION 对象进行编程控制,实现数据从数据源到EXCEL 单元格的数据填充。图2列出了在报表设计中EXCEL 的部分主要对象模型,各对象功能如表1。 表1 EXCEL 主要对象功能表 (5 报表的预览和打印输出报表的预览和
6、打印,既可以由VB直接编程控制EXCEL 在后台运行完成,也可以由用户EXCEL 运行环境下参与控制,并对报表作适当修改和完善,最后完成打印输出。4. 主要程序的实现及报表设计实例以下结合“织机用2650电磁铁电磁参数测试系统”中的报表设计为例,用VB 调用ACESS 数据库,说明通用数据库报表设计的程序实现方法。织机用2650电磁铁电磁参数管理系统是一个计算机在线测试和数据管理系统,实现对2650电磁铁的直流电压、直流电流、冷态电阻、绝缘电阻、通电磁场、剩磁等六个电磁参数及温度等非电量参数的在线测试和数据管理。系统要求既能输出指定日期的各被测电磁铁的明细报表,也能输出指定日期的被测电磁铁的统
7、计报表。电磁铁参数统计报表的格式如图3。测量数据存放在ACESS 数据库MYDB1.MDB 的PARAMETER2数据表中。图3 电磁参数统计报表格式图 图2 EXCEL部分主要对象模型图(1与ACESS数据库建立连接Public Sub Main(Dim db2 as ADODB.connectionDim rs2_sql As StringDim ccc As StringDim cnstring2 As StringRs2_sql = "select * from parameter2 where left(bianhao,8=" & Format(Date,
8、 "yyyymmdd" & " order by bianhao"ccc = App.Pathcnstring2 = cn1 + ccc + "" + "mydb1.mdb"Set db2 = New ADODB.ConnectionDb2.ConnectionString = cnstring1Db2.OpenEnd Sub(2建立数据源数据源的建立要根据报表的输出要求确定,可以用ADO的RECORDSET或COMMAND对象实现。一个统计报表通常需要根据报表的统计要求,利用SELECT-SQL语句,从数
9、据库中有条件的选择数据建立多个数据源,才能完成对报表的数据填充。以图3中20型电磁铁各参数的平均值为例建立数据源。Dim benban_sql As StringDim riqi As StringDim rstemp2 as adodb.recordsetriqi = CStr(Text1.Text Text1为程序界面上设计的一个文本框,接收用户输入的日期If riqi <> "" Then'统计20类型,全部质量,全部批号各参数的平均值benban_sql = "SELECT count(bianhao as bianhao_cou, a
10、vg(voltage as vol_avg, avg(current_i as i_avg , avg(resistance_l as r_l_avg,avg(resistance_h as r_h_avg,avg(b_l as b_l_avg, avg(b_h as b_h_avg From parameter2 "benban_sql = benban_sql & " where " & "trim(type='20' And Left(bianhao, 8 = " + Trim(riqiSet rstemp
11、2 = New ADODB.RecordsetRstemp2.ActiveConnection = db2Rstemp2.Source = benban_sqlRstemp2.CursorType = adOpenStaticRstemp2.CursorLocation = adUseClientRstemp2.LockType=adLockOptimisticRstemp2.Openendif(3建立报表格式样板文件在EXCEL中建立报表的样板文件,工作薄文件为REPORT.XLS,工作表名为统计表。电磁铁参数统计报表的样板格式如图3。(4建立EXCEL的APPLICATION及相关对象,实
12、现数据填充部分程序代码如下:Dim xlapp As Excel.ApplicationDim strsource, strdestination As Stringstrsource = App.Path + "" + "report.xls"strdestination = App.Path + "" + "tempreport.xls"Set xlapp = New Excel.ApplicationSet xlapp = CreateObject("excel.application"
13、建立excel的application对象xlapp.Visible = True 使excel的运行环境可见Set xlsheet = xlbook.Worksheets(2 建立worksheet对象,并设定tempreport.xls工作薄的第二张工作表为当前工作表If rstemp1.Fields("bianhao_cou" <> 0 Then 判断数据源是否有数据,然后对cells(单元格对象进行数据填充(以20型电磁铁各参数的平均值为例进行填充With xlsheetCells(1, 1 = Trim(riqi + "日电磁铁测量统计报表&
14、quot;Cells(2, 5 = Trim(riqiCells(5, 2 = rstemp1.Fields("vol_avg".Cells(6, 2 = rstemp1.Fields("i_avg"Cells(7, 2 = rstemp1.Fields("r_l_avg"Cells(8, 2 = rstemp1.Fields("r_h_avg"Cells(9, 2 = rstemp1.Fields("b_l_avg"Cells(10, 2 = rstemp1.Fields("b_h_avg"End WithEnd If5.结束语利用VB对EXCEL对象的直接编程控制,实现数据库数据到EXCEL的数据填充,找到了一种通用的数据库报表设计方法。这种报表设计方法既能灵活的满足用户对报表格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025《Young在春晚》招商方案-
- 医学资料档案管理制度
- 人教部编版四年级语文上册第16课《麻雀》精美课件
- 算法设计与分析 课件 5.3-动态规划-原理方法步骤
- 2024年西宁客运资格证培训资料
- 2024年盐城申请客运从业资格证理论考试题
- 2024年曲靖客运从业资格证培训考试资料
- 2024年孝感道路客运输从业资格证理论考题
- 吉首大学《建筑美学》2021-2022学年第一学期期末试卷
- 吉首大学《常微分方程》2021-2022学年第一学期期末试卷
- 医疗设备采购 投标技术方案 (技术方案)
- 《化学课程思政元素》
- 2024继续教育《医学科研诚信与医学了研究伦理》答案
- 门诊品管圈课件:提高门诊治疗患者健康教育的满意度
- 职业生涯报告六篇
- 作业本印制服务投标方案(技术标)
- 上虞净化工程施工方案范本
- 【语文】宁波市小学四年级上册期中试卷
- 辽宁省沈阳市铁西区2023-2024学年七年级上学期期中地理试题
- 环保设施安全风险评估报告
- 建设工程消防验收技术服务项目方案(技术标 )
评论
0/150
提交评论