VBA数据库解决方案第九讲:把数据库的内容在工作表中显示

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA数据库解决方案第九讲:把数据库的内容在工作表中显示d05adcd6f82d78326444402e39b95fd8.jpeg

【分享成果,随喜正能量】凡是经不起时光沉淀的生命喧嚣,都不算伤痛,更不算创伤,它就是像浮云片片,来了去了,如果你心大点,它既不是来也不是去,它就是一片风景。。

第九讲 打开数据库记录集,把所得的数据回填到工作表

大家好,今日继续讲解VBA数据库解决方案的第9讲内容,打开一个数据库记录集,并把数据放到工作表文件中。

数据库的讲解开始进入到实际操作阶段,数据库的内容涉及到知识较多,还是之前强调的,这是VBA中级及以上水平的范畴,对于基础没有牢固的朋友,一定要下功夫把基础打牢,才可以逐渐过渡到数据库的学习。一定要对照我的第一套教程《VBA代码解决方案》,把各个知识点要弄通,然后再学习这套教程,可以收到事半功倍的效果。

代码讲解:

① Set cnADO = CreateObject("ADODB.Connection")

Set rsADO = CreateObject("ADODB.RecordSet")

上述代码中新创建了一个连接,一个记录集,大家要清楚的是,这是利用创建的方法产生的连接,

② strPath = ThisWorkbook.Path & "\mydata.accdb"

给出了数据库的路径

③ cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath

这里是打开了cnADO这个连接

④ strSQL = "SELECT * FROM 职员表 WHERE 部门='总务'"

这是一个SQL语句,这个语句的作用就是,在数据库的“职员表”中查询部门为“总务”的人员

⑤ rsADO.Open strSQL, cnADO, 1, 3

这个命令是打开上述的符合SQL查询的记录集,其中strSQL 是代表"SELECT * FROM 职员表 WHERE 部门='总务'",cnADO是我们建立起来的ADO连接,后面的1和3的意义在上一讲我们刚刚见过;

1 代表;AdOpenForwardOnly (默认值)打开仅向前类型游标。

3 代表: AdLockOptimistic    开放式锁定(逐个) — 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。

⑥ Cells.ClearContents 为了存放数据,在工作表中先清理一下,清空数据

⑦ For i = 0 To rsADO.Fields.Count - 1

Cells(1, i + 1) = rsADO.Fields(i).Name

Next i

为了理解上述语句的意义,我们先来看看记录集的一些属性:

rsADO.Fields.Count 是记录结果集中的字段数,

Fields是字段集对象,由单个的Field字段组成,表示Recordset对象的列的集合。Fields成员的下标从0开始,0表示第一个字段。

上面代码的意思是将需要将字段名写入,也就是说在EXCEL中先写入表头。

⑧ Range("A2").CopyFromRecordset rsADO

为了理解上述代码的意义,先讲一下CopyFromRecordset方法。

CopyFromRecordset方法是将一个ADO或 DAO Recordset 对象的内容复制到工作表中,复制的起始位置以指定区域为左上角。

句法:Rng.CopyFromRecordset(Data, MaxRows, MaxColumns)

参数:

a) Data:Void 类型,必选。复制到指定区域的 Recordset 对象。

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

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

那么,Range("A2").CopyFromRecordset rsADO的意义就是讲所得到的记录集合,复制到A2单元格为左上角的一个适应的区域内。

⑨ rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

这几条代码的意义就是记录集关闭,连接关闭,释放内存。

下面看我们运行后的结果:

7af7e884e7b75eed81d1498d53ec0846.jpeg

到此开篇提到的问题我们的问题就圆满解决了。

今日内容回向:

1 如何把数据库的内容在工作表中显示?

2 今天的代码采用了一种方式的处理,下一讲还有一种方案的处理,请结合两者的内容,看看今日的代码用的是那种处理方法?

本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm

dca01a1780afa55848567d2abe6f6dd2.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

44ea19cb8d3b3d401f01ecc09cb6bde9.jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587980.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DolphinScheduler on k8s 云原生部署实践

文章目录 前言利用Kubernetes技术云原生平台初始化迁移基于Argo CD添加GitOpsDolphinScheduler 在 k8s 上的服务自愈可观测性集成服务网格云原生工作流调度从HDFS升级到S3文件技术总结 前言 DolphinScheduler 的高效云原生部署模式,比原始部署模式节省了95%以上的人…

开发环境搭建及驱动移植 2

1 开发环境搭建 前言: STD库-标准外设库 寄存器操作,将一些基本的寄存器操作封装成函数 HAL库-硬件抽象库将这些抽象成了一个抽象层,从使用的角度来看,是与硬件无关的 HAL库优势HAL库是ST未来主推的库,从2015开始ST…

Movavi Video Converter 2022 for Mac/Win:卓越的视频音频文件转换器

在数字化时代,视频和音频文件已成为我们日常生活和工作中不可或缺的一部分。无论是制作精美的家庭影片,还是编辑专业的商业视频,一款高效、便捷的视频音频文件转换器无疑是您的得力助手。而Movavi Video Converter 2022,就是这样一…

Python 与机器学习,在服务器使用过程中,常用的 Linux 命令包括哪些?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 本博客旨在分享在实际开发过程中,开发者需要了解并熟练运用的 Linux 操作系统常用命令。Linux 作为一种操作系统,与 Windows 或 MacOS 并驾齐驱,尤其在服务器和开发环…

AWTK 开源串口屏开发(15) - 通过 MODBUS 访问远程设备数据

在 AWTK 串口屏中,内置了 MODBUS Client 的模型,支持用 MODBUS 协议从远程设备获取数据。不用编写一行代码即可实现对远程设备数据的显示和修改。 1. 功能 不用编写代码,实现对远程设备数据的显示和修改。 2. 创建项目 从模板创建项目&am…

MATLAB近红外光谱分析技术应用

郁磊副教授,主要从事MATLAB编程、机器学习与数据挖掘、数据可视化和软件开发、生理系统建模与仿真、生物医学信号处理,具有丰富的实战应用经验,主编《MATLAB智能算法30个案例分析》、《MATLAB神经网络43个案例分析》相关著作。已发表多篇高水…

聚观早报 | 蔚来推出油车置换补贴;iPhone 16 Pro细节曝光

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 4月02日消息 蔚来推出油车置换补贴 iPhone 16 Pro细节曝光 小米SU7创始版第二轮追加开售 OpenAI将在日本设立办事…

JeeSite Vue3:前端开发控制实现基于身份角色的权限验证

随着技术的飞速发展,前端开发技术日新月异。在这个背景下,JeeSite Vue3 作为一个基于 Vue3、Vite、Ant-Design-Vue、TypeScript 和 Vue Vben Admin 的前端框架,引起了广泛关注。它凭借其先进的技术栈和丰富的功能模块,为初学者和团…

基于 NGINX 的 ngx_http_geoip2 模块 来禁止国外 IP 访问网站

基于 NGINX 的 ngx_http_geoip2 模块 来禁止国外 IP 访问网站 一、安装 geoip2 扩展依赖 [rootfxkj ~]# yum install libmaxminddb-devel -y二、下载 ngx_http_geoip2_module 模块 [rootfxkj tmp]# git clone https://github.com/leev/ngx_http_geoip2_module.git三、解压模…

android 使用ollvm混淆so

使用到的工具 ndk 21.4.7075529(android studio上下载的)cmake 3.10.2.4988404(android studio上下载的)llvm-9.0.1llvm-mingw-20230130-msvcrt-x86_64.zipPython 3.11.5 环境配置 添加cmake mingw环境变量如下图: 编译 下载…

redis发布订阅模式

需要两个终端。 首先我们打开第一个终端,使用SUBSCRIBE命令来订阅一个频道。 打开另一个终端,发布信息使用PUBLISH,后面加上频道的名称和消息的内容 返回去看第一个终端 订阅频道的终端可以有多个。但是订阅频道有一些局限性,比如…

蓝队面经速查手册

文章目录 常见安全设备+安全产品溯源应急响应+入侵排查思路日志文件日志分析工具安全加固外围打点常用排查命令主机后门webshell的排查思路Webshell工具的流量特征服务器存在 webshell,如何处理?排查 shell 应该用什么命令来进行排…