前言
一个小小的排列,或者说一个小小的不解就把问题想着太难.一想几小时而不能自拔自找苦吃.等问题解决时回头一想"呵呵",想把自己掐死,这么简单竟然想这么久.
正确序列
必须考虑fields(0)=serial,而我字节跳过serial,而直接studentno=fields(0)
fields(0) fields(1) fields(2) fields(3)
Private Sub cmdexport_Click()
Dim excelapp As Excel.Application '定义一个Excel应用程序
Dim execlbook 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 execlbook = excelapp.Workbooks.Add '创建一个工作簿
Set excelsheet = execlbook.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 "导出完成!", 0 + 48, "提示"
excelapp.Visible = True
End Sub
Private Sub cmdquery_Click()
Dim txtsql As String
Dim msgtext As String
Dim mrc As ADODB.Recordset
txtsql = "select * from recharge_info where date>='" & DTP1.Value & "'and date <= '" & DTP2.Value & " '"
Set mrc = ExecuteSQL(txtsql, msgtext)
If DTP1.Value > DTP2.Value Then
MsgBox "起始时间不能大于结束时间", 0 + 48, "警告"
Exit Sub
Else
If mrc.EOF = True Then
MsgBox "没有数据", 0 + 48, "警告"
Exit Sub
End If
End If
With myFlexgrid
.Row = 0
.CellAlignment = 0
.TextMatrix(0, 0) = "卡号"
.TextMatrix(0, 1) = "充值金额"
.TextMatrix(0, 2) = "充值日期"
.TextMatrix(0, 3) = "充值时间"
.TextMatrix(0, 4) = "结账教师"
.TextMatrix(0, 5) = "结账状态"
Do While Not mrc.EOF
.Rows = .Rows + 1
.CellAlignment = 0
.TextMatrix(.Rows - 1, 0) = mrc.Fields(2)
.TextMatrix(.Rows - 1, 1) = mrc.Fields(3)
.TextMatrix(.Rows - 1, 2) = mrc.Fields(4)
.TextMatrix(.Rows - 1, 3) = mrc.Fields(5)
.TextMatrix(.Rows - 1, 4) = mrc.Fields(6)
.TextMatrix(.Rows - 1, 5) = mrc.Fields(7)
mrc.MoveNext
Loop
MsgBox "查询成功!", 0 + 48, "警告"
End With
mrc.Close
End Sub