Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

另类快速导出数据库为EXCEL文档

时 间:2007-10-15 13:01:02
作 者:我不记得了,知道的告诉我   ID:70  城市:闵行
摘 要:另类快速导出数据库为EXCEL文档
作者我不记得了,如果谁知道请告诉我一下
正 文:

另类快速导出数据库为EXCEL文档

Dim i As Integer, j As Integer
  Dim myexcel As New Excel.Application
  Dim mybook As New Excel.Workbook
  Dim mysheet As New Excel.Worksheet
  Set mybook = myexcel.Workbooks.Add '添加一个新的BOOK
  Set mysheet = mybook.Worksheets.Add '添加一个新的SHEET
  ' For i = 1 To myres.RecordCount
  ' For j = 1 To myres.Fields.Count
  ' mysheet.Cells(i, j) = myres.Fields.Item(j - 1).Value
  ' If (i * j) Mod 500 = 0 Then
  ' DoEvents
  ' End If
  ' Next j
  ' myres.MoveNext
  
  ' Next i
   myexcel.Visible = True
   mybook.SaveAs (m_ExcelName) '保存文件
  
  

  这中方法没什么错误,但是如果数据量很大的话,麻烦就来了,出现程序长时间不响应
  
  关键是循环,下给出我的代码
  
  假设定义的记录名为myres
  
  Dim myexcel As New Excel.Application
  Dim mybook As New Excel.Workbook
  Dim mysheet As New Excel.Worksheet
  Set mybook = myexcel.Workbooks.Add '添加一个新的BOOK
  Set mysheet = mybook.Worksheets.Add '添加一个新的SHEET
   myexcel.visible=true
  
  mysheet.Cells.CopyFromRecordset myres
  
  mybook.SaveAs (m_ExcelName) '保存文件

  利用这个代码可以大大的缩短导出时间,8000多个纪录用第一种方法大概需要2分多
  
  而用第二种方法只大概要4秒,

还有比这个更快的方法。

请使用微软公司推荐的 拷贝ADO记录集 的技术

即在EXCEL工作表实例中应用 CopyFromRecordset 方法

———————————————————————————————
例:将记录集复制到工作表中,复制的起始位置在 A2 单元格

ws.Range("A2").CopyFromRecordset rs

其中WS 是工作表实例;rs是 ADO的一个记录集
———————————————————————————————

CopyFromRecordset 方法 的用法

将一个 ADO 或 DAO Recordset 对象的内容复制到工作表中,复制的起始位置在指定区域的左上角。如果 Recordset 对象包含带 OLE 对象的字段,本方法将失效。




expression.CopyFromRecordset(Data, MaxRows, MaxColumns)

expression   必需。该表达式返回一个 Range 对象。

Data   Variant 类型,必需。复制到指定区域的 Recordset 对象。

MaxRows   Variant 类型,可选。复制到工作表的记录个数上限。如果省略该参数,将复制 Recordset 对象的所有记录。

MaxColumns   Variant 类型,可选。复制到工作表的字段个数上限。如果省略该参数,将复制 Recordset 对象的所有字段。

说明
复制从 Recordset 对象的当前行开始的内容。复制完成之后,Recordset 对象的 EOF 属性值为 True。



以上实例来自于EXCEL 示例文件


Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助