学识共享图文直播-(一)将数据库中的数据加载到MSFlexGrid空间中再导入Excel

知识共享图文直播---(一)将数据库中的数据加载到MSFlexGrid空间中再导入Excel

        熟话说万物皆有其存在的道理,为什么我突然想写《知识共享图文直播》这个系列呢?首先,我想的是记录自己学习的历程,在记录中加深自己对知识的理解,同时也希望自己的博文能帮助到其他数据库的初学者。其次,这也算借鉴了其他人的一个好的想法吧。

        一、我们所处的环境

              1、看窗体布局

             学识共享图文直播-(一)将数据库中的数据加载到MSFlexGrid空间中再导入Excel

           2、了解目标表

            学识共享图文直播-(一)将数据库中的数据加载到MSFlexGrid空间中再导入Excel

          

        二、数据导入MSFlexGrid控件中


[vb] view plaincopyprint?
  1. Dim strSQL As String  
  2. Dim strMsg As String  
  3. Dim objRs As ADODB.Recordset  
  4. Dim n As Integer  
  5.   
  6. '提取学生信息  
  7. strSQL = "select * from student_Info where cardno='" & txtCardNo.Text & "'"  
  8. Set objRs = ExecuteSQL(strSQL, strMsg)  
  9.   
  10. '显示列名  
  11. With MSFlexGrid1  
  12.     '.Row = 0  
  13.     .TextMatrix(0, 0) = "卡号"  
  14.     .TextMatrix(0, 1) = "学生姓名"  
  15.     .TextMatrix(0, 2) = "充值金额"  
  16.     .TextMatrix(0, 3) = "充值日期"  
  17.     .TextMatrix(0, 4) = "充值时间"  
  18.     .TextMatrix(0, 5) = "充值教师"  
  19.       
  20.     '有选择的显示记录,对比表中的列名可知  
  21.     n = 0  
  22.     While Not objRs.EOF  
  23.         MSFlexGrid1.AddItem (objRs!cardno & vbTab & objRs!studentName & _  
  24.                              vbTab & objRs!cash & vbTab & objRs!Date & _  
  25.                              vbTab & objRs!Time & vbTab & objRs!UserID)  
  26.         n = n + 1  
  27.         objRs.MoveNext  
  28.     Wend  
  29.       
  30. End With  
 

    三、将控件中显示数据导入Excel表格


     1、首先我们先在模块中建立执行此过程的方法,如下: 


[vb] view plaincopyprint?
  1. <pre name="code" class="vb">Public Sub OutDataToExcel(Flex As MSFlexGrid)  
  2. '***********************************************************  
  3. '作用:定义一个过程,实现将MSFlexGrid控件中的数据导入Excel表格  
  4. '输入参数:无  
  5. '返回值:  
  6. '创建日期:2013.8.23  
  7. '修改日期:  
  8. '作者:十期提高班 Senior_Lee  
  9. '****************************************  
  10.     Dim s As String  
  11.     Dim i, j, k As Integer  
  12.       
  13.     On Error GoTo Err  
  14.       
  15.     'Me.MousePointer = 11  
  16.     Dim Excelapp As Excel.Application  
  17.     Set Excelapp = New Excel.Application  
  18.       
  19.     On Error Resume Next  
  20.       
  21.     DoEvents  
  22.     Excelapp.SheetsInNewWorkbook = 1  
  23.     Excelapp.Workbooks.Add  
  24.     'Excelapp.ActiveSheet.Cells(1, 1) = s  
  25.     'Excelapp.Range("c1").Select               '选中某一个单元格  
  26.     'Excelapp.Selection.Font.Size = 16         '设置选中单元格的字体  
  27.       
  28.     With Flex  
  29.         k = .Rows  
  30.         For i = 0 To k - 1  
  31.             For j = 0 To .Cols - 1  
  32.                 DoEvents  
  33.                 Excelapp.ActiveSheet.Cells(1 + i, j + 1) = "'" & .TextMatrix(i, j)  
  34.             Next j  
  35.         Next i  
  36.     End With  
  37.       
  38.     'Me.MousePointer = 0  
  39.     Excelapp.Visible = True  
  40.     'Excelapp.Sheets.PrintPreview              '默认显示,打印预览窗体,注释之后直接显示Excel表格  
  41.       
  42. '错误处理  
  43. Err:  
  44.     If Not (Excelapp Is NothingThen  
  45.         Excelapp.Quit  
  46.     End If  
  47.       
  48. End Sub  
     
     2、在窗体中调用
Private Sub cmdOutPut_Click()  
'***************************************  
'作用:将学生充值记录导入Excel表格  
'输入参数:  
'返回值:  
'创建日期:  
'修改日期:  
'作者:  
'*************************************  
    OutDataToExcel MSFlexGrid1  
End Sub     

     写完之后总觉得少点东西,文章页仅仅是记录;在接下来的文章中会慢慢的加入自己的思考的。同时也希望该文对数据库的初学者有帮助。

9楼u010539352昨天 12:38
有帮助!我还没开始研究呢。。。
Re: Senior_lee11小时前
回复u010539352n不急慢慢来,等遇到了问题先自己好好想想,再看博客
8楼u010011371昨天 11:31
有帮助,呵呵,加油啊!
7楼lfmilaoshi3天前 16:01
文章的最后,再有一些更为充分的解说,看起来,有画龙点睛了。
6楼Augus33443天前 10:33
Dim s As String n Dim i, j, k As Integer n这个命名是不是不太合适啊
Re: Senior_lee3天前 10:34
回复Augus3344n确实,马上修改
5楼u0108537015天前 21:12
想法不错,我谨代表党*对你进行鼓励!
Re: Senior_lee4天前 21:24
回复u010853701n注意评价内容啊
4楼u0108500275天前 15:25
赶快赶快追上
Re: Senior_lee5天前 20:02
回复u010850027n怎么呢?
Re: Senior_lee5天前 21:11
回复u010850027nwhat?
3楼caozhangyingfei01096天前 20:14
在你的博客里,我更希望看到你的思考过程。
Re: Senior_lee5天前 10:33
回复caozhangyingfei0109n恩恩,在接下来的博客里会慢慢加上去,这篇写得比较急
2楼u0100288696天前 19:52
进度总是这么快~~
Re: Senior_lee6天前 19:53
回复u010028869n不快啊,真的,快的人有很多啊
1楼aboy1236天前 16:20
总结是进步的阶梯。
Re: Senior_lee6天前 17:21
回复aboy123n总结也是学习的过程