我用过的一个例子:
Sub ExportExcelRecordset(Adorecordset As Recordset)
On Error GoTo err_handle
Dim excelsheet As Object
MDImain.StatusBar1.Panels(1).Text = "正在启动EXCEL,请稍侯...."
Set excelsheet = CreateObject("excel.application")
excelsheet.Workbooks.Add
excelsheet.Visible = True
Adorecordset.MoveFirst
Dim rows As Long, cols As Long
Dim Row As Long, Col As Long
rows = Adorecordset.RecordCount
cols = Adorecordset.Fields.Count
For Col = 0 To cols - 1
excelsheet.Cells(1, Col + 1).Value = Adorecordset.Fields(Col).name
Next
For Row = 2 To rows + 1
For Col = 0 To cols - 1
excelsheet.Cells(Row, Col + 1).Value = IIf(IsNull(Adorecordset.Fields(Col).Value), "", Adorecordset.Fields(Col).Value)
Next
Adorecordset.MoveNext
Next
MDImain.StatusBar1.Panels(1).Text = "就绪"
Exit Sub
Screen.MousePointer = 0
Exit Sub
err_handle:
If err.Number = 1004 Then
MsgBox "因Excel被用户关闭而中断输出!", vbInformation
Else
Resume Next
End If
Screen.MousePointer = 0
End Sub