分享

VB导出EXCEL实例

 风风林林 2011-04-20
 这是一个非常实用的例子,它可以将你查询出来的数据导出到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、现在你就可以运行了,祝你好运
 
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多