概述
机房收费系统中关于查询类的窗体有很多,比如:学生查看余额、学生查看上机记录、学生充值记录的查询、收取金额查询、金额返还信息查询、学生基本信息维护等都有查询。由此可见查询在机房收费系统中的重要地位。当然我们在学生信息管理系统中也有许多的增删改查。下面我就以金额返还信息查询为例来解剖一下查询类窗体的那点事。先看流程图(这个可以理清我们的思路,也就是以后客户的需求分析)
流程图
解析
其实流程图帮我们把思路理清楚了,特别是在这个窗体中我们从那几个事件开始、需要调用哪几个数据表、需要做哪些判断我们一看就一目了然。已上图为例:
一、本窗体的事件就三个:form_load、两个command_click。
二、需要调用的数据表,这个的判断稍微麻烦点,需要我们分析用户需求,也就是上图中myflexgrid框中要显示的信息。根据导出Excel表的内容确定需要调用的数据表。
三、导出Excel可以说是本窗体最难的事了,其实这个就是一个excel与VB交互的问题,这样一说似乎简单了好多。其实除了excel外还有word、access、outlook以及project都可以和vb进行交互。
四、需要做哪些判断,比如:其实日期和终止日期大小的判断问题、有卡号框的需要判断是否为空。
注意
1、在机房收费系统中有很多的窗体都用到了导出excel表,其实我们可以把它放到模块窗体中,这样可以方便我们的调用,更加有利于系统的稳定性。
2、我们的excel表导出后是保存在默认的位置,不会直接打开它,但是很多的时候我们在用的时候找不到表的具体位置,所以我们可以让它自动打开或打开一个位置保存的路径。
重要代码
Private Sub cmdExport_Click()
Dim ExcelApp As Excel.Application '定义一个Excel应用程序
Dim ExcelBook As Excel.Workbook '定义一个工作簿
Dim ExcelSheet As Excel.Worksheet '定义一个工作表
Dim ExcelRange As Excel.Range '定义一个单元格范围
Dim i As Integer '定义横坐标
Dim j As Integer '定义纵坐标
Set ExcelApp = CreateObject("Excel.application") '创建Excel应用程序对象
Set ExcelBook = ExcelApp.Workbooks.Add '创建一个工作簿
Set ExcelSheet = ExcelBook.Worksheets(1) '创建一个工作表
DoEvents '转让控制权,以便让操作系统处理其它的事件
With myflexgrid '将FlexGrid控件中内容导入Excel表格中
For i = 0 To .Rows - 1 '遍历所有的行
For j = 0 To .Cols - 1 '遍历所有的列
DoEvents '转让控制权,以便让操作系统处理其它的事件
ExcelApp.ActiveSheet.Cells(i + 1, j + 1) = .TextMatrix(i, j) '创建新的单元格,并添加FlexGrid中的内容
Next j
Next i
End With
ExcelApp.ActiveWorkbook.SaveAs App.Path & "\学生查询.xls" '表格保存路径
ExcelApp.ActiveWorkbook.Saved = True '保存表格
MsgBox "导出完成!", vbOKOnly + vbExclamation, "提示" '保存成功提示信息
ExcelApp.Visible = True '显示表格
End Sub