- 一般用户
- 学生查看上机记录
- 逻辑(判空,查line,显示数据)
- 问题
- 查询控件
- 问题1:无效使用空值
-
这是因为在line表里下机的记录未上传,导致下机记录为空,所以在更新数据时,出现空值无法覆盖的问题
- 问题2:下标越界
-
这个问题是MSHFlexGrid1控件的属性中,所承载数据的行数,列数不够盛放数据,所以需要修改行数,列数
- 导出Excel表
- 循环语句,将MSHFlexGrid1控件中的每个单元格中的内容逐一导出到新建的Excel的单元格中
- 查询控件
- 学生查看上机记录
下面展示导出Excel表格的代码:
Private Sub cmdExportExcel_Click()
Dim ExcelApp As Excel.Application
Dim ExcelBook As Excel.Workbook
Dim ExcelSheet As Excel.Worksheet
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 MSHFlexGrid1
For i = 0 To .Rows - 1
For j = 0 To .Cols - 1
DoEvents
ExcelApp.ActiveSheet.Cells(i + 1, j + 1) = .TextMatrix(i, j)
Next j
Next i
End With
ExcelApp.ActiveWorkbook.SaveAs App.Path & "\学生上机记录查询.xls"
ExcelApp.ActiveWorkbook.Saved = True '保存表格
MsgBox "导出完成!", vbOKOnly + vbExclamation, "提示" '保存成功提示信息
ExcelApp.Visible = True
End Sub
- 学生上机状态查看
- 显示全部
- 问题
- 表格不能完整显示数据,只显示一条,且只显示在最后一行
- 列首的数据需要调整列宽才可以显示出来
- 每个单元格的数据不能完整显示出来
- 问题
- 显示全部
解决方案
- 是因为MSHFlexGrid1在代码属性设定时。行数未进行循环显式(也不知道我是不是真明白了“笑哭”),所以无论是online表里有几条数据,都是会显示一行
- 通过修改属性Wordwrap 使得数据可以折行显示,解决了数据显示不全的问题。
- 更改MSHFlexGrid1的属性,即可实现