'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