'1、要操作excel表,首先得在工程——引用中 '选择Microsoft Excel 9.0 Object Library(EXCEL2000), '表示在工程中要引用EXCEL类型库 '2、要用程序操作adodb的话同样得在工程——引用中选择"microsoft activex ' data object 2.5 library" Dim xlApp As Excel.Application '定义EXCEL类 Dim xlBook As Excel.Workbook '定义工件簿类 Dim xlsheet As Excel.Worksheet '定义工作表类 Private Sub Form_Load() '定义连接对象及记录集并进行查询 Dim i, j As Long '这里i,j是代表excel表中的行与列 Dim conn As ADODB.Connection '定义adodb的连接对象 Dim rst As ADODB.Recordset '定义记录集对象 Set conn = New ADODB.Connection '创建conn连接对象 Set rst = New ADODB.Recordset '创建记录集对象 conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\chw.mdb" conn.Open '通过链接字符串链接到数据库并打开 rst.CursorLocation = adUseClient rst.Open "select * from gg", conn, adOpenDynamic, adLockBatchOptimistic '此时记录集中已有所得查询的结果.adOpenDynamic, adLockBatchOptimistic这是游标类型,指是以何种方式打开,只读,写? '将要引用excel并将数据存入 Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类 xlApp.Visible = False '如果为ture的话是要打开excel表的,而为false则不会打开 Set xlBook = xlApp.Workbooks.Add() Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表 xlsheet.Activate '激活工作表,测试时我发现这句可以省略 '这里要操作记录集写数据 j = 1 Do Until rst.EOF For i = 1 To rst.Fields.Count 'fields指的是字段,count指的是字段的总数 xlsheet.Cells(j, i) = rst.Fields(i - 1) Next rst.MoveNext '记录集中的记录下移一条 j = j + 1 Loop 'OK!下边就要保存了 xlBook.SaveAs "d:\1.xls" xlBook.Close (True) '关闭EXCEL工作簿 xlApp.Quit '关闭EXCEL Set xlApp = Nothing rst.Close '关闭记录集 Set rst = Nothing Set conn = Nothing MsgBox ("导出成功,谢谢") End Sub |