这是一个非常实用的例子,它可以将你查询出来的数据导出到Excel表格中,具体步骤如下:
1、这里使用的Access数据库,所以先建一个数据库,这个数据库要和工程文件和窗体文件放在同一个文件夹(所以建议先在某个磁盘下建一个文件夹),数据库的名字叫“学生.mdb”,里面创建一个表叫“学生信息表”,表中有三个字段(学号、姓名、性别)。(当然用SQL数据库也可以,你自己可以试一试) 2、创建一个窗体,在窗体上添加一个datagrid控件(这个控件需要加载,方法是:“工程”菜单——》“部件”——》“microsoft datagrid control 6.0(oledb)”选中前面的复选框,打上对勾即可),然后到工具箱里面选中它,在窗体上画一个;然后添加两个按钮,将第一个的caption改为“查询”,将第二个的caption改为“导出”,再将第二个的enabled属性改为false(这是因为只有你查询到了数据才能导出,如果datagrid里没有数据,是不能导出的) 3、所有代码如下: Option Explicit Dim i, j, k As Integer Dim xlapp As Variant Dim xlBook As Variant Dim xlSHEET As Variant Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub Command1_Click() If rs.RecordCount <= 0 Then MsgBox "没有可输出的数据,请选择数据" Exit Sub Else Set xlapp = CreateObject("excel.application") Set xlBook = xlapp.workbooks.Add Set xlSHEET = xlBook.worksheets(1) xlapp.Visible = True On Error Resume Next If Err.Number <> 0 Then Set xlapp = CreateObject("Excel.Application") Set xlBook = xlapp.workbooks.Add Set xlSHEET = xlBook.ActiveSheet For k = 1 To DataGrid1.Columns.Count xlSHEET.Cells(1, k) = DataGrid1.Columns(k - 1).Caption Next k For i = 1 To rs.RecordCount + 1 For j = 0 To DataGrid1.Columns.Count xlSHEET.Cells(i + 1, j + 1) = rs(j) Next j rs.MoveNext Next i End If End Sub Private Sub Command2_Click() Set cn = Nothing Set rs = Nothing cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\学生.mdb;Persist Security Info=False" rs.CursorLocation = adUseClient rs.Open "学生信息表", cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rs if rs.recordcount>0 then Command1.Enabled = True end if End Sub 4、现在你就可以运行了,祝你好运 |
|