用DLL实现把数据库的记录导出到EXCEL中(VB)

2023-05-16

 

'新建一个ActiveX DLL工程工程名为DbToExcel
'工程-->引用,引用Microsoft ActiveX Data Objects 2.6 Library
'Microsoft Excel 9.0 Objects Library

Option Explicit

Private Mcnnquery As ADODB.Connection   '定义ADO连接对象
Private Mrsquery As ADODB.Recordset     '定义ADO记录对象
Dim ObjExcel As Excel.Application   '定义Excel对象
Dim ObjWorkBook As Excel.Workbook   '定义工作薄
Dim ObjSheet As Excel.Worksheet     '定义工作表
Dim ObjRange As Excel.Range         '定义用户使用工作表的范围

Private Property Set Connquery(ByVal Conn As ADODB.Connection)
    Set Mcnnquery = Conn
End Property

Private Property Get Connquery() As ADODB.Connection
    Set Connquery = Mcnnquery
End Property

Private Property Set Rsquery(ByVal Rs As ADODB.Recordset)
    Set Mrsquery = Rs
End Property

Private Property Get Rsquery() As ADODB.Recordset
    Set Rsquery = Mrsquery
End Property

'属性方法共有三个参数
'strcnn 连接对象
'strrs  数据集对象
'strpath EXCEL文件
Public Sub DbtoExcel(Strcnn As ADODB.Connection, Strrs As ADODB.Recordset, Strpath As String)
    Dim i As Integer, j As Integer
On Error GoTo Err
    Set Connquery = Strcnn '设置cnnquery属性
    Set Rsquery = Strrs   '设置rsquery属性
    Set ObjExcel = New Excel.Application
    Set ObjWorkBook = ObjExcel.Workbooks.Open(Strpath)  '打开EXCEL文件
    Set ObjSheet = ObjWorkBook.ActiveSheet
    Set ObjRange = ObjSheet.UsedRange '用户使用过的工作表范围
    For i = 1 To Rsquery.Fields.Count
        ObjRange.Cells(1, i) = Rsquery.Fields(i - 1).Name
    Next i
    For j = 1 To Rsquery.RecordCount
        For i = 0 To Rsquery.Fields.Count - 1
            ObjRange.Cells(j + 1, i + 1) = Rsquery.Fields(i).Value
        Next i
        Rsquery.MoveNext
    Next j
    ObjExcel.Quit
    Set ObjWorkBook = Nothing
    Set ObjRange = Nothing
    Set ObjSheet = Nothing
    Set ObjExcel = Nothing
Err:
    MsgBox Err.Number & " " & Err.Description
    Set ObjWorkBook = Nothing
    Set ObjRange = Nothing
    Set ObjSheet = Nothing
    Set ObjExcel = Nothing
End Sub

'文件-->生成DbToExcel.dll

'新建一个标准EXE工程
'工程-->引用Microsoft ActiveX Data Objects 2.6 Library
浏览,加载刚才生成的DLL文件

Option Explicit
 
Dim Conn As ADODB.Connection
Dim Rs As ADODB.Recordset

Dim DE As New DbtoExcel.Class1  '定义一个类,DbToExcel.DLL内Class1类的一个实例

Private Sub Command1_Click()
    DE.DbtoExcel Conn, Rs, "c/1.xls"
End Sub

Private Sub Form_Load()
    Set Conn = New ADODB.Connection
    Set Rs = New ADODB.Recordset
    Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/db.mdb;Persist Security Info=False"
    Conn.Open
    Rs.Open "select * from users", Conn, adOpenKeyset, adLockBatchOptimistic

 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用DLL实现把数据库的记录导出到EXCEL中(VB) 的相关文章

  • Application.logMessageReceived

    监听Unity的打印事件 xff0c 如常规打印 xff0c 报错等等 如下代码为自制的打印日志 xff1a List lt string gt mWriteTxt 61 new List lt string gt void OnEnabl
  • Unity编辑器篇(一)Scene界面

    xff08 一 xff09 xff0c 向屏幕中心发射一条射线 lastActiveSceneView 类似于 Game场景的相机 xff0c xff08 其实我也没搞懂是什么东西 xff09 Ray ray 61 SceneView la
  • 计蒜客-炮台实验

    蒜头君在玩一个战争模拟游戏 xff0c 他有高度为 1 2 3 ldots n1 2 3 n 的炮台各一个 xff0c 他需要把这 nn个炮台从左往右排成一行 xff0c 并且炮口都朝向右边 在这个游戏中 xff0c 所有炮台发射的炮弹会摧
  • Dockerfile详解超全

    Dockerfile详解 环境介绍指令介绍FROMMAINTAINERLABELADDCOPYEXPOSEENV在Dockerfile中使用变量的方式 RUNCMDRUN amp amp CMDENTRYPOINTVOLUMEUSERWOR
  • Debian8 修改root密码

    1 当系统启动进入GNU GRUB界面 xff0c 按esc停留在此页面 xff0c 按上下的方向键可以进行选择 2 选中要修改的系统 xff0c 按e进入编辑状态 xff0c 在linux开头的这一行末尾加上 init 61 bin ba
  • debian10 配置ntp服务

    debian10 配置ntp服务 1 安装ntp2 配置3 验证 服务器不能连外网 xff0c 内网中有一台授时服务器 xff0c 内网也搭建了debian10的本地镜像源 1 安装ntp apt install ntp 2 配置 sudo
  • STL priority_queue使用

    转自 xff1a http www cnblogs com lvpengms archive 2010 04 05 1704669 html 包含priority queue 的头文件是 lt queue gt priority queue
  • GNU 简单介绍(含glibc 源码下载)

    GNU是什么 xff1f 先放网址 xff1a https www gnu org GNU是一个自由软件操作系统 就是说 xff0c 它尊重其使用者的自由 GNU操作系统包括GNU软件包 xff08 专门由GNU工程发布的程序 xff09
  • P1591 阶乘数码 【高精】

    题目描述 求 n n n 中某个数码出现的次数 输入格式 第一行为 t t 10 t t leq 10 t t 10 xff0c 表示数据组数 接下来 ttt 行 xff0c 每行一个正整数 n n 1000 n n leq 1000 n
  • P1825 [USACO11OPEN]Corn Maze S 【BFS】

    题目描述 This past fall Farmer John took the cows to visit a corn maze But this wasn t just any corn maze it featured severa
  • P1002 过河卒 【DP】

    题目描述 棋盘上 AAA 点有一个过河卒 xff0c 需要走到目标 BBB 点 卒行走的规则 xff1a 可以向下 或者向右 同时在棋盘上 CCC 点有一个对方的马 xff0c 该马所在的点和所有跳跃一步可达的点称为对方马的控制点 因此称之
  • [论文笔记-6]Discrete Opinion Tree Induction for Aspect-based Sentiment Analysis

    题目 作者 abstract 1 依赖树 dependency trees 缺点 xff1a 依赖于外部解析器 xff0c 而这些解析器对于低资源的语言来说是不可用的 xff0c 或者在低资源的领域表现更差 xff1b 没有为基于方面的情感
  • hexo搭建——debian 环境变量设置

    1 问题描述 首先需要明白所谓git部署到服务器的原理 Hexo g 会生成一个静态网站 xff08 第一次会生成一个public目录 xff09 xff0c 这个静态文件可以直接访问 需要将hexo生成的静态网站 xff0c 提交服务器重
  • 将13位图书条码转换为ISBN-10(2007年以前图书)的方法

    将13位图书条码转换为ISBN 10 2007年以前图书 的方法 lt summary gt 2007年前图书13条码转换成ISBN 10位方法 lt summary gt lt param name 61 34 Isbn13 34 gt
  • 2022 年您需要了解的 10 大计算机视觉框架

    计算机视觉是一个快速发展的科学领域 xff0c 它处理从数字图像和视频中提取信息以获得对环境的高级理解 该技术主要应用于机器人 增强现实和自动驾驶汽车中的复杂问题 xff0c 例如物体检测 导航空间测量 面部识别 动作和活动识别 驱动视觉和
  • No Target Connected 错误时的一种情况

    STM32的SWD烧录模式No Target Connected 错误的一种情况 STM32的SWD烧录模式No Target Connected 错误时的一种处理情况 这是我第一次烧板子的时候遇到的问题 xff0c 在给板子downloa
  • wxpython设计GUI:窗口Frame最大化、最小化、关闭及全屏显示的说明

    在用户实际使用窗口时必然涉及到窗口的最大化 最小化 是否全屏显示及窗口关闭操作 wx Frame介绍链接 xff1a https docs wxpython org wx Frame html highlight 61 frame wx f
  • 算法设计动态规划-租用游艇问题 

    7 2 租用游艇问题 17分 题目来源 xff1a 王晓东 xff0c 算法设计与分析 长江游艇俱乐部在长江上设置了n个游艇出租站1 xff0c 2 xff0c xff0c n 游客可在这些游艇出租站租用游艇 xff0c 并在下游的任何一个
  • 六、SLAM学习笔记—— Firefly RK3566 Ubuntu18.04 远程桌面

    前言 在前面的文章中 xff0c 解决了FireFly安装ROS xff0c 安装Cartographer 配置交叉编译OpenCV 双目摄像头的驱动 为了通过RK3566实现ROS小车 xff0c 那么远程桌面是非常必要的 xff0c 因
  • Ubuntu login incorrect问题解决

    小弟最近开始使用Ubuntu xff0c 使用win7系统 xff0c WM10的虚拟机 Ubuntu的版为14 04 xff0c 这里面遇到几个坑 xff0c 小小总结下 xff1a 1 xff09 刚用Ubuntu的时候不知道wubi

随机推荐