快速将Access中某个表内容整体输出到Excel(转载+亲自实践)

vb.net将Access中内容输出到Excel中,最传统的方法就是一个个单元格的循环赋值,
不过当数据量比较大的时候,以上方法就太费时了.

可以考虑以下方法,

(下文转自微软网站:http://support.microsoft.com/default.aspx?kbid=247412

INFO:将数据从 Visual Basic 传输到 Excel 的方法)

使用“自动化”功能将 ADO 记录集传输到工作表区域
Excel 2000 引入了 CopyFromRecordset 方法,使您能够将 ADO(或 DAO)记录集传输到工作表上的某个区域。下面的代码说明了如何自动运行 Excel 2000、Excel 2002 或 Office Excel 2003,以及使用 CopyFromRecordset 方法传输 Northwind 示例数据库中 Orders 表的内容。


   'Create a Recordset from all the records in the Orders table
   Dim sNWind As String
   Dim conn As New ADODB.Connection
   Dim rs As ADODB.Recordset
   sNWind = _
      "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      sNWind & ";"
   conn.CursorLocation = adUseClient
   Set rs = conn.Execute("Orders", , adCmdTable)
  
   'Create a new workbook in Excel
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   Set oSheet = oBook.Worksheets(1)
  
   'Transfer the data to Excel
   oSheet.Range("A1").CopyFromRecordset rs
  
   'Save the Workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls"
   oExcel.Quit
  
   'Close the connection
   rs.Close
   conn.Close

 

Excel 97 还提供了一种 CopyFromRecordset 方法,但它只能用于 DAO 记录集。Excel 97 中的 CopyFromRecordset 不支持 ADO。

有关使用 ADO 和 CopyFromRecordset 方法的更多信息,请查看以下 Microsoft 知识库文章:
246335  (http://support.microsoft.com/kb/246335/ ) 如何使用“自动化”功能将数据从 ADO 记录集传输到 Excel

 

   说明:

1.如果Access对象文件类型accdb,那么以上conn.open改为:
   conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Mode=share Exclusive;Data Source=" & _
     sNWind & ";"
 2.conn.CursorLocation = adUseClient 作用不明,注释掉不影响输出Excel
 3.Set rs = conn.Execute("Orders", , adCmdTable)中第一个参数就是Access中查询的表名
 4.Set rs = conn.Execute("Orders", , adCmdTable)中第三个参数不设定即可,不影响输出Excel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值