Public Function ExporToExcel(strOpen As String) '********************************************************* '* 名称:ExporToExcel '* 功能:导出数据到EXCEL '* 用法:ExporToExcel(sql查询字符串) '********************************************************* Dim cn As New ADODB.Connection Dim Rs_Data As New ADODB.Recordset Dim Irowcount As Integer Dim Icolcount As Integer
Dim xlApp As New Excel.Application 'Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境. Dim xlBook As Excel.Workbook 'Workbook对象直接地处于Application对象的下层,表示一个Excel工作薄文件. Dim xlSheet As Excel.Worksheet 'Worksheet对象包含于Workbook对象,表示一个Excel工作表 Dim xlQuery As Excel.QueryTable 'QueryTable 对象代表了一个表,该表是用从外部数据源返回的数据生成的。 '当您自动运行 Excel 时,可以通过提供指向 OLE DB 或 ODBC 数据源的连接字符串和 SQL 字符串来创建 QueryTable。 'Excel 将生成记录集并将该记录集插入到工作表中您所指定的位置 '您可以利用 QueryTable 对象保存查询,并在以后刷新它以获取更新的记录集。 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sysdata.mdb;Persist Security Info=False" '此语句定义了与ACCESS数据库的连接,现改为与SQL数据的连接为cn.ConnectionString = "driver={SQL SERVER};server=sql服务器名或者服务器的IP地址;uid=用户名;pwd=密码;database=数据库名"
cn.Open With Rs_Data If .State = adStateOpen Then .Close End If .ActiveConnection = cn .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockReadOnly .Source = strOpen .Open End With With Rs_Data If .RecordCount < 1 Then MsgBox ("没有记录!") Exit Function End If '记录总数 Irowcount = .RecordCount '字段总数 Icolcount = .Fields.Count End With
Set xlApp = CreateObject("Excel.Application") Set xlBook = Nothing Set xlSheet = Nothing Set xlBook = xlApp.Workbooks.Open("d:\1.xls") Set xlSheet = xlBook.Worksheets("sheet1") xlApp.Visible = True
'添加查询语句,导入EXCEL数据 Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))