如何将表中的数据导出到电子表格中  
   
   
   
   
  有很多方法都可将数据库中某个表的数据导出到电子表格中,例如通过创建Access.Application,可以利用Access本身的导出功能实现将表中的数据导出到电子表格中。但是这种方法会占用较多的系统资源,并且缺乏通用性。如果一个数据库没有导出的功能怎么办?下面的这段程序代码利用记录集实现导出的功能,这种做法的好处是显而易见的:你可以控制要导出的数据,而不用将整个表的内容都导出到电子表格中。为简单起见下面的程序代码仍将整个表的数据导出到电子表格中。如果你有兴趣的话,对下面的代码稍加改动就可做成更为通用的一个类或是一个控件。    
   
  首先在窗体上添加一个标签控件和一个命令按钮,然后在工程中添加对DAO引用。利用下面的程序代码就可将表中的数据导出到电子表格中。  
   
  Option   Explicit  
   
  Private   Sub   Command1_Click()  
                  Dim   tempDB   As   Database  
                  Dim   i   As   Integer                       '   循环计数器  
                  Dim   j   As   Integer  
                  Dim   rCount   As   Long                   '   记录的个数  
                  Dim   xl   As   Object                       '   OLE自动化对象  
                  Dim   Sn   As   Recordset  
                  Screen.MousePointer   =   11  
                  Label1.Caption   =   "打开数据库..."  
                  Label1.Refresh  
                  Set   tempDB   =   Workspaces(0).OpenDatabase("Nwind.mdb")  
                  Label1.Caption   =   "创建Excel对象..."  
                  Label1.Refresh  
                  Set   xl   =   CreateObject("Excel.Sheet.8")  
                  Label1.Caption   =   "创建快照型记录集..."  
                  Label1.Refresh  
                  Set   Sn   =   tempDB.OpenRecordset("Customers",   dbOpenSnapshot)  
   
                    If   Sn.RecordCount   >   0   Then  
                          Label1.Caption   =   "将字段名添加到电子表格中"  
                          Label1.Refresh  
                          For   i   =   0   To   Sn.Fields.Count   -   1  
                                  xl.Worksheets(1).cells(1,   i   +   1).Value   =   Sn(i).Name  
                          Next  
                          Sn.MoveLast  
                          Sn.MoveFirst  
                          rCount   =   Sn.RecordCount  
                          '   在记录中循环  
                          i   =   0  
                          Do   While   Not   Sn.EOF  
                                  Label1.Caption   =   "Record:"   &   Str(i   +   1)   &   "   of"   &   _  
                                  Str(rCount)  
                                  Label1.Refresh  
                                  For   j   =   0   To   Sn.Fields.Count   -   1  
                                        '   加每个字段的值加到工作表中  
                                        If   Sn(j).Type   <   11   Then  
                                              xl.Worksheets(1).cells(i   +   2,   j   +   1).Value   =   Sn(j)  
                                        Else  
                                              '   处理Memo和LongBinary   类型的字段  
                                            xl.Worksheets(1).cells(i   +   2,   j   +   1).Value   =   "Memo   or   Binary   Data"  
                                        End   If  
                                  Next   j  
                                  Sn.MoveNext  
                                  i   =   i   +   1  
                          Loop  
                          '   保存工作表  
                          Label1.Caption   =   "保存文件..."  
                          Label1.Refresh  
                          xl.SaveAs   "c:/Customers.XLS"  
                          '从内存中删除Excel对象  
                          Label1.Caption   =   "退出Excel"  
                          Label1.Refresh  
                          xl.Application.Quit  
                    Else  
                          '   没有记录  
                    End   If  
                    '   清除  
                    Label1.Caption   =   "清除对象"  
                    Label1.Refresh  
                    Set   xl   =   Nothing  
                    Set   Sn   =   Nothing  
                    Set   tempDB   =   Nothing  
                    Screen.MousePointer   =   0     '   恢复鼠标指针  
                    Label1.Caption   =   "Ready"  
                    Label1.Refresh  
               
                     
  End   Sub  
   
  Private   Sub   Form_Load()  
          Label1.AutoSize   =   True  
          Label1.Caption   =   "Ready"  
          Label1.Refresh  
  End   Sub  
  用DAO打开Excel文件  
   
  _作者:th4005@mail.intonet.net.tw  
   
   
  >请问不用DATA元件,如何OPEN一个XLS档?  
  >set   db=OpenDatabase("资料库")只能开mdb,*.xls档要如何开启呢?  
  >请教高手!  
   
  Option   Explicit  
  Dim   Db   As   Database  
  Dim   Rs   As   Recordset  
   
  Private   Sub   Form_Load()  
  Set   Db   =   OpenDatabase("c:/temp/book1.xls",   False,   False,   "Excel   8.0;")  
  Set   Rs   =   Db.OpenRecordset("sheet1$")  
  End   Sub  
   
  Private   Sub   Form_Unload(Cancel   As   Integer)  
  Rs.Close  
  Db.Close  
  End   Sub  
   
  这是最简单的办法,详细的使用方法及限制请参看   VB   OnLineHelp   ,资料存取物件手册、取得外部资料、使用试算表一章。

如何将表中的数据导出到电子表格中相关推荐

  1. 如何将存储在MongoDB数据库中的数据导出到Excel中?

    将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...

  2. 将dataset中的数据导出至Excel中而不需要安装MS Excel的方法(含UNICODE支持)

    偶尔做界面程序,需要一个导出Excel,而在客户端又不用安装MS Excel的方法,总结如下. 测试了两种方法,第一种方法如下(此方法支持UNICODE不存在问题): 参考:http://www.sw ...

  3. Laravel 将数据表中的数据导出,并生成seed文件

    在 laravel 开发过程中,我们为了将自己本地数据库中的数据导出给别人用有两种方法:最普通的也就是将自己的数据库用命令行或者图形操作工具导出成 .sql 的文件给对方使用 ,另外一种就是 lara ...

  4. python亿级mysql数据库导出_Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法...

    本文实例讲述了python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf- ...

  5. hive表中的数据导出

    将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hdfs,例如mysql等等 一.insert导出 将查询的结果导出到本地 insert overwrite local direc ...

  6. hive表中的数据导出:表数据的导出7种方式

    将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hdfs,例如mysql等等 insert导出 1)将查询的结果导出到本地 :第一种 insert overwrite local ...

  7. python处理大量excel数据-使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...

  8. python输出数据到excel-使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...

  9. python输出数据到excel-如何使用python将大量数据导出到Excel中的小技巧之一

    如何使用python将大量数据导出到Excel中的小技巧 (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢 ...

最新文章

  1. java 同步包_Java并发程序设计(四)JDK并发包之同步控制
  2. 怎么知道 网站是否直接明文保存密码_忘记账号密码 浏览器记住了 怎么找回密码?...
  3. 每日一皮:发现程序员经常熬夜有三个弊端!
  4. 太极图正确画法_小小太极图,暗藏大乾坤!您真的看懂了这张“中华第一图”?...
  5. 改变Eclipse主题颜色
  6. 【B站视频教程笔记】基于VSCode和CMake实现C/C++开发 | Linux篇(gcc/g++)(安装、配置、使用详细教程)(VSCode教程)(CMake教程)(精!)
  7. 新站如何快速的度过考察期并避免进入沙盒期
  8. 2000年一元钱牡丹图案现在值钱吗?
  9. RTSP/RTP/RTCP协议的区别
  10. 数据结构与算法python—5.队列及python实现与leetcode总结
  11. 百战java课程_java百战程序员SpringBoot视频教程
  12. 关于SQL模糊查询日期时间的方法,格式化日期时间年月日时分秒,去掉毫秒
  13. 微信公众帐号测试号申请及配置
  14. JavaScript文档对象
  15. CD4040二进制计数器实验电路的效果图演示_基础硬件电路图讲解
  16. windows10桌面_Windows桌面美化记(一)这可能是你看过最详细的美化教程
  17. 1060 5G/1065 版显卡安装TensorFlow/CUDA
  18. 使用高匿代理访问西刺代理(假如ip被封可用高匿ip访问网站)
  19. 国内网页设计网站网址大全[问题点数:0分,结帖人:beijin2008]
  20. 去VB程序NAG窗口方法-4C法

热门文章

  1. 算法--06谷歌面试:字符串中第一个只出现一次的字符(Java实现)
  2. Java之反射代码演示说明
  3. Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流
  4. springboot整合spring Cache(redis)
  5. Spring 利用FactoryBean来配置Bean
  6. 域名解析可以带端口吗_带互感器的三相电表接线,S2可以不接地吗?ABC相序可以错吗?...
  7. gcc-linux6.3,[环境配置]Ubuntu16.04下编译安装gcc6.3.0
  8. android项目模块导入eclipse编译报错,android中studio导入eclipse项目报错怎么办
  9. nicetool好工具_N个办公辅助好工具,无需下载,简单实用
  10. Linux面试最常见的5个基本问题