VBA数据库解决方案第九讲:打开数据库记录集,所得数据回填

本文主要是介绍VBA数据库解决方案第九讲:打开数据库记录集,所得数据回填,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA数据库解决方案第九讲:打开数据库记录集,把所得的数据回填到工作表d396bd5f1834f8bc00cca90043557974.jpeg

【分享成果,随喜正能量】成年人只能筛选,不能教育。人教人,教不会,事教人,一次就够。吃亏和吃饭一样,吃多了自然就会成长!。

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

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

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

1 应用场景的具体分析

回到我们的话题,实例,有一个数据库文件名为mydata,里面记录了某公司员工的情况,我命名为“职员表”,如下面的截图,我只是给出了两个数据,如何把数据库中的数据中符合部门为总务的数据导出到EXCEL文件中,以利于查看呢?

2d8fac9345560186c7faf1465c58affc.jpeg

2 打开数据库,把所得的数据回填到工作表中的代码及代码分析

下面我们看看代码将如何书写:

Sub mynz_9() '第9讲内容,打开一个数据库记录集,并把数据放到工作表文件中

Dim cnADO As Object, rsADO As Object

Dim strPath As String, strSQL As String

Dim i As Integer

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

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

rsADO.Open strSQL, cnADO, 1, 3

Sheets("9").Select

Cells.ClearContents

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

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

Next i

Range("A2").CopyFromRecordset rsADO

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代码截图:

cbd7cc6d0a6bd7057e9791d16538bae6.jpeg

代码讲解:

[待续]

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

d29f93e5e7ac6ad3910a793435118bfb.jpeg

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


3b04b2114d487e52d40ad3ed60849885.jpeg

618c5aac7672e34279ce01451a4f218d.jpeg

这篇关于VBA数据库解决方案第九讲:打开数据库记录集,所得数据回填的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/768801

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地